为什么 minifyEnabled 会显示我的大部分代码?
Why does minifyEnabled show most of my code?
我的 ProGuard 中有这个 class。
-keep,allowshrinking class com.MyClass {
public <methods>;
protected <methods>;
public static <methods>;
public <init>(...);
}
当我查看 AAR 时,它显示如下:
public class MyClass implements a {
private static final MyClass a = new MyClass();
private a b = new b();
private MyClass() {
}
public static MyClass getInstance() {
return a;
}
public void doSomething(int var1, int var2) {
this.b.doSomething(var1, var2);
}
}
如果我转到 private a b = new b();
并执行 Crtl + b
,我就能阅读 class b
的代码。该代码不应该被混淆吗?我如何强制它被混淆?
这是 class b
中显示的内容,应该进行混淆处理。
class b implements a {
b() {
}
public void doSomething(int var1, int var2) {
int var3 = var1 + var2;
}
}
ProGuard 的混淆功能仅限于 class/方法/字段名称的重命名。如果您需要更复杂的混淆(混淆实际代码/指令),您应该看看 DexGuard,ProGuard 的商业变体。
我的 ProGuard 中有这个 class。
-keep,allowshrinking class com.MyClass {
public <methods>;
protected <methods>;
public static <methods>;
public <init>(...);
}
当我查看 AAR 时,它显示如下:
public class MyClass implements a {
private static final MyClass a = new MyClass();
private a b = new b();
private MyClass() {
}
public static MyClass getInstance() {
return a;
}
public void doSomething(int var1, int var2) {
this.b.doSomething(var1, var2);
}
}
如果我转到 private a b = new b();
并执行 Crtl + b
,我就能阅读 class b
的代码。该代码不应该被混淆吗?我如何强制它被混淆?
这是 class b
中显示的内容,应该进行混淆处理。
class b implements a {
b() {
}
public void doSomething(int var1, int var2) {
int var3 = var1 + var2;
}
}
ProGuard 的混淆功能仅限于 class/方法/字段名称的重命名。如果您需要更复杂的混淆(混淆实际代码/指令),您应该看看 DexGuard,ProGuard 的商业变体。