安装apk时系统做了哪些操作
apk包中的resources.arsc文件包含了资源类文件的链接信息,在加载资源时就是通过该文件找到指定的资源。(资源在/data/app目录下的apk文件中的res目录)
- 将apk包拷贝到/data/app目录下(系统应用为/system/app目录),不进行解压。这是资源访问的实际地址。
- 把classes.dex文件重命名后放在/data/dalvik-cache目录下。
- 在/data/data下创建应用程序的数据目录,名称为应用程序的包名
在程序安装好后,/data/app目录下的原始apk文件不会被删除。实际上,当程序运行时,所需要的资源文件都要从原始apk文件中读取
- 在listview中每个item都含有进度条,且使用多线程下载时,为了不频繁地调用notifyDataSetChanged(),需要对更新时间设置一个间隔,比如1秒,由Handler统一更新。
- 当通知栏需要显示多个下载进度条时,每次更新下载进度的notification需要设置时间戳notification.when=0,这样就不会出现多条进度通知上下跳动的情况。
- MotionEvent的getX()和getRawX()的区别:
getX()是获取以widget左上角为坐标原点计算的X轴坐标值。
getRawX()是获取以屏幕左上角为坐标原点计算的X轴坐标值。
-
Ubuntu下adb无法识别的问题:
http://www.cnblogs.com/TerryBlog/archive/2012/08/14/2637536.html
- 通过JNI用C++调用java方法时,GetMethodID一直返回NULL。原因是对java代码进行了混淆,结果JNI就找不到了。