内容简介:如果你是 Android 开发人员,那么你将花费大量时间查看屏幕并等待 gradle 构建完成。在新的 Android Studio 中,它比以前的版本要快得多,但仍然有很多空间可以解决它所以让我们快速通过在 Android Studio 中做一些快速修复。在 Google I/O 2017 Google 团队专注于此,这篇文章是从那里提取的。通过使用所有这些技术,您可以在此处改进gradle构建时间愉快的写代码!!! 另外,检查Android P中的最新Android运行时改进以及Android Stud
翻译说明:
原标题: Let’s Speed Up your Gradle Build -
原文地址:medium.com/mindorks
原文作者: Gaurav Bansal
如果你是 Android 开发人员,那么你将花费大量时间查看屏幕并等待 gradle 构建完成。在新的 Android Studio 中,它比以前的版本要快得多,但仍然有很多空间可以解决它所以让我们快速通过在 Android Studio 中做一些快速修复。在 Google I/O 2017 Google 团队专注于此,这篇文章是从那里提取的。
-
总是使用最新的 ** 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%的构建时间缩短。 -
如果您使用命令行进行构建,请避免遗留 Multidex - 如果我们的应用程序超过64k方法参考限制,我们必须使用 Multidex。当在 gradle 文件中我们有 minSdkVersion <21 时,我们使用 Legacy Multidex 构建速度要慢很多。如果您正在使用 Android studio > 2.3 版本并使用运行按钮进行构建,那么如果连接的设备版本大于21,它将自动使用本机 multidex,如果版本是 <21,则将自动使用遗留。如果您使用命令行进行构建然后在开发风格内设置 minSdkVersion 21.这将导致最多减少10%的构建时间。
-
Disable Multiple apk for development- 我们可以使用拆分块为特定设备配置创建多个 apk,它可以减少发布版本中的应用程序大小,但在开发中不需要。通过禁用它我们可以进一步减少10%的构建时间。让我们看看如何做到这一点。
android { if(project.hasProperty('devBuild')){ // 开发中禁用 Split apk splits.abi.enable = false splits.density.enable =false } } 复制代码
- 包括最小资源 -如果应用程序有多种语言支持和多屏幕支持,那么在开发风味中添加最少的资源
productFlavors { development { minSdkVersion 21 resConfigs ("en","xxhdpi") } } 复制代码
- 禁用 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 } } 复制代码
-
即时运行 - 即时运行会产生很多问题,直到 Android Studio 3.0,现在它稳定并且在设备上工作 sdkVersion≥21。它也会应用更改,直接反映更改直接进入实时进程,而不是重新启动应用程序。
-
正确使用 Crashlytics -默认情况下,crashlytics 始终在每个构建时生成唯一的构建 ID。您可以为调试环境禁用 crashlytics,也可以为开发构建禁用此构建 ID。
apply plugin: 'io.fabric' android { buildTypes { debug { // 禁用 Crashlytics 构建 ID ext.alwaysUpdateBuildId = false } } } 复制代码
- 不要使用动态依赖版本 - 每次都会导致 check studio 是否有新的库版本。这将增加构建时间,避免这种情况
- 在 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 复制代码
-
启用 gradle 缓存 - Caching gradle 将缓存来自任何位置的任何先前构建的任务输出。在 gradle.properties 文件中设置 org.gradle.caching = true 以启用缓存。
-
多模块项目 - 模块化还通过并行构建模块来增加 gradle 构建时间。
通过使用所有这些技术,您可以在此处改进gradle构建时间
愉快的写代码!!! 另外,检查Android P中的最新Android运行时改进以及Android Studio中的编译器改进。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 加快企业数字化转型 SMTX OS3.5构建更易用、稳定的超融合架构
- Gradle加快编译方法
- 加快Vue项目的开发速度
- 7个可以帮助加快网站速度的提示
- 加快 Carthage Copy Framework 的速度
- 我国正加快IPv6规模部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。