我的原始代码是:
private String hello;
private int i = 0;
public void test() {
if (i == 0) {
hello = "asdas";
} else {
hello = "asasvfasfas";
}
}
使用proguard进行模糊处理后:
private String a;
private int c = 0;
public void a()
{
if (this.c == 0);
for (this.a = "asdas"; ; this.a = "asasvfasfas")
return;
}
在项目属性中:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
我的proguard-project.txt文件为空,所以我猜它应该使用默认的配置文件:proguard-android.txt。
为什么表现得像这样?如何防止这种代码优化?请帮忙。
答案 0 :(得分:2)
因为您的代码只是您输入的代码,我认为,您的代码将很容易优化到此:
private String hello;
public void test() {
hello = "asdas";
}
Proguard只是不删除原始但无法访问的源代码行,只是将它们放入无法访问的地方。它将您的代码转换为等效但不那么人性化的格式。
因此,生成的代码与您的代码一样,只是混淆了。如果您不喜欢它,请不要使用混淆器。