漫談Android apk編譯流程

APK 編譯過程

image.png

官方圖java

Android 代碼(dex文件)編譯流程

APK-build.png

網絡流傳的比較全的圖,部分細節可能有差別android

Android APK 的編譯流程咱們能夠劃分爲2個部分:
1.是資源的編譯
2.是代碼的編譯網絡

其中so庫是經過NDK編譯生成.so文件後直接打進apk的中工具

資源編譯

資源編譯部分,首先apk資源包含哪些內容呢
1.工程中res目錄下的全部文件
2.assets目錄下的文件
3.andoird清單文件 AndroidManifest.xml
這些資源都是經過aapt工具編譯的,最終變編譯成一個資源包ui

代碼編譯

代碼編譯部分包含
1.java源碼文件
2.已編譯好的java 類庫及jar包
3.已編譯好的帶android資源的類庫 即 aar包
4.R類3d

R類是由資源資源編譯時aapt生成的cdn

其中java源文件須要先經過 javac工具編譯成 class文件,
而後class文件和全部的jar包、包括aar包中的class文件 經過dx和d8編譯器被編譯成de文件xml

apkbuild

編譯好的aar文件最後經過zip命令被加入到第一步經過aapt編譯生成的資源壓縮包中blog

最後,詳細的資源編譯和代碼編譯的內容能夠參考後續相關的文章ip

參考

developer.android.com/studio/buil…

相關文章
相關標籤/搜索