dex文件了解

浅谈 Android Dex 文件 - SegmentFault 思否

​ Dex文件是专门为Dalvik设计的一种压缩格式。JVM是JAVA虚拟机,用来运行JAVA字节码程序。Dalvik是Google设计用于Android平台的运行环境,现在已经逐渐被ART所替代。我们的Dalvik虚拟机并不支持直接运行JAVA字节码,所以需要对class文件进行翻译,重构,解释,压缩处理。处理完成的产物就是dex文件。

​ 在AndroidSDK/build-tools/任意文件夹 里面点进去可以看到dx.jar 这个文件就是用来生成dex文件的。

从.java -> .class

1
2
3
4
5
6
7
8
9
10
11
12
public class Hello {
private String helloString = "hello! youzan";

public static void main(String[] args) {
Hello hello = new Hello();
hello.fun(hello.helloString);
}

public void fun(String a) {
System.out.println(a);
}
}
1
javac Hello.java

会得到文件 Hello.class

从 .class -> .dex

将Hello.class文件放到 AndroidSDK/build-tools/任意文件夹 里面 执行

1
dx --dex --output=Hello.dex Hello.class

执行完成后会在 当前文件生成 Hello.dex文件。

然后我们就可以通过010editor软件打开这个文件查看详情信息:

img1

每一部分的具体含义 可以参考博客讲的非常详细:浅谈 Android Dex 文件 - SegmentFault 思否