在Android学习与开发的路上,我们总会遇到一些好看的界面与设计,就像旅途中遇到美丽的风景想拍下来,而作为开发者你想看看别人的界面是怎么做的,这时候反编译就排上用场了。
古语曰:工欲善其事必先利其器。首先我们需要反编译的三个软件:apktool:资源文件获取;dex2jar:源码文件获取;jd-gui:源码查看。附上下载地址:反编译全套 密码: frv8。
反编译流程:
1.apk反编译得到程序的源代码、资源文件
apktool解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,现在我们用weixin做实验(这里仅是示范作用),将需要反编译的weixin_800.apk文件放到该目录下,打开命令行界面(运行-CMD),定位到apktool文件夹,如图1所示,输入以下命令:apktool d [-s] -f weixin_800.apk -o weixin; 其中weixin_800.apk是你要反编译的apk文件名,weixin是反编译后存放的目录文件,此文件不需要新建,反编译后会自动生成,如图2所示。
打开weixin文件夹,res就是我们要找的资源文件,目录结构和我们平时建的项目很像是吧。
这时候打开D:\apktool\weixin\res\anim下a.xml看下(如图4),xml文件轻而易举的获取了
2.Apk反编译得到Java源代码
解压dex2jar和jd-gui文件;将要反编译的APK后缀名改为.zip,并解压,得到其中的classes.dex文件,将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15文件夹内,如图5所示
在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,效果如图6所示
这个时候会发现dex2jar-0.0.9.15文件夹多了一个classes_dex2jar.jar文件,如图7所示。
现在就可以用工具jd-gui.exe打开这个jar了,看看图8的效果吧
通过反编译,你可以知道别人用到了哪些库文件,它的代码大体是如何编写的等等。有了思路就可以自己尝试了。
参考:http://blog.csdn.net/vipzjyno1/article/details/21039349
http://blog.csdn.net/poping888/article/details/45335857
本文章是在别人的基础上增加自己的理解,如有侵权的地方,请联系本人修改。文章有什么不足的地方,欢迎大家指正。