Android Apk打包的流程

在开发中我经常进行Apk打包,但是打包的具体流程,在这里再温习一下:


17.png
1.使用AAPT(The Android Asset Packaging Tool)工具,把项目中AndroidManifest.xml和布局xml文件编译生成对应的R.java文件
2.如果有.aidl文件,那么使用AIDL(Android Interface Definition Language)工具,把.aidl文件生成java代码接口供程序调用,如果没有.aidl文件可以忽略这一步。
3.项目中所有的Java代码、R.java文件以及.aidl生成的Java代码通过Java编译器(Java Compiler)生成.class(java字节码文件)
4.通过dx工具(Dalvik Executable),把生成的.class文件转换为.dex文件
5.通过apkbuilder工具,把没有编译的资源(如images等)、编译过的资源和.dex文件都会被apkbuilder工具打包到最终的.apk文件中,注意这里的.apk文件是未签名的apk文件(unsign.apk)。
6.通过JarSigner工具给上一步生成的未签名的apk文件进行签名,得到签名之后的apk文件(signed.apk)。
7.把签名之后的signed.apk文件,通过ZipAlign工具进行对齐,不进行对齐处理不能发布到Google Market(使用工具zipalign),对齐的主要过程就是将APK包中所有的资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问apk文件时的速度会更快。对齐的作用就是减少运行时内存的使用。

你可能感兴趣的:(Android Apk打包的流程)