Android编译

Android 编译

简易编译流程

完整编译流程

D8 和 R8

早期 Android 生成 apk 过程

D8 和 R8 引入

Android Studio 3.x 后,引入了 D8 Dex 编译器和 R8 混淆压缩工具。
image.png

D8

D8 编译器特点:

R8

AS3.2 引入 R8 替换 Proguard,用于代码压缩 (shringking) 和混淆 (obfuscation)。

AS3.4 D8 和 R8 合并

在 Android Studio 3.4 版本中,R8 把 desugaring、shrinking、obfuscating、optimizing 和 dexing 都合并到一步进行执行。在 Android Studio 3.4 以前的版本编译流程如下:

合并之后编译流程如下:

脱糖

脱糖用于在 Android 中支持 Java8 部分特性