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