读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个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

Android 的反编译 (附愤怒的小鸟源码下载)相关推荐

  1. Jar包反编译后修改源码再编译

    Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...

  2. ASP.NET 3.5 新特性开发向导实践(附项目源码下载)

    ASP.NET 3.5 新特性开发向导实践(附项目源码下载) 本篇文章将演示ASP.NET 3.5 部分新功能.新特性,包括LINQ.ListView控件.LinqDataSource.DataPag ...

  3. echarts圆柱形柱状图 源码_jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】...

    jQuery插件echarts实现的多柱子柱状图效果示例[附demo源码下载] 发布时间:2020-09-08 07:46:02 来源:脚本之家 阅读:74 作者:翱翔天地 本文实例讲述了jQuery ...

  4. android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码

    下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...

  5. android 6.0.1原生系统源码下载以及源码编译----framework修改

    1.源码下载前参数配置 1️⃣配置usb所需 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf buil ...

  6. android手势密码源码,Android自定义UI手势密码改进版源码下载

    在之前文章的铺垫下,再为大家分享一篇:Android手势密码,附源码下载,不要错过. 先看第一张图片的布局文件 activity_main.xml xmlns:tools="http://s ...

  7. Ubuntu下源码编译VirtualBox一 —— 源码下载

    VirtualBox想必大家都不陌生,做Linux开发的尤其是嵌入式Linux开发的人应该基本都知道或玩过VMware和VirtualBox.但通常都是为了在Windows电脑上能够使用Linux环境 ...

  8. so文件反汇编反编译到C源码

    动态库*.so在linux下用c和c++编程时经常会碰到,下面我来介绍一下怎么把so文件反编译成C语言 so文件反汇编.反编译主要借助工具IDA Pro,下面简单介绍其使用步骤. 打开IDA Pro: ...

  9. PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译

    ​ 在这里分享一些技巧和经验给大家.辛苦撰文分享,转载或引用请保留本文作者信息及文章链接. 作者的环境: win7+python3.5(anaconda3) 理论上,win7及以上的系统和python ...

最新文章

  1. 如何区分两列中不同数据_如何在VESTA中区分不同表面层的原子
  2. XDP/eBPF — 基于 eBPF 的 Linux Kernel 可观测性
  3. rs.Open SQL,Conn,adOpenStatic,adLockOptimistic
  4. 音频处理十:( mp3 与wav 格式的相互转换)
  5. MySQL备份与恢复——基于OUTFILE /LOAD DATA 逻辑备份恢复
  6. 6张图为你分析Kafka Producer 消息缓存模型
  7. MTK 驱动(78)----MTK 平台查看eMMC和DDR的工作频率
  8. linux搭建博客-day 7安装Nginx
  9. HMM:隐马尔可夫模型 - 表示
  10. 10个提高工作效率的超实用工具
  11. QT之隐藏任务栏图标
  12. 夜神模拟器怎么安装使用教程!
  13. vue 调起浏览器打印
  14. odbc An unsupported operation was attempted
  15. 抖音算法推荐机制详解
  16. MySQL报错 SELECT list is not in GROUP BY clause and contains nonaggregated column...
  17. Android支付接入
  18. 订单可视化(智能制造、流程再造、企业信息化) 第六篇 万事开头难,第一阶段的得与失
  19. iperf3 安装遇到 error while loading shared libraries: libiperf.so.0
  20. 在做嵌入式开发的时候难免手抖,IAR软件窗口恢复操作

热门文章

  1. 数据结构修炼第二篇:顺序表和链表
  2. L298N电机驱动使用方法
  3. 第43届ACM亚洲区域赛(青岛)总结
  4. P2728 纺车的轮子 Spinning Wheels(枚举)
  5. 数据中心网络规划设计,数据中心设计规范解读
  6. 计算机维护与管理知识,关于计算机硬件的日常管理与维护
  7. [YOLOv7]基于YOLOv7的食物卡路里检测系统(源码&部署教程&数据集)
  8. 收藏!进口元器件的完整型号说明
  9. 五种常见的开源路由器第三方固件测评
  10. 医械研发中的验证与确认