97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見教育科技集團(tuán) >> 新聞動態(tài) >> Android資料 >> Android Dalvik虛擬機(jī)的優(yōu)化  
 
Android Dalvik虛擬機(jī)的優(yōu)化
分享到:

虛擬機(jī)中指令的解釋時(shí)間主要分為3個(gè)方面:分發(fā)指令、訪問運(yùn)算數(shù)、執(zhí)行運(yùn)算。其中"分發(fā)指令"這個(gè)環(huán)節(jié)對性能的影響大,為了加快運(yùn)行速度,必須提高分發(fā)指令的速度,在Android中對Dalvik虛擬機(jī)進(jìn)行了許多優(yōu)化!

與傳統(tǒng)的Java虛擬機(jī)基于棧不同,Dalvik是基于寄存器的;诩拇嫫鞯奶摂M機(jī)實(shí)現(xiàn),雖然在硬件通用性上稍遜一籌,但是數(shù)據(jù)處理速度卻有明顯的改善,可以更為有效地減小冗余指令的分發(fā)和減小內(nèi)存的讀寫訪問。

Dalvik虛擬機(jī)針對移動終端所做的優(yōu)化,使得其不需要很快的CPU速度和大量的內(nèi)存空間。根據(jù)Google的測算,Android的早期版本只需要64MB的RAM即可使系統(tǒng)正常運(yùn)轉(zhuǎn),其中24MB被用于底層系統(tǒng)的初始化和啟動,另外20MB被用于高層啟動、高層服務(wù)。當(dāng)然,隨著Android版本的不斷升級和應(yīng)用功能的擴(kuò)展,Android對內(nèi)存的消耗也在逐漸增加。

另外需要注意的是,Dalvik并不是按照J(rèn)ava虛擬機(jī)的規(guī)范來實(shí)現(xiàn)的,兩者并不兼容。

Java虛擬機(jī)運(yùn)行的是Java字節(jié)碼,而Dalik虛擬機(jī)運(yùn)行的則是其專有的DEX(Dalvik Executable)字節(jié)碼。

在Java SE程序中的Java類會被編譯成一個(gè)或者多個(gè)字節(jié)碼文件(.class),然后打包成JAR文件。在執(zhí)行期間,Java虛擬機(jī)會從JAR文件抽取相應(yīng)的CLASS文件并從中讀取指令和數(shù)據(jù)。而Android雖然也是基于Java語言進(jìn)行編程的,但是在編譯成CLASS文件后,Android會通過"dx"工具將應(yīng)用所有的CLASS文件轉(zhuǎn)換一個(gè)DEX文件,接著將DEX和應(yīng)用的其他如資源文件等一起打包構(gòu)成APK文件,而后Dalvik虛擬機(jī)會從其中讀取指令和數(shù)據(jù)。圖1-1顯示了Android的編譯過程。


圖1-1 Android的編譯過程

Dalvik虛擬機(jī)的主要特征包括:專有的DEX字節(jié)碼、支持新的操作碼、文件結(jié)構(gòu)非常簡潔、使用等長的指令、借以提升解析速度、盡量擴(kuò)大只讀結(jié)構(gòu)的大小、借以提高跨進(jìn)程的數(shù)據(jù)共享比例。

 更多相關(guān)文章

·Dalvik虛擬機(jī)原生方法的注冊