導航:首頁 > 編程語言 > javadalvik

javadalvik

發布時間:2023-07-08 11:00:31

⑴ Dalvik虛擬機和JVM的區別。java裡面的,android裡面的區別

1、Dalvik 和標准 Java 虛擬機(JVM)的首要差別
Dalvik 基於寄存器,而 JVM 基於棧。基於寄存器的虛擬機對於更大的程序來說,在它們編譯的時候,花費的時間更短。 JVM位元組碼中,局部變數會被放入局部變數表中,繼而被壓入堆棧供操作碼進行運算,當然JVM也可以只使用堆棧而不顯式地將局部變數存入變數表中。Dalvik位元組碼中,局部變數會被賦給65536個可用的寄存器中的任何一個,Dalvik指令直接操作這些寄存器,而不是訪問堆棧中的元素。
2、Dalvik 和 Java 位元組碼的區別
VM位元組碼由.class文件組成,每個文件一個class。JVM在運行的時候為每一個類裝載位元組碼。相反的,Dalvik程序只包含一個.dex文件,這個文件包含了程序中所有的類。Java編譯器創建了JVM位元組碼之後,Dalvik的dx編譯器刪除.class文件,重新把它們編譯成Dalvik位元組碼,然後把它們寫進一個.dex文件中。這個過程包括翻譯、重構、解釋程序的基本元素(常量池、類定義、數據段)。常量池描述了所有的常量,包括引用、方法名、數值常量等。類定義包括了訪問標志、類名等基本信息。數據段中包含各種被VM執行的函數代碼以及類和函數的相關信息(例如DVM所需要的寄存器數量、局部變數表、操作數堆棧大小),還有實例變數。
3、Dalvik 和 Java 運行環境的區別
Dalvik 經過優化,允許在有限的內存中同時運行多個虛擬機的實例,並且每一個Dalvik 應用作為一個獨立的Linux 進程執行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。
Dalvik虛擬機在android2.2之後使用JIT (Just-In-Time)技術,與傳統JVM的JIT並不完全相同,
Dalvik虛擬機有自己的 bytecode,並非使用 Java bytecode。

還有以下幾點:
1、Dalvik主要是完成對象生命周期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。
2、Dalvik負責進程隔離和線程管理,每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,其代碼在虛擬機的解釋下得以執行。
3、不同於Java虛擬機運行java位元組碼,Dalvik虛擬機運行的是其專有的文件格式Dex。
4、dex文件格式可以減少整體文件尺寸,提高I/O操作的類查找速度。
5、odex是為了在運行過程中進一步提高性能,對dex文件的進一步優化。
6、所有的Android應用的線程都對應一個Linux線程,虛擬機因而可以更多的依賴操作系統的線程調度和管理機制。
7、有一個特殊的虛擬機進程Zygote,他是虛擬機實例的孵化器。它在系統啟動的時候就會產生,它會完成虛擬機的初始化、庫的載入、預制類庫和初始化的操作。如果系統需要一個新的虛擬機實例,它會迅速復制自身,以最快的速度提供給系統。對於一些只讀的系統庫,所有虛擬機實例都和Zygote共享一塊內存區域。

⑵ 安卓虛擬機和java虛擬機有什麼不同

安卓虛擬機即dalvik和java虛擬機的區別如下:
1.java虛擬機基於棧。 基於棧的機器必須使用指令來載入和操作棧上數據,所需指令更多更多 。而dalvik虛擬機是基於寄存器的:java虛擬機運行的是java位元組碼。(java類會被編譯成一個或多個位元組碼.class文件,打包到.jar文件中,java虛擬機從相應的.class文件和.jar文件中獲取相應的位元組碼)
2.Dalvik和Java之間的另外一大區別就是運行環境——Dalvik經過優化,允許在有限的內存中同時運行多個虛擬機的實例

閱讀全文

與javadalvik相關的資料

熱點內容
如何將文件夾的內容發到微信 瀏覽:892
安卓手機emoji扁平怎麼辦 瀏覽:208
歐版三星s20怎麼升級安卓11 瀏覽:104
我的世界伺服器如何拉黑房子 瀏覽:480
linux伺服器網路設置 瀏覽:106
在線編譯代碼怎麼做 瀏覽:205
社會研究方法教程pdf 瀏覽:696
cad修改伺服器地址 瀏覽:788
新手伺服器裝什麼系統好 瀏覽:128
androidxmlui 瀏覽:713
星辰之戀在哪個app播 瀏覽:465
手機卡伺服器出錯誤是怎麼回事 瀏覽:536
cg編譯器怎麼設置 瀏覽:418
單片機教學視頻哪個好 瀏覽:598
編譯器錯誤了怎麼辦 瀏覽:77
看摩托車用什麼app好 瀏覽:405
pdf轉換excel在線轉換 瀏覽:361
php多客服 瀏覽:746
語言編譯程序如何分類 瀏覽:377
pdf下載哪個 瀏覽:77