標籤:
架構圖如下:
1)英文版:
2)中文版:
由圖可知:Android 系統架構從下到上分為 Linux核心層、中介軟體、 應用程式架構層和應用程式層。
1、Linux kernel
負責硬體的驅動程式、網路、電源、系統安全以及記憶體管理等功能。
2、中介軟體:核心庫和運行時(libraries & Android runtime)
1)核心庫
即c/c++函數庫部分,大多數都是開放原始碼的函數庫,例如webkit(引擎),該函數庫負責 android網頁瀏覽器的運行,例如 標準的 c 函數庫libc、openssl、sqlite等,當然也包括支援遊戲開發2dsgl和 3dopengles,在多媒體方面有mediaframework架構來支援各種影音和圖形檔案的播放與顯示。
2)運行時
區別於Java虛擬機器的是,每一個Android 應用程式都在它自己的進程中運行,都有一個屬於自己的Dalvik 虛擬機器,這一點可以讓系統在運行時可以達到最佳化,程式間的影響大大降低。Dalvik虛擬機器並非運行Java位元組碼,而是運行自己的位元組碼。負責解釋和執行產生的dalvik格式的位元組碼。
3、應用程式架構層
java應用程式開發人員主要是使用該層封裝好的api進行快速開發。該層主要有:
1)豐富而又可擴充性的視圖(Views),可以用來構建應用程式, 它包括列表(lists),網格(grids), 文字框(text boxes),按鈕(buttons),可嵌入的網頁瀏覽器。
2)內容提供者(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如連絡人資料庫),或者共用它們自己的資料。
3)資源管理員(Resource Manager)提供非代碼資源的訪問,如本地字串,圖形,和布局檔案( layoutfiles )。
4)通知管理器(Notification Manager) 使得應用程式可以在狀態列中顯示自訂的提示資訊。
5)Active Manager(Activity Manager) 用來管理應用程式生命週期並提供常用的導航回退功能。
4、應用程式層
Android系統會內建一些應用程式套件組合 包括email 用戶端,SMS 短訊息程式,日曆,地圖,瀏覽器,連絡人管理程式等。Android 應用程式使用架構的api並在架構下運行,所有的應用程式都是使用JAVA 語言編寫的。
總結:
下層為上層服務,上層需要下層的支援,調用下層的服務,這種嚴格分層的方式帶來的極大的穩定性、靈活性和可擴充性,使得不同層的開發人員可以按照規範專心特定層的開發。
Android系統架構的簡單描述