- Java -- javac --> .class
用 javac 把 java 文件编译成 class 文件
- .class + .jar -- dx --> classes.dx
用 dx 把.class 和 .jar文件打包成 classes.dx
- classes.dx + resources asset -- aapt --> .apk
用 Android asset packaging tool 把 classes 和 resource 打包成 .apk 文件
- .apk -- jarsigner -- zipalign --> signed .apk file
- jarsigner 对 apk 进行签名
签名的结果是在 apk 里面增加一个基于 .apk 文件内容checksum 结果的文件;以及一个私钥文件。 - zipalign 对压缩后的apk 文件进行按字节对齐,这样Android 就可以在不解压缩的前提下读取这个压缩过的 apk 文件内容。