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目录, 是直接复制过来的;
- <