Android dvm的進程和Linux的進程, 應用程序的進程是否爲同一個概念

DVM指dalivk的虛擬機。每個Android應用程序都在它本身的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。java

而每個DVM都是在Linux 中的一個進程,因此說能夠認爲是同一個概念。android

什麼是android DVM:Dalvik是Google公司本身設計用於Android平臺的Java虛擬機,每個Dalvik 應用做爲一個獨立的Linux 進程執行。獨立的進程能夠防止在虛擬機崩潰的時候全部程序都被關閉。安全

Dalvik和Java運行環境的區別  性能

1:Dalvik主要是完成對象生命週期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。   優化

2:Dalvik負責進程隔離和線程管理,每個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,其代碼在虛擬機的解釋下得以執行。   操作系統

3:不一樣於Java虛擬機運行java字節碼,Dalvik虛擬機運行的是其專有的文件格式Dex   線程

4:dex文件格式能夠減小總體文件尺寸,提升I/o操做的類查找速度。   設計

5:odex是爲了在運行過程當中進一步提升性能,對dex文件的進一步優化。   對象

6:全部的Android應用的線程都對應一個Linux線程,虛擬機於是能夠更多的依賴操做系統的線程調度和管理機制   生命週期

7:有一個特殊的虛擬機進程Zygote,他是虛擬機實例的孵化器。

它在系統啓動的時候就會產生,它會完成虛擬機的初始化,庫的加載,預製類庫和初始化的操做。

若是系統須要一個新的虛擬機實例,它會迅速複製自身,以最快的數據提供給系統。

對於一些只讀的系統庫,全部虛擬機實例都和Zygote共享一塊內存區域。

相關文章
相關標籤/搜索