apk反编译学习(1)

反编译是学习Android的一种手段,抱着学习的心态学习别人的优秀代码,反编译的过程会加深自身对Android理解。


第一步:下载apktool和dex2jar

apktool包含有aapt.exe、apktool.bat、apktool.jar

dex2jar有多个版本,最好下载最新的,因为dex2jar版本过低的话反编译的时候就会出错。(网上有很多资源,我就不贴资源链接了)

第二步:将apk的dex文件反编译成jar文件

将apk解压找到classes.dex,把classes.dex复制到dex2jar目录下

apk反编译学习(1)_第1张图片

我是在window的环境下,打开cmd然后cd到dex2jar目录,执行命令:dex2jar.bat classes.dex

你会看到目录下多了个classes_dex2jar.jar文件,这个就是编译过后的代码包了

然后使用jd-gui.exe打开jar文件就可以看到反编译过的代码了

apk反编译学习(1)_第2张图片
apk反编译学习(1)_第3张图片

反编译出来的代码并不会像我们自己写的代码那么好明了好看,虽然也有着相应的规律,但更多的是要靠自身对代码的理解

apk反编译学习(1)_第4张图片

如果出现这种情况,我一般是直接去看smali文件

第三步:使用apktool反编译apk

cd到apktool目录执行命令:apktool.bat d -f apk或apk路径 -o 目标文件夹

apk反编译学习(1)_第5张图片
apk反编译学习(1)_第6张图片

assets、res和AndroidManifest.xml对应安卓过程,apktool.yml里面是apk的sdk、版本信息等,所有的代码都在smali目录

apk反编译学习(1)_第7张图片
apk反编译学习(1)_第8张图片

如果觉得这些操作太麻烦的话可以去下载ApkIDE改之理,这个是由大神七少月写的工具,效果很赞。

感兴趣的可以去看看,有详细的内容教程,这里就不再啰嗦了。

你可能感兴趣的:(apk反编译学习(1))