2020.2.10 读完了 Dex文件
1 编写Dex文件的解析器
2 使用010editor 观察Dex文件 不看资料就可以 找到指定的字节位置的变量或类
3 1 和2 一般是 就写就观察比较好
4 记忆Dex和class文件之间的区别 及 Dex文件的重要细节
Dex Header_Flags : dex.035
练习编写 一个简单的HelloDex.java 文件
使用javac HelloDex.java 编译生成HelloDex.class文件
在将class文件编译成为dex文件
将class编译成dex文件需要使用dx.bat 命令 dx --dex --output Hello.dex HelloDex.class
java使用的是class文件 而android使用的是dex文件
1 dex文件由多个class文件合并而来,把多个常量池合并到一个常量池,避免了常量冗余,有利于运行时的常量内存共享 避免了相同字符串占据内存数据
2 加载一个dex可以加载多个相互依赖的class,减少了文件io
3 arm cpu具有较多的通用寄存器,VM设计基于寄存器的执行流程需要多个寄存器会加速函数的传参和执行