加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

Android 应用构建速度提升的十个小技巧

发布时间:2019-08-17 03:49:08 所属栏目:移动互联 来源:Android
导读:应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: Google 追踪圣诞老人 (Google Santa Tracker) 来为大家提供十个小技巧,帮助提升应用的 Gradle 构建速度,当我们应用了所有的小技巧之后,该演示应用的构建速度快了三倍以上。 首
副标题[/!--empirenews.page--]

Android 应用构建速度提升的十个小技巧

应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: “Google 追踪圣诞老人 (Google Santa Tracker)” 来为大家提供十个小技巧,帮助提升应用的 Gradle 构建速度,当我们应用了所有的小技巧之后,该演示应用的构建速度快了三倍以上。


首先来了解一下 “Google 追踪圣诞老人” 应用的工程背景: 这个应用有约 60M 大小,它包含 9 个模块,有 500 多个 Java 文件,1,700 多个 XML 文件、3,500 多张 PNG 图片资源,用到了 Mutil-dex,没有注解处理器。

其次,在我们开启速度提升调优之前,来了解本次三个性能指标的说明:

  • 全量构建,也就是重新开始编译整个工程的 debug 版;

  • 代码增量构建,指的是我们修改了工程的 Java / Kotlin 代码;

  • 资源增量构建,指的是我们对资源文件的修改,增加减少了图片和字符串资源等。

每个小技巧实施以后,我们会对比如上三个场景的构建时间以作为我们的量化标准。请注意,由于工程规模大小不一、开发环境各异,开发者们在实际的操作中的结果可能会与本文的结果有所不同。

小技巧 1: 使用最新版本的 Android Gradle 插件

Android 应用构建速度提升的十个小技巧

每次 Android Gradle 插件的更新都会修复大量的 bug 及提升性能等新特性,因此保持最新的 Android Gradle 插件版本有非常大的必要。

从 3.0 版本开始,我们将通过 google() 的 Maven 仓库分发新的 Android Gradle 插件,所以需要在 repositories 处加入 google() 以获得最新的插件更新 (现在的 Android Studio 新建工程的时候会默认加入 google() 的 Maven 仓库指向)。

Android 应用构建速度提升的十个小技巧

这是将 Android Gradle 插件版本从 2.x 更新到 3.0.0-alpha1 之后得到的结果 (这里的演示是基于 3.0.0-alpha1 版本,随着插件版本的更新,性能的提升会更加明显),我们可以看出,全量构建一次应用的时间直接减少了 25%,代码改动的增量构建减少了将近 40%,资源改动的增量构建也减少了 16%。

小技巧 2: 避免激活旧版的 Multidex

 
Android 应用构建速度提升的十个小技巧
这个小技巧大家应该比较熟悉——避免激活旧版的 multidex。当您的应用配置方法数超过 64K 的时候,您需要启用 multidex。当您启用了 multidex,且工程的最低 API 级别在 21 之前时,旧版的 multidex 就会被激活,这将严重拖慢您的构建速度,原因是 21 之前的 API 级别并没有原生的支持 multidex。

 

  • 启用 multidex
    https://developer.android.google.cn/studio/build/multidex.html

如果您是通过 Android Studio 的运行/调试按钮来执行构建,那么无需考虑这个问题,新版本的 Android Studio 会自动检测连接的设备和模拟器,如果系统的 API 级别大于 21 则进行原生的 multidex 支持,同时会忽略工程里对最低 API 级别 (minSdkVersion) 的设置。
 
习惯通过命令行窗口构建工程的开发者们则需要试着避免这个问题: 配置一个新的 productFlavor,设定工程的最低 API 级别为 21 或者以上,在命令行里调用 assembleDevelopmentDebug 即可避免这个问题。

Android 应用构建速度提升的十个小技巧

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读