Android系統(tǒng)架構
android系統(tǒng)架構從上到下分為五層:應用層惹骂、應用框架層、系統(tǒng)運行庫層、硬件抽象層劣砍、Linux內核層。如圖1所示:
應用層
應用層就是App應用程序扇救,這里包括了系統(tǒng)級內嵌的App和常規(guī)開發(fā)人員的非系統(tǒng)級的App刑枝,如圖二所示香嗓。
系統(tǒng)級的App主要位于系統(tǒng)源碼的packages包里面,如圖三是packages包的目錄:
應用框架層(Java API Framework)
應用框架層為開發(fā)應用程序提供常規(guī)的API装畅,開發(fā)人員可以通過應用框架層開發(fā)應用靠娱,也可以稱為Java Framework,除了給上層應用調用API掠兄,另一方面也跟C/C++程序庫和硬件抽象層交互,如圖四所示像云,
這一層中提供了很多的管理器,如ActivityManger蚂夕、LocationManager迅诬、PackageManager等,如圖五是應用框架層提供的組件婿牍。
應用框架層的代碼主要位于framework包的/base目錄里侈贷,如圖六是base目錄的介紹:
系統(tǒng)運行庫層(native層)
系統(tǒng)運行庫層分為兩部分:C/C++程序庫和運行時庫,其中運行時庫又分為兩部分:虛擬機和核心庫等脂,如圖七所示俏蛮。C/C++程序庫主要給framework調用給開發(fā)人員提供功能。虛擬機有Dalvik和ART上遥,一個是即時編譯搏屑,一個AOT預編譯。其代碼主要位于系統(tǒng)源碼的/framework露该,/art, /dalvik 包下睬棚。
硬件抽象層
硬件抽象層位于操作系統(tǒng)內核和硬件電路的接口層,主要是把硬件抽象分離出來解幼,使操作系統(tǒng)不能直接操作硬件抑党,也使硬件與平臺無關性。代碼位于系統(tǒng)源碼的 hardware包中撵摆。
Linux內核層
Android的核心系統(tǒng)服務用Linux核心底靠,也增加了Android專用的驅動。
最后這五層的架構就很明了特铝,我們在看一下Android的系統(tǒng)架構圖: