下一代Dex编译器现已进入预览阶段

Posted 谷歌开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下一代Dex编译器现已进入预览阶段相关的知识,希望对你有一定的参考价值。

文 / Google 产品经理 James Lau

android 开发者都知道,Dex 编译是 APK 构建过程中非常关键的一步。在此编译过程中,将 .class 字节码转换为用于 Android 运行时(对于较早版本的 Android,则是用于 Dalvik)的 .dex 字节码。在您的日常应用开发过程中,Dex 编译器大多在后台运行,但它会直接影响应用的构建时间、.dex 文件的大小和运行时性能。

正因如此,我们投入大量精力,对 Dex 编译器做出了一些重要的改进。我们很兴奋地宣布:作为 Android Studio 3.0 测试版的一部分,下一代 Dex 编译器 D8 现已开放预览。

与当前 DX 编译器相比,D8 的编译速度更快,输出的 .dex 文件更小,同时却能保持相同乃至更出色的应用运行时性能。





何不试一下?

D8 预览版将随 Android Studio 3.0 测试版一起开始提供。要试用此预览版,您可以在项目的 gradle.properties 文件中进行以下设置:

android.enableD8=true


我们在许多应用上测试了 D8 的正确性和性能,结果鼓舞人心。我们有足够的信心,相信我们改用 D8 作为构建 AOSP 的默认 Dex 编译器会取得成功。



后续计划

我们计划在未来几个月内随 Android Studio 3.0 版一起开放 D8 预览。在此期间,我们将重点解决我们从社区收到的任何关键错误报告。我们计划在 Android Studio 3.1 中结束 D8 预览并将其作为默认 Dex 编译器。届时,DX 编译器将正式进入维护模式。此后,将只修复 DX 的关键问题。

除 D8 之外,我们还在开发 R8,后者用于取代 Proguard 对整个程序进行精简和优化。尽管 R8 项目已经开放源代码:

https://r8.googlesource.com/r8


但目前尚未集成到 Android Gradle 插件中。不久之后,当我们准备面向社区开放 R8 预览时,我们将提供更多相关详情。



工具开发者:让您的字节码工具做好迎接 Java 8 的准备

4 月,我们宣布推出 Java 8 语言脱糖功能。目前,在 Java 编译 (javac) 之后,在运行任何字节码读取或重写工具之前,会立即执行脱糖步骤。未来两个月,脱糖步骤将会作为 D8 的一部分,移到整个管道后面一个阶段中。这样,我们将可以进一步缩短总体构建时间并生成更优化的代码。这一变更意味着任何字节码或重写工具将在脱糖步骤之前执行。


如果您在开发用于 Android 的 .class 字节码读取或重写工具,您将需要确保它们能够处理 Java 8 字节码格式,以便在我们将脱糖步骤移入 D8 之后,它们仍可继续正确工作。

尽情体验 Dex 编译吧!


查看全文及文中链接,请点击文末“阅读原文”。


推荐阅读:






以上是关于下一代Dex编译器现已进入预览阶段的主要内容,如果未能解决你的问题,请参考以下文章

Rancher 2.0 Beta版正式发布!

最终预览版 Beta 4 现已发布,Android P 正式版即将到来!

Swipeview - 显示下一个项目的预览/片段?

尝鲜Java 12新特性:switch表达式

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

更了吗?Windows 11 22000.184 推送