最近在做androidSDK对接的一些工作,以前并没有搞过安卓,所以对接的过程中也遇到了好多麻烦,就想到了APK反编译,参考一下其他游戏是怎么对接的,在这里也简单整理一下对接的方法。 
首先来说一下反编译需要的工具: 
apktool 反编译apk包的:http://apktool.shoujifans.com/Download/或者http://ibotpeaches.github.io/Apktool/ 
dex2jar把代码解压成jar包:http://code.google.com/p/dex2jar/ 
jd-gui 查看上一步解压出来的jar包:http://jd.benow.ca/

1、apktool的使用其实在上面的已经有使用教程了,这里我就简单说一下。图中第一个是必须要下载的,其他三个根据系统选择一个下载 
这里写图片描述 
下载之后解压到一个文件夹,进入cmd,用cd命令转到该文件夹,输入apktool,如果出现一些帮助信息就说明可以正常使用了。 
解压命令: 
(1)apktool d -s XXX.apk XXX —-不反编译classes.dex文件,这面是源码文件,如果不加-s会被编译 成.smil文件,对我们是无用的,如果想查看源码 ,则需要把classes.dex文件保留下来。 
(2)apktool d -r XXX.apk XXX —-不反编译resources.arsc文件,res文件夹下的文件会有乱码。 
(3)apktool d -d XXX.apk XXX —-在反编译的时候会输出信息。 
(4)apktool d -f XXX.apk XXX —-如果目标目录存在,会强制删除目标目录。 
(5)apktool if XXX.apk —-这是安装搭建框架,该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件,具体参考http://apktool.shoujifans.com/2014/07/2.html

打包命令: 
(1)apktool b -f XXX —-从文件夹XXX 重建APK,输出到XXX/dist/XXX.apk ,不会检测文件是否有改变。 
(2)apktool b XXX —-从文件夹XXX 重建APK,输出到XXX/dist/XXX.apk ,会检测文件是否有改变。

2、dex2jar的使用,这个其实很简单: 
(1)把APK安装包中的classes.dex放到某个目录下,如:dex2jar的文件夹 
(2)在cmd中进入dex2jar.bat所在目录,执行命令:dex2jar.bat classes.dex,命令生成classes_dex2jar.jar文件。

3、jd-gui,这个就点击file选择刚刚解压的jar包就可以查看了,可能有些jar是被混淆过的,看起来命名会有些怪,反编译后的java源码匿名内部类.boolean 变量,还有for()循环语句,switch case语句,这几个是有些问题的,要调整的,其他的都还好,类似R.id.xxbtn,这个你就要将那些数字和R文件中对应起来 : 
这里写图片描述

注意:反编译只是用来参考学习其他项目,不是用来破解用的。 

版权声明:本文为diaofengqiang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/diaofengqiang/p/5374739.html