加速Android Studio/Gradle构建

http://blog.csdn.net/lyhhj/article/details/50718761
http://blog.isming.me/2015/03/18/android-build-speed-up/
http://tikitoo.github.io/2016/05/26/android-studio-gradle-build-run-faster/

1、更新Gradle,使用本地Gradle

Android Studio 的版本一般都跟随着Gradle 的版本,在安装目录的根目录有个gradle 目录,就是Android Studio所能支持的最新版,

  • 在设置中打开Gradle,选择Use local gradle distribution,然后选择Gradle 的目录即可,这样就不会每次根据项目中./gradle/xxx 中的gradle 版本每次再下载。

  • 理论上Gradle 的版本越新构建运行越快,也只是理论上,所以推荐稳定版的版本。

加速Android Studio/Gradle构建_第1张图片

如果需要使用命令行编译,可以配置- -daemon - -parallel - -offline。

加速Android Studio/Gradle构建_第2张图片

2、守护进程

什么是守护进程

在gradle.properties文件配置如下:

#就是让你让你编译时使用守护进程。
org.gradle.daemon=true 

Gradle 守护进程是一个后台进程, 它运行着繁重的构建, 然后在构建等待下一次构建的之间保持自身存在. 这使得数据和代码在下一次构建前已经准备好,并存入内存中. 这显著的提高了后续构建的性能. 启用Gradle守护进程是一种节约构建时间的廉价方式. +

强烈建议在所有开发机器上启用Gradle的守护进程.但是不推荐在持续集成和构建服务器环境下启用守护进程

Gradle自动管理守护进程.如果构建环境配置为利用后台程序,如果在没有可用守护进程,就会自动启动一个守护进程,或者使用现有的空闲的兼容守护进程.如果一个守护进程在3个小时内没有使用,它将会自我终结.一旦配置开发环境为使用的守护进程,守护进程通常是隐形的,容易被遗忘的.

3、并行编译

#使用并行编译
org.gradle.parallel=true 

4、设置JVM内存

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

-Xmx2048m : JVM最大允许分配的堆内存,按需分配

-XX:MaxPermSize=512m : JVM最大允许分配的非堆内存,按需分配

配置全局的属性
在下面的目录下面创建gradle.properties ,来配置全局的属性,在所有的项目中起作用。

/home//.gradle/ (Linux)
/Users//.gradle/ (Mac)
C:\Users\.gradle (Windows)

当然也可以修改xxx\android studio 安装目录\bin\studio64.exe.vmoptions 文件来配置JVM 的相关的参数。

修改项目下的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 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

5、使用aar依赖

我们都知道我们或多或少使用第三方的开源库或者工具,还有自己封装的类库,但是一次编译的时候在Library Module 目录下, 打开build/outputs/aar,就有生成的aar 文件。把他放在libs 目录下,在build.gradle 添加。

allprojects {
   repositories {
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

dependencies {
    compile(name:'cards', ext:'aar')
}

当然也可以这样添加

我们可以新建一个jar/aar Module,选择aar 文件,然后新建的Module 目录下,就会多了个build.gradle 和xxx.aar。

configurations.maybeCreate("default")
artifacts.add("default", file('mylibrary-debug.aar'))

然后在我们的Module 中这样引用即可。

compile project(':mylibrary-debug')

你可能感兴趣的:(gradle)