如何保护包私有和/或公共类免受ProGuard的混淆?

时间:2017-12-06 14:22:44

标签: android proguard

我正在查看我当前的proguard配置

-keep public class * extends android.app.Activity

并从中获取示例,我创建了一个标记接口ProtectedAgainstProGuard,我将用于所有我不想混淆的类,以便使用如上所述的单行,而不是列出proguard文件中的所有类。

但是,有时候公共类会实现这个接口,但有时候包私有会实现它,所以我该如何陈述我的规则呢?

a)-keep class * implements com.myapp.ProtectedAgainstProGuard

b)-keep public class * implements com.myapp.ProtectedAgainstProGuard

c)中 -keep class * implements com.myapp.ProtectedAgainstProGuard -keep public class * implements com.myapp.ProtectedAgainstProGuard

1 个答案:

答案 0 :(得分:1)

步骤1:保留界面,使其不会被混淆

-keep interface com.myapp.ProtectedAgainstProGuard {*;}

第2步:保留所有实现此接口的类

-keep class * implements com.myapp.ProtectedAgainstProGuard { *; }