获取Android自己写好了的apk以及反编译
今天,我们先说一下,获取Android自带的apk以及反编译它们来学习Android工程师是怎样写的,今天我们就以拿到Android自带的短信管理器的apk为例子
你可能有疑问,为什么要那么麻烦,从系统来拿,还要反编译,如果我们有网络的时候,当然可以直接去Android的源码那里下载啦(Android源码下载方法),但如果我们没有网络呢,那么我们就可以通过这样来研究Android自带的apk啦
首先,我们讲一下怎样获取那个apk,其实很简单的,作为一个Android的开发人员,肯定会用过模拟器的啦,我们获取apk就是通过模拟器来获取的
我们先打开一个模拟器。然后去到ddms里面去,我们就可以看到
有设置的apk啦,有打电话的apk啦,有照相的apk啦,所以大家如果没有网络的话,就可以在这里拿到系统的apk,然后反编译,就可以研究一下系统是怎样写的啦
系统自带的apk都在里面啦,那么我们的短信的apk在那里呢
短信的apk就是一个叫Mms的apk,大家可以找到它,然后把它导出来
接下来,我们还需要三个工具,分别是
apktool 它可以拿到apk里面的资源文件,我们要下载两个文件,分别是apktool1.5.2.tar还有apktool-install-windows-r05-ibot.tar
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.APKTool: APKTool是由GOOGLE提供的APK编译工具,能够完成反编译及回编译apk的工作.同时,它也有着安装反编译系统apk所需要的framework-res框架 ...
- 转: android apk 防止反编译技术(1~5连载)
转: android apk 防止反编译技术 做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习. ...
- android apk 防止反编译技术第一篇-加壳技术
做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成 ...
- android apk 防止反编译技术第四篇-对抗JD-GUI
又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊.好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法.前三篇我们讲了加壳技术(http://my.oschina.net ...
- Android Apk的反编译和加密
这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用.下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码. Android的应用程序APK文件说到 ...
- android apk 防止反编译技术第二篇-运行时修改字节码
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止a ...
- android apk 防止反编译技术第三篇-加密
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止a ...
- android apk 防止反编译技术第二篇-运行时修改Dalvik指令
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止a ...
- Android测试(三)——APK文件反编译
APK文件反编译: 在进行反编译操作前,先简单介绍下smali文件: smali是一种文件格式,语法和Jasmine的语言类似,这些smali文件包含开发应用程序时编写的java类的代码. 工具:ja ...
随机推荐
- Kill Processes in Linux
Step 1: find processes to kill ps -ef | grep java Step 2: Kill the process based on process id kill ...
- iOS学习笔记(十四)——打电话、发短信
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...
- js 验证表单 js提交验证类
附加:js验证radio是否选择 <script language="javascript">function checkform(obj){for(i=0;i< ...
- Fractal_Test
本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Fractal_Test.html 参考:http://catlikecoding ...
- linux网络编程常用头文件
sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函 ...
- Maven 安装记
java初学者 昨天通m2e插件把maven项目导入eclipse的时候各种bug,看了各家技术博客,决定安装maven好好了解下. 安装maven也是一波三折的,先是看各种安装指导,结果环境变量都没 ...
- jquery 实现文本框scroll上下动
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- MLlib 编程指导-spark-1.2.0
本文来自 http://spark.apache.org/docs/latest/mllib-guide.html 官方文档翻译 个人翻译 MLlib包括的算法和工具主要有:分类,回归,聚类,协同过滤 ...
- sql如何向一个表中批量插入大量数据
--如果是一个表插入另外一个表.insert into tb1 需要的列名 select 按照前面写上需要的列名 from tb2 --如果两表结构一样.insert into tb1 * selec ...
- [解决]UserLibrary中的jar包不会自动发布Tomcat的lib目录下(基于MyEclipse2014)
1.在工程名称上单击[右键] —— 单击[Properties]选项,点击后会弹出属性窗口: 2.选择[Properties]后在左侧树中找到[MyEclipse] —— [Deployment As ...