Gradle 5.0:构建 Android,我更快、更稳、更省内存!

Gradle 5.0 终于发布了,官方表示这是史上最快、最安全、最强大的 Gradle 版本。

此版本在优化了构建速度、内存使用等,还新增了 Kotlin DSL 1.0、依赖版本对齐(与 Maven BOM 类似)、Task timeout、支持 Java 11 等新功能。

接下来我挑几个和 Android 开发相关的新功能介绍。

更快的构建速度

原生开发中,每次 Build 都是很耗时的,这也是很多跨平台方案可以吹嘘的地方,例如 Flutter 的 Hot reload。而在 5.0 中,使用了新的构建缓存和增量编译的方式来提升编译的速度。

下图就是官方提供的编译速度对比图:

5.0 主要通过四种方式对编译进行优化:

  • 构建缓存。

  • 增量 Java 编译。

  • 增量注解处理。

  • 构建扫描。

构建缓存是 Gradle 4.0 开始引入的,其目的是重用之前的编译结果,在 5.0 中,Android、Kotlin、C++、Scala 和许多其他的插件都可以使用构建缓存,有效的利用缓存可以节约多达 90% 的构建时间。

增量 Java 编译在 5.0 中也经过了高度优化,现在是默认编译器。它除了第一次使用完整的构建之外,之后不需要重新编译所有的源文件。而增量注解处理是在增量 Java 编译的基础之上,做了进一步优化。

依赖版本对齐

依赖版本对齐的英文是 Dependency version alignment。

Dependency version alignment allows different modules belonging to the same logical group (a platform) to have identical versions in a dependency graph.

直译过来的意思就是:依赖版本一致性允许属于相同的逻辑组(平台)的不同 module 拥有相同的版本依赖图。

简单来说,对于多个依赖同时依赖同一个库的时候,会形成一个依赖链,而之前默认的形式会出现依赖传递,对于直接依赖,会将低版本变更为高版本。而对于间接依赖,则没有那么智能。依赖版本对齐可以指定清晰的依赖关系,来避免出现依赖版本混乱。

我知道这么说可能还是会乱,官方已经给出一个具体的例子来说明问题:https://docs.gradle.org/5.0/userguide/managing_transitive_dependencies.html#sec:version_alignment

Kotlin DSL 1.0

随着 Gradle 5.0 发布的还有 Kotlin DSL 1.0 ,在 4.x 时,其实已经支持 Kotlin DSL,只是当时还有很多问题,这次发布的是 Release 版本,意味着我们可以放心使用了。

此次改进主要有几个方面:代码自动完成、错误高亮、文档提示、代码重构。

关于 Kotlin DSL,如果你有兴趣,官方还有一个入门手册。https://docs.gradle.org/5.0/userguide/kotlin_dsl.html

更高效的内存执行

5.0 除了构建速度更快之外,内存也会大幅减少。因为在 5.0 中优化了许多缓存机制,因此 Gradle 进程的默认最大内存,已经大大缩小。

下面是官方给出的一个对比数字:

升级到 Gradle 5.0

到这里就简单了一些 5.0 中,我比较关注的新特性。当然 Gradle 5.0 不止如此,更多细节推荐查看本文末尾的引用文章。

如果你对 Gradle 5.0 有兴趣,想要升级体验的话,此过程有一些前置条件需要注意。

  1. Android 项目升级到 Gradle 5.0 需要配套升级 Android Gradle Plugin 和 Android Studio 3.4。注意,AS 3.4 还是一个 Preview 版,建议等稳定后再尝试线上项目。

  2. 最好能将 Gradle 升级到 4.10.2 版本,否则直接从低版本升级到 5.0,是一件很让人崩溃的事情,因为很多 API 都被废弃了,建议逐步升级。

  3. Gradle 4.x 需要使用 JDK 7,而 Gradle 5.0 需要使用 JDK 8 或更高的版本,所以如果你的 JDK 版本过低,还需要升级它。

确保上面说的几个条件都齐全之后,升级 Gradle 5.0 就变的简单了,执行 ./gradlew wrapper --gradle-version=5.0 命令即可。

更多升级的细节,可以查阅官方文档:https://docs.gradle.org/5.0/userguide/upgrading_version_4.html#changes_5.0

小结

整体来说,Gradle 5.0 还是诚意满满的,等 Android Studio 3.4 发布正式版本之后,还是可以升级试试,毕竟优化了很多提高开发效率的点。

如果本文对你有帮助,欢迎点赞、留言、转发!

reference:

https://gradle.org/whats-new/gradle-5/#how-to-upgrade

https://docs.gradle.org/5.0/release-notes.html

https://juejin.im/post/5bfce4f8e51d4524d9251004#heading-13


联机圆桌」????推荐我的知识星球,一年 50 个优质问题,上桌联机学习。

公众号后台回复成长『成长』,将会得到我准备的学习资料,也能回复『加群』,一起学习进步;你还能回复『提问』,向我发起提问。

推荐阅读:

“寒冬”正是学习时|关于字符编码,你需要知道的都在这里 | 分词,科普及解决方案| 图解:HTTP 范围请求 | 小程序学习资料 |HTTP 内容编码 | 辅助模式实战 | 辅助模式玩出花样 | 小程序 Flex 布局

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值