我們可以在下面目錄中創(chuàng)建gradle.properties文件:
?/home//.gradle/(Linux)
/Users//.gradle/(Mac)
C:\Users\\.gradle(Windows)
當(dāng)然我們還可以在AndroidStudio的根目錄中針對(duì)單個(gè)項(xiàng)目對(duì)gradle.properties進(jìn)行配置
1 Gradle 守護(hù)進(jìn)程(daemon)
你可以減少gradle的啟動(dòng)時(shí)間,只需要加上(在gradle.properties中):
org.gradle.daemon=true
它告訴gradle要使用守護(hù)進(jìn)程來(lái)構(gòu)建
2 并行項(xiàng)目執(zhí)行
如果你的工程里有許多module依賴,加上下面這句(在gradle.properties中):
org.gradle.parallel=true
3 根據(jù)需要配置項(xiàng)目
不管這個(gè)項(xiàng)目是不是真的需要特殊的構(gòu)建鳞尔,gradle都會(huì)在任務(wù)執(zhí)行之前加上那些配置氏身,但是,可以通過(guò)"按需配置"來(lái)改變這種形為梆造,只需要配置被有要求的項(xiàng)目。就像并行模式。"按需配置"對(duì)多個(gè)module依賴構(gòu)建來(lái)說(shuō)很有幫助宝与。
4 全局的gradle.properties文件
在home路徑下定義的properties文件要比在項(xiàng)目目錄下定義的properties的優(yōu)先級(jí)要高。如果啟動(dòng)時(shí)間相對(duì)與內(nèi)存消耗來(lái)說(shuō)沒(mé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在編譯的時(shí)候使用獨(dú)立進(jìn)程诽里,讓gradle可以平行的運(yùn)行。
5 Module消耗比較大
使用三方依賴時(shí)飞蛹,使用aar或者jar要比使用Module要快很多谤狡。如果一個(gè)module并不是經(jīng)常會(huì)被修改,那我們就要去考慮這么一個(gè)事情:我們需要將他們編譯的時(shí)間消耗和檢查上一次獨(dú)立的構(gòu)建是否及時(shí)這些動(dòng)作帶來(lái)的消耗卧檐。
--profile參數(shù)可以收集一些構(gòu)建期間的信息并保存到 build/reports/profile 目錄下并且以構(gòu)建時(shí)間命名這些文件豌汇。
下面這份日志記錄了總體花費(fèi)時(shí)間以及各過(guò)程花費(fèi)的時(shí)間,并以時(shí)間大小倒序排列泄隔,并且記錄了任務(wù)的執(zhí)行情況拒贱。
我們通常會(huì)發(fā)現(xiàn)lint 檢查會(huì)花費(fèi)點(diǎn)很多時(shí)間,而多數(shù)情況我們不需要它我們就可以在你的build.gradle文件下面添加 這個(gè):
tasks.whenTaskAdded{ task->
if(task.name.equals("lint")) {
task.enabled=false
}
}