获取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 ...
随机推荐
- Python Function Note
Python Function Note #汉诺塔问题Python实现 def my_move(n, a, b, c): if n == 1: print(a + ' --> ' + c) el ...
- Xcode7 通过 Single View Application 得到一个 Empty Application 工程
方法: 创建一个 Empty Application 工程 下面还是详细的说一下通过一个 Single View Application 工程得到一个 Empty Application 工程的方法: ...
- this、new、apply和call详解
讲解this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解 ...
- Java study 1:The note of studying Socket which based UDP
UDP concept: UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参 ...
- C++ 异常处理执行过程
看<clean code>时,又遇到异常处理的例程. 看不明白是因为我一直都将异常处理束之高阁. 今天晚上下决心去找资料看看,看完之后觉得以前是把它想得太难,其实非常简单. 希望以后遇到问 ...
- memcache 数据库信息存储到数据库减少IO 操作
在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担.通常会 将 SQL ...
- 直接插入排序(Straight Insertion Sort)的C语言实现
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到 ...
- JVM笔记-temp
jvm源码分析之堆外内存完全解读 http://lovestblog.cn/blog/2015/05/12/direct-buffer/
- Android 判断当前设备是手机还是平板
Android开发需要适配手机和平板,有些需求实现时就要求判断设备是手机还是平板.网上很多说通过设备尺寸.DPI.版本号.是否具备电话功能等进行判断,不过都不算太精确.这里分享一个简洁给力的方法(官方 ...
- cf C. Hamburgers
http://codeforces.com/contest/371/problem/C 二分枚举最大汉堡包数量就可以. #include <cstdio> #include <cst ...