Android D8,下一代 dex 編譯器

jopen 6年前發布 | 18K 次閱讀 編譯器 安卓開發

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 編譯速度和文件大小上有所對比:

Android D8,下一代 dex 編譯器

Android D8,下一代 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/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!