Android操作系統(tǒng)是一堆軟件組件,大致分為五個(gè)部分,四個(gè)主要的層次,如下圖所示。
底層是Linux - Linux 3.6,大約有115個(gè)補(bǔ)丁。 這提供了設(shè)備硬件之間的抽象級(jí)別,它包含了所有必要的硬件驅(qū)動(dòng)程序,如相機(jī),鍵盤,顯示器等。此外,內(nèi)核還處理Linux真正擅長(zhǎng)的所有事情,例如網(wǎng)絡(luò)連接和大量設(shè)備驅(qū)動(dòng)程序 ,這消除了與外設(shè)硬件接口的痛苦。
在Linux內(nèi)核之上,有一套庫(kù),包括開(kāi)源Web瀏覽器引擎WebKit,眾所周知的庫(kù)libc,SQLite數(shù)據(jù)庫(kù),它是存儲(chǔ)和共享應(yīng)用程序數(shù)據(jù)的有用存儲(chǔ)庫(kù),播放和記錄音頻和視頻的庫(kù),SSL 負(fù)責(zé)互聯(lián)網(wǎng)安全的類庫(kù)。
這個(gè)類別包含那些特定于Android開(kāi)發(fā)的基于Java的庫(kù)。 此類庫(kù)中的示例包括除了便于用戶界面構(gòu)建,圖形繪制和數(shù)據(jù)庫(kù)訪問(wèn)的應(yīng)用程序框架庫(kù)之外的應(yīng)用程序框架庫(kù)。 Android開(kāi)發(fā)人員可以使用的一些關(guān)鍵核心Android庫(kù)的總結(jié)如下 -
在Android運(yùn)行時(shí)覆蓋了基于Java的核心庫(kù)之后,現(xiàn)在是把注意力轉(zhuǎn)向Android軟件棧這一層包含的基于C/C++的庫(kù)。
這是架構(gòu)的第三部分,可以從底部的第二層獲得。 本節(jié)提供了一個(gè)名為Dalvik虛擬機(jī) 的關(guān)鍵組件,它是一種專為Android設(shè)計(jì)和優(yōu)化的Java虛擬機(jī)。
Dalvik VM利用Linux內(nèi)核特性,如內(nèi)存管理和多線程,這在Java語(yǔ)言中是固有的。 Dalvik虛擬機(jī)使每個(gè)Android應(yīng)用程序都能在自己的進(jìn)程中運(yùn)行,并擁有自己的Dalvik虛擬機(jī)實(shí)例。
Android運(yùn)行時(shí)還提供了一組核心庫(kù),使Android應(yīng)用程序開(kāi)發(fā)人員可以使用標(biāo)準(zhǔn)Java編程語(yǔ)言編寫(xiě)Android應(yīng)用程序。
應(yīng)用程序框架層以Java類的形式向應(yīng)用程序提供了許多更高級(jí)別的服務(wù)。 應(yīng)用程序開(kāi)發(fā)人員可以在他們的應(yīng)用程序中使用這些服務(wù)。
Android框架包含以下關(guān)鍵服務(wù) -
在頂層是所有的Android應(yīng)用程序。編寫(xiě)的應(yīng)用程序來(lái)安裝在這個(gè)圖層上。 這樣的應(yīng)用程序的例子是聯(lián)系人,瀏覽器,游戲等。