[译]让我们加快你的Gradle构建

栏目: IOS · Android · 发布时间: 6年前

内容简介:如果你是 Android 开发人员,那么你将花费大量时间查看屏幕并等待 gradle 构建完成。在新的 Android Studio 中,它比以前的版本要快得多,但仍然有很多空间可以解决它所以让我们快速通过在 Android Studio 中做一些快速修复。在 Google I/O 2017 Google 团队专注于此,这篇文章是从那里提取的。通过使用所有这些技术,您可以在此处改进gradle构建时间愉快的写代码!!! 另外,检查Android P中的最新Android运行时改进以及Android Stud
[译]让我们加快你的Gradle构建

翻译说明:

原标题: Let’s Speed Up your Gradle Build -

原文地址:medium.com/mindorks

原文作者: Gaurav Bansal

如果你是 Android 开发人员,那么你将花费大量时间查看屏幕并等待 gradle 构建完成。在新的 Android Studio 中,它比以前的版本要快得多,但仍然有很多空间可以解决它所以让我们快速通过在 Android Studio 中做一些快速修复。在 Google I/O 2017 Google 团队专注于此,这篇文章是从那里提取的。

  1. 总是使用最新的 ** Android Gradle Plugin** -Android 工作室逐步提高新 gradle 版本的性能,因此建议使用最新版本。目前最新的 gradle 插件是 3.1.2;在这个版本中,studio 已将其编译器 DEX 更改为 D8。默认情况下,Android Studio 现在使用名为 D8 的新 DEX 编译器。默认情况下,Android Studio 现在使用 D8(你也可以禁用它)。DEX 编译是将 .class 字节码转换 .dex 为 Android Runtime(或 Dalvik,适用于旧版 Android)的字节码 的过程 。与之前的编译器(称为 DX)相比,D8 编译速度更快,输出更小的 DEX 文件,同时具有相同或更好的应用程序运行时性能。这个较新的插件版本将导致高达25%的构建时间缩短。

  2. 如果您使用命令行进行构建,请避免遗留 Multidex - 如果我们的应用程序超过64k方法参考限制,我们必须使用 Multidex。当在 gradle 文件中我们有 minSdkVersion <21 时,我们使用 Legacy Multidex 构建速度要慢很多。如果您正在使用 Android studio > 2.3 版本并使用运行按钮进行构建,那么如果连接的设备版本大于21,它将自动使用本机 multidex,如果版本是 <21,则将自动使用遗留。如果您使用命令行进行构建然后在开发风格内设置 minSdkVersion 21.这将导致最多减少10%的构建时间。

  3. Disable Multiple apk for development- 我们可以使用拆分块为特定设备配置创建多个 apk,它可以减少发布版本中的应用程序大小,但在开发中不需要。通过禁用它我们可以进一步减少10%的构建时间。让我们看看如何做到这一点。

[译]让我们加快你的Gradle构建
android {
    if(project.hasProperty('devBuild')){
        // 开发中禁用 Split apk
        splits.abi.enable = false
        splits.density.enable =false
    }
}
复制代码
  1. 包括最小资源 -如果应用程序有多种语言支持和多屏幕支持,那么在开发风味中添加最少的资源
productFlavors {
    development {
        minSdkVersion 21
        resConfigs ("en","xxhdpi")
    }
}
复制代码
  1. 禁用 PNG Crunching - 默认情况下,Android 构建 工具 执行 PNG 大小优化,这对于发布构建很有用,但是对于开发它会增加构建时间。要么使用 WEBP 而不是 PNG,要么在开发风格中禁用它。
android {
    if(project.hasProperty('devBuild')){
        // 开发中禁用 Split apk
        splits.abi.enable = false
        splits.density.enable =false
        // 禁用 PNG 运算
        aaptOptions.cruncherEnabled = false
    }
}
复制代码
  1. 即时运行 - 即时运行会产生很多问题,直到 Android Studio 3.0,现在它稳定并且在设备上工作 sdkVersion≥21。它也会应用更改,直接反映更改直接进入实时进程,而不是重新启动应用程序。

  2. 正确使用 Crashlytics -默认情况下,crashlytics 始终在每个构建时生成唯一的构建 ID。您可以为调试环境禁用 crashlytics,也可以为开发构建禁用此构建 ID。

apply plugin: 'io.fabric'
android {
    buildTypes {
        debug {
            // 禁用 Crashlytics 构建 ID
            ext.alwaysUpdateBuildId = false
        }
    }
}
复制代码
  1. 不要使用动态依赖版本 - 每次都会导致 check studio 是否有新的库版本。这将增加构建时间,避免这种情况
    [译]让我们加快你的Gradle构建
  2. 在 gradle.properties 文件中,根据应用程序要求更改为 JVM 分配的内存。更改 org.gradle.jvmargs = -Xmx1536m(默认值)。 在 gradle 文件中通过更改 maxheap 大小我们可以增加 dex 内存但是在 gradle 插件2.1 dex 正在进行中。因此,更改此参数现在不起作用。还要更改以下内容以减少构建时间
#配置后,Gradle将以孵化并行模式运行。
#此选项仅应与分离的项目一起使用。
org.gradle.parallel = true
#设置为true时,Gradle守护程序用于运行构建。对于本地开发者构建,这是我们最喜欢的属性 
#开发人员环境针对速度和反馈进行了优化,因此我们几乎总是使用守护程序运行Gradle作业。
org.gradle.daemon = true
复制代码
  1. 启用 gradle 缓存 - Caching gradle 将缓存来自任何位置的任何先前构建的任务输出。在 gradle.properties 文件中设置 org.gradle.caching = true 以启用缓存。

  2. 多模块项目 - 模块化还通过并行构建模块来增加 gradle 构建时间。

通过使用所有这些技术,您可以在此处改进gradle构建时间

[译]让我们加快你的Gradle构建

愉快的写代码!!! 另外,检查Android P中的最新Android运行时改进以及Android Studio中的编译器改进。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Think Python

Think Python

Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99

Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码