如何解决Proguard 方法优化
当使用 Proguard 时,一些方法体被替换为:
public void someMethod(int paramInt1,int paramInt2,boolean paramBoolean,String paramString){
// Byte code:
// 0: aload_1
// 1: invokeinterface getItemId : ()I
// 6: istore_2
// 7: iload_2
// 8: ldc_w 2131296320
// 11: if_icmpne -> 31
// 14: aload_0
// 15: new android/content/Intent
// 18: dup
// 19: aload_0
// 20: ldc_w com/example/turtle/Activity
// 23: invokespecial <init> : (Landroid/content/Context;Ljava/lang/Class;)V
// 26: invokevirtual startActivity : (Landroid/content/Intent;)V
// 29: iconst_1
// 30: ireturn
// 31: iload_2
// 32: ldc_w 2131296310
// 35: if_icmpne -> 95
// 38: aload_0
// 39: getfield O : Landroid/view/View;
// 42: ldc_w 'Layout Changed'
// ...
}
虽然他们中的大多数都有这样的:
public void anotherMethod(){
this.W.setColor(i);
this.X.setTextColor(i);
this.Y.setColor(i);
this.Z.setColor(i);
b.c.a.x0.a a1 = new b.c.a.x0.a();
a1.setDuration(100);
a.u.m.a((ViewGroup)this.a0,(a.u.i)a1);
if (this.U) {
this.a0.removeView((View)this.h0);
linearLayout = this.a0;
a2 = this.g0;
} else {
this.a0.removeView((View)this.b0);
this.a0.removeView((View)this.d0);
linearLayout = this.a0;
a2 = this.e0;
}
}
为什么它们不像第一个示例代码?有没有办法强制 Proguard 像第一个示例代码中那样优化方法?
我用dex2jar反编译,jd-gui查看。
感谢任何见解...
解决方法
ProGuard 在这两种方法之间的作用没有区别。
不同之处在于您用于读取 ProGuard 输出的工具:它可以和不能反编译哪些字节码以使其看起来像普通的 Java 源代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。