編譯速度宾舅,這個當(dāng)前gradle最大的弱勢统阿,是大多數(shù)新人還有許多準(zhǔn)備切換平臺的老鳥的郁結(jié)所在。
下文所說的編譯大致包括以下三個場景:
- project sync(sync now)
- clean project(build-clean project)
- run app(可愛的綠色三角)
查看編譯過程主要通過以下兩個窗口(若不慎關(guān)閉可在View-Tool Windows中開啟):
- Event log
- Gradle Console
1. 少在compile時使用"+"號而改用特定版本并手動升級
配合第2條使用風(fēng)味更佳筹我。
之前的我在個人開發(fā)時就覺得這樣寫既高端大氣又方便扶平,然而在工作環(huán)境不可能冒險使用最新版的包,而是需要穩(wěn)定的代碼環(huán)境蔬蕊。
2. 靈活地使用offline work
當(dāng)我們完成了項(xiàng)目的第一次導(dǎo)入或者依賴的加載想要避免查找更新內(nèi)容時就可以啟用Gradle Settings中的offline work選項(xiàng)
只要別手賤清空C:\Users\{userName}\.gradle\caches\modules-2
路徑下的compile緩存
這一條可以極大地縮短Event log中提到的Gradle sync started與Gradle sync completed
以及在[:assembleDebug]中由
Incremental java compilation is an incubating feature.```
占用的大段時間占用的時間
####3. 對gradle.properties進(jìn)行配置
具體的Max數(shù)值還可以提高
```org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.daemon=true
org.gradle.parallel=true
android.enableBuildCache=true```
另外在Settings-Build,Execution,Deployment-Commond-line Options中設(shè)置"--parallel-threads={cpu線程數(shù)量}"也有一定作用
####4. 用aar替代不(常)變的module
具體方法此處略過结澄。
####5. 更換電腦配置(cpu、內(nèi)存)以調(diào)高第三條中Max相關(guān)數(shù)值
這才是最重要的岸夯。
**//6. 父子集成對task中MergeResource的影響
//對最后的編譯速度似乎沒有明顯的影響麻献。**
**//7. 管理好主項(xiàng)目的AndroidManifest,清除標(biāo)紅部分猜扮,清除重復(fù)Permission
//對最后的編譯速度應(yīng)該有小部分的影響勉吻。**