无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

軟件測(cè)試 | Dalvik虛擬機(jī)是如何執(zhí)行程序的

2023-07-05 11:18 作者:測(cè)吧測(cè)試開(kāi)發(fā)  | 我要投稿

點(diǎn)擊領(lǐng)取更多資料?。。?/a>

Android系統(tǒng)的架構(gòu)采用分層思想,這樣的好處是擁有減少各層之間的依賴性、便于獨(dú)立分發(fā)、容易收斂問(wèn)題和錯(cuò)誤等優(yōu)點(diǎn)。Android系統(tǒng)由Linux內(nèi)核、函數(shù)庫(kù)、Android運(yùn)行時(shí)、應(yīng)用程序框架以及應(yīng)用程序組成。如圖3-4的Android系統(tǒng)架構(gòu)所示,Dalvik虛擬機(jī)屬于Android運(yùn)行時(shí)環(huán)境,它與一些核心庫(kù)共同承擔(dān)Android應(yīng)用程序的運(yùn)行工作。

Android系統(tǒng)啟動(dòng)加載完內(nèi)核后,第一個(gè)執(zhí)行的是init進(jìn)程,init進(jìn)程首先要做的是設(shè)備的初始化工作,然后讀取inic.rc文件并啟動(dòng)系統(tǒng)中的重要外部程序Zygote.Zygote進(jìn)程是Android所有進(jìn)程的孵化器進(jìn)程,它啟動(dòng)后會(huì)首先初始化Dalvik虛擬機(jī),然后啟動(dòng)system_server并進(jìn)入Zygote模式,通過(guò)socket等候命令。當(dāng)執(zhí)行一個(gè)Android應(yīng)用程序時(shí),system_server進(jìn)程通過(guò)socket方式發(fā)送命令給Zygote,Zygote收到命令后通過(guò)fork自身創(chuàng)建一個(gè)Dalvik虛擬機(jī)的實(shí)例來(lái)執(zhí)行應(yīng)用程序的入口函數(shù),這樣一個(gè)程序就啟動(dòng)完成了。整個(gè)流程如圖3-5所示。

Zygote提供了三種創(chuàng)建進(jìn)程的方法:

fork(),創(chuàng)建一個(gè)Zygote進(jìn)程;

forkAndSpecialize(),創(chuàng)建一個(gè)非Zygote進(jìn)程;

forkSystemServer(),創(chuàng)建一個(gè)系統(tǒng)服務(wù)進(jìn)程。

其中,Zygote進(jìn)程可以再fork()出其他進(jìn)程,非Zygote進(jìn)程則不能fork其他進(jìn)程,而系統(tǒng)服務(wù)進(jìn)程在終止后它的子進(jìn)程也必須終止。

當(dāng)進(jìn)程fork成功后,執(zhí)行的工作就交給了Dalvik虛擬機(jī)。Dalvik虛擬機(jī)首先通過(guò)loadClassFromDex()函數(shù)完成類的裝載工作,每個(gè)類被成功解析后都會(huì)擁有一個(gè)ClassObject類型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在運(yùn)行時(shí)環(huán)境中,虛擬機(jī)使用gDvm.loadedClass全局哈希表來(lái)存儲(chǔ)與查詢所有裝在進(jìn)來(lái)的類,隨后,字節(jié)碼驗(yàn)證器使用dvmVerifyCodeFlow()函數(shù)對(duì)裝入的代碼進(jìn)行校驗(yàn),接著虛擬機(jī)調(diào)用FindClass()函數(shù)查找并裝載main方法類,隨后調(diào)用dvmInterpret()函數(shù)初始化解釋器并執(zhí)行字節(jié)碼流。整個(gè)過(guò)程如圖3-6所示。

點(diǎn)擊領(lǐng)取更多資料?。?!

軟件測(cè)試 | Dalvik虛擬機(jī)是如何執(zhí)行程序的的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
扶余县| 牡丹江市| 镇宁| 衡南县| 临夏县| 浠水县| 中超| 宁津县| 元江| 北碚区| 武山县| 工布江达县| 确山县| 印江| 锡林浩特市| 白河县| 延吉市| 临武县| 宁德市| 徐闻县| 黄山市| 台中市| 潮安县| 长宁区| 延津县| 修文县| 邹城市| 嘉义县| 隆化县| 成武县| 巨野县| 马山县| 万宁市| 基隆市| 昌吉市| 永安市| 松江区| 且末县| 嘉黎县| 海晏县| 周至县|