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

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

内容简介:如果你是 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中的编译器改进。


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

查看所有标签

猜你喜欢:

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

群体的智慧

群体的智慧

[美] 詹姆斯·索罗维基 / 王宝泉 / 中信出版社 / 2010-10 / 33.00元

《纽约时报》榜首畅销书,《商业周刊》《福布斯》杂志最佳商业图书 21世纪商务人士必读书,了解群体智慧时代的决策模式 告诉我们如何过日子、如何选择领导人、如何做生意以及如何思考这个世界 我们当中的大多数人,不论是选民还是投资者,是客户还是经理人,似乎都相信宝贵的知识掌握在少数人手中,认为精英们做出的决策更加聪明,很少有人相信“乌合之众”也能像专家那样做得如此出色。 但《纽约客......一起来看看 《群体的智慧》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

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

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器