基于平台不同:
Dalvik基于寄存器,而JVM基于栈,KVM基于栈
运行环境不同:
在有限的内存,允许同时运行多个Dalvik实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。
JVM只能运行一个JVM实例,JVM因平台的不一样进程也不一样。KVM只能一个实例运行。
运行语言:
Dalvik可以运行不同的语言,如java和Scala。
JVM可以运行不同的语言,如java和Python语言
KVM运行j2me语言
运行格式不同:
Dalvik是.dex
JVM一般是.class
KVM一般是.class
编写语言:
Dalvik是一般由C或C++编写
JVM一般是C++或java编写
KVM一般是C或C++
效率不同:
Dalvik是基于寄存器所以效率高于基于栈的JVM,KVM
加载函数不同:
Dalvik是Dexfile加载class类文件
JVM和KVM是ClassLoader