APK编译过程

- Android通过
AAPT工具将.xml资源文件编译成R.java的二进制文件,除了assets、raw目录下的文件; - 将java文件编译成.class文件;
- 通过dex工具将.class文件转换成.dex文件
- 优化dex文件 : Davlik模式下使用
dexopt工具将.dex文件优化得到.odex文件 ; Art模式下使用dexoat工具将.dex文件优化得到.oat文件; apkbuilder会将.dex文件和未被编译的文件编译成apk;apkSinger对apk签名;zipalign对签名后的apk进行优化
APK包内容

Android 安装的apk文件实际上是以.zip结尾的压缩文件,解压后的文件内容如上图所示
AndroidManifest.xml对应源代码中的AndroidManifest.xml, 但这里是编译过的,文件内容已经不同了;
assets对应源代码的assets目录, 是直接复制过来的;
classes.dex(classes2.dex、classes3.dex等等)是包含所有Java文件

本文详细总结了Android APK的编译过程,包括XML资源编译为R.java,Java文件转为.class,再由.dex工具生成.dex文件。在Davlik模式下,dex文件经过优化变为文件;而在Art模式下,生成文件。接着,dex文件与其他资源打包成apk,并进行签名和优化。APK包内容包括编译后的AndroidManifest.xml、assets、classes.dex、lib目录、META-INF和res目录。最后,阐述了APK运行时.dex文件如何加载到虚拟机执行。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



