Android系統(tǒng)架構(gòu)簡介

Android采用分層的架構(gòu)狼渊,分為四層箱熬,從高層到底層分為應(yīng)用程序?qū)樱╝pp+System apps),應(yīng)用程序框架層(Java API Framework)囤锉,系統(tǒng)運(yùn)行庫和運(yùn)行環(huán)境層(Libraries + android Runtime)和Linux核心層(HAL+ Linux Kernel)坦弟,如下圖所示:


Android平臺示意圖

還有一張中文簡化版的分層圖如下:


Android分層圖

1. Linux核心層

linux內(nèi)核(Linux Kernel)

Android平臺的基礎(chǔ),直接和硬件打交道官地。硬件驅(qū)動酿傍、進(jìn)程管理、內(nèi)存管理驱入、網(wǎng)絡(luò)管理的功能在這里實(shí)現(xiàn)赤炒。

硬件抽象層(Hardware Abstraction Layer)

為上層的Java API Framework提供相關(guān)硬件的界面顯示,Audio亏较,Bluetooth等是組成硬件抽象層的庫模塊莺褒,實(shí)現(xiàn)每個硬件的界面顯示功能。

2. 系統(tǒng)運(yùn)行庫和運(yùn)行環(huán)境層

Android 運(yùn)行環(huán)境(Android Runtime)

Android 5.0(API 21)之前使用的是Dalvik虛擬機(jī)雪情,之后被ART所取代遵岩。
ART是Android操作系統(tǒng)的運(yùn)行環(huán)境,通過運(yùn)行虛擬機(jī)來執(zhí)行dex文件巡通。其中尘执,dex文件是專為安卓設(shè)計的的字節(jié)碼格式,好處多多宴凉,不再贅述誊锭。Android toolchain(一種編譯工具)可以將Java代碼編譯為dex字節(jié)碼格式,過程如下圖弥锄,jack是一種編譯工具鏈(tool chain)


Java代碼編譯為dex代碼

為了便于理解丧靡,做個類比蟆沫,我們都知道,java程序的運(yùn)行需要java的核心包的支持温治,然后通過JVM虛擬機(jī)來運(yùn)行我們的應(yīng)用程序饭庞。在Android中,Android程序的運(yùn)行需要core Libararies的支持罐盔,然后通過ART或者Dalvik來運(yùn)行該程序但绕。

原生C/C++ 庫(Native c/c++ Libraries)

上面提到的ART就依賴于C/C++庫。開發(fā)者可以通過調(diào)用Java API Framework來使用原生庫的功能惶看,也可以用Android NDK直接調(diào)用原生庫。

3. 應(yīng)用程序框架層

java API Framework

我們最常用的組件和服務(wù)都在這一層纬黎,也是每一個安卓開發(fā)者必須要熟悉的一層,

4. Application層

系統(tǒng)應(yīng)用(system apps)

可以理解為內(nèi)置在Android系統(tǒng)的app本今,我們可以像調(diào)用Java API Framework層一樣直接調(diào)用系統(tǒng)app。

我們也可以自己編寫System app,但是要注意系統(tǒng)應(yīng)用的權(quán)限比較特殊冠息,直接寫在manifest里面是不行的。需要做特別的處理逛艰,參考http://www.programgo.com/article/76213742299/

因此,app開發(fā)主要研究Java API Framework層和應(yīng)用程序?qū)蛹纯缮⒉溃绻杏玫絁NI菇绵,還需要研究一下Native c/c++ Libraries镇眷。但是Android運(yùn)行庫和Android運(yùn)行時主要是從事系統(tǒng)開發(fā)的人員需要研究的咬最。把握全局的同時欠动,也要搞清楚重點(diǎn),畢竟具伍,術(shù)業(yè)有專攻⊙夭拢·

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碗脊,一起剝皮案震驚了整個濱河市橄妆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌害碾,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慌随,死亡現(xiàn)場離奇詭異,居然都是意外死亡阁猜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門剃袍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人民效,你說我怎么就攤上這事√尉龋” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵舒萎,是天一觀的道長。 經(jīng)常有香客問我咧栗,道長,這世上最難降的妖魔是什么致板? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮斟或,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萝挤。我一直安慰自己,他們只是感情好怜珍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酥泛,像睡著了一般嫌拣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呆躲,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音插掂,去河邊找鬼。 笑死辅甥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肆氓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谢揪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拨扶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤患民,失蹤者是張志新(化名)和其女友劉穎缩举,沒想到半個月后匹颤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡印蓖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赦肃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡船侧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厅各,到底是詐尸還是另有隱情,我是刑警寧澤队塘,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布卫旱,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏投放。R本人自食惡果不足惜奈泪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一涝桅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烙样,春花似錦、人聲如沸谒获。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裸准。三九已至赔硫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爪膊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工推盛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人小槐。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像凿跳,于是被迫代替她去往敵國和親件豌。 傳聞我的和親對象是個殘疾皇子控嗜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容