<p style="border: 0px; font-family: HelveticaNeue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; margin-top: 10px; margin-bottom: 0px; outline: 0px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline; color: rgb(102, 102, 102); line-height: 28px;"></p>

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

开启gradle单独的守护进程

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

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

并在文件中增加:

org.gradle.daemon=true

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

# 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 serversorg.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=256morg.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_projectsorg.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_demandorg.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的硬盘,更大的内存,必须的上了。


原文地址: http://blog.isming.me/2015/03/18/android-build-speed-up/ ,转载请注明出处。


更多相关文章

  1. Android(安卓)离线安装宝典
  2. [Google Android] Creating Your Own Spelling Checker Service
  3. android 网络图片双缓存
  4. Android(安卓)ApiDemos示例解析(88):Media->VideoView
  5. 在 Android(安卓)Studio 上调试数据库 ( SQLite )
  6. Android热修复三部曲之动态加载补丁.dex文件
  7. Android学习之Service(下)
  8. android 内存清理
  9. Android(安卓)SDK更新后 ADT R17 E/AndroidRuntime : java.lang.

随机推荐

  1. android socket编程实例
  2. Android(安卓)启动页过渡动画效果实现(二)
  3. Android中设置中文粗体的方法
  4. 编译用于Android的FFmpeg&x264
  5. Android如何进行数字签名与优化
  6. 【Android(安卓)】Prebuilt预编译
  7. Android控件拖动
  8. Android中遇到的简单工厂模式的几种实现
  9. RadioButton和CheckBox自定义按钮图片的
  10. Linux下MySQL多实例部署及安装指南