国产精品无码一区二区三区太,亚洲一线产区二线产区区别,欧美A区,人妻jealousvue人妻

×

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

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

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

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

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

免責(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)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

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

Loading