您的位置:首页 > 移动开发 > Android开发

Android符号表转换

2016-05-12 17:46 555 查看
   Android中为了保护我们自己辛苦劳作,我们常常会把代码混淆,但是混淆后如果程序出现问题,解崩溃比较麻烦,需要将混淆的log进行解混淆。

  首先我们在混淆代码的时候,会生成一个mapping文件,它是混淆前和混淆后代码的对应表,借助Android的retrace.jar我们就可将解混淆。

 在adb shell 命令下可以使用命令很容易解混淆,但是目前,我需要在Windows、Linux服务上在代码中能够上传符号表在进行解混淆,可以使用这个adb shell命令并不能使用,最后将retrace.jar放在程序中(web应用)调用它的代码可以顺利解混淆。再次分享。如果想深入研究可以看看retrace.jar源码.

public static void ReTrace(String mapFile,String crashFile,String outFile) {
try {
File file = new File(outFile);
FileOutputStream fis = new FileOutputStream(file, false);
PrintStream out = new PrintStream(fis);
System.setOut(out);
proguard.retrace.ReTrace localReTrace = new proguard.retrace.ReTrace(proguard.retrace.ReTrace.STACK_TRACE_EXPRESSION,
true, new File(mapFile), new File(
crashFile));
localReTrace.execute();
out.close();
fis.close();
} catch (IOException e) {
System.out.println("转码失败");
e.printStackTrace();
}
}
          
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android