android系統架構分為五層,從上到下依次是應用層、應用框架層、系統執行庫層、硬體抽象層和linux核心層。
系統內建的應用程式以及非系統級的應用程式都是屬於應用層。 引用官方描述:
android 隨附一套用於電子郵件、簡訊、日曆、網際網路瀏覽和聯絡人等的核心應用。平台隨附的應用與使用者可以選擇安裝的應用一樣,沒有特殊狀態。因此第三方應用可成為使用者的預設網路瀏覽器、簡訊messenger甚至預設鍵盤(有一些例外,例如系統的「設定」應用)
應用框架層為開發人員提供了可以開發應用程式所需要的api,我們平常開發應用程式都是呼叫的這一層所提供的api,當然也包括系統的應用。主要元件見如下**。
名稱描述
activity manager(活動管理器)
管理各個應用程式生命週期以及通常的導航回退功能
location manager(位置管理器)
提供地理位置以及定位功能服務
package manager(包管理器)
管理所有安裝在android系統中的應用程式
notification manager(通知管理器)
使得應用程式可以在狀態列中顯示自定義的提示資訊
resource manager(資源管理器)
提**用程式使用的各種非**資源,如本地化字串、、布局檔案、顏色檔案等
telephony manager(**管理器)
管理所有的移動裝置功能
window manager(視窗管理器)
管理所有開啟的視窗程式
content providers(內容提供器)
使得不同應用程式之間可以共享資料
view system(檢視系統)
構建應用程式的基本元件
系統執行庫層分為兩部分,分別是c/c++程式庫和android執行時庫。下面分別來介紹它們。
硬體抽象層 (hal) 提供標準介面,hal包含多個庫模組,其中每個模組都為特定型別的硬體元件實現一組介面,比如wifi/藍芽模組,當框架api請求訪問裝置硬體時,android系統將為該硬體載入相應的庫模組。
android 的核心系統服務基於linux 核心,在此基礎上新增了部分android專用的驅動。系統的安全性、記憶體管理、程序管理、網路協議棧和驅動模型等都依賴於該核心。
Android系統底層架構 譯
android提供了裝置移植和支援方面有較大的自由度,可以制定自有的裝置規範和驅動。通過硬體抽象層 hal hardware abstraction layer 可以在底層硬體驅動和上層平台之間建立關聯 hooks androind通過自身的開源性,來支援各種型別的裝置發展。在將android系統移...
Android控制項架構
android中的控制項分為兩大類,乙個是viewgroup和view,viewgroup作為父控制項,可以包含很多view和viewgroup,通過viewgroup 我們的控制項形成了乙個以viewgroup為核心的控制項樹,上層負責下層的繪製和測量,並傳遞互動事件.在這樣一棵樹的頂部,我們把這...
Android專案架構
寫於2015 06 05 android專案重構之路 架構篇 android專案重構之路 介面篇 android專案重構之路 實現篇 我將專案分為了四個層級 模型層 介面層 核心層 介面層。模型層定義了所有的模型 介面層封裝了伺服器提供的api 核心層處理所有業務邏輯 介面層就處理介面的展示。幾個層...