Android系統結構

從上圖中能夠看出,Android系統架構爲四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹以下:linux

(1)Appliacationandroid

   Android平臺不單單是操做系統,也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是用Java語言編寫的,而且這些應用程序都是能夠被開發人員開發的其餘應用程序所替換,這點不一樣於其餘手機操做系統固化在系統內部的系統軟件,更加靈活和個性化。數據庫

(2)Application Framework瀏覽器

  應用程序框架層是咱們從事Android開發的基礎,不少核心應用程序也是經過這一層來實現其核心功能的,該層簡化了組件的重用,開發人員能夠直接使用其提供的組件來進行快速的應用程序開發,也能夠經過繼承而實現個性化的拓展。安全

A: Activity Manager架構

   管理各個應用程序生命週期以及一般的導航回退功能框架

B: Window Manageride

   管理全部的窗口程序函數

C: Content Provider工具

   使得不一樣應用程序之間存取或者分享數據

D: View System

   構建應用程序的基本組件

E: Notification Manager

   使得應用程序能夠在狀態欄中顯示自定義的提示信息

F:Package Manager

  Android系統內的程序管理

G: Telephony Manager

  管理全部的移動設備功能

H:Resource Manager

  提供應用程序使用的各類非代碼資源,如本地化字符串、圖片、佈局文件、顏色文件等

I: Location Manager

  提供位置服務

J:XMPP Service

 提供Google Talk服務

 

(3)系統運行庫層

從圖中能夠看出,系統運行庫層能夠分紅兩部分,分別是系統庫Android運行時,分別介紹以下:

A:系統庫

   系統庫是應用程序框架的支撐,是鏈接應用程序框架層與Linux內核層的重要紐帶。其主要分爲以下幾個:

  • Surface Manager

       執行多個應用程序時候,負責管理顯示與存取操做間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。

  • Media Framework

       多媒體庫,基於PacketVideo OpenCore;支持多種經常使用的音頻、視頻格式錄製和回放,編碼格式包括MPEG四、MP三、H.26四、AAC、ARM。

  • SQLite

      小型的關係型數據庫引擎

  • OpenGL|ES

     根據OpenGL ES 1.0API標準實現的3D繪圖函數庫

  • FreeType

     提供點陣字與向量字的描繪與顯示

  • WebKit

     一套網頁瀏覽器的軟件引擎

  • SGL

     底層的2D圖形渲染引擎

  • SSL

     在Andorid上通訊過程當中實現握手

  • Libc

       從BSD繼承來的標準C系統函數庫,專門爲基於embedded linux的設備定製

 

B:Android運行時

 Android應用程序時採用Java語言編寫,程序在Android運行時中執行,其運行時分爲核心庫和Dalvik虛擬機兩部分。

  • 核心庫

       核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。

  • Dalvik虛擬機

        Android程序不一樣於J2me程序,每一個Android應用程序都有一個專有的進程,而且不是多個程序運行在一個虛擬機中,而是每一個Android程序都有一個Dalivik虛擬機的實例,並在該 實例中執行。Dalvik虛擬機是一種基於寄存器的Java虛擬機,而不是傳統的基於棧的虛擬機,並進行了內存資源使用的優化以及支持多個虛擬機的特色。須要注意的是,不一樣於J2me,Android程序在虛擬機中執行的並不是編譯後的字節碼,而是經過轉換工具dx將Java字節碼轉成dex格式的中間碼。

 

 (4)Linux內核層

        Android是基於Linux2.6內核,其核心繫統服務如安全性、內存管理、進程管理、網路協議以及驅動模型都依賴於Linux內核。

相關文章
相關標籤/搜索