JVM与Dalvik虚拟机的区别

  • JVM是基于栈的架构(内存),编译过程为.java->.class->.jar
  • Dlvik(DVM)是基于寄存器的架构(CPU里面的存储空间,CPU操作数据比内存要快),编译过程为.java->.class->.dex->.odex
  • 一个应用,一个虚拟机实例,一个进程 
    • 每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。每个进程之间可以通信(IPCBinder机制实现)。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。
    • 不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它 虚拟机造成影响,可以最大程度的保护应用的安全和独立运行。

你可能感兴趣的:(dalvik)