一、前言
在日常开发中,apk文件的打包,我们都是通过Android studio 或者Gradle 自动去构建APK文件,至于apk文件是如何构建而成的很少有人去关注,但是在实际的开发过程中,对apk文件的打包流程我们还是有很大的必要去了解一下的。今天就简单的去讲解一下打包流程。
二、构建图
1、编译器将源码转化成DEX文件
2、APK打包器将和已编译资源整合成APK
3、APK打包器使用调试或发布秘钥库签署APK文件
4、在生成最终apk之前,打包器会用zipalign 工具对应用进行优化(字节对齐)
三、官网的流程图
这里来一个稍微详细点的流程图:
从上图我们可以看出,构建总共分成7步:
1、通过aapt将资源文件打包,生成对应的R.java、resources.arsc和res文件。(其中res/raw和pic保持原样)
2、处理.aidl文件,生成对应的java接口文件。
3、通过Java Compiler 编译R.java、Java接口文件、Java源文件、生成.class文件。
4、通过dex命令,将.class文件和第三方库中.class文件处理成classes.dex
5、通过apkbuilder工具,讲aapt生成的resource.arsc和res文件,assets文件和classes.dex 一起打包生成apk
6、通过Jarsigner工具,对上面的apk进行debug或release签名
7、通过zipalign工具,将签名后的apk进行对齐处理