Android反编译APK
一、前言
我们在进行Android开发的时候,经常会和各种APP打交道,有些时候,我们看见了一些值得我们学习和借鉴的界面以及方法,可是不知道怎么做,这个时候就可以利用反编译APK技术,来学习他人的代码,提升开发水平。
二、准备工具
1、工具:
1.1 dex2jar 将.dex文件转换成.jar文件
1.2 JD-GUI 获取java源码
1.3 apktool 获取.apk文件的资源(.xml文件、图片资源等)
2、工具下载
2.1 dex2jar
https://sourceforge.net/projects/dex2jar/
2.2 JD-GUI
这两个地址都可以下载,大家可以根据自己的系统选择要下载的版本
https://github.com/java-decompiler/jd-gui/releases

http://java-decompiler.github.io/

2.3 apltool
先下载apktool,然后还要下载运行脚本,运行脚本可在资源打包下载链接中获取
https://bitbucket.org/iBotPeaches/apktool/downloads/

三、开始工作
1、APK的解压缩
1.1、将预先准备好的APK安装包重命名为一个压缩包文件

1.2、将压缩包文件解压到当前文件夹

1.3、这里面的文件布局就和安卓开发的文件布局差不多,比如进入res中,就可以看见更多界面的布局,但是此时xml文件打开还是一堆乱码,不过我们可以得到图标文件


1.4、java代码被打包在.dex文件中

2、利用dex2jar获取.jar文件
2.1、将下载好的dex2jar压缩包解压

2.2、将解压后的APK文件夹中的.dex文件复制到dex2jar文件子目录下

2.3、win+R打开“运行”,输入“cmd”,打开命令行程序,cd进入dex2jar所在目录,然后输入"d2j-dex2jar.bat classes.dex"

2.4、就会在同目录下生成“classes.dex2jar.jar”文件

2.5、有了.jar文件后就可以用JD-GUI获取java源码啦
3、利用JD-GUI获取java源代码
3.1、将下载好的压缩包解压
3.2、双击运行“jd-gui.exe”

3.3、打开之前生成的.jar文件

3.4、然后就可以查看文件的源码啦,只不过这里面的类名有点奇怪,是一些a,b,c,d

4、利用apktool获取图片和XML
4.1、将下载的"apktook_2.6.0.jar"改名为“apktool.jar”

4.2、可以新建一个文件夹,将apktool.jar和apktool.bat以及.apk都放进去

4.3、打开命令行,切换到这个目录下,输入“apktool d base.apk”

4.4、开始漫长的等待,结束后就可以查看图片资源以及.xml文件,不再是乱码



问题与解决方法
1、不知道为什么,dex2jar下载不了,可能是网络延迟的问题,科学上网后可以解决
2、在win11系统下,dex2jar和apktool.jar的运行均无反应,后来在win10系统中成功运行
本文详细介绍了如何通过反编译技术学习Android应用的代码和资源。首先,使用dex2jar将.dex文件转为.jar,再借助JD-GUI查看Java源码。接着,利用apktool解包获取图片和XML资源。过程中可能会遇到网络问题或系统兼容性问题,但通常可以通过科学上网或更换系统解决。
6730

被折叠的 条评论
为什么被折叠?



