apk文件实际上是一个zip压缩包,将扩展名改为zip后可以直接解压。但是解压之后无法查看源码与资源文件,因为都是加密的。如果要查看源码与资源文件,就需要反编译。
apk源码反编译工具有不少,下面介绍的是jadx。
jadx是一款使用java语言开发并且开源的apk反编译工具。其github地址为:https://github.com/skylot/jadx,下载地址为:https://github.com/skylot/jadx/releases。目前最新版本为:1.2.0。
jadx支持常见的apk、dex、jar、class、smali、zip、aar、arsc格式文件,而且还支持jadx格式的存储和打开。jadx可以将apk文件同时反编译为源码和资源,非常方便。
jadx支持的反编译方式有2种:图形界面方式和命令行方式。
图形界面方式:
双击安装目录下的:bin/jadx-gui.bat或者lib/jadx-gui-1.2.0.jar。
命令行方式:
在命令行中cd到bin目录,然后执行命令:
jadx -d out -j 2 app.apk
参数说明:
-d参数表示将反编译的文件保存到哪个目录,此处为out目录。
-j参数表示使用几个线程,此处为2个。线程数越多反编译速度越快,同时出现OOM等错误的概率也越大。所以推荐使用1或2。
最后的app.apk参数表示需要反编译的文件路径。