流程:编译,DEX,打包,签名和对齐
1.编译器对java工程本身的代码进行编译,产出.class文件(AAPT工具编译资源文件生成R.java文件,aidl工具将AIDL接口转化为java接口)
2.DEX工具将.class文件和依赖的三方库文件生成Delvik虚拟机可执行的.dex文件
3.sdklib.jar(buildApk工具)将.dex文件和编译后的资源文件打包生成未经签名和对其的.apk文件
4.Jarsinger和zipalign对apk文件进行签名和对其,最终生成apk文件
流程中涉及到的工具的作用
1.aapt工具:(Android Asset Packaging Tool)编译工程中的资源文件,但是不会便衣asset文件夹下的文件,会将xml文件编译成二进制文件。产出R.java文件
2.AIDL工具会将所有的aidl接口转换成java接口
3.所有的java代码,包括R.java与aidl文件都会被Java编译器编译成.class文件
4.Dex工具会将上述产生的.class文件及第三库其他.class文件编译成.dex文件
5.ApkBuilder工具会将编译过的资源及未编译过的资源(如图片等)以及.dex文件打包成APK文件
6.jarsinger对APK文件签名
7.zipalign对APK文件进行对齐操作,减少应用运行时的内存开销