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/
Android Studio 的版本一般都跟随着Gradle 的版本,在安装目录的根目录有个gradle 目录,就是Android Studio所能支持的最新版,
在设置中打开Gradle,选择Use local gradle distribution,然后选择Gradle 的目录即可,这样就不会每次根据项目中./gradle/xxx 中的gradle 版本每次再下载。
理论上Gradle 的版本越新构建运行越快,也只是理论上,所以推荐稳定版的版本。
如果需要使用命令行编译,可以配置- -daemon - -parallel - -offline。
什么是守护进程
在gradle.properties文件配置如下:
#就是让你让你编译时使用守护进程。
org.gradle.daemon=true
Gradle 守护进程是一个后台进程, 它运行着繁重的构建, 然后在构建等待下一次构建的之间保持自身存在. 这使得数据和代码在下一次构建前已经准备好,并存入内存中. 这显著的提高了后续构建的性能. 启用Gradle守护进程是一种节约构建时间的廉价方式. +
强烈建议在所有开发机器上启用Gradle的守护进程.但是不推荐在持续集成和构建服务器环境下启用守护进程
Gradle自动管理守护进程.如果构建环境配置为利用后台程序,如果在没有可用守护进程,就会自动启动一个守护进程,或者使用现有的空闲的兼容守护进程.如果一个守护进程在3个小时内没有使用,它将会自我终结.一旦配置开发环境为使用的守护进程,守护进程通常是隐形的,容易被遗忘的.
#使用并行编译
org.gradle.parallel=true
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
我们都知道我们或多或少使用第三方的开源库或者工具,还有自己封装的类库,但是一次编译的时候在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')