谷歌公司没有使用Java虚拟机运行Android程序,而是使用Dalvik虚拟机(Dalvik Virtual Machine )作为Android平台的运行环境,并针对该平台
Dalvik虚拟机与Java虚拟机的区别
1、Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。
编译Java程序以生成Java字节码,并将其保存在class文件中。 Java虚拟机解码class文件的内容并运行程序。 同时,在由Dalvik虚拟机执行的Dalvik字节码中,所有Dalvik字节码都从Java字节码转换,并且由Dalvik虚拟机解释DEX文件并执行
2、Dalvik可执行文件体积更小
Android SDK提供了一个名为dx的工具,用于将Java字节码转换为Dalvik字节码。 在转换过程中消除冗余信息,减少文件体积。
3、Java虚拟机与Dalvik虚拟机的架构不同
Java虚拟机基于堆栈体系结构; Dalvik虚拟机基于寄存器体系结构。