阅读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个android游戏反编译成可读的源码。
工具介绍:
1、apktool 这个工具用来解压xml文件
到http://code.google.com/p/android-apktool/downloads/list 下载前两个文件,并解压到Android SDK的platform tools 目录。
在命令行里的用法:
apktool d 你的apk.apk 解压到指定文件夹,例如:
apktool d F:\学习\android\反编译\愤怒的小鸟.apk F:\学习\android\反编译\愤怒的小鸟
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="1620" android:versionName="1.6.2" android:installLocation="auto" package="com.rovio.angrybirds"
xmlns:andro />
</manifest>
<manifest android:versionCode="1620" android:versionName="1.6.2" android:installLocation="auto" package="com.rovio.angrybirds"
xmlns:andro />
</manifest>
这就是我们加压后的AndroidManifest文件,我们看到愤怒的小鸟总共有8个activity
2、dex2jar 这个工具是将dex文件反编译成jar文件
到http://code.google.com/p/dex2jar/downloads/list下载这个工具,并将所有文件和文件夹加压到并Android SDK的platform tools 目录。
用法:
dex2jar F:\学习\android\反编译\classes.dex 这里是把dex文件反编译成jar文件,默认会在该目录生成一个classes_dex2jar.jar文件。
3、xjad 这个工具是将jar文件反编译成java文件
这是一个可视化的将jar文件反编译成java文件的工具,直接反编译jar会自动生成一个包含java文件的文件夹。
愤怒的小鸟源码下载:
http://dl.dbank.com/c0olagap0k