深入理解DEX文件格式
为了更好的理解Android系统,决定参考网上别人写的Dex读取器,也写一个同样的读取器,以帮助自己更深入的理解Dex文件格式。
先写个最简单的Hello World的JAVA程序:
1 2 3 4 5 6 7 |
public class Hello { public static void main(String[] argc) { System.out.println("Hello, Android!\n"); } } |
然后编译为.class文件,用dx工具将.class文件编译为.dex文件。接下来可以分析了:
首先Dex文件大致可以分为3个区,文件头(Dex Header)、索引区(Ids)和数据区(Data):