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