中韩高清无专码区2021曰网站_亚洲黄色成人网站_久久久久精品国产_国产区视频在线观看

×

Android系統(tǒng)Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別

  • 作者:新網(wǎng)
  • 來(lái)源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-02 17:49:25

Dalvik虛擬機(jī)作為Android平臺(tái)的核心組件,擁有如下幾個(gè)特點(diǎn):體積小,占用內(nèi)存空間小;專有的DEX可執(zhí)行文件格式,體積更小,執(zhí)行速度更快;常量池采用32位索引值,尋址類方法名、字段名、常量更快; 基于寄存器架構(gòu),并擁有一套完整的指令系統(tǒng).

         Dalvik虛擬機(jī)作為Android平臺(tái)的核心組件,擁有如下幾個(gè)特點(diǎn):體積小,占用內(nèi)存空間小;專有的DEX可執(zhí)行文件格式,體積更小,執(zhí)行速度更快;常量池采用32位索引值,尋址類方法名、字段名、常量更快; 基于寄存器架構(gòu),并擁有一套完整的指令系統(tǒng).

<div>         提供了對(duì)象生命周期管理、堆棧管理、線程管理、安全和異常管理以及垃圾回收等重要功能;
t019b4533b0a9c1e9bc.jpg
  所有的Android程序都運(yùn)行在Android系統(tǒng)進(jìn)程里,每個(gè)進(jìn)程對(duì)應(yīng)著一個(gè)Dalvik虛擬機(jī)實(shí)例。
  Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別
  Dalvik虛擬機(jī)與傳統(tǒng)的Java虛擬機(jī)有許多不同點(diǎn),兩者并不兼容,它們顯著的不同主要表現(xiàn)在以下幾個(gè)方面:
  1.Java虛擬機(jī)運(yùn)行的是Java字節(jié)碼,Dalvik虛擬機(jī)運(yùn)行的是Dalvik字節(jié)碼。
  傳統(tǒng)的Java程序經(jīng)過(guò)編譯,生成Java字節(jié)碼保存在class文件中,Java虛擬機(jī)通過(guò)解碼class文件中的內(nèi)容來(lái)運(yùn)行程序。而Dalvik虛擬機(jī)運(yùn)行的是Dalvik字節(jié)碼,所有的Dalvik字節(jié)碼由Java字節(jié)碼轉(zhuǎn)換而來(lái),并被打包到一個(gè)DEX(Dalvik Executable)可執(zhí)行文件中。Dalvik虛擬機(jī)通過(guò)解釋DEX文件來(lái)執(zhí)行這些字節(jié)碼。
  2.Dalvik可執(zhí)行文件體積更小。
  Android SDK中有一個(gè)叫dx的工具負(fù)責(zé)將Java字節(jié)碼轉(zhuǎn)換為Dalvik字節(jié)碼。dx工具會(huì)對(duì)Java類文件重新排列,消除在類文件中出現(xiàn)的所有冗余信息,避免虛擬機(jī)在初始化時(shí)出現(xiàn)重復(fù)的文件加載與解析過(guò)程。一般情況下,Java類文件中包含多個(gè)不同的方法簽名,如果其他的類文件引用該類文件中的方法,方法簽名也會(huì)被復(fù)制到其類文件中,也就是說(shuō)多個(gè)不同的類會(huì)同時(shí)包含相同的方法簽名,同樣地,大量的字符串常量在多個(gè)類文件中也被重復(fù)使用,這些冗余信息會(huì)直接增加文件的體積,同時(shí)也會(huì)嚴(yán)重影響虛擬機(jī)解析文件的效率。dx工具針對(duì)這個(gè)問(wèn)題專門做了處理,它將所有的Java類文件中的常量池進(jìn)行分解,消除其中的冗余信息,重新組合形成一個(gè)常量池,所有的類文件共享一個(gè)常量池。
  3.Java虛擬機(jī)與Dalvik虛擬機(jī)架構(gòu)不同。
  Java虛擬機(jī)基于棧結(jié)構(gòu),程序在運(yùn)行時(shí)虛擬機(jī)需要頻繁的從棧上讀取或?qū)懭霐?shù)據(jù),這個(gè)過(guò)程需要更多的指令分派與內(nèi)存訪問(wèn)次數(shù),會(huì)耗費(fèi)不少CPU時(shí)間,對(duì)于像手機(jī)設(shè)備資源有限的設(shè)備來(lái)說(shuō),這是相當(dāng)大的一筆開(kāi)銷。
  Dalvil虛擬機(jī)基于寄存器架構(gòu),數(shù)據(jù)的訪問(wèn)通過(guò)寄存器直接傳遞,這樣的訪問(wèn)方式比基于棧方式要快很多。

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading