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

可以查看 https://developer.android.com/guide/platform

Android 是一種基于 Linux 的開放源代碼軟件棧,為廣泛的設(shè)備和機型而創(chuàng)建。下圖所示為 Android 平臺的主要組件匀奏。

image.png

Linux 內(nèi)核

Android 平臺的基礎(chǔ)是 Linux 內(nèi)核。例如双炕,Android Runtime (ART) 依靠 Linux 內(nèi)核來執(zhí)行底層功能蹭越,例如線程和低層內(nèi)存管理庇绽。
使用 Linux 內(nèi)核可讓 Android 利用主要安全功能,并且允許設(shè)備制造商為著名的內(nèi)核開發(fā)硬件驅(qū)動程序员凝。


硬件抽象層 (HAL)

硬件抽象層 (HAL) 提供標準界面署驻,向更高級別的 Java API 框架顯示設(shè)備硬件功能。HAL 包含多個庫模塊健霹,其中每個模塊都為特定類型的硬件組件實現(xiàn)一個界面旺上,例如相機或藍牙模塊。當框架 API 要求訪問設(shè)備硬件時糖埋,Android 系統(tǒng)將為該硬件組件加載庫模塊宣吱。


Android Runtime

對于運行 Android 5.0(API 級別 21)或更高版本的設(shè)備,每個應用都在其自己的進程中運行瞳别,并且有其自己的 Android Runtime (ART) 實例征候。ART 編寫為通過執(zhí)行 DEX 文件在低內(nèi)存設(shè)備上運行多個虛擬機,DEX 文件是一種專為 Android 設(shè)計的字節(jié)碼格式祟敛,經(jīng)過優(yōu)化疤坝,使用的內(nèi)存很少。編譯工具鏈(例如 Jack)將 Java 源代碼編譯為 DEX 字節(jié)碼馆铁,使其可在 Android 平臺上運行跑揉。

ART 的部分主要功能包括:

預先 (AOT) 和即時 (JIT) 編譯
優(yōu)化的垃圾回收 (GC)
更好的調(diào)試支持,包括專用采樣分析器埠巨、詳細的診斷異常和崩潰報告历谍,并且能夠設(shè)置監(jiān)視點以監(jiān)控特定字段
在 Android 版本 5.0(API 級別 21)之前,Dalvik 是 Android Runtime乖订。如果您的應用在 ART 上運行效果很好扮饶,那么它應該也可在 Dalvik 上運行具练,但反過來不一定乍构。

Android 還包含一套核心運行時庫,可提供 Java API 框架使用的 Java 編程語言大部分功能扛点,包括一些 Java 8 語言功能哥遮。

原生 C/C++ 庫

許多核心 Android 系統(tǒng)組件和服務(例如 ART 和 HAL)構(gòu)建自原生代碼,需要以 C 和 C++ 編寫的原生庫陵究。Android 平臺提供 Java 框架 API 以向應用顯示其中部分原生庫的功能眠饮。例如,您可以通過 Android 框架的 Java OpenGL API 訪問 OpenGL ES铜邮,以支持在應用中繪制和操作 2D 和 3D 圖形仪召。

如果開發(fā)的是需要 C 或 C++ 代碼的應用寨蹋,可以使用 Android NDK 直接從原生代碼訪問某些原生平臺庫。


Java API 框架

您可通過以 Java 語言編寫的 API 使用 Android OS 的整個功能集扔茅。這些 API 形成創(chuàng)建 Android 應用所需的構(gòu)建塊已旧,它們可簡化核心模塊化系統(tǒng)組件和服務的重復使用,包括以下組件和服務:

豐富召娜、可擴展的視圖系統(tǒng)运褪,可用以構(gòu)建應用的 UI,包括列表玖瘸、網(wǎng)格秸讹、文本框、按鈕甚至可嵌入的網(wǎng)絡(luò)瀏覽器
資源管理器雅倒,用于訪問非代碼資源璃诀,例如本地化的字符串、圖形和布局文件
通知管理器蔑匣,可讓所有應用在狀態(tài)欄中顯示自定義提醒
Activity 管理器文虏,用于管理應用的生命周期,提供常見的導航返回棧
內(nèi)容提供程序殖演,可讓應用訪問其他應用(例如“聯(lián)系人”應用)中的數(shù)據(jù)或者共享其自己的數(shù)據(jù)
開發(fā)者可以完全訪問 Android 系統(tǒng)應用使用的框架 API氧秘。

系統(tǒng)應用

Android 隨附一套用于電子郵件、短信趴久、日歷丸相、互聯(lián)網(wǎng)瀏覽和聯(lián)系人等的核心應用。平臺隨附的應用與用戶可以選擇安裝的應用一樣彼棍,沒有特殊狀態(tài)灭忠。因此第三方應用可成為用戶的默認網(wǎng)絡(luò)瀏覽器、短信 Messenger 甚至默認鍵盤(有一些例外座硕,例如系統(tǒng)的“設(shè)置”應用)弛作。

系統(tǒng)應用可用作用戶的應用,以及提供開發(fā)者可從其自己的應用訪問的主要功能华匾。例如映琳,如果您的應用要發(fā)短信,您無需自己構(gòu)建該功能蜘拉,可以改為調(diào)用已安裝的短信應用向您指定的接收者發(fā)送消息萨西。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旭旭,隨后出現(xiàn)的幾起案子谎脯,更是在濱河造成了極大的恐慌,老刑警劉巖持寄,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件源梭,死亡現(xiàn)場離奇詭異娱俺,居然都是意外死亡,警方通過查閱死者的電腦和手機废麻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門矢否,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脑溢,你說我怎么就攤上這事僵朗。” “怎么了屑彻?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵验庙,是天一觀的道長。 經(jīng)常有香客問我社牲,道長粪薛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任搏恤,我火速辦了婚禮违寿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘熟空。我一直安慰自己藤巢,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布息罗。 她就那樣靜靜地躺著掂咒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迈喉。 梳的紋絲不亂的頭發(fā)上绍刮,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音挨摸,去河邊找鬼孩革。 笑死,一個胖子當著我的面吹牛得运,可吹牛的內(nèi)容都是我干的膝蜈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼澈圈,長吁一口氣:“原來是場噩夢啊……” “哼彬檀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞬女,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎努潘,沒想到半個月后诽偷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坤学,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年报慕,在試婚紗的時候發(fā)現(xiàn)自己被綠了深浮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡眠冈,死狀恐怖飞苇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜗顽,我是刑警寧澤布卡,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站雇盖,受9級特大地震影響忿等,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崔挖,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一贸街、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狸相,春花似錦薛匪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至将谊,卻和暖如春冷溶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尊浓。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工逞频, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栋齿。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓苗胀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓦堵。 傳聞我的和親對象是個殘疾皇子基协,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

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