今天,我们先说一下,获取Android自带的apk以及反编译它们来学习Android工程师是怎样写的,今天我们就以拿到Android自带的短信管理器的apk为例子

你可能有疑问,为什么要那么麻烦,从系统来拿,还要反编译,如果我们有网络的时候,当然可以直接去Android的源码那里下载啦(Android源码下载方法),但如果我们没有网络呢,那么我们就可以通过这样来研究Android自带的apk啦

首先,我们讲一下怎样获取那个apk,其实很简单的,作为一个Android的开发人员,肯定会用过模拟器的啦,我们获取apk就是通过模拟器来获取的

我们先打开一个模拟器。然后去到ddms里面去,我们就可以看到

有设置的apk啦,有打电话的apk啦,有照相的apk啦,所以大家如果没有网络的话,就可以在这里拿到系统的apk,然后反编译,就可以研究一下系统是怎样写的啦

系统自带的apk都在里面啦,那么我们的短信的apk在那里呢

短信的apk就是一个叫Mms的apk,大家可以找到它,然后把它导出来

接下来,我们还需要三个工具,分别是

dex2jar 它可以把apk里面的dex文件转换成jar文件,下载地址

jd-gui 它可以把jar文件或class文件反编译成java文件,下载地址

好啦,我们把三个工具下载好

然后解压出来

然后呢,我们把apktool1.5.2里面的那个jar文件复制到apktool-install-windows-r05-ibot这个目录下面

然后呢把那个之前导出的短信的apk也拷贝到这个目录下面,然后在dos下面进入到这个目录,然后输入命令apktool d Mms.apk

我们就可以看到,这个目录有一个叫Mms的目录了,这个就是Mms.apk这个apk里面的资源啦

接下来,我们就要用winrar这些压缩软件来打开那个Mms.apk啦,其实apk的压缩方式和jar的压缩方式是一样的,和rar的压缩方式也是一样的

我们要把classes.dex这个文件拷贝出来,然后放到dex2jar这个目录下面,然后在dos下进入到这个目录,然后运行命令,dex2jar classes.dex

就这样,我们就拿到了一个jar文件啦,现在我们就 把那个jar文件拷贝出来,然后放到jd-gui这个目录下面

然后就双击那个jd-gui.exe

然后就File-->OpenFile

然后就打开刚刚那个jar就可以啦

就这样子,我们就可以看到源码啦,资源文件在apktool那里,把它也拿下来就可以的啦

自己写的android apk反编译,获取Android自己写好了的apk以及反编译相关推荐

  1. 【Android】性能测试之获取Android流量数据

    流量: android4.0以上版本可以用/proc/uid_stat/$uid/tcp_rcv和/proc/uid_stat/$uid/tcp_snd来获取某个程序的上下行流量:而4.0以下版本要用 ...

  2. android 应用专属目录,获取Android应用专属缓存存储目录的实例

    如果你想摆脱缓存目录使用的尴尬:找不到目录?忘记申请读写权限?害怕污染用户存储空间?--请往下看 SD卡缓存目录 当应用需要将图片或者文件缓存到SD卡中时要去申请创建目录,有下面几种途径 我们可以通过 ...

  3. java实时获取android网速_获取Android网速的另一种方法

    之前,在LOSP4.2上使用的是Android自带的接口来实现获取网速并显示在通知栏,可是到了4.3以后发现这个接口无论如何,返回值都是-1,无奈之下只得另寻办法 功夫不负有心人,我还是找到了一个方法 ...

  4. Android开发之系统信息——获取Android手机中SD卡内存信息

    SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件.因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android ...

  5. android蓝牙开发简单获取android设备已经连接过(已适配)的蓝牙设备信息

    本文没有深入到如何搜索蓝牙,如何适配蓝牙(既然android系统本身有这部分功能,不需要的情况下就由系统完成就行) 本文主要是获取已适配的蓝牙设备

  6. android查看摄像头信息,获取Android设备上的详细的摄像头信息

    本文引用地址:http://www.eepw.com.cn/article/201610/305681.htm package=wjh.android.takepicture android:vers ...

  7. android 电视盒子 遥控器 获取,Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听...

    简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public class MainActivity extends Activity { private ...

  8. Android 11 之后,获取 Android 手机屏幕的尺寸(英寸)

    文章目录 计算的方法 Java 代码实现 Kotlin 代码实现 计算的方法 手机屏幕的大小是指 手机屏幕 对角线 的长度,单位为 英寸 或 吋. 对角线的长度 LLL (英寸) 屏幕宽 WWW (英 ...

  9. android 日历按周获取,Android日历获取当前周,前几周和下周

    上周:2017/05 / 8-2017 / 05/14 装载周:2017/05 / 15-2017 / 05/21 下周:2017/05 / 22-2017 / 05/28 醇> 代码加载Mon ...

最新文章

  1. asp.net 用户控件
  2. 『转载』|收藏|一张看懂AI知识体系
  3. 社区论坛行业搜索最佳实践
  4. 个人总结------高级知识点必会
  5. 每周一个 Python 模块 | calendar
  6. Python程序控制结构
  7. 便携式三星mysql_三星集团某站点MySQL盲注一枚(附python验证脚本)
  8. 我如何开始使用Linux
  9. HDU-1068Girls and Boys(二分匹配)
  10. 利用代码改变世界 #AzureDev
  11. 最简单的flex bison例子
  12. 速修复!CISA警告称 Zoho 服务器0day已遭在野利用
  13. 支付宝“手机网站支付”开发的相关文档和工具
  14. ACE6.3.3在Linux(CentOS7.0)下的安装和使用
  15. 做终端的朋友们,再忙也要学学服务器
  16. 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度PHP类
  17. Python列表常用函数总结
  18. win10查看网卡的方法
  19. Verilog中$finish和$stop的区别
  20. 实验四实验四实验四啊!

热门文章

  1. python 抽象语法树_用python演示一个简单的AST(抽象语法树)
  2. 2020 q5l使用手册电子版_关于2020下半年自考本科毕业生论文预答辩题目查询的通知...
  3. SpringCloudGateway实现金丝雀发布_05
  4. SpringBoot2 集成 xxl-job任务调度中心
  5. java.lang.UnsatisfiedLinkError: D:\Program Files\apache-tomcat-9.0.30\bin
  6. php连接数据库性能测试,无需安装配置,多操作系统支持数据库及性能测试
  7. java字符串深克隆_Java中对象的深复制(深克隆)和浅复制(浅克隆)之序列化...
  8. 华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...
  9. linux网站渗透工具包,ubuntu下安装 kali linux 渗透工具包
  10. python目前有多少库文件_必学Python库 你知道多少?