dex
classdex是Android系统的可执行文件,包含应用程序的全部操作指令以及运行时数据。
也就是说,基本APP的运行,是靠这个文件来指导的。所以APP运行的时候,这个文件是一直在被用的
如图~这是拆了一个APK后的内容↓
classdex
dex的结构:
首先从宏观上来说dex的文件结果很简单,实际上是由多个不同结构的数据体以首尾相接的方式拼接而成。(跟HTML很像)
header
dex文件头部,记录整个dex文件的相关属性
string_ids
字符串数据索引,记录了每个字符串在数据区的偏移量
type_ids
类似数据索引,记录了每个类型的字符串索引
proto_ids
原型数据索引,记录了方法声明的字符串,返回类型字符串,参数列表
field_ids
字段数据索引,记录了所属类,类型以及方法名
method_ids
类方法索引,记录方法所属类名,方法声明以及方法名等信息
class_defs
类定义数据索引,记录指定类各类信息,包括接口,超类,类数据偏移量
data
数据区,保存了各个类的真是数据
link_data
连接数据区
emmm这些东西之后会有用