android反编译还原找不到逻辑.帮还原下
package com.test;import android.content.Context;
import android.os.Handler;
import android.os.Message;
public abstract class Action
{
protected Context context;
private int errorCode = 2;
private int loadingCode = 0;
private Logger log = Logger.getLogger(getClass());
private int successCode = 1;
public Action(Context paramContext, int paramInt1, int paramInt2, int paramInt3)
{
this.context = paramContext;
this.loadingCode = paramInt1;
this.successCode = paramInt2;
this.errorCode = paramInt3;
}
protected abstract Message getMsgFromCache(Params paramParams)
throws Exception;
protected abstract Message getMsgFromMasterServer(Params paramParams)
throws Exception;
protected abstract Message getMsgFromSlaveServer(Params paramParams)
throws Exception;
protected abstract Message parser(String paramString)
throws Exception;
public Message run(Params paramParams)
{
try
{
Message localMessage3 = getMsgFromMasterServer(paramParams);
return localMessage3;
}
catch (Exception localException1)
{
localException1.printStackTrace();
try
{
Message localMessage2 = getMsgFromSlaveServer(paramParams);
return localMessage2;
}
catch (Exception localException2)
{
localException2.printStackTrace();
try
{
Message localMessage1 = getMsgFromCache(paramParams);
return localMessage1;
}
catch (Exception localException3)
{
localException3.printStackTrace();
}
}
}
return null;
}
public void run(final Handler paramHandler, final Params paramParams)
{
new Thread()
{
public void run()
{
paramHandler.sendEmptyMessage(Action.this.loadingCode);
try
{
Message localMessage5 = Action.this.getMsgFromMasterServer(paramParams);
if (localMessage5 != null)
{
paramHandler.sendMessage(localMessage5);
return;
}
}
catch (Exception localException1)
{
Action.this.log.e(localException1);
try
{
Message localMessage4 = Action.this.getMsgFromSlaveServer(paramParams);
localObject2 = localMessage4;
if (localObject2 != null)
{
paramHandler.sendMessage((Message)localObject2);
return;
}
}
catch (Exception localException2)
{
while (true)
{
Object localObject2;
Action.this.log.e(localException2);
try
{
Message localMessage3 = Action.this.getMsgFromCache(paramParams);
localObject2 = localMessage3;
}
catch (Exception localException3)
{
Action.this.log.e(localException3);
localObject2 = null;
}
}
}
}
finally
{
if (0 != 0)
paramHandler.sendMessage(null);
while (true)
{
throw localObject1;
Message localMessage2 = new Message();
localMessage2.what = Action.this.errorCode;
localMessage2.obj = "链接失败";
paramHandler.sendMessage(localMessage2);
return;
Message localMessage1 = new Message();
localMessage1.what = Action.this.errorCode;
localMessage1.obj = "链接失败";
paramHandler.sendMessage(localMessage1);
}
Message localMessage6 = new Message();
localMessage6.what = Action.this.errorCode;
localMessage6.obj = "链接失败";
paramHandler.sendMessage(localMessage6);
}
}
}
.start();
}
}
就是下面的run方法不知道怎么组合 反编译 android run --------------------编程问答-------------------- 这个逻辑已经相对比较清晰了。while(true)大部分对应的是else。
想把逻辑完全还原需要多试几次。 --------------------编程问答-------------------- 我知道。就是return位置。以及finally后面混乱。还多出一个localobject1?求帮忙啊 --------------------编程问答-------------------- 学习了,顶一下! --------------------编程问答-------------------- 放弃吧,反编译的,如果是乱的就算了,还不如自己再写个
只会让你更混乱,表示曾今易做图过... --------------------编程问答-------------------- 其实,你能猜得到代码还原之后的样子的 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 猜到了。。。但是还有各种问题存在。现在就是没有处理好error的。太混乱啦。不是自己不去写啊。主要是想用他这个结构感觉挺好的。之前写了。。。感觉没人家写的好。才拿来借鉴。各位帮帮啦
补充:移动开发 , Android