joh*_*lib 8 android proguard android-proguard
我发现我自己面对的三个似乎非常相似的术语
keep keepclassmembers keepclasswithmembers
我无法理解这三个规则之间的区别,有人可以更好地解释这种区别吗,也许还有一个例子
小智 12
1) keep - 保留类
2) keepclassmembers - 保留类成员,如字段和方法
3) keepclasseswithmembers - 如果类满足基于成员的某些条件,则保留类
例子
1) 保留所有扩展 android.app.Activity 的类
-keep public class * extends android.app.Activity
Run Code Online (Sandbox Code Playgroud)
2)如果他们正在实现 android.os.Parcelable,则在条件下保留所有名为 CREATOR 的成员(静态字段)
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4791 次 |
| 最近记录: |