虽然网上有很多的教程了,但是还是想自己总结一下,方便自己以后查看,如果能帮助到别人也不错!
1.apktool作用是反编译apk后可以查看res布局和资源文件
2.dex2jar作用是将cla文件编译成为了jar文件
3.jd_jui作用是查看jar文件中java源码的
1.使用前的准备
1.1下载 a
下载地址:https://ibotpeaches.github.io/Apktool/
下载完成后将a重新命名为a
1.2下载文件 a
下载地址:
1.3下载文件 dex2jar csdn有下载
1.4下载文件 jd_jui csdn有下载
1.5准备一个用于测试的apk文件
2.windows下使用步骤
2.1将a和a复制到C:\Windows文件夹下面
2.2使用cmd进入DOS窗口,然后切换到路径,到需要反编译的apk文件夹下,
再然后使用apktool官方提供的2个命令:第一个是apktool d 需要反编译app的名称.apk
输入第一个命令后回车,你会发现测试的apk文件夹下多了一个文件夹,和你反编译的app名称一致的文件夹,打开后发现里面有res文件夹,可以查看资源文件和布局文件
接这输入第二个命令 apktood b 需要反编译app的名称[注意没有后缀.apk]
输入第二个命令后回车,你会发现上一步生成的新的文件夹下多了build文件夹,找到cla文件
2.3解压下载好的dex2jar包,解压后打开如下图所示
将上一步中的cla文件复制到dex2jar解压后的目录中
然后将DOS窗口切换到当前dex2jar解压后的文件夹路径
接着使用命令 jar-dex2jar.bat cla 回车后会生成 cla文件
2.5解压jd-gui,然后点击jd-gui.exe执行,打开后在file中openfile中打开上一步中cla文件 就可以看见apk中的java的源码了
这样就完成了apk的反编译,可以查询项目的源码,当然绝大部分的app都是混淆代码了的,但是通过反编译可以学习到别人的程序使用到的优秀的框架,还有一些编码的思路。