如何在android中添加r8规则?

Eld*_*opj 1 performance android proguard android-r8

我们如何在 android 项目中为依赖项添加 R8 规则,并从缩小和混淆中排除文件和包?。

Eld*_*opj 8

添加R8规则与progurad规则类似,但有些依赖我们不需要在R8中添加规则,文档中可能会提到。从 Android Studio 3.4 R8 开始是默认的代码压缩器。

build.gradle应用模块中添加这一行

 buildTypes {
    release {
        minifyEnabled true //Important step
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

选择 proguard-rules.pro

选择 proguard-rules.pro

添加规则以排除包或文件

-keep class com.xyz.model.** { *; }
Run Code Online (Sandbox Code Playgroud)

上面的代码从 minifing 中排除了模型包,最好从 minifing 中排除您的网络 pojo 类。

如果您添加的任何依赖项具有 proguard/R8 规则也添加它,注意:像 Retrofit 这样的库我们不需要在 R8 中添加它,它将在相应的 github 页面中提及

    -keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}
Run Code Online (Sandbox Code Playgroud)

上面的示例适用于绿色机器人 proguard 规则。只需将其复制粘贴到您的proguard-rules.pro文件中

供参考:https : //www.youtube.com/watch?v=yduedsaxfDw