在AndroidStudio/Gradle上節(jié)約構(gòu)建時間


我們可以在下面目錄中創(chuàng)建gradle.properties文件:

?/home//.gradle/(Linux)

/Users//.gradle/(Mac)

C:\Users\\.gradle(Windows)

當(dāng)然我們還可以在AndroidStudio的根目錄中針對單個項(xiàng)目對gradle.properties進(jìn)行配置

1 Gradle 守護(hù)進(jìn)程(daemon)

你可以減少gradle的啟動時間,只需要加上(在gradle.properties中):

org.gradle.daemon=true

它告訴gradle要使用守護(hù)進(jìn)程來構(gòu)建

2 并行項(xiàng)目執(zhí)行

如果你的工程里有許多module依賴,加上下面這句(在gradle.properties中):

org.gradle.parallel=true

3 根據(jù)需要配置項(xiàng)目

不管這個項(xiàng)目是不是真的需要特殊的構(gòu)建,gradle都會在任務(wù)執(zhí)行之前加上那些配置,但是,可以通過"按需配置"來改變這種形為,只需要配置被有要求的項(xiàng)目。就像并行模式。"按需配置"對多個module依賴構(gòu)建來說很有幫助。

4 全局的gradle.properties文件

在home路徑下定義的properties文件要比在項(xiàng)目目錄下定義的properties的優(yōu)先級要高。如果啟動時間相對與內(nèi)存消耗來說沒有那么重要的話,我們就可以避免用gradle守護(hù)進(jìn)程。

properties文件:

# The Gradle daemon aims to improve the startup and execution time of Gradle.

# When set to true the Gradle daemon is to run the build.

org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.

# The setting is particularly useful for tweaking memory settings.

# Default value: -Xmx10248m -XX:MaxPermSize=256m

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.

# This option should only be used with decoupled projects. More details, visit

# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects.

# Only relevant projects are configured which results in faster builds for large multi-projects.

# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand

org.gradle.configureondemand=true

上面的配置文件主要就是做, 增大gradle運(yùn)行的java虛擬機(jī)的大小,讓gradle在編譯的時候使用獨(dú)立進(jìn)程,讓gradle可以平行的運(yùn)行。

5 Module消耗比較大

使用三方依賴時,使用aar或者jar要比使用Module要快很多。如果一個module并不是經(jīng)常會被修改,那我們就要去考慮這么一個事情:我們需要將他們編譯的時間消耗和檢查上一次獨(dú)立的構(gòu)建是否及時這些動作帶來的消耗。

--profile參數(shù)可以收集一些構(gòu)建期間的信息并保存到 build/reports/profile 目錄下并且以構(gòu)建時間命名這些文件。

下面這份日志記錄了總體花費(fèi)時間以及各過程花費(fèi)的時間,并以時間大小倒序排列,并且記錄了任務(wù)的執(zhí)行情況。

我們通常會發(fā)現(xiàn)lint 檢查會花費(fèi)點(diǎn)很多時間,而多數(shù)情況我們不需要它我們就可以在你的build.gradle文件下面添加 這個:

tasks.whenTaskAdded{ task->

if(task.name.equals("lint")) {

task.enabled=false

}

}

6 總的說一下

1 考慮 用一個全局的gradle.properties,這樣所有的項(xiàng)目都可以通用.

2 使用gradle build profie 工具

3 跳過不必要的gradle任務(wù)

4 堅持基本的模塊依賴關(guān)系(基于profile工具結(jié)果)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,538評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,262評論 6 342
  • 原文鏈接 Gradle是一個基于JVM可以用于構(gòu)建Android工程的編譯工具。它和Ant以及Maven類似,但是...
    Hidetag閱讀 5,876評論 13 67
  • Gradle對于很多開發(fā)者來說有一種既熟悉又陌生的感覺,他是離我們那么近,以至于我每天做項(xiàng)目都需要他,但是他又是離...
    阿_希爸閱讀 9,700評論 10 199
  • 只是夏天剛過不久,腳心已經(jīng)都涼了 用一塊皮膚去暖另一塊皮膚 冷凍的痛是腐壞的痛,就像 手上的傷口和水泡,流出粘稠 ...
    丁千閱讀 255評論 0 0

友情鏈接更多精彩內(nèi)容