Android D8,下一代 dex 編譯器
Google 在剛剛發布的 Android Studio 3.1 新版本中,將 D8 作為新版本開發工具默認的 Dex 編譯器。那么什么是 D8 呢,D8 與之前的 Dex 打包器有何區別呢?
大家知道,安卓項目在打包生成 Apk 安裝文件的過程中,最重要的一步便是將我們所寫的 java 代碼編譯過成 .class
字節文件再打包轉化成一個或多個 .dex
格式的代碼壓縮文件。這種 dex 文件便是 Android 虛擬機所能識別、解析并運行的程序。
Google 一直在致力于提升 Dex 文件的編譯和運行優化工作,并開發出稱之為 下一代 dex 編譯器:D8 。其實早在 AS 3.0 Beta 版本中,Google 已經引入 D8 的測試使用。直到當前 3.1 新版本的發布,才正式將其作為默認 Dex 編譯器。
根據官方介紹,新版 D8 Dex 編譯器相比之前稱之為 DX 的舊版編譯器,在 dex 文件的編譯和使用上,至少具備這么三個優勢:
1,更快的編譯速度;
2,更小的文件大小;
3,更優的運行性能。
這里有一份來自 Google 的官方測試數據,在 Dex 編譯速度和文件大小上有所對比:
大家也可以親自體驗一下 D8 的效果。如果你使用的 Android Studio 還是 3.0 版本,可以在項目的 gradle.properties
文件手動開啟 D8 編譯器:
android.enableD8=true
不止于此,Google 在代碼壓縮和優化上也在不斷尋求進步。目前我們廣泛使用的 ProGuard 工具 也將有新的替代者: R8 。不過,R8 R8 還沒有正式被融入使用,其所在的開源地址為:
https://r8.googlesource.com/r8
感興趣的朋友不妨根據文檔,研究一下 R8 的使用。
來自: http://yifeng.studio/2018/04/07/android-studio-d8-dex-compiler/