【Android系統】Android系統架構簡介

風靈使發表於2018-11-04

概述

Android系統架構如下圖:
這裡寫圖片描述
在這裡插入圖片描述
從上往下一共是四層:
應用程式層、應用程式框架層、函式庫與Android執行時層、Linux核心層。

下面分別介紹各層:

分層介紹

應用程式層

包含系列的Android核心應用程式,大部分的Android應用也屬於這一層,如日曆、鬧鐘、瀏覽器等。這一層屬於使用者。

應用程式框架層

這一層就是普通開發者需掌握的層,我們使用框架裡的各個模組來開發應用,這些模組和各種服務都可以複用。理解了這一層,開發者就能更快更好的開發應用。下面介紹一下各個模組:

序號 模組名 用途
1 Activity Manager(活動管理器) 管理應用程式生命週期並提供常用的導航回退功能
2 Window Manager(視窗管理) 整個Android的視窗機制都基於WindowManager,這個介面可以新增view到螢幕,也可以從螢幕刪除view
3 Content Providers(內容提供者) 使得應用程式可以訪問另一個應用程式的資料,或共享它們自己的資料
4 View System(檢視管理) 用來建立應用程式的檢視,即各種UI元件
5 Notification Manager(通知管理器) 使得應用程式可以在狀態列中顯示客戶通知資訊
6 Package Manager(包管理器) 管理應用程式包,通過它可以獲得應用程式的資訊
7 Telephony Manager(電話管理器) 提供了一系列用於訪問與手機通訊相關的狀態和資訊的get方法。其中包括手機SIM的狀態和資訊、電信網路的狀態及手機使用者的資訊。
8 Resource Manager(資源管理器) 圖片資源,介面xml資源、字型、顏色等資源都由資源管理器統一管理
9 Location Manager 管理地圖服務的相關功能
10 XMPP Services 可擴充套件訊息與表示協議服務,這是一個基於XML的通訊協議

函式庫與Android執行時層

這一層已涉及底層,一般的Android應用不會涉及此層。此層包括函式庫和Android執行環境:

Libraries

序號 模組名 功能
1 Surface Manager 對顯示子系統的管理,並且為應用提供2D,3D圖層的無縫融合
2 Media Framework(媒體庫) 基於PackeVideo OpenCore,該庫支援多種常用的音訊,視訊格式以及回放和錄製,同時支援靜態影象檔案。編碼格式包括:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG
3 SQLite 對所有應用程式可用,功能強大的輕量級關係型資料庫引擎
4 OpenGL ES 基於OpenGL ES 1.0 APIs實現,該庫可以使用硬體3D加速或者使用高度優化的3D軟加速
5 FreeType 點陣圖(bitmap)和向量(vector)字圖顯示支援
6 WebKit 最新的web瀏覽器引擎,用來支援Andiroid瀏覽器或者嵌入的web檢視
7 SGL 底層的2D圖形引擎
8 SSL Secure Sockets Layer 安全套接層,為網路通訊提供安全及資料完整性的一種安全協議
9 libc(系統C庫) 一個從BSD整合來的標準C系統函式庫(libc)它是專門為基於嵌入式Linux的裝置定製的

Android Runtime

序號 模組名 功能
1 Core Libraries 該核心庫提供了Java程式語言核心庫的大多數功能
2 Dalvik VM android平臺的一個虛擬機器,它相當於PC中Java的虛擬機器JVM

Linux核心層

此層為Android系統所依賴的Linux核心,核心提供的功能如下:

  1. 安全性(Security)
  2. 記憶體管理(Memory Management)
  3. 程式管理(Process Management)
  4. 網路堆疊(Network Stack)
  5. 驅動程式模型(Driver Model)包含以下這些常規的驅動程式:
         Display Driver
         Keypad Driver
         Camera Driver
         WiFi Driver
         Flash Memory Driver
         Audio Driver
         Binder(IPC)Driver
         Power Management
         Bluetooth Driver
         USB Driver
    

相關文章