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