更新: R8 is by default enabled 在 android studio 3.4.0 及以上版本中
在 android studio 3.4+ 中,R8 默认启用,因此无需添加其他属性,尽管您可以通过在 gradle.properties 中添加 fullMode 属性来选择深度优化:
android.enableR8.fullMode=true
您可以通过在gradle.properties 中添加以下属性来禁用R8 并启用proguard:
android.enableR8 = false
useProguard = true
Android 2018 年 9 月发布新工具 R8 收缩器和混淆工具。
R8 - R8 是一个 java 代码收缩器和压缩工具,可以将 java 字节码转换为优化的 dex 码
适用于 3.4.0 以下的 AS 版本。
- 打开
gradle.properties
- 添加
android.enableR8 = true
作为
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
android.enableR8 = true
最低要求:
- Android Studio 3.2 2018 年 9 月版或更高版本
- Java 8
R8 Tool
R8 支持 Proguard:
请记住,R8 旨在与您现有的 ProGuard 规则配合使用,因此您可能无需采取任何措施即可从 R8 中受益。但是,由于它是一种与专为 Android 项目设计的 ProGuard 不同的技术,因此缩小和优化可能会导致删除 ProGuard 可能没有的代码。因此,在这种不太可能发生的情况下,您可能需要添加额外的规则以将该代码保留在构建输出中。
在 AS 3.4.0 及更高版本中禁用 R8:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
注意:对于给定的构建类型,if you set useProguard to false 在您的应用模块的 build.gradle 文件中,Android Gradle plugin uses R8 会针对该构建类型缩小您的应用代码,而不管whether you disable R8 in your project's gradle.properties file.