Android ProGuard中-keep和-keepclassmembers的区别是什么?

Android ProGuard中-keep和-keepclassmembers的区别是什么?,android,proguard,Android,Proguard,我通读了一遍,但无法理解他们的不同之处 我用两个不同的选项进行了测试,并对结果进行了反编译。两者似乎产生了相同的结果 -keep class * implements android.os.Parcelable { *; } 第一个(-keep)将保持实现android.os.Parcelable的类和类成员不被删除或重命名。 后者(-keepclassmembers)将只保留实现android.os.Parcelable的类的类成员被删除或重命名。您能否澄清一下“从被删除或重命名”

我通读了一遍,但无法理解他们的不同之处

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

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

第一个(
-keep
)将保持实现
android.os.Parcelable
类和类成员不被删除或重命名。


后者(
-keepclassmembers
)将只保留实现
android.os.Parcelable
的类的类成员被删除或重命名。

您能否澄清一下“从被删除或重命名”?收缩和模糊是Proguard的核心功能之一。收缩(删除)和模糊处理(重命名)。
-keepclassmembers class * implements android.os.Parcelable {
    *;
}