Android 可执行文件
来源:互联网 发布:sql left join where 编辑:程序博客网 时间:2024/06/01 09:42
简介
可执行文件是操作系统的基础,它反映着系统的运行机制,Android系统的可执行文件也是如此。
Apk
Apk是Android Package的缩写,实际上Apk文件就是一个zip压缩包,使用zip格式解压缩软件对apk文件进行解压,会发现它由一些图片资源与其它文件
组成,并且每个apk文件中包含一个classes.dex,它是Dalvik可执行文件。
dex 文件格式
在Android系统中,dex文件是可以直接在Dalvik虚拟机中加载运行的文件。通过ADT,经过复杂的编译,可以把java源代码转换为dex文 件。 那么这个文件的格式是什么样的呢?为什么Android不直接使用class文件,而采用这个不一样文件呢?其实它是针对嵌入式系统优化的结 果,Dalvik虚拟机的指令码并不是标准的Java虚拟机指令码,而是使用了自己独有的一套指令集。如果有自己的编译系统,可以不生成class文件, 直接生成dex文件。dex文件中共用了很多类名称、常量字符串,使它的体积比较小,运行效率也比较高。但归根到底,Dalvik还是基于寄存器的虚拟机 的一个实现。
Dex文件头主要包括校验和以及其他结构的偏移地址和长度信息。
odex文件格式
odex是OptimizedDEX的缩写,表示经过优化的dex文件。
odex有两种存在的方式:一种是从apk程序中提取出来的,与apk文件存放在同一目录且文件后缀为odex的文件,这类odex文件多是Android ROM的系统程序;
另一种是dalvik-cache缓存文件,这类Odex文件仍然以dex作为后缀,存放在cache/dalvik-cache目录下,保存的形式为“apk路径@apk名@classes.dex”。
dex文件的验证
Android提供了一个专门验证与优化dex文件的工具dexopt,该软件是开源的,可以下载到源码,验证过程如下:
小结
了解了dex、odex文件格式,对Android程序本身有更深层次的认识。当然也可以通过修改dex中的执行路径从而破解程序,因为Android应用程序的代码都存储在dex文件中。
相关下载
实例以及工具源码下载
- Android 可执行文件
- Android下编译可执行文件
- android 编写简单可执行文件
- Android 加载ELF可执行文件
- Android执行Native可执行文件
- android下可执行文件的真面目
- Android.mk生成可执行文件示例
- 可执行文件
- Android逆向分析基础-Android可执行文件
- Android 可执行文件的生成及启动
- 编写Android的exe可执行文件并运行
- Android-----打包可执行文件并在apk调用
- Android漫游记(2)---ELF可执行文件格式
- Android NDK 编译成可执行文件个人记录
- 四、Android.mk之编译生成可执行文件
- 查看Android任意可执行文件的工具ClassyShark
- Android 编译静态链接的可执行文件
- android可执行文件交叉编译和运行
- POJ-3345 Bribing FIPA(Tree dp + 背包)
- who命令的编写——登录与注销__who, whoami, who am i
- hdu 3486 Interviewe 二分+RMQ
- ZOJ Problem Set - 1061
- 链表操作(从尾到头打印链表,使用栈结构实现)
- Android 可执行文件
- Demo-简单使用libcurl静态库访问网址
- 堆排序中--建堆的算法复杂度分析O(n)
- [安卓破解]听网页浏览器,无需注册即可语音朗读
- 第一个mapreduce
- 线性同余和扩展欧几里得的运用小结
- SPOJ8222(后缀自动机--出现次数最多的子串)
- Ubuntu 12.04 改造指南
- leetcode simplify path