Docker 的優點
954
2025-04-02
java虛擬機:
Dalvik虛擬機:
基于棧的機器必須使用指令來載入和操作棧上數據,所需指令更多更多 dalvik虛擬機是基于寄存器的
dalvik虛擬機架構:
Dalvik進程管理:
dalvik進程管理是依賴于linux的進程體系結構的,如要為應用程序創建一個進程,它會使用linux的fork機制來復制一個進程(復制進程往往比創建進程效率更高)。
Zygote是一個虛擬機進程,同時也是一個虛擬機實例的孵化器,它通過init進程啟動。首先會孵化出System_Server(android絕大多系統服務的守護進程,它會監聽socket等待請求命令,當有一個應用程序啟動時,就會向它發出請求,zygote就會FORK出一個新的應用程序進程).每當系統要求執行一個android應用程序時,Zygote就會運用linux的FORK進制產生一個子進程來執行該應用程序。
每當執行一個Android應用程序,Zygote就會孵化一個子線程去執行該應用程序(系統內部執行dvz指令完成的)。這樣做的好處是顯而易見的,Zygote進程是在系統啟動時產生的,它會完成虛擬機的初始化,庫的加載,預置類庫的加載和初始化等操作,而在系統需要一個新的虛擬機實例時,Zygote通過復制自身,最快速地提供一個系統。另外,對于一些只讀的系統庫,所有虛擬機實例都和Zygote共享一塊內存區域,這樣可以大大節省內存開銷。
相對于基于堆棧的虛擬機實現,基于寄存器的虛擬機實現雖然在硬件通用性上要差一些,但是它在代碼的執行效率卻更勝一籌。在基于寄存器的虛擬機中,可以更加有效地減少多余指令的分發和減少內存的讀寫訪問。
JVM和Dalvik進程管理:
linux中進程間通信的方式有很多,但是dalvik使用的是信號方式來完成進程間通信。
Android的初始化流程:
Android ARM Java 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。