Apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中一个比较实用的技巧吧,当我们对别人开发好的应用感兴趣时,我们就可以通过这种技术手段将别人打包好的apk进行反编译,继而可以看到我们感兴趣的内容,反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。
使用环境Windows
一,工具
1.1 、工具介绍
apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar:作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui:作用:查看APK中classes.dex转化成出的jar文件,即源码文件
1.2、工具下载
官方最新版本下载地址:
apktool(google code)
dex2jar(google code)
CSDN加强版下载,支持分包的classes.dex转化成jar文件:
https://download.csdn.net/download/qq_35781317/11179271
二、使用
win+R 打开 cmd 命令行,通过 cd 命令切换到apktool所在的文件夹,通过apktool命令反编译apk。
运行反编译效果:
反编译之后的目录如下:
可以看到,反编译之后生成的都是smali代码,而我对smali代码不熟悉,所以用dex2jar将应用中的dex转换成jar包,然后用jd-gui打开jar阅读代码,下面我们用dex2jar生成jar包。
将apk后缀名改为zip并解压:
可以看到,apk采用了分包技术,而用dex2jar并不能将所有的dex合并成一个jar包,所以这里我们采用了dex2jar的plus版本,输入命令如下:
用jd-gui打开classes.jar,如下: