二 错误代码还原规则

if…else 语句:

反编译代码

 

if (paramBoolean)        paramTextView.setTextColor(-16727809);       while (true)       {         return;         paramTextView.setTextColor(-1315861);       }

 

 还原后

 

      if (paramBoolean)         {           paramTextView.setTextColor(-16727809);         }         else         {            paramTextView.setTextColor(-1315861);         }  

 

会把if ..esle 反编译成 if …while(true)结构.

 

反编译代码

 

 if (paramInt1 != 1)        break label185;      if (this.countChild_1 == null)      {        this.countChild_1 = new PokerCountChild(this.mContext);        this.countChild_1 = new PokerCountChild(this.mContext);        this.countChild_1.setPosition((int)(0.83D * BaseGameActivity.screenWidth

 

 - this.countChild_1.getWidth()), (int)(0.2D * BaseGameActivity.screenHeight));        this.countChild_1.setCount(paramInt2);        addOneChild(this.countChild_1);        if (paramInt2 == 0)          this.countChild_1.setAlpha(0);      }      this.countChild_1.setCount(paramInt2);    }    label185:     do      return;    while (paramInt1 != 2);    if (this.countChild_2 == null)    {      this.countChild_2 = new PokerCountChild(this.mContext);      this.countChild_2 = new PokerCountChild(this.mContext);      this.countChild_2.setPosition((int)(0.17D * BaseGameActivity.screenWidth),

 

 (int)(0.2D * BaseGameActivity.screenHeight));      this.countChild_2.setCount(paramInt2);      addOneChild(this.countChild_2);      if (paramInt2 == 0)        this.countChild_2.setAlpha(0);    }    this.countChild_2.setCount(paramInt2);

 

还原

 

 if(i == 1)            {                if(countChild_1 == null)                {                    countChild_1 = new PokerCountChild(mContext);                    countChild_1 = new PokerCountChild(mContext);                    countChild_1.setPosition((int)(0.83D * 

 

(double)BaseGameActivity.screenWidth - (double)countChild_1.getWidth()), 

 

(int)(0.2D * (double)BaseGameActivity.screenHeight));                    countChild_1.setCount(j);                    addOneChild(countChild_1);                    if(j == 0)                        countChild_1.setAlpha(0);                }                countChild_1.setCount(j);            } else            if(i == 2)            {                if(countChild_2 == null)                {                    countChild_2 = new PokerCountChild(mContext);                    countChild_2 = new PokerCountChild(mContext);                    countChild_2.setPosition((int)(0.17D * 

 

(double)BaseGameActivity.screenWidth), (int)(0.2D *

 

 (double)BaseGameActivity.screenHeight));                    countChild_2.setCount(j);                    addOneChild(countChild_2);                    if(j == 0)                        countChild_2.setAlpha(0);                }                countChild_2.setCount(j);                return;            }会将语句倒序,出现break label结构

 

 

反编译代码
 
jd-gui有时会将whilei语句翻译成if,此处要将if改成while

 

switch语句

反编译代码

 

   switch (this.mBand)    {     default:     case 0:     case 1:     case 2:    }    while (true)    {      return;      this.mBand.setText("FM1");      continue;      this.mBand.setText("FM2");      continue;      this.mBand.setText("AM");    }还原

 

switch (mBand)    {     case 0:      mBand.setText("FM1");      break;     case 1:       mBand.setText("FM2");       break;     case 2:       mBand.setText("AM");       break;     default:    }

switch规则就是一个continue对应一个case.要注意是是要外层的continue才算数,在if里的continue不算

 

更多相关文章

  1. 第一行代码 Android
  2. android对话框代码中设置背景为透明
  3. android取得手机屏幕大小DisplayMetrics的核心代码
  4. Android代码分析
  5. Android源代码在线浏览网站列表
  6. android代码编写布局和控件
  7. Android 隔一段时间重复执行某代码
  8. [CSDN]Android系统进程Zygote启动过程的源代码分析

随机推荐

  1. Android(安卓)Scroller、VelocityTracker
  2. Android(安卓)Studio插件整理
  3. android的休眠和唤醒流程
  4. 解决TextView中MaxLines与ellipsize=end
  5. 打包下载Android源码
  6. 如何将Eclipse中的项目迁移到Android(安
  7. Android应用配置签名
  8. android 自定义相机 取矩形内内容 注意事
  9. 【Android(安卓)电量优化】电量优化 ( Ba
  10. 如何用命令(cmd)创建开启AVD