您的位置:首页 > 移动开发 > Android开发

apk、dex、odex梳理

2016-11-12 16:00 253 查看

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文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android dex odex