若是你是 Android 开发人员,那么你将花费大量时间查看屏幕并等待 gradle 构建完成。在新的 Android Studio 中,它比之前的版本要快得多,但仍然有不少空间能够解决它因此让咱们快速经过在 Android Studio 中作一些快速修复。在 Google I/O 2017 Google 团队专一于此,这篇文章是从那里提取的。android
老是使用最新的 ** 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%的构建时间。bash
Disable Multiple apk for development- 咱们可使用拆分块为特定设备配置建立多个 apk,它能够减小发布版本中的应用程序大小,但在开发中不须要。经过禁用它咱们能够进一步减小10%的构建时间。让咱们看看如何作到这一点。app
android {
if(project.hasProperty('devBuild')){
// 开发中禁用 Split apk
splits.abi.enable = false
splits.density.enable =false
}
}
复制代码
productFlavors {
development {
minSdkVersion 21
resConfigs ("en","xxhdpi")
}
}
复制代码
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。它也会应用更改,直接反映更改直接进入实时进程,而不是从新启动应用程序。jvm
正确使用 Crashlytics -默认状况下,crashlytics 始终在每一个构建时生成惟一的构建 ID。您能够为调试环境禁用 crashlytics,也能够为开发构建禁用此构建 ID。ide
apply plugin: 'io.fabric'
android {
buildTypes {
debug {
// 禁用 Crashlytics 构建 ID
ext.alwaysUpdateBuildId = false
}
}
}
复制代码
#配置后,Gradle将以孵化并行模式运行。
#此选项仅应与分离的项目一块儿使用。
org.gradle.parallel = true
#设置为true时,Gradle守护程序用于运行构建。对于本地开发者构建,这是咱们最喜欢的属性
#开发人员环境针对速度和反馈进行了优化,所以咱们几乎老是使用守护程序运行Gradle做业。
org.gradle.daemon = true
复制代码
启用 gradle 缓存 - Caching gradle 将缓存来自任何位置的任何先前构建的任务输出。在 gradle.properties 文件中设置 org.gradle.caching = true 以启用缓存。模块化
多模块项目 - 模块化还经过并行构建模块来增长 gradle 构建时间。工具
经过使用全部这些技术,您能够在此处改进gradle构建时间post
愉快的写代码!!! 另外,检查Android P中的最新Android运行时改进以及Android Studio中的编译器改进。性能