总结:
1,apk就是一个压缩包
2,反编译apk就是反编译dalvik(Dalvik是Google公司自己设计用于Android平台的Java虚拟机)二进制文件dex和压缩的xml文件
3,常用的方法,apktool+dex2jar+xjad
首先了解一下,源文件到apk的变化,看图
apk解压缩后会有如下文件
首先,通过apktool去解压apk,得到可视的xml文件和smali文件
1,去google搜索apktool,下载前两个包
2,解压缩两个包,把需要的两个工具apktool.bat和apktool.jar拷到android-sdk-windows\platform-tools下
3,用apktool解压缩apk到新文件夹
4,普通解压和apktool解压后文件的区别
普通解压
apktool解压
此时xml文件已经可见,但smali文件夹下的smali文件需进一步反编译才能得到java类文件
重大发现:此种方法解压后不仅xml可见,困扰我的png9图片的问题也解决了。如果是普通解压,
解压后的png9图片都要自己重新加黑边(不小的工作量哦)
然后,通过dex2jar+xjad继续反编译,得到可视化的java类文件
1,google下载dex2jar包,解压缩后的工具都拷到android-sdk-windows\platform-tools下
2,需要普通解压的classes.dex文件,和如下命令把dex文件转成jar包
3,解压缩jar包,得到class文件
4,根据实际操作xjad工具解压jar包未成功,此方法弃用(win7下未成功)
5,终于搜得方法,好吧,此工具太好用了Java反编译器 Java Decompiler,对于查看class文件超级方便
官网下载 http://jd.benow.ca/
所用到的工具下载地址
http://download.csdn.net/detail/superjunjin/8538357
另外一款绿色的,集成了以上功能的反编译工具
http://download.csdn.net/detail/superjunjin/8538393