Andriod系統架構

jopen 12年前發布 | 4K 次閱讀 虛擬平臺 ODF PHP教程

Andriod框架分層:(從高到低)

應用程序層(Applications)、應用程序框架層(Application Framework)、系統程序庫層(Libraries)、Android運行庫( Android Runtime )、Linux內核層(Linux Kernel)


(一)應用程序層:包括(SMS/MMS短消息通訊、日歷、地圖、瀏覽器、聯系人管理程序等)的應用程序,使用Java通過應用層序框架提供的API完成,或者通過Java的JNI方式配合Android NDK開發的原生應用程序。

(二)應用程序框架層:提供可以完全訪問核心應用程序所使用的API框架,該應用程序架構簡化了組件的重用。
提供的組件及其功能:
    (1)活動管理器(Activity Manager):管理應用程序生命周期并提供常用的導航回退功能。
    (2)窗口管理器(Window Manager):管理所有開啟的窗口程序。
    (3)內容提供器(Content Providers):使應用程序可以訪問另一個應用數據或者共享自己數據。
    (4)視圖系統(View System):可以用來構建應用程序,包括列表(list)、網格(grid)、按鈕(button)、文本框(text)、嵌入式瀏覽器(webView)等。
    (5)通知管理器(Notification Manager):使應用程序可以在狀態欄中顯示自定義的提示信息。
    (6)包管理器(Package Manager):管理所安裝在Android系統的應用程序。
    (7)資源管理器(Resource Manager):提供各種資源供應用程序使用。
    (8)硬件服務(Hard Service):Telephony Manager(電話撥號收聽等)、Location Manager(管理地圖服務)、Blutooth Sefvice(藍牙服務)、WIFI Service(WIFI服務)、USB Service(Use服務)、Sensor Service(傳感器服務)

(三)系統程序庫 :Android包含一些C/C++庫,被Android不同組件使用。
    (1)Surface Manager:對顯示子系統進行管理,并提供2D和3D圖層無縫融合。
    (2)Media Framework:基于PacketVideo OpenCORE,支持多種格式音視頻回放錄制和靜態圖片。
    (3)SQLite:輕量級關系型數據庫引擎。
    (4)Opengl ES:可使用硬件3D加速或者高度優化的3D軟加速。
    (5)SGL:底層的2D圖形引擎。
    (6)FreeType:位圖(bitmap)和矢量(vrctor)字體顯示。
    (7)Webkit:最新Web瀏覽器引擎,支持Android瀏覽器和一個內嵌的Web視圖。
    (8)SSL:安全通信相關技術處理,為網絡通信提供安全及數據完整性的一種安全協議。
    (9)Libc:Android沒有使用glibc為C庫,Google自己開發的Bionic Libc,從BSD繼承標準C系統函數庫,專門為基于嵌入式Linux設備定制。

(四)Android運行時庫:又分為核心庫和Dalvik虛擬機兩部分。
    核心庫提供了Java語言核心庫的大多數功能,主要通過JNI方式向應用程序框架提供調用底層程序庫接口。
    Dalvik虛擬機為了能同時高效的運行多個VMs而實現的,執行.dex文件。每個Android應用程序都在自己進程中運行,擁有一個獨立的Dalvik虛擬機實例。

(五)Linux內核層:Android依賴Linux2.6內核提供的核心系統服務:安全、內存管理、進程管理、網絡棧、驅動模塊等,內核作為一個抽象層,存在于軟件棧層和硬件層之間。
Android對內核增強表現方面:
    (1)硬件時鐘(Alarm)
    (2)內存分配和共享(Ashmem)
    (3)低內存管理器(Low Memory Killer)
    (4)Kernel調試(Kernel debugger)
    (5)日志設備(Logger)
    (6)Android IPC機制(IBinder)
    (7)電源管理(Power Managerment)
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!