加速Android Studio/Gradle构建详解

来源:互联网 发布:php简单后台html5源码 编辑:程序博客网 时间:2024/06/05 14:12



当你的项目越来越大,添加的依赖库越来越多, gradle 的构建速度 会越来越慢, 慢到  怀疑你的电脑配置, 

如果你的英文不错 ,那么你可以看gradle 的官方文档 ,里面有相关的介绍

http://www.gradle.org/docs/current/userguide/build_environment.html

首先 我们俩看一下 gradle的介绍

Gradle提供几个选项,使它容易配置的Java进程将被用于执行构建。同时可以配置这些在你当地的环境通过GRADLE_OPTS或JAVA_OPTS,某些设置比如JVM内存设置,Java,守护进程开/关可以更有用,如果他们可以与风投的项目版本,这样整个团队就可以使用一致的环境。建立一个一致的环境构建简单把这些设置成gradle.properties文件。

要想让项目编译的更加快速  最主要的问题就是 配置 gradle.properties





如果你之前没有什么配置,那么将会是下面的界面 (注释除外)

## Project-wide Gradle settings.## For more details on how to configure your build environment visit //如果需要更多信息,可以参考gradle 的官方网页# http://www.gradle.org/docs/current/userguide/build_environment.html## Specifies the JVM arguments used for the daemon process.//将jvm用于守护进程 (即自动启动,后台运行,额,经过我测试, 配置  org.gradle.daemon 将吃掉一部分内存,但是会让你的项目编译更加迅速,具体原因后续讲到)
# 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#Thu Mar 31 08:35:57 CST 2016

在这个配置文件中 有好几个方法 

1. 我们 可以在 文件的最后添加上 

org.gradle.daemon=true

Gradle Java虚拟机(JVM)上运行,并使用一些支持库,需要一个简单的初始化时间。因此,它有时似乎有点缓慢的开始。此问题的解决方案是Gradle守护进程:一个长寿的后台进程执行构建比其他情况下更迅速。我们做到这一点,避免昂贵的引导过程,以及利用缓存,通过保持你的项目的数据在内存中。与守护进程运行Gradle构建也不例外。简单的配置是否你想使用它,其他的都是由Gradle透明地处理。


2.配置与守护进程相关的内存大小org.gradle.jvmargs 我们可以再添加一行 

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8


指定jvmargs用于守护进程。调整内存设置的设置尤其有用。


3.如果你编译的第三方库,在module gradle 中 无 compile "文件" ,那么 我们可以直接用 offline 模式(当用这种方式时候,假如你所引用的库不在本地,那么可能导致编译失败,就需要去掉 勾选offline),

例如

compile 'io.reactivex:rxandroid:1.1.0'


我的配置图


总之,这就是我的最终配置图 ,,即使你在setting 里面配置,它最终也会体现到 gradle.properties中 ,大家会感觉到自己的老电脑 居然也会飞~~~~ 大家去试试吧


1 0