dex 文件
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
去除了类与类之间的重复信息,比如每个类的class文件中都有一个常量池,而dex会去除冗余,区域复用并整合,整个工程中的同类型数据存储在一个数据区域,这样dex文件较小;
一个文件记录了所有类的信息,而不是像class文件一个文件记录一个类的信息,减少了类加载时的io次数。
主要分为三块区域:
文件头:记录了dex文件信息及所有字段大致的分布
索引:分别记录了字符串、类型、方法原型、域、方法的索引,这部分指定了dex文件中所有不同类型数据存储的位置,数据最终存储于“数据区”
数据区:此块可分成普通数据区和链接数据区,后者听起来较为陌生,总所周知Android中常有一些动态链接库so的引用,而链接数据区就是对这个的指向。
混淆和压缩可以减少dex中记录的字符串长度,从而减少dex文件大小