30秒讓你加速Android Studio/Gradle構(gòu)建
已經(jīng)使用Android Studio進(jìn)行開發(fā)超過一年,隨著項(xiàng)目的增大,依賴庫的增多,構(gòu)建速度越來越慢,現(xiàn)在最慢要6分鐘才能build一個(gè)release的安裝包,在網(wǎng)上查找資料,發(fā)現(xiàn)可以通過一些配置可以加快速度,這里跟大家分享一下。
開啟gradle單獨(dú)的守護(hù)進(jìn)程
在下面的目錄下面創(chuàng)建gradle.properties文件:
- /home/<username>/.gradle/ (Linux)
- /Users/<username>/.gradle/ (Mac)
- C:\Users\<username>\.gradle (Windows)
并在文件中增加:
- org.gradle.daemon=true
同時(shí)修改項(xiàng)目下的gradle.properties文件也可以優(yōu)化:
- # Project-wide Gradle settings.
- # IDE (e.g. Android Studio) users:
- # Settings specified in this file will override any Gradle settings
- # configured through the IDE.
- # For more details on how to configure your build environment visit
- # http://www.gradle.org/docs/current/userguide/build_environment.html
- # 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.
- # TODO: disable daemon on CI, since builds should be clean and reliable on servers
- 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
同時(shí)上面的這些參數(shù)也可以配置到前面的用戶目錄下的gradle.properties文件里,那樣就不是針對(duì)一個(gè)項(xiàng)目生效,而是針對(duì)所有項(xiàng)目生效。
上面的配置文件主要就是做, 增大gradle運(yùn)行的java虛擬機(jī)的大小,讓gradle在編譯的時(shí)候使用獨(dú)立進(jìn)程,讓gradle可以平行的運(yùn)行。
修改android studio配置
在android studio的配置中,開啟offline模式,以及修改配置。實(shí)際上的配置和上面的一大段一樣,主要是在這個(gè)地方配置的只會(huì)在ide構(gòu)建的時(shí)候生效,命令行構(gòu)建不會(huì)生效。
命令行構(gòu)建
基于上面的配置,命令行構(gòu)建時(shí)在命令后面加上這個(gè)參數(shù)即可 --daemon --parallel --offline
。
引入依賴庫時(shí)使用aar
使用網(wǎng)上第三方的依賴庫時(shí)盡量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。
自己的庫模塊也可以打包成aar,關(guān)于這個(gè)可以參考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/。
后記
經(jīng)過這樣一番折騰,我原來需要4,5分鐘才能構(gòu)建完成的項(xiàng)目,現(xiàn)在只需要30秒左右就可以構(gòu)建完成了。當(dāng)然了,如果你這樣還是不可以的話,那么,你應(yīng)該換電腦了,ssd的硬盤,更大的內(nèi)存,必須的上了。