【发布时间】:2017-01-11 21:33:03
【问题描述】:
我的 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;
}
}
【问题讨论】:
-
难道
android:debuggable="true"是在你的manifest文件中设置的? -
您期待什么?据我所知,类代码仍然可以使用 proguard 访问。所做的是重命名所有变量/类/方法,并删除调试数据,因此人们无法调试您的代码。不过,代码就在那里。
标签: java android obfuscation minify android-proguard