ProGuard不会对Object的方法

时间:2016-07-20 18:59:12

标签: android proguard obfuscation

为了了解ProGuard的工作原理,我创建了很少的Android示例,为其添加了一些jar,编写了几行代码,启用了ProGuard等等

我的ProGuard选项是下一个

-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-optimizationpasses 5
-optimizations !class/unboxing/enum

因此,在将我的APK名称反转为所有Object的方法后,例如toString()hashCode()equals()保持不变。除了Object的方法之外,Externalizable方法的名称仍然是

所以你知道它为什么会发生,它可以修复吗?

1 个答案:

答案 0 :(得分:4)

ProGuard不能混淆那些不属于您的类的方法(其中"您的#34;包括您编译的JAR / AAR)。

您从框架提供的类重写的任何内容都需要保持不变。否则,框架无法调用这些方法,因为ProGuard并未在约15亿台Android设备上混淆固件安装的框架类。