一、前言
在日常開發(fā)中,apk文件的打包,我們都是通過Android studio 或者Gradle 自動去構(gòu)建APK文件,至于apk文件是如何構(gòu)建而成的很少有人去關(guān)注,但是在實際的開發(fā)過程中,對apk文件的打包流程我們還是有很大的必要去了解一下的。今天就簡單的去講解一下打包流程。
二、構(gòu)建圖

簡單流程圖
1、編譯器將源碼轉(zhuǎn)化成DEX文件
2、APK打包器將和已編譯資源整合成APK
3、APK打包器使用調(diào)試或發(fā)布秘鑰庫簽署APK文件
4、在生成最終apk之前,打包器會用zipalign 工具對應(yīng)用進行優(yōu)化(字節(jié)對齊)
三、官網(wǎng)的流程圖
這里來一個稍微詳細(xì)點的流程圖:

官方的流程圖
從上圖我們可以看出,構(gòu)建總共分成7步:
1、通過aapt將資源文件打包,生成對應(yīng)的R.java、resources.arsc和res文件。(其中res/raw和pic保持原樣)
2、處理.aidl文件,生成對應(yīng)的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進行對齊處理