![](/img/trans.png)
[英]What is the difference between -keep and -keepclassmembers in ProGuard?
[英]Proguard rules -keep vs -keepclassmembers vs -keepclasseswithmembers
我发现自我面对的三个术语似乎非常相似, keep
keepclassmembers
keepclasswithmembers
我无法理解这三个规则之间的区别,有人可以更好地解释差异,也许也是一个例子
1)保持 - 保留课程
2)keepclassmembers - 保留类成员,如字段和方法
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.