APK(Android package):android安装包,由aapt(Android Assert Packaging Tool)把AndroidManifest.xml、资源文件、dex(二进制字节码)文件组合而成。将apk文件修改扩展名为rar,然后解压可已看到目录如下:



METE-INF:存放应用签名证书等信息

res:存放资源文件

AndroidManifest.xml:应用配置文件

classes.dex:应用程序二进制字节码文件

resources.arsc:二进制资源文件


dex(Dalvik VM Excutors):Dalvik虚拟机执行程序,执行前需要优化。


odex(optimizy Dalvik VM Excutors):Dalvik虚拟机执行程序dex文件前,系统会对dex文件做优化,生成可执行文件odex,保存到data/dalvik-cache目录,最后把apk文件中的dex文件删除。

优点:

1.减少了启动时间(省去了系统第一次启动应用时从apk文件中读取dex文件,并对dex文件做优化的过程。)和对RAM的占用(apk文件中的dex如果不删除,同一个应用就会存在两个dex文件:apk中和data/dalvik-cache目录下)。

2.防止第三方用户反编译系统的软件(odex文件是跟随系统环境变化的,改变环境会无法运行;而apk文件中又不包含dex文件,无法独立运行)。


缺点:

1.占用一定的rom,但不是太大

2.不便修改rom及文件(不是太懂)

3.升级被odex的应用,容易出现FC(弹出提示框“等待”或“关闭”)


deodex:第三方的rom,基本上都是deodex的,即apk中直接包含.dex文件,启动应用时从apk中读取dex文件并对之odex优化。

优点:

1.减少rom的占用(没有保存dex到data/dalvik-cache)

2.便于rom的个性化定制和移植;

3.apk便于反编译和修改(升级时不会因为文件位置问题导致FC)


缺点:

1.启动较慢,每次启动应用都要从apk文件中解析dex文件




更多相关文章

  1. 使用Android(安卓)Studio创建OpenCV 4.1.0 项目
  2. Android(安卓)系统启动流程总结
  3. android下的读写权限
  4. Android(安卓)--启动画面制做 png图片-->initlogo.rle
  5. android 弹性ScrollView(已优化)
  6. 《Android(安卓)Activity》活动的介绍和创建
  7. Android(安卓)SharedPreference 源码分析(一)
  8. 图解Android(安卓)- Zygote, System Server 启动分析
  9. android jni 包裹文件(jni wrapper) 以 speex 库为例

随机推荐

  1. Android ListView 长按列表弹出菜单
  2. Android实现富文本编辑
  3. 判断android网络连接
  4. [Android Studio]使用AS开发Android
  5. android studio 模拟器出现中文乱码解决
  6. Android遇到 android studio "Internal H
  7. Android 2.2 Platform
  8. 在编译Android时,开机不锁屏
  9. android 短信是否发送成功
  10. Android   收集索引贴