在此编译过程中,将 .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 之后,它们仍可继续正确工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)