阅读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个android游戏反编译成可读的源码。

工具介绍:

1、apktool 这个工具用来解压xml文件

到http://code.google.com/p/android-apktool/downloads/list下载前两个文件,并解压到Android SDK的platform tools 目录。

在命令行里的用法:

apktool d 你的apk.apk 解压到指定文件夹,例如:

apktool dF:\学习\android\反编译\愤怒的小鸟.apkF:\学习\android\反编译\愤怒的小鸟

<?xmlversion="1.0"encoding="utf-8"?>
<manifestandroid:versionCode="1620"android:versionName="1.6.2"android:installLocation="auto" package="com.rovio.angrybirds"
xmlns:android="http://schemas.android.com/apk/res/android">
<applicationandroid:label="@string/app_name"android:icon="@drawable/icon"android:debuggable="false">
<activityandroid: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>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:name="com.burstly.lib.component.networkcomponent.burstly.VideoPlayerActivity"android:configChanges="keyboard|keyboardHidden|orientation"/>
<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:name="com.burstly.lib.component.networkcomponent.burstly.BurstlyFullscreenActivity"android:configChanges="keyboard|keyboardHidden|orientation"/>
<activityandroid:name="com.google.ads.AdActivity"android:configChanges="keyboard|keyboardHidden|orientation"/>
<providerandroid:name="com.greystripe.android.sdk.AdContentProvider"android:exported="false"android:multiprocess="true"android:authorities="com.rovio.ka3d.AdContentProvider"/>
<activityandroid:name="com.greystripe.android.sdk.AdView"android:configChanges="keyboard|keyboardHidden|orientation">
<intent-filter>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activityandroid:name="com.millennialmedia.android.MMAdViewOverlayActivity"/>
<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:name="com.millennialmedia.android.VideoPlayer"android:configChanges="keyboard|keyboardHidden|orientation"/>
<supports-screensandroid:anyDensity="true"android:smallScreens="true"android:normalScreens="true"android:largeScreens="true"/>
<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen"android:name="com.burstly.lib.component.networkcomponent.jumptap.JumptapActivity"android:configChanges="keyboard|keyboardHidden|orientation"/>
</application>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-sdkandroid: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 目录。

用法:

dex2jarF:\学习\android\反编译\classes.dex 这里是把dex文件反编译成jar文件,默认会在该目录生成一个classes_dex2jar.jar文件。

3、xjad 这个工具是将jar文件反编译成java文件

这是一个可视化的将jar文件反编译成java文件的工具,直接反编译jar会自动生成一个包含java文件的文件夹。

愤怒的小鸟源码下载:

http://dl.dbank.com/c0olagap0k

更多相关文章

  1. Android 通过命令将文件导出
  2. Android开发8――利用pull解析器读写XML文件
  3. Android自动测试之monkeyrunner工具
  4. Android 生成android的keystore文件
  5. Android 使用webview 打开浏览ppt文件
  6. 有关android中加载MP4,3gp等视频文件,无法播放问题的解决
  7. Android SQLite相关框架工具
  8. Android的文件监控系统不可靠
  9. Android Studio 使用API29无法向手机存储写文件问题

随机推荐

  1. android image cache 图片缓存 异步 下载
  2. 个人修改机智云apk之出现couldn't find "
  3. android 缩放图片与内存溢出
  4. android(javaOO)遇到的小问题
  5. Android退出应用最优雅的方式
  6. android下进行opencv开发的配置
  7. Android再按一次后退键退出
  8. RxJava操作符
  9. 使用Android-PullToRefresh实现下拉刷新
  10. Android(安卓)N(SDK7.0)新特性