中国领先的IT技术网站
|
|

30秒让你加速Android Studio/Gradle构建

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。

作者:Sam来源:Sam的博客|2015-03-20 10:01

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。

开启gradle单独的守护进程

在下面的目录下面创建gradle.properties文件:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)

并在文件中增加:

  1. org.gradle.daemon=true 

同时修改项目下的gradle.properties文件也可以优化:

  1. # Project-wide Gradle settings.  
  2.  
  3. # IDE (e.g. Android Studio) users:  
  4. # Settings specified in this file will override any Gradle settings  
  5. # configured through the IDE.  
  6.  
  7. # For more details on how to configure your build environment visit  
  8. # http://www.gradle.org/docs/current/userguide/build_environment.html  
  9.  
  10. # The Gradle daemon aims to improve the startup and execution time of Gradle.  
  11. # When set to true the Gradle daemon is to run the build.  
  12. # TODO: disable daemon on CI, since builds should be clean and reliable on servers  
  13. org.gradle.daemon=true  
  14.  
  15. # Specifies the JVM arguments used for the daemon process.  
  16. # The setting is particularly useful for tweaking memory settings.  
  17. # Default value: -Xmx10248m -XX:MaxPermSize=256m  
  18. org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 
  19.  
  20. # When configured, Gradle will run in incubating parallel mode.  
  21. # This option should only be used with decoupled projects. More details, visit  
  22. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects  
  23. org.gradle.parallel=true  
  24.  
  25. # Enables new incubating mode that makes Gradle selective when configuring projects.   
  26. # Only relevant projects are configured which results in faster builds for large multi-projects.  
  27. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand  
  28. org.gradle.configureondemand=true  

同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。

上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。

修改android studio配置

在android studio的配置中,开启offline模式,以及修改配置。实际上的配置和上面的一大段一样,主要是在这个地方配置的只会在ide构建的时候生效,命令行构建不会生效。

命令行构建

基于上面的配置,命令行构建时在命令后面加上这个参数即可 --daemon --parallel --offline

引入依赖库时使用aar

使用网上第三方的依赖库时尽量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。

自己的库模块也可以打包成aar,关于这个可以参考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/

后记

经过这样一番折腾,我原来需要4,5分钟才能构建完成的项目,现在只需要30秒左右就可以构建完成了。当然了,如果你这样还是不可以的话,那么,你应该换电脑了,ssd的硬盘,更大的内存,必须的上了。

【编辑推荐】

  1. Android Studio vs Eclipse:你需要知道的那些事
  2. Android Studio中用List Fragments创建相册Gallery
  3. Android Studio开发技巧集锦一
  4. Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境
  5. 向基于Android Studio构建的项目中导入开源库
【责任编辑:林师授 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

热门职位+更多

读 书 +更多

解密SEO:搜索引擎优化与网站成功战略

本书是作者根据十年网站营销经验,特别是搜索引擎优化(SEO)实现营销方面的技术和实践总结。本书帮助读者建立搜索营销的概念,分析搜索营...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python一种神奇的语言