5

我想使用 Google 最近推出的 D8 编译器来构建 dex 文件。不幸的是,我没有在 build-tools 文件夹中找到 jar 可执行文件(如 dx 工具)。有谁知道它的位置?

提前致谢。

4

2 回答 2

2

构建工具中的任何地方都没有 D8.jar。D8 作为 Maven 工件分发。它可以从https://maven.google.com下载。之所以命名该工件,是com.android.tools:r8因为 D8 是 R8 项目的一部分。该 jar 包含 R8 和 D8 命令行界面,因此,理论上,它可以从命令行下载和使用,例如: java -cp r8.jar:<...dependency jars> com.android.tools.r8.D8 <D8 arguments here> java -cp r8.jar:<...dependency jars> com.android.tools.r8.R8 <R8 arguments here> 但是,这个工件 jar 有很多依赖项,如果您想在基于 gradle 的构建之外使用它,那么自己从源代码构建 r8/d8.jar 可执行 jar 更容易。操作说明位于https://r8.googlesource.com/r8/。生成的 jars 是独立的(捆绑了所有的 deps)。

Android Gradle 插件(以及因此的 Android Studio)不依赖于com.android.tools:r8. R8/D8 类被捆绑到com.android.tools.build:builder(gradle 插件包含的库之一)中。

于 2018-05-16T21:56:15.113 回答
-3

D8 dexer 已成为@AndroidStudio 3.1中的默认编译器

期待更快、更智能的应用编译

更快、更智能的应用编译始终是 Android 工具团队的目标。这就是为什么我们之前发布了下一代 dex 编译器 D8。与历史上的编译器 - DX 相比,D8 运行速度更快,生成的 .dex 文件更小,运行时性能相当或更好

请参阅 DX 与 D8 之间的比较:在此处输入图像描述

您现在可以随时通过项目的 gradle.properties 文件中的此设置恢复到 DX:

android.enableD8=false
于 2018-04-07T10:44:00.567 回答