Android Studio的Gradle的加速

1、背景

现在基本上都使用Android Studio 来开发,使用Gradle 构建项目,Gradle 的种种优点,多渠道打包方便,依赖类库统一管理,基于Groovy 的DSL 语言简洁方便。这些好处在我们开发省了我们不少事,但是唯一的问题就是编译构建运行的时候特别慢,甚至是致命的,最后发现加班的时间都浪费在编译构建上。

2、使用加速

下面有几个技巧,让你你的Android Gradle 运行,编译更加快速。
①、设置代理

因为依赖要从Jcenter/Maven 仓库上下载,但是网络还是时不时地抽风。如果你使用VPN 或者全局代码可以从本地网络配置,就不需要在Android Studio 配置了(好像并没有什么用?)。给Gradle 设置代码需要在根目录的gradle.properties 配置。

 1. // 举例ShadowSocket
 2. systemProp.http.proxyHost=127.0.0.1
 3. systemProp.http.proxyPort=1080
 4. systemProp.https.proxyHost=127.0.0.1
 5. systemProp.https.proxyPort=1080

如果你用ShadowSocket,记得在本地开启。如果你使用其他代理软件,也类似,会有主机和端口。

②、更新gradle,设置为离线使用
Android Studio 的版本一般都跟随着Gradle 的版本,在安装目录的根目录有个gradle 目录,就是最新版,我们可以在设置中打开Gradle,选择Use local gradle distribution,然后选择Gradle 的目录即可,这样就不会每次根据项目中./gradle/xxx 中的gradle 版本每次再下载。理论上Gradle 的版本越新构建运行越快,也只是理论上,所以推荐稳定版的版本。
这里写图片描述
如果需要使用命令行编译,可以配置–daemon –parallel –offline。
这里写图片描述

③、守护进程,并行编译
在项目的根目录中有一个gradle.properties 文件
这里写图片描述

主要为这几个:
参考:https://docs.gradle.org/current/userguide/build_environment.html

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -D
file.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=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 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

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

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

org.gradle.jvmargs=-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 的相关的参数。

④、dexOptions

1 classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
1 # Default value: -Xmx10248m -XX:MaxPermSize=256m
2 org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m
dexOptions {
    preDexLibraries true
    javaMaxHeapSize "3g"
    incremental true
    dexInProcess = true
}

这里是参考stackoverflow 上的,好像有Bug,作者本人试了Android gradle 的版本至少是2.0.0-alpha9,然后配置一些参数。这里为JVM 设置4G,给Dex 设置3G。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值