在 Android Studio 3.2.1 中加速 Gradle 构建
有没有觉得您正在等待 Android Studio 中的构建完成几分钟?我也是。这很烦人。幸运的是,有几种方法可以用来改进这一点。Android 使用 Gradle 进行构建。最新版本是 4.6,与以前的版本相比有巨大的性能提升(有关详细信息,请参阅发行说明)。
第 1 步:更新 Gradle 版本完成此操作的更简单方法是:打开模块设置(您的项目)> 项目结构
更新
更改为Gradle 版本:4.6
并更改为Android 插件版本:3.2.1
从https://services.gradle.org/distributions/gradle-4.6-all.zip下载 Gradle Release 发行版
并将其复制到 Gradle 文件夹:
最后一步是在 Settings > Gradle 中添加您的分配
不要忘记单击应用以保存更改。
第 2 步:启用离线模式、Gradle 守护进程和项目的并行构建离线模式告诉 Gradle 忽略更新到日期检查。Gradle 每次都要求依赖项,并且具有此选项使其仅使用机器上已有的依赖项。从 android studio Setting 转到 Gradle,然后单击 Offline work 框。
- 从 android studio Setting 中进入 Compiler 并在命令行框中添加“--offline”,然后点击 Compile Independent modules in parallel。
下一步是为您的项目启用 Gradle 守护程序和并行构建。并行构建将导致您的具有多个模块的项目(Gradle 中的多项目构建)并行构建,这应该会使大型或模块化项目的构建速度更快。
这些设置可以通过修改 Gradle 脚本目录(即 ~/.gradle/gradle.properties)中名为 gradle.properties 的文件来启用。其中一些选项(例如 Complie 并行模块)可从 Android Studio 获得,也可以通过默认,但将它们放在 gradle.properties 文件中将在从终端构建时启用它们,并确保您的同事将使用相同的设置。但是如果你在一个团队中工作,有时你不能提交这些东西。
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
org.gradle.daemon=true
使用守护进程将使您的构建启动更快,因为它不必每次都启动整个 Gradle 应用程序。Gradle 守护程序默认不启用,但建议始终为开发人员的机器启用它(但对持续集成服务器禁用它)。可以在此处找到有关此模式的常见问题解答https://docs.gradle.org/current/userguide/gradle_daemon.html。对于某些项目,并行构建设置可能不安全。要求是您的所有模块都必须解耦,否则您的构建可能会失败(有关详细信息,请参阅http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects)。
第 3 步:启用增量 dexign 并调整内存设置您可以通过打开增量 dexing 来加快构建速度。在模块的构建文件中:
将此选项添加到您的 android 块:
dexOptions {
incremental true
}
在该 dexOptions 块中,您还可以指定 dex 进程的堆大小,例如:
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
其中“12g”是 12GB 内存。可以在此处找到有关此的其他信息 google.github.io/android-gradle-dsl/current/ 您还可以在设置文件中配置 Gradle 参数,例如,如果您有一个大型项目,请增加最大堆大小:
# 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
在此处查看所有参数列表:https ://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties了解详细信息。
第 4 步:禁用防病毒 考虑从防病毒扫描中排除项目和缓存文件。这显然是与安全性的权衡。但是如果你在分支之间切换很多,那么杀毒软件会在允许 gradle 进程使用它之前重新扫描文件,这会减慢构建时间(特别是带有 gradle 文件和索引任务的 Android Studio 同步项目)。在启用和不启用防病毒软件的情况下测量构建时间和进程 CPU 以查看是否相关。我希望这有帮助。如果您对提高构建性能有任何疑问或其他提示,请发表评论。
有用的链接