提高Android Studio中Gradle执行效率

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58

你是否感觉到Android Studio构建速度太慢?我也有这感觉。

幸运的是,这有很多可以提高构建速度的技巧。这些技巧目前还在实验并且有可能是不安全的,如果你觉得构建时间太长而且很痛苦的话,尝试一下这些技巧还是很有价值的。我已经按照下面所描述的试过在代码改动很少的情况下构建时间下降了2.5秒。希望对你有帮助。

Android Studio使用Gradle来构建工程。目前Gradle的版本为2.2。最近的版本为2.4,性能比之前的版本有很大的提升。

这有两种方式,一种是手动编辑构建文件,另一种是通过Android Studio改变配置。

对于手动编辑构建文件,在工程的根目录下的build.grade文件末尾添加以下代码:

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}

打开终端并运行命令:./gradlew wrapper,它将会下载并设置版本2.4的Gradle对于你本地的Gradle wrapper.这是Gradle官方文档中所描述的方法(http://gradle.org/docs/current/userguide/gradle_wrapper.html)。

对于通过Android Studio配置,打开工程结构对话框,选择工程-〉将Gradle版本改为2.4.当你点击确定,Android Studio将自动同步Gradle的配置,并设置wrapper的新版本。

笔记:这个仅仅是当你的工程用的是Gradle wrapper(默认是用Android Studio 生成的工程)。如果不是这种情况,请参考Gradle文档
http://gradle.org.

第二步就是打开工程的构建文件中的 daemon and parallel开关。使用daemon(守护进程)将会使构建启动很快,并且它不会在应用程序每次启动的时候进行完整的构建。使用Parallel将会同时构建多个模块,在工程很大或模块很多的工程使构建速度很快。

在.gradle文件夹下添加一个文件名为gradle.properties的文件,添加如下代码(如:~/.gradle/gradle.properties)。

org.gradle.daemon=true
org.gradle.parallel=true

笔记:Android Studio 已经打开daemon的开关,当从终端进行构建时这个配置将确保daemon的打开。

你也可以在你的工程的根目录下添加这个文件,对于每个人构建应用它将会自动打开,包括你的集成环境(就像Jenkins CI)。当你不使用daemon构建时,从这查看更多信息http://gradle.org/docs/current/userguide/gradle_daemon.html#when_should_i_not_use_the_gradle_daemon.

关于parallel的重要的笔记:配置parallel有可能使一些工程不安全。这要求你的模块必须是解耦的(参考http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects)
 否则有可能会构建失败。仔细测试你构建的所有variants,你会知道它的所有工作。

你可以添加其它构建参数,比如当你的工程很大时增加堆栈大小,或者指定JVM:

org.gradle.jvmargs=-Xmx768m
org.gradle.java.home=/path/to/jvm

对于gradle.properties文件中其它可以配置的选项,参考http://gradle.org/docs/current/userguide/userguide_single.html#sec:gradle_configuration_properties.
Android Studio中一些选项是可用的,也有是默认打开的,但在gradle.properties文件中打开这些选项时,当你使用终端构建工程时,这将会确保你的同事也做了同样的配置。

最后是改变incremental dexing的值,这是一个实验的功能并且默认是关闭的。打开这个开关有可能会导致构建失败(尤其是在连续运行的时候),但我还是推荐你尝试一下,看看它是否对你有用。

在主APP模块的build.gradle文件中,添加下面的代码:

dexOptions {
        incremental true
}

希望能帮到你,如果你对提高构建执行效率有任何问题或其它技巧请在下面留言。

第一次翻译文章,水平有限还望见谅,如有曲解原文作者的意思,还望不吝指出。

原文地址:https://medium.com/@erikhellman/boosting-the-performance-for-gradle-in-your-android-projects-6d5f9e4580b6

时间: 2024-08-07 16:00:36

提高Android Studio中Gradle执行效率的相关文章

Android Studio中Gradle统一管理版本号引用配置

Gradle统一管理版本号引用配置 为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种module,moudle过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion.buildToolsVersion.androidTestCompile 等,便于日后对版本号进行维护,此处记录2种方式处理上述问题. 方式一 1.在项目根目录下创建.gradle文件,如:config.gradle 2.在根目录下的build.gradle文件中引入我

快速掌握 Android Studio 中 Gradle 的使用方法(转)

Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组成的. 因为Groovy是JVM语言,所以可以使用大部分的Java语言库.所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method).闭包(Closure)等. 由于Gradle的语法足够简洁,而且可以使用大部分的java包,当之

快速掌握 Android Studio 中 Gradle 的使用方法 [转http://blog.csdn.net/feelang/article/details/41783317]

Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组成的. 因为Groovy是JVM语言,所以可以使用大部分的Java语言库.所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method).闭包(Closure)等. 由于Gradle的语法足够简洁,而且可以使用大部分的java包,当之

Android Studio 中 gradle 版本问题

在 android studio 目录下有一个默认的 gradle 文件夹,新建项目时使用的就是此 gradle 文件夹名显示版本号为 2.10 一个项目的工程目录如下 其中 gradle\wrapper\gradle-wrapper.properties 最后一行的网址中显示此项目使用的 gradle 版本 即:distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 说明此项目使用的是 2.1

Android Studio中Gradle使用详解

一)基本配置 build配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } Android脚本 apply plugin: 'com.android.application' Android配置 android { compileSdkVersion 22 buildToolsVersion "22.0.1" } 项

Android Studio 中Gradle配置sonarqube

Sonarqube作为一个很实用的静态代码分析工具,在很多项目中都使用.Android自然也不例外.这里就分享下使用Android Studio时如何在Gradle里配置Sonarqube. 以下分别就使用公共maven仓库和私有maven仓库两种情况来简单说明下: 一,使用公共Maven仓库: 这个比较简单. 打开gradle sonarqube插件官方网址:https://plugins.gradle.org/plugin/org.sonarqube 可以看到有两种方式集成sonarqube

Android Studio 中 gradle 构建 堆栈空间不足

Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at http://gradle.org/docs/1.12/user

在Android studio中用gradle打 jar 包(Mac下)

这两天公司要重构项目,以前的项目在eclipse上,准备迁移到Android studio上,需要对项目打包,于是我学习了Android studio中gradle打包的内容.我在公司用的Mac,在家用的Windows,两种平台下,打包基本一样的,这里主要说下在Mac系统下的过程. 在Andorid studio中的Terminal用的是Mac的终端,所以要使用Terminal的gradle命令打包,先要配置下mac中的gradle环境,打开mac上的终端: (1) 输入命令:open .bas

在 Android studio 中 配置Gradle 做到 “根据命令行提示符生成指定versionCode, versionName,指定apk的打包输出路径”

需求: 1. 使用 Android studio ,使用 gradle 进行构建 2. 在实际开发中,我们需要使用jenkins进行打包.就需要配置我们的 gradle 脚本以支持参数化的方式. 3. 想获得一个可配置打包脚本的方法,允许 配置人员根据需要修改 服务器地址,versionCode, versionName 等 4. 隔离的源代码的配置,使用者在 jenkins里进行配置. 概述: 先展示我配置好的 参数,可以在命令提示行下执行,如下: gradle assembleBeta -P