安卓开发,各类问题综

原创 2016年08月29日 15:20:55

各类杂碎问题


1.用真机和模拟器一起测试程序,抽掉usb之后eclipse不停的弹出DeviceMonitor]Connection attempts: 1

去ddms页面,ddms

点击右边的箭头,然后选择resetADB


2.使用真机测试的时候,通知栏没有usb选项或者有选项调试授权框不弹出

通知栏没有usb选项的:首先换个数据线,这个换起来比价方便,要么去手机看看usb调试打开了没有,没有开发人员选项的点设置,点关于手机,点击版本,连续点击版本号
如果上面做完了还是不出来,还是去换数据线

调试授权框不弹出的:你可以去任务管理器,点进程,找adb,然后结束它,重启eclipse,插拔usb,但是一般不管用~~~不要打我~~~

有个比较麻烦的方法,下载360手机助手PC版,下载之前会让你下载360,因此我把腾讯管家卸载了,因为应用宝用了和没用没什么区别(这里没有黑的成分),然后连接手机,然后你会发现授权框出来了,公司的魅族,华为,三星都是如此。


3.华为手机

华为手机:很多都是键位内嵌到屏幕里面,这里会引起一个问题,当它加载activity的时候,虚拟键位并不会被activity覆盖,那么,当他竖屏的时候,他的实际高度为activity的高度加上虚拟键位的高度,当他横屏的时候,实际宽度等于activity的宽度加上虚拟键位的宽度。这会导致一些问题,

例如当你横屏的时候你要显示一个popupWindow,从右到左显示,你会发现在其他手机里没什么问题,到了华为就少了一截。

另外,做字体适配的时候,会在res下建立一个文件夹values-1920x1080这样的,当有虚拟键位的时候,即使它原本是1920x1080,实际的宽或高会减少虚拟键位占用的空间,变成例如1850x1080这样。

在代码中,你可以使用这一行代码暂时隐藏虚拟键位,一旦发生交互,首次交互将显示虚拟键位

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
在做视频等应用的时候,可以暂时隐藏一下。

4.eclipse的logcat输出不全问题

有的时候需要打印的数据过多,例如一个字符串的长度过长,会导致logcat不能输出全部的字符串内容,因为长度超过了logcat的最大长度,这个时候你可以试试把字符串的内容写到文本中,然后导出到电脑上查看全部内容。


5.apk反编译与防止反编译

反编译方法1:转载于http://blog.csdn.net/vipzjyno1/article/details/21039349/

利用apktool或者dex2jar和jd-gui来进行反编译

反编译方法2:利用工具直接查看apk的源码文件

下载地址为:下载

下载并解压,然后打开Smali2JavaUI.exe,点击左边选择打开一个项目,选择一个apk文件

然后你就会看到源码(加密和防加密你懂的,并不一定能看到。)


防止反编译:花了一段时间去弄混淆,但是网上看到的教程真的是不敢恭维,

简单粗暴一点的,百度搜爱加密,方便快捷。


6.eclipse下,仅查看某一个项目的输出

打开项目的manifest文件,找到根节点的pakage属性并复制,点击logcat左边的绿色加号,把复制的内容粘贴到第一行和最后一行点ok就行。之所以不直接复制src下的包名是防止中途改了应用包名,这个时候你复制src下的包名是没用的。


7.socket基于TCP/IP传输时,数据包沾包拆包的问题和解决思路

在写关于tcp网络的时候,都会用到socket的字节流,当你同时发送多条消息的时候,由于TCP本身的算法,有时候并不会因为你调用了发了第一条的方法就马上把第一条消息发出去,它可能会等待一段时间看看有没有第二条信息,如果有就一起发送过去,由于tcp是长连接形式,所以一次的数据量并不太大,当传输内容过大时可能分两次或者更多次来进行传输。

因为需要标识当前这一条数据的长度,所以大部分的传输数据为:长度+实际信息,例如:8这是一条真的信息

以下是实际传输后,数据包可能存在的形式(A为前面一个数据包,B为后面一个数据包):

1.一个完整的包

2.第一次发了A的一半,第二次发了A的后面一半和B的全部

3.第一次发了A的全部和B的一半,第二次发了B的后面一半

4.AB一起发送过来后面还带着C的一半或者全部

5.xxxxxxxx

解决思路:

接到数据包之后保存到一个缓存变量中,

List<byte[]> buf = new ArrayList<byte[]>();

获取一个数据包首先拿到长度(一般直接拿到数据包前面四个字节并保存到新的字节数组中然后转换成int类型),判断所有数据包长度是否满足获取条件,满足则开始从缓存里面拿一个完整的包否则进行等待,

从缓存里面拿满一个完整的包的过程中记录拿了几个byte数组,最后一个byte数组是否满足, 最后一个长度=当前数据包总长度-前面几个byte长度的和

满足则直接删除,不满足则说明后面有其他数据包的内容,截取出来并保存。


每次获取到一个完整的包都需要把刚才已经拿出来的部分全部删除掉,思路一样。


8.在全屏横屏状态下,不让输入法占满屏幕

 android:imeOptions="flagNoExtractUi"

安卓全屏横屏状态下,editText点击一下之后会默认占满全屏,这个时候如果不希望让输入法占满全屏

在editText的标签里加上这个属性就行了。

9.程序退出后重新进入登录页的时候,重置静态集合

部分手机即使把程序从后台中退出,再次进入程序时,静态的集合例如 list 还是会带有上次程序运行时留下的数据,比如三星。这个时候如果直接在这个集合上进行修改则有很大的概率出现数据错误。

10. 不要把覆盖页 ( 引导页 ) 放在根布局的最后

很多时候程序需要覆盖页进行提示并忽略用户的本次操作。由于需要遮挡其他组件,一般选择把覆盖页以imageView的形式放在根布局的最后,控制visible来显示和隐藏。但这个功能会在部分手机出现莫名异常,比如三星。即使imageView为gone,依然被加载。解决的办法是findview找到根布局,然后动态的添加组件到根布局中,再设置显示隐藏和点击事件。

11. 关于夜神模拟器无法成功连接android studio

打开夜神模拟器和android studio 的情况下,打开cmd,切换到夜神模拟器的安装目录下的bin目录

输入nox_adb.exe connect 127.0.0.1:62001

稍等一下,除去已连接的提示之外,会提示连接成功。用了很长时间了还没碰到其他提示。


版权声明:本文为博主原创文章,未经博主允许不得转载。

华为1面+综合面

相比较前面的面试,华为的面试就要简单很多,可能是因为兄弟院校的缘故吧,哈哈哈。。。 面试是在华为武汉研究所进行的,在郊区。 一面: 首先是简单介绍自己,然后介绍一下自己的项目; 面试官会针对项...
  • daijie2198492527
  • daijie2198492527
  • 2017年04月12日 15:10
  • 946

安卓开发的各类存储

SharedPreferences: 1.保存简单的键值对数据 (二)、使用SharedPreferences的步骤: 1、获取SharedPreferences对象;    ...
  • LUFANZHENG
  • LUFANZHENG
  • 2015年05月13日 16:42
  • 259

复旦、交大“综合评价”面试今结束,详解两校面试全过程

2015年6月27、28日,为期两天的复旦大学、上海交通大学综合评价录取改革试点校测(面试)结束。 作为沪上首次推出的综合评价试点的两所高等学府,复旦大学、上海交通大学这次的综合评价录取面试...
  • qq_29162163
  • qq_29162163
  • 2015年06月29日 13:45
  • 737

添加菜单遇到的问题引出的linux下gksu和sudo的分别

参考自己的http://blog.csdn.net/coder_xia/article/details/6746185,其中有一个给iodbc管理器添加菜单项。不过问题在于:在添加菜单栏的时候,如果菜...
  • coder_xia
  • coder_xia
  • 2011年09月07日 21:53
  • 1616

综合面试(hr面)常问的问题

面试了一些大大小小的公司、企业,在综面马失前蹄实在令人心痛惋惜! 总结综面的一些常见问题不外乎这几个,但是要回答好,却也并不容易。 1.首先,开场白是自我介绍。     也许面试官在你之前已经问...
  • cyhleo
  • cyhleo
  • 2011年10月30日 21:14
  • 12725

异步通信在综保装置管理上的应用

综保装置是保证电网安全稳定运行、保护电气设备的主要装置,是组成电力系统不可缺少的重要部分,综保装置整定不正确将引起事故、设备损坏甚至造成电力系统崩溃瓦解。综保保护定值单是现场进行综保保护装置整定的重要...
  • swand
  • swand
  • 2017年03月16日 11:38
  • 193

公安警务综合系统业务整合解决方案

  公安警务综合系统业务整合解决方案   随着“金盾工程”建设的进展,公安系统建立的业务信息应用系统...
  • SmartTony
  • SmartTony
  • 2008年01月21日 11:09
  • 3977

GPIB远程控制CMS54综测仪(加单位控不成功)

使用GPIB远程控制CMS54综测仪,加单位之后控不成功。
  • rl529014
  • rl529014
  • 2017年09月23日 15:29
  • 474

笔记:《高效能人士的七个习惯》第九章 习惯六 统合综效——创造性合作的原则

1、统合综效的基本心态是:如果一位具有相当聪明才智的人跟我意见不同,那么对方的主张必定有我尚未体会的奥妙,值得加以了解。 2、与人合作最重要的是,重视不同个体的不同心理、情绪与智能,以及个人眼中所见...
  • icamera0
  • icamera0
  • 2016年01月19日 22:18
  • 1019

安卓开发用到的各类权限大全!!

安卓开发用到的各类权限大全!! ACCESS_CHECKIN_PROPERTIES          = "mandroid.permission.ACCESS_CHECKIN_PROPERTI...
  • qq_32120667
  • qq_32120667
  • 2017年07月02日 22:03
  • 116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓开发,各类问题综
举报原因:
原因补充:

(最多只允许输入30个字)