一. 我們先說一下提升Gralde編譯速度. 針對這個問題, 先講一下配置相關設置提升編譯速度.
1. 在user/.gradle文件下創建gradle.properties文件, 并在中寫上org.gradle.daemon=true , 保存.
2. 設置studio, 打開setting >> gradle>> 勾選offine work; 打開離線編譯;如下圖:
3.設置JAVa虛擬機的運行內存等
在項目的根目錄中找到gradle.properties文件, 位置如下圖, 并設置相關參數, 這一項設置在網上很多人提到, 我就不多說了。
但是有一點值得注意的是, 不能將java最大的運行內存設置過高, 否則會引起第二次啟動時啟動不了, 會報內存不足。
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 檢查渠道數量, 如下圖:
備注:在網上有很多貼子寫到變種productFlavors,讓buildtype與productFlavors結合使用, 達到不同版本不同渠道配置不同的參數, 依賴的libs也進行相關設置的編譯。 例如app依賴了Alibs, 并且需要Alibs能夠識別buildtype, 在app選擇測試版時, Alibs也編譯了它的debug中參數。。
通過多次實踐發現, 這種變種flavors, 會導致編譯速度變慢, 尤其是渠道較多時,這種
渠道名BuildTypeCompile project(path:':libs名字',configuration:'渠道名BuildType')
這種會使編譯速度更慢。 所以不推薦這種實現方式, 如果遇到這種需求,請嘗試其它方法解決。
言歸正轉 優化Gradle
步驟一: 設置全局變量
方法一:可以設置項目的全局變量。 在項目根目錄下的build.gralde中的
allprojects
下添加ext{...}
我添加了三個常量, 因為我的版本需要打三個不同名字的應用。如果您的項目中沒有該需求,只需設置一個就行了
ext { isHtgPack = false isOasPack = false isGeniusPack = false}
方法二: 在渠道所在build.gradle
中配置常量。 添加ext{...}
注意:
1.根據gradle語法, 常量需要在調用前聲明。
2.設置常量時不能用def boolean 等修飾 ;它會自動識別它的數據類型;
步驟二: 代碼設置渠道
gradle是基于java, 所以它的很多語法和java一致,對寫android的哥們更易上手
在android {}中設置渠道, 添加 一行代碼。將渠道
if(isHtgPack) {//打包時需的渠道(所有渠道)。。productFlavors {huawei {}360 {}...}}else {//只配置一個渠道productFlavors{ textFlavors{}}}
在需要打包時將常量的值更改一下就好了,將false更改為true就好了。
這樣就巧秒地避開了需要編譯很多渠道了。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答