我发现自己面对的三个词似乎非常相似
keep
keepclassmembers
keepclasswithmembers
我无法理解这三条规则之间的区别,有人可以更好地解释差异,也许也是一个例子
答案 0 :(得分:2)
1)保持 - 保留班级
2)keepclassmembers - 保留类成员,例如fields&方法
3)keepclasseswithmembers - 如果类满足基于成员的某些条件
,则保留类<强>实施例强>
1)保留所有扩展android.app.Activity
的类-keep public class * extends android.app.Activity
2)如果他们正在实现android.os.Parcelable
,则保留所有名为CREATOR的成员(静态字段)-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
3)如果它们具有带有参数(Context,AttributeSet)或(Context,AttributeSet,int)的构造函数(下面称为init),则保留所有类。
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}