天天看點

Android 編譯優化,提升你的開發效率

作者:Android不是安卓

1、現狀分析

工程編譯,是Android應用開發工作中的重要一環,在項目體量越來越大的情況下,編譯耗時也越來越長,拖慢了開發效率

Android 編譯優化,提升你的開發效率

全量編譯/增量編譯/安裝占據了整個流程的大多數時間,假設全量編譯在6分鐘,每天運作10次,每天我們浪費在編譯上的時間就有60分鐘,假設編譯時間是3分鐘,每天節約0.5小時,

全量編譯:項目沒有運作過,沒有生成特定的緩存檔案,初次進行資源代碼的編譯合并流程。比如clean後。多數用于項目的初次編譯打包/清理緩存後編譯時。

增量編譯:在全量編譯後的基礎上進行編譯,改動/新增/删除/添加都會進行改變的編譯不影響整體已有編譯的檔案。多數用于項目的初次編譯/生成緩存檔案後編譯時。

2、編譯流程

Android 編譯優化,提升你的開發效率
Android 編譯優化,提升你的開發效率
Android 編譯優化,提升你的開發效率

整體流程如下

• aapt 打包資源檔案,産生R.java ,resource.arsc , res,manifest.xml

• aidl 産生java接口檔案

• javac 編譯R.java,Aidl産生的java檔案以及工程中用到的源碼産生.class檔案

• R8混淆和代碼壓縮.class檔案,經過d8 生成.dex檔案

• apk builder 将資源包,.dex打包生成apk檔案

• apksigner /jarSigner 會對apk進行簽名

3、編譯耗時檢測

Build Analyaer

Android 編譯優化,提升你的開發效率

Gradle 指令

$ gradlew app:assemble --profile (Windows)

$ ./gradlew app:assembleDebug --profile (Ubuntu,Mac)

Android 編譯優化,提升你的開發效率

scan

$ gradlew app:assemble --scan(Windows)

$ ./gradlew app:assembleDebug --scan(Ubuntu,Mac)

Android 編譯優化,提升你的開發效率

https://gradle.com/s/mshp4gfpxazg6

Android 編譯優化,提升你的開發效率

Android studio

https://juejin.cn/post/7094198918065422350

Android 編譯優化,提升你的開發效率

4、編譯優化正常方案

Android 編譯優化,提升你的開發效率
Android 編譯優化,提升你的開發效率

5、大廠方案

Android 編譯優化,提升你的開發效率

繼續閱讀