如何在Android中添加R8规则?

时间:2019-09-03 06:38:34

标签: android performance proguard r8

我们如何在Android项目中添加R8规则以实现依赖关系,并从文件化和混淆中排除文件和包?

1 个答案:

答案 0 :(得分:1)

添加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'
    }
}

选择proguard-rules.pro

Select proguard-rules.pro

添加排除包或文件的规则

-keep class com.xyz.model.** { *; }

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

如果您添加的任何依赖项也都添加了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);
}

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

中即可

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