1. DVM执行的是.dex文件,JVM执行的是.class文件,Java被编译器编译成.calss文件,JVM执行的是.calss文件。Android 程序首先是将Java文件通过编译器将Java文件编译成.class文件,然后通过dex工具将.class文件处理成.dex文件,然后再将资源文件和.dex文件打包成apk文件。apk就是Android package的意思。
2. DVM是寄存器虚拟机,JVM是虚拟栈虚拟机,寄存器的存取速度比较快。
3. .class文件有比较多的冗余信息,dex工具会去除掉冗余信息,并把所有的.class文件整合到.dex文件中减少I/O操作,提高类的查找速度。