Android 2.3 之前: 像素数据存在于native heap
Android 3.0 ~ 7.1 之间: 存在于 java heap
Android 8.0及之后: 存在于 native
Aapt 会将主工程、依赖库中的资源(res、assets)和androidManifest都合并,产出R.java、资源及资源索引resources.arsc;
之后javac编译包括R.java文件、主工程的java文件、aidl产生的java文件,产出class文件;如果需要插桩的话就插桩
之后使用Proguard/R8混淆工具对.class文件脱糖、压缩、混淆等,产出新的class文件;
之后使用Dx/D8编译工具将新的class文件再转换成dex文件,
之后打包成apk,然后签名、zipalign优化。
工具:aapt/aapt2、javac、Proguard/R8、Dx/D8、ApkBuilder、zipalign