什么是dex文件

什么是dex文件,第1张

dex文件是Android系统的可执行文件,包含应用程序的全部 *** 作指令以及运行时数据。

由于dalvik是一种针对嵌入式设备而特殊设计的java虚拟机,所以dex文件与标准的class文件在结构设计上有着本质的区别。

当java程序编译成class后,还需要使用dex工具将所有的class文件整合到一个dex文件,目的是其中各个类能够共享数据,在一定程度上降低了冗余,同时也是文件结构更加经凑,dex文件是传统jar文件大小的50%左右。

dex将原来class每个文件都有的共有信息合成一体,这样减少了class的冗余。

从宏观上来说dex的文件结果很简单,实际上是由多个不同结构的数据体以首尾相接的方式拼接而成。

扩展资料:

Android的系统架构和其 *** 作系统一样,采用了分层的架构。

从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。

dex文件的作用:

dex文件的作用是记录整个工程(通常是一个Android工程)的所有类文件的信息。

dex文件的结构:

8位字节的二进制流文件;各个数据紧密排列,无间隙,减少了文件体积,加快加载速度;整个工程的类信息都存放在一个dex文件中(不考虑dex分包的情况下);同样地,可以通过010Editor来查看dex文件信息。

参考资料:百度百科-Android

简单说就是优化后的android版.exe。每个apk安装包里都有。相对于PC上的java虚拟机能运行.class;android上的Davlik虚拟机能运行.dex。

作用

让dalvik能够运行。

dex好处

可以直接用DexClassLoader类加载,动态加载。于是只要在dex上加壳,在程序运行时脱壳,就可以规避静态反编译的风险。

扩展资料

使用dex文件的原因

在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的包,存储了很多Java编译字节码的归档文件。

因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。

能够被jvm识别,加载并执行的文件格式

记录一个类文件的 所有 信息

详情: https://kaiwu.lagou.com/course/courseInfo.htm?courseId=67#/detail/pc?id=1857

能够被DVM识别,加载并执行的文件格式

记录 整个工程 中所有类文件的信息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8091187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存