北京Android開發(fā)培訓(xùn)班哪好
138 2017-05-23
北京Android開發(fā)培訓(xùn)班哪好?Android是一款基于Linux內(nèi)核,面向移動(dòng)終端的操作系統(tǒng)。為適應(yīng)其作為移動(dòng)平臺(tái)操作系統(tǒng)的特殊需要,谷歌對(duì)其做了特別的設(shè)計(jì)與優(yōu)化,使得其進(jìn)程調(diào)度與資源管理與其他平臺(tái)的Linux有明顯的區(qū)別。主要包含下面幾個(gè)層次:
ApplicationFramework
ApplicationFramework將整個(gè)操作系統(tǒng)分隔成兩個(gè)部分。對(duì)應(yīng)用開發(fā)者而言,所有APP都是運(yùn)行在ApplicationFramework之上,而并不需要關(guān)心系統(tǒng)底層的情況。ApplicationFramework層為應(yīng)用開發(fā)者提供了豐富的應(yīng)用編程接口,如ActivityManager,ContentProvider,NotificationManager,以及各種窗口Widget資源等。在ApplicationFramework層,Activity是一個(gè)APP最基本的組成部分。一般每個(gè)Activity對(duì)應(yīng)于屏幕上的一個(gè)視圖(或者說一屏),一個(gè)APP可以有一個(gè)或者多個(gè)Activity。應(yīng)用程序被打包成.apk格式的文件,由DalvikVM解釋執(zhí)行。
DalvikVM
Dalvik虛擬機(jī)采用寄存器架構(gòu),而不是JVM的棧結(jié)構(gòu)。Java程序編譯后的.class文件并不能在Dalvik中解釋執(zhí)行。因此Google提供了一個(gè)dx工具,用于將.class文件轉(zhuǎn)換成Dalivk能夠識(shí)別的.dex格式。具體DalvikVM的細(xì)節(jié)不是本文重點(diǎn),以下不再討論。
Linuxkernel
由上所述,所有的APP都是由Java代碼編寫并在DalvikVM中得到解釋執(zhí)行。在Android操作系統(tǒng)中,每個(gè)DalvikVM的每個(gè)Instance都對(duì)應(yīng)于Linux內(nèi)核中的一個(gè)進(jìn)程??梢允褂胊dbshell工具查看系統(tǒng)中的當(dāng)前進(jìn)程。如下圖所示,Android2.3.3啟動(dòng)后內(nèi)核中的進(jìn)程列表。
Android操作系統(tǒng)的內(nèi)存回收機(jī)制詳解
UID標(biāo)識(shí)為app_xx的每一項(xiàng)都是一個(gè)app所占用的進(jìn)程,可見Android設(shè)計(jì)使得每個(gè)應(yīng)用程序由一個(gè)獨(dú)立的Dalvik實(shí)例解釋執(zhí)行,而每個(gè)Linux內(nèi)核進(jìn)程加載一個(gè)Dalvik實(shí)例,通過這種方式提供app的運(yùn)行環(huán)境。如此,每個(gè)APP的資源被完全屏蔽,互不干擾。雖然同時(shí)引入了進(jìn)程間通信的困難,但也帶來了更強(qiáng)的安全性。
北京Android開發(fā)培訓(xùn)班哪好?本文為獨(dú)家提供!擁有全國10萬家培訓(xùn)機(jī)構(gòu),您要的培訓(xùn)這里都有,找培訓(xùn),上!
相關(guān)文章推薦閱讀:北京Android開發(fā)培訓(xùn)班
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)