设为首页 - 加入收藏 齐齐哈尔大仙云来料 (http://www.0452zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 时代 创新 可能 实现
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

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

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

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 应用构建速度提升的十个小技巧

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章