为什么minifyEnabled会显示我的大部分代码?

时间:2016-09-04 08:16:49

标签: java android obfuscation minify android-proguard

我的ProGuard中有这门课程。

-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,我就可以阅读课程b的代码。该代码不应该被混淆吗?我如何强制它被混淆?

这是在类b内显示的内容,应该进行模糊处理。

class b implements a {
    b() {
    }

    public void doSomething(int var1, int var2) {
        int var3 = var1 + var2;
    }
}

1 个答案:

答案 0 :(得分:0)

ProGuard的混淆功能仅限于重命名类/方法/字段名称。如果您需要更复杂的混淆(对实际代码/指令进行模糊处理),您应该查看ProGuard的商业变体DexGuard