学习android的朋友肯定有一种好奇,如何查看应用商店下载的apk的源码。
下面介绍一组强大的工具(本人已解压腾讯游戏雷霆战机为例):
1.解压缩apk包:
将apk文件直接复制到电脑磁盘,用压缩软件直接右键解压,本来用的好压软件(成功解压)。
解压apk文件后,可以发现几个重要的目录和文件src, res, AndroidManifest.xml,classes.dex。其中res中layout存放的是我们的布局文件;AndroidManifest.xml,则是平时我们配置应用的配置文件,只是打开的时候出现乱码,故此时需要反编译。
classes.dex是java源文件经过编译后的.class文件的总合成。
下面分别介绍几个文件或文件夹的反编译方法。
2.反编译dex文件:
使用工具 dex2jar 去这个网站下载最新版并解压到一个目录,并这这个目录加到系统PATH变量中,就可以直接用:
dex2jar.bat 或 dex2jar.sh 或d2j-dex2jar.bat(最新版用法)转换dex文件了。
命令如下:dex2jar.bat classes.dex,将在同目录得到普通jar包:classes.dex.dex2jar.jar 就可以用处理普通jar包的方法来反编译这个jar包;
3.反编译jar包:
得到jar包后,下载自已喜欢的反编译工具。我推荐大家用JD-GUI ,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便;
打开解压的res\layout目录,有很多xml文件,用 AXMLPrinter2.jar将这个jar包放在任意目录,在确保你已经装了jdk的情况下,运行这个命令可反编译xml文件。命令:java
-jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest_decode.xml,打开AndroidManifest_decode.xml,你会发现一切正常!