Android动态加载技术基础之Class文件与Dex文件的结构

2018-07-24  本文已影响0人  抽象语法树

Class文件

Class文件是Java虚拟机定义并被其所识别的文件格式,通俗地讲,每一个接口或者类对应一个Class文件。

Class文件格式

Class文件的组成:

Class文件结构

Dex文件

Dex是Android平台上(Dalvik虚拟机,art虚拟机)的可执行文件,每个APK压缩包中都包含一个(或者多个MultiDex)Dex文件,Dex文件中包含了app的所有源码。

Dex文件的结构

header

文件头记录了dex文件的一些基本信息, 以及大致的数据分布。其各字段及解释如下:



索引区

索引区中索引了整个dex中的字符串、类型、方法声明、字段以及方法的信息, 其结构体的开始位置和个数均来自dex文件头中的记录

数据区

索引区中的最终数据偏移以及文件头中描述的偏移都指向数据区, 还包括了即将要解析的class_def_item

Class文件和Dex文件对比

上一篇 下一篇

猜你喜欢

热点阅读