我想用proguard来混淆类名.我在Proguard.cfg中有这一行
-keepclasseswithmembers class * { public static <fields>; } -keepnames class * implements java.io.Serializable -keep public class com.google.**
而且我注意到没有混淆的是类名.所以运行jdgui我明白了
COM /测试/ ABCD / ActualClass.java
public class ActualClassName扩展了Activity等
此外,我看到返回真正的类名的方法.喜欢
ActualClassname aa();
并导入语句如
import com.abcd.ActualClassName
如何让Proguard对类名本身进行模糊处理.它不仅适用于我看到的活动,我的适配器也没有被混淆.好吧有混淆但不是类名.
上面的规则是什么阻止了类名被混淆了?
更新:我已经删除了上面的规则,并且没有从Android扩展任何东西的Utility类没有被混淆.我现在想知道是否有一些隐含的规则来保持类的类名被保存为类派生类的类?名称未被混淆的类有一些共同点:
1)静态方法
2)导入其他类型的类型,如源自活动或可序列化的类型.
3)他们有方法与其他类的参数(其中一些可能需要保留).
但是,我没有特别要求保留这些实用程序类的地方.