繁体   English   中英

Proguard规则-keep vs -keepclassmembers vs -keepclasseswithmembers

[英]Proguard rules -keep vs -keepclassmembers vs -keepclasseswithmembers

阅读proguard规则

我发现自我面对的三个术语似乎非常相似, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM