已經使用Android Studio進行開發超過一年,隨着項目的增大,依賴庫的增多,構建速度愈來愈慢,如今最慢要6分鐘才能build一個release的安裝包,在網上查找資料,發現能夠經過一些配置能夠加快速度,這裏跟你們分享一下。html
開啓gradle單獨的守護進程
在下面的目錄下面建立gradle.properties
文件:java
/home/<username>/.gradle/
(Linux)
/Users/<username>/.gradle/
(Mac)
C:\Users\<username>\.gradle
(Windows)
並在文件中增長:android
同時修改項目下的gradle.properties
文件也能夠優化:git
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
# 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
|
同時上面的這些參數也能夠配置到前面的用戶目錄下的gradle.properties文件裏,那樣就不是針對一個項目生效,而是針對全部項目生效。github
上面的配置文件主要就是作, 增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle能夠平行的運行。app
修改android studio配置
在android studio的配置中,開啓offline模式,以及修改配置。實際上的配置和上面的一大段同樣,主要是在這個地方配置的只會在ide構建的時候生效,命令行構建不會生效。jvm
命令行構建
基於上面的配置,命令行構建時在命令後面加上這個參數便可 --daemon --parallel --offline
。maven
引入依賴庫時使用aar
使用網上第三方的依賴庫時儘可能使用aar,能夠在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。ide
本身的庫模塊也能夠打包成aar,關於這個能夠參考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/。gradle
後記
通過這樣一番折騰,我原來須要4,5分鐘才能構建完成的項目,如今只須要30秒左右就能夠構建完成了。固然了,若是你這樣仍是不能夠的話,那麼,你應該換電腦了,ssd的硬盤,更大的內存,必須的上了。
原文地址:http://blog.isming.me/2015/03/18/android-build-speed-up/,轉載請註明出處。