用D8编译

时间:2018-02-13 21:58:06

标签: android compilation dex dx

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

构建工具中没有任何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/。生成的罐子是独立的(所有deps捆绑在一起)。

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

答案 1 :(得分:-1)

D8 dexer已成为 @AndroidStudio 3.1

中的默认编译器

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

更快,更智能的应用编译始终是Android工具团队的目标。这就是我们之前宣布下一代dex编译器D8的原因。与历史编译器 - DX

相比,D8运行速度更快,并生成具有相同或更好运行时性能的较小.dex文件

请参阅DX与D8之间的比较:enter image description here

您现在可以通过项目的gradle.properties文件中的此设置始终恢复为DX:

android.enableD8=false