Proguard keepclassmembers保持课堂*

时间:2016-04-20 05:46:02

标签: proguard android-proguard

我想知道这是做什么的:

-keepclassmembers class * {
    private <fields>;
}

此规则是否会实际阻止所有类被混淆?

1 个答案:

答案 0 :(得分:1)

根据the documentation -keepclassmembers规则执行此操作:

  

指定要保留的类成员(如果它们的类是)   保存完好。

在这种情况下,它意味着将保留在缩小阶段中存活的任何类中的所有私有字段。

此规则不会阻止类被剥离或被混淆。 它只会阻止保留类的私有字段被剥离或被混淆。

<强>更新

class *匹配可能有点令人困惑。一个*通常匹配不包含包分隔符的类名的任何部分。但是在这种情况下,它匹配任何类。文档说:

  

为方便起见,向后兼容,类名*   是指任何类别,无论其包装如何。