Android Studio弃用DX编译器进入第二阶段

Google在2017年的时候开发了新的Dexing编译器D8,而D8编译器可以产生更小的APK,执行时性能也更好,已经在Android Studio 3.1正式成为默认选项,用来取代原本的DX编译器,而DX因而开始了三阶段弃用程序。

一开始D8只在Android Studio 3.0作为可选功能,主要的编译器还是DX,随着D8逐渐成熟,才在Android Studio 3.1切换成默认,但是开发者在使用上有任何的问题,仍可以随时切换回DX。弃用DX有三个阶段,第一阶段开发者仍然可以在Android Studio中使用DX,Google会提供重要问题的更新,但不再为DX增加新功能,也会观察是否存在无法将DX切换到D8的使用案例,Google承诺,所有转换的问题没有解决,DX就不会进入到弃用的下一阶段。

而现在所有问题都已经解决,六个月内没有发生重大的转换问题,因此Google宣布DX弃用进入下一个阶段,弃用第二阶段是为了要确保复杂的项目,有充裕的时间能够迁移,而这个阶段,Google会维持DX编译器可用,但视为已经弃用,不会解决任何问题。这个阶段会持续一年,也就是说,一直到明年的二月一日,才会进入到弃用第三阶段。

第三阶段也是最后一个阶段,Google将会把DX从Android Studio和其他构建环境中移除,除非开发者使用旧版的Android Gradle扩展组件,才能继续使用DX构建应用程序,Google也提醒开发者,还在使用DX构建的项目,现在该是时候搬迁到D8上了。

Dex编译是构建APK的关键步骤,是将.class字节码转换成为.dex字节码的过程,让Android Runtime得以执行,虽然Dex编译器只有在应用程序开发的时候使用,但是会直接影响应用程序的构建时间、.dex文件大小和执行时候的性能。比起DX,D8有更好的编译性能,而且可以输出较小的.dex文件,应用程序执行性能也更好。