Android 的反编译 (附愤怒的小鸟源码下载)
2013-07-23 19:16
162 查看
读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个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:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name" android:icon="@drawable/icon" android:debuggable="false">
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:label="@string/app_name" android:name="com.rovio.ka3d.App" android:launchMode="singleTask" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.burstly.VideoPlayerActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.burstly.BurstlyFullscreenActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<provider android:name="com.greystripe.android.sdk.AdContentProvider" android:exported="false" android:multiprocess="true" android:authorities="com.rovio.ka3d.AdContentProvider" />
<activity android:name="com.greystripe.android.sdk.AdView" android:configChanges="keyboard|keyboardHidden|orientation">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.millennialmedia.android.MMAdViewOverlayActivity" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.millennialmedia.android.VideoPlayer" android:configChanges="keyboard|keyboardHidden|orientation" />
<supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.jumptap.JumptapActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />
</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
工具介绍:
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:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name" android:icon="@drawable/icon" android:debuggable="false">
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:label="@string/app_name" android:name="com.rovio.ka3d.App" android:launchMode="singleTask" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.burstly.VideoPlayerActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.burstly.BurstlyFullscreenActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
<provider android:name="com.greystripe.android.sdk.AdContentProvider" android:exported="false" android:multiprocess="true" android:authorities="com.rovio.ka3d.AdContentProvider" />
<activity android:name="com.greystripe.android.sdk.AdView" android:configChanges="keyboard|keyboardHidden|orientation">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.millennialmedia.android.MMAdViewOverlayActivity" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.millennialmedia.android.VideoPlayer" android:configChanges="keyboard|keyboardHidden|orientation" />
<supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />
<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:name="com.burstly.lib.component.networkcomponent.jumptap.JumptapActivity" android:configChanges="keyboard|keyboardHidden|orientation" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />
</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
相关文章推荐
- Android 的反编译 (附愤怒的小鸟源码下载)
- 愤怒的小鸟游戏完整版源码下载
- 【Android ApkTool 反编译获取源码】下载一个apk,然后获取源码
- Android: 向最强看齐, 反编译 愤怒的小鸟.apk
- Android开发进阶自定义控件之滑动开关实现方法【附demo源码下载】
- Android 音视频深入 三 MP4解码播放视频 (附源码下载)
- Windows下载Android源码
- Ubuntu 下载 Android源码
- Android———从GitHub上下载源码的方法【Written By KillerLegend】
- Android仿腾讯QQ实现滑动删除 附源码下载
- 魔方动态壁纸android源码下载
- android源码下载
- Android下载源码,编译等的官网说明网址
- android源码下载
- 【绝对给力】Android开发免豆资料(教程+工具+源码)下载地址汇总
- Ubuntu下Android源码以及内核下载与编译
- Android反编译之反编译源码
- (OK) 编译batman-adv.ko—成功—android—cm11源码—下载
- Android源码下载与编译之emulator与adb
- Android 音视频深入 十五 FFmpeg 推流mp4文件(附源码下载)