日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单提升编译速度的一个方法

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单提升编译速度的一个方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


隨著項目越來越大,編譯速度越來越是一個問題。在編譯我們的 Android App 的時候,印象里最快的時候也得一分半,當然這還是在關閉 Chrome 的時候。當你改幾行代碼時,仍然要花上幾分鐘來編譯,這是很操蛋的一件事。Google 官方推出的? Instant Run ?看上去很美好,但也是很操蛋的,廣大人民群眾紛紛表示,為什么我改了代碼以后,編譯不生效啊摔(

增加電腦內存是提升編譯速度的一種方法,Gradle 官方推薦的編譯內存為 5120MB :

當然大多數開發者的電腦可能沒有這么高的內存(包括我),尤其是電腦同時運行著 AS 和 Chrome 的情況下。 不過值得慶幸的是,Google 官方在介紹 MultiDex 的文檔中提到,通過限定 minSdkVersion 為 21 可以提升編譯速度,原因在于省略了 MultiDex 向后兼容的過程,而這通常是編譯最耗時的部分。在項目的 build.gradle 中按照如下配置:

android {productFlavors {dev {// 開發中使用的最低支持版本minSdkVersion 21}prod {// 項目實際的最低支持版本minSdkVersion 14}} }dependencies {// 提升編譯速度必要的依賴(我們設置為僅在 dev 時生效)devCompile 'com.android.support:multidex:1.0.1' }

上述配置完成之后,按照 Google 的說法,我們在編譯 dev 版本時,就是增量編譯

下圖為 clean 后第一次編譯時所花費的時間:

將幾行代碼注釋以后,再次編譯的時間:

可以看到,盡管第一次編譯的時間較長,但從第二次編譯開始,時間縮短不少。相對于以前改幾行代碼都要等上幾分鐘的編譯的時間,已經是很大的提升了。

需要注意的是,在修改 build.gradle 后,我們需要手動將 AS 的 Build Variants 設置為 prod 版本,如果是 dev 的話,AS 不會顯示 API 21 的限制提示;使用命令行編譯 dev 版本,而不是使用 AS 的 Run ,否則編譯出來的還會是 prod 版本,時間并不會減少。當然對于非 MultiDex 的用戶,這個方法是否生效,還沒有測試過。另外此方法似乎只對 Android 6.0 及其以上版本的系統才生效,5.X 會拋出 ClassNotFoundException.



作者:李明亮
鏈接:https://zhuanlan.zhihu.com/p/21519798
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

總結

以上是生活随笔為你收集整理的简单提升编译速度的一个方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。