ProGuard中-keep和-keepclassmembers有什么区别?

时间:2013-05-10 10:13:45

标签: android proguard

我通读了http://proguard.sourceforge.net/index.html#manual/usage.html,但无法区分他们。

我测试了2个不同的选项并反编译结果。两者似乎产生了相同的结果。

-keep class * implements android.os.Parcelable {
    *;
}

-keepclassmembers class * implements android.os.Parcelable {
    *;
}

1 个答案:

答案 0 :(得分:27)

第一个(-keep)会阻止实施android.os.Parcelable 类和类成员被删除或重命名。

后者(-keepclassmembers)将保留仅限的实施android.os.Parcelable 的类被删除或重命名。