简单总结下app打包的流程:
第一步:aapt
为res目录下的资源生成R.java文件,同时为AndroidManinfest.xml生成Manifest.java文件
第二步:aidl
把项目中自定义的aidl文件生成相应的Java代码文件
第三步:javac
把项目中所有的java代码编译成class文件,包括三部分Java代码:自己写的业务逻辑代码、aapt生成的java文件、aidl生成的java文件
第四步:proguard
混淆同时生成proguaedMappind.txt,这一步是可选的
第五步:dex
把所有class文件(包括第三方库的class文件)转换为dex文件
第六步:aapt
还是使用aapt,这里使用它的另一个功能,即打包功能,把res目录下的资源、assets目录下的文件,打包成一个.ap_文件
第七步:apkbuilder
将所有的dex文件、ap_文件、AndroidManifest.xml打包成.apk文件,这是一个未签名的apk包
第八步:jarsigner
对apk进行签名
第九步:zipalign
对要发布的apk文件进行对齐操作,以便在运行时节省内存