AS 3.1 支持的新版 D8,让你的编译更快、更小、更顺滑!

承香墨影

只分享最有用的原创技术干货!

关注

正文共: 1317字 6图

预计阅读时间: 4分钟

一、前言

Hi,大家好,我是承香墨影!

Android Studio 3.1 稳定版,在前几天正式发布了。

其中包含了 D8 Dex Compiler,它在 AS3.1 中,被设置为了默认的 dex 编译器

那么今天就来聊聊,什么是 D8 编译器,并且它有哪些优点?

二、D8 编译器

Android 开发人员都知道,Dex 编译是构建 Apk 的关键步骤,它是将 .class 字节码转换为 Android Runtime(或 Dalvik)的 .dex 字节码的过程。

Dex 编译器主要在日常 App 开发的过程中被使用到,它直接影响到 App 的构建时间、.dex 文件的大小以及运行时性能。

而与本文介绍的下一代 Dex编译器: D8 Dex Compiler,相对的就是当前比较普遍的 Dx 编译器。与旧版相比,D8 的编译速度更快,输出的 .dex 文件更小,同时具有相同或者更高的运行时性能(取决于设备)。

运行时性能这个指标,不同的设备上也不相同,这里就以构建时间和输出的 .dex 文件,两个指标举例,来说说 D8 编译器的优点。

注意这里的测试编译器编译指标的项目,并非一个空项目,它是官方推荐用于在Android Studio 和 Gradle 进行压力测试并查找问题的一个测试项目。

https://github.com/jmslau/perf-android-large

使用不同的编译器,通过这个项目进行对比,是有参考价值的。

构建时间对比:Dx vs D8

Dex 文件大小:Dx vs D8

这两个指标已经能说明问题,编译速度大大提高,而输出的 .dex 文件,也有小幅的减小。

三、体验 D8

在 AS 3.1 稳定版中,D8 Dex Compiler 是被当做了默认的编译器,所以不需要我们再额外的进行配置。

但是我们并不一定要升级 AS 才可以体验它。

如果你使用的是 AS 3.0+ 版本,可以直接在项目的 gradle.properties 文件中,增加 enableD8 的开关。

android.enableD8 = true

四、小结

简单总结一下 D8 的优点:

  1. 编译速度更快。

  2. 输出的 .dex 文件更小。

  3. 运行时效率"更高"。

前面举例中,D8 在编译速度上已经有了很大的提高。但是在输出的 .dex 文件大小上,并没有很大的优势。不过除了 D8 之外,Google 还在研究 R8,它是用来对整个程序进行压缩和优化 Proguard 的一个替代品。

简单来说:

  • D8 是 Dx dexer 的替代品。

  • R8 是 Proguard 的替代品。

期待 R8 的发布,可以让 Apk 变得更小。

参考资料:

https://r8.googlesource.com/r8

https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

今天在公众号后台回复成长『成长』,将会得到我整理的一些学习资料,也能回复『加群』,一起学习进步。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值