JVM與Dalvik虛擬機的區別

  • JVM是基於棧的架構(內存),編譯過程爲.java->.class->.jar
  • Dlvik(DVM)是基於寄存器的架構(CPU裏面的存儲空間,CPU操做數據比內存要快),編譯過程爲.java->.class->.dex->.odex
  • 一個應用,一個虛擬機實例,一個進程 
    • 每個Android應用都運行在一個Dalvik虛擬機實例裏,而每個虛擬機實例都是一個獨立的進程空間。每一個進程之間能夠通訊(IPCBinder機制實現)。虛擬機的線程機制,內存分配和管理,Mutex等等都是依賴底層操做系統而實現的。
    • 不一樣的應用在不一樣的進程空間裏運行,當一個虛擬機關閉或意外停止時不會對其它 虛擬機形成影響,能夠最大程度的保護應用的安全和獨立運行。
相關文章
相關標籤/搜索