91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何提升Gradle的編譯速度

發布時間:2021-06-17 11:22:03 來源:億速云 閱讀:419 作者:Leah 欄目:移動開發

如何提升Gradle的編譯速度,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1. 在user/.gradle文件下創建gradle.properties文件, 并在中寫上org.gradle.daemon=true , 保存.

如何提升Gradle的編譯速度

2. 設置studio, 打開setting >> gradle>> 勾選offine work; 打開離線編譯;如下圖:

如何提升Gradle的編譯速度

3.設置JAVa虛擬機的運行內存等

在項目的根目錄中找到gradle.properties文件, 位置如下圖, 并設置相關參數, 這一項設置在網上很多人提到, 我就不多說了。

但是有一點值得注意的是, 不能將java最大的運行內存設置過高, 否則會引起第二次啟動時啟動不了, 會報內存不足。

如何提升Gradle的編譯速度

4. 硬件提升

這個根據自己的情況而定。 如果可能的話, 建議使用臺試機, 擴展性強。 

我給大家推薦一下配置吧:

4.1 使用雙路主板,配置兩顆CPU,  可以使用工作站的, 也可以用服務器的, 建議考慮工作站的。 現在市場上有超微的, 華碩, 技嘉等等都雙路工作站主板

4.2 使用NVME 固態硬盤。 例如三星p961, 可以通過PCI-E轉nvme 轉接卡, 將硬盤安裝到主板的PCI-E插槽上, 峰值速度達到2000M/s,這可不是一般的sata固態硬盤所能達到的速度。 

注意:這種硬盤并不支持win7系統, 需要win8.1 win10系統才能識別。 

4.3 選用多條內存。 上面推薦使用了雙路主板, 最新該類型主板支持ddr4內存, 且共有八通道,使用4*8 = 32 G配置,可以將內存性能發揮至極至。

5.  優化gradle中的渠道配置

這是我所講的重點, 如果對您有幫助,請注意看

在build.gradle 檢查渠道數量, 如下圖:

如何提升Gradle的編譯速度

備注:在網上有很多貼子寫到變種productFlavors,讓buildtype與productFlavors結合使用, 達到不同版本不同渠道配置不同的參數, 依賴的libs也進行相關設置的編譯。 例如app依賴了Alibs, 并且需要Alibs能夠識別buildtype, 在app選擇測試版時, Alibs也編譯了它的debug中參數。。

通過多次實踐發現, 這種變種flavors, 會導致編譯速度變慢, 尤其是渠道較多時,這種

渠道名BuildTypeCompile project(path:':libs名字',configuration:'渠道名BuildType')

  • 例: huaweiDebugCompile project(path: ':banner', configuration: 'huaweiDebugCompile')

這種會使編譯速度更慢。 所以不推薦這種實現方式, 如果遇到這種需求,請嘗試其它方法解決。

言歸正轉 優化Gradle 

  • 條件:在有較多渠道時, 進行渠道優化。

  • 目的:提升gradle編譯速度

  • 思路: 由于我們在打多渠道包時, 只有在發版時才會打,平時測試時我們并不需要打多個渠道的包,只會生成測試版, 線上版,預發布版本等等。 所以我們可以在gralde中設置一個boolean型全局常量,通過該常量判斷我們是否需要打渠道包。 在測試時 , 我們可以只設置一個渠道, 在上線打包時, 將所有渠道開放。 這樣, 在我們平時寫程序時, 就可以提升編譯速度, 在打渠道時, 就讓它靜靜地打包。 

步驟一: 設置全局變量

方法一:可以設置項目的全局變量。 在項目根目錄下的build.gralde中的

allprojects下添加ext{...}

我添加了三個常量, 因為我的版本需要打三個不同名字的應用。如果您的項目中沒有該需求,只需設置一個就行了

ext {
 isHtgPack = false
 isOasPack = false
 isGeniusPack = false
}

方法二: 在渠道所在build.gradle中配置常量。 添加ext{...}

注意:

1.根據gradle語法, 常量需要在調用前聲明。
 2.設置常量時不能用def boolean 等修飾 ;它會自動識別它的數據類型;

如何提升Gradle的編譯速度

步驟二: 代碼設置渠道

gradle是基于java, 所以它的很多語法和java一致,對寫android的哥們更易上手

在android {}中設置渠道, 添加 一行代碼。將渠道 

if(isHtgPack) {
//打包時需的渠道(所有渠道)
。。
productFlavors {
huawei {}
360 {}
...
}
}else {
//只配置一個渠道
productFlavors{
 textFlavors{}
}
}

在需要打包時將常量的值更改一下就好了,將false更改為true就好了。

如何提升Gradle的編譯速度

關于如何提升Gradle的編譯速度問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙河市| 浦东新区| 安岳县| 凉山| 道孚县| 开原市| 普洱| 南京市| 泾源县| 盐城市| 准格尔旗| 洛浦县| 沙河市| 枣庄市| 文昌市| 山东| 武安市| 呼玛县| 云梦县| 名山县| 攀枝花市| 敦煌市| 定结县| 静宁县| 龙门县| 泰和县| 静海县| 凯里市| 黑河市| 崇文区| 资阳市| 尚志市| 柞水县| 泸溪县| 赞皇县| 电白县| 白银市| 上林县| 陕西省| 岳普湖县| 分宜县|