簡單提升編譯速度的一個方法
增加電腦內存是提升編譯速度的一種方法,Gradle 官方推薦的編譯內存為 5120MB :
當然大多數開發者的電腦可能沒有這麼高的內存(包括我),尤其是電腦同時運行著 AS 和 Chrome 的情況下。 不過值得慶幸的是,Google 官方在介紹 MultiDex 的文檔中提到,通過限定 minSdkVersion 為 21 可以提升編譯速度,原因在於省略了 MultiDex 向後兼容的過程,而這通常是編譯最耗時的部分。在項目的 build.gradle 中按照如下配置:
android {n productFlavors {n dev {n // 開發中使用的最低支持版本n minSdkVersion 21n }n prod {n // 項目實際的最低支持版本n minSdkVersion 14n }n }n}nndependencies {n // 提升編譯速度必要的依賴(我們設置為僅在 dev 時生效)n devCompile com.android.support:multidex:1.0.1n}n
上述配置完成之後,按照 Google 的說法,我們在編譯 dev 版本時,就是增量編譯。
下圖為 clean 後第一次編譯時所花費的時間:
將幾行代碼注釋以後,再次編譯的時間:
可以看到,儘管第一次編譯的時間較長,但從第二次編譯開始,時間縮短不少。相對於以前改幾行代碼都要等上幾分鐘的編譯的時間,已經是很大的提升了。
需要注意的是,在修改 build.gradle 後,我們需要手動將 AS 的 Build Variants 設置為 prod 版本,如果是 dev 的話,AS 不會顯示 API 21 的限制提示;使用命令行編譯 dev 版本,而不是使用 AS 的 Run ,否則編譯出來的還會是 prod 版本,時間並不會減少。當然對於非 MultiDex 的用戶,這個方法是否生效,還沒有測試過。另外此方法似乎只對 Android 6.0 及其以上版本的系統才生效,5.X 會拋出 ClassNotFoundException.
推薦閱讀:
※如何評價 Google 推出的 Chrome ARC?
※一份理想的移動應用市場的分析報告,應該包含哪些內容?
※「合理」的修改簡訊時間,有時候是很必要的
※為什麼要升級到 Android 7.x?
※Android N / M 對比評測-Xperia Z5
TAG:Android |