1 Dalvik虚拟机和标准Java jVM虚拟机的区别
Dalvik基于寄存器,而JVM基于栈。,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费
的时间更短。
2 Dalvik和Java运行环境的区别
Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的
Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭.
3 相关文件类型
a class文件--Java编译后的目标文件
不像J2se,java编译成class就可以直接运行,android平台上class文件不能直接在android上运行。由于Google
使用了自己的Dalvik来运行应用,所以这里的class也肯定不能在AndroidDalvik的java环境中运行,android
的class文件实际上只是编译过程中的中间目标文件,需要链接成dex文件后才能在dalvik上运行。
b dex文件--android 平台上可执行文件
Android虚拟机Dalvik支持的字节码文件格式Google在新发布的Android平台上使用了自己的Dalvik虚拟机
来定义,这种虚拟机执行的并非Java字节码,而是另一种字节码:dex格式的字节码。在编译Java代码之后,
通过Android平台上的工具可以将Java字节码转换成Dex字节码。虽然Google称Dalvik是为了移动设备定
做的,但是业界很多人认为这是为了规避向sun申请Javalicense。这个DalvikVM针对手机程式/CPU做过最
佳化,可以同时执行许多VM而不会占用太多Resource。
c apk文件--android平台上安装文件
Apk是Android安装包的扩展名,一个Android安装包包含了与某个Android应用程序相关的所有文件。apk
文件将AndroidManifest.xml文件、应用程序代码(.dex文件)、资源文件和其他文件打成一个压缩包。一个工
程只能打进一个.apk文件。