安卓系統架構


一、Android 簡介

  Android是一個開源的,基於Linux的移動設備軟件平台和操作系統,主要使用於移動設備,如智能手機和平板電腦。早期由 Google 開發,后由開放手機聯盟(Open Handset Alliance)開發。它采用了軟件堆層(Software Stack,又名以軟件疊層)的架構,主要分為三部分。底層以 Linux 內核工作為基礎,只提供基本功能;其他的應用軟件則由各公司自行開發,以 Java 作為編寫程序的一部分。

二、Android 架構

  下圖是 Android 操作系統的架構,架構包括 4 層,由上到下依次是應用程序層、應用程序框架層、核心類庫和 Linux 內核。其中,核心類庫中包含系統庫及 Android 運行環境。

三、Android 架構分析

  (1)應用程序層

  Android 裝配了一個核心應用程序集合,包括 E-mail 客戶端、SMS 短消息程序、日歷、地圖、瀏覽器、聯系人管理程序和其他程序,所有應用程序都是用 Java 編程語言編寫的。

  用戶開發的 Android 應用程序和 Android 的核心應用程序是同一層次的,它們都是基於 Android 的系統 API 構建的。

  (2)應用程序框架層

  應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發布它的功能且任何其他應用程序都可以使用這些功能(需要服從框架執行的安全限制),這一機制允許用戶替換組件。

  開發者完全可以訪問核心應用程序所使用的 API 框架。通過提供開放的開發平台,Android 使開發者能夠編制極其豐富和新穎的應用程序。開發者可以自由地利用設備硬件優勢訪問位置信息、運行后台服務、設置鬧鍾、向狀態欄添加通知等。

  應用框架層以 Java 類的形式為應用程序提供許多高級的服務。應用程序開發者被允許在應用中使用這些服務。所有的應用程序都是由一系列的服務和系統組成的,主要包括以下幾種:

  

  (3)數據庫

  Android 本地框架是由 C/C++ 實現的,包含 C/C++ 庫,以供 Android 系統的各個組件使用。這些功能通過 Android 的應用程序框架為開發者提供服務。

  這里只介紹 C/C++ 庫中的一些核心庫:

  在 Linux 內核層的上面是一系列程序庫的集合,包括開源的 Web 瀏覽器引擎 Webkit ,知名的 libc 庫,用於倉庫存儲和應用數據共享的 SQLite 數據庫,用於播放、錄制音視頻的庫,用於網絡安全的 SSL 庫等。

  這個類別包括了專門為 Android 開發的基於 Java 的程序庫。這個類別程序庫的示例包括應用程序框架庫,如用戶界面構建,圖形繪制和數據庫訪問。一些 Android 開發者可用的 Android 核心程序庫總結如下:

  • android.app - 提供應用程序模型的訪問,是所有 Android 應用程序的基石。
  • android.content - 方便應用程序之間,應用程序組件之間的內容訪問,發布,消息傳遞。
  • android.database - 用於訪問內容提供者發布的數據,包含 SQLite 數據庫管理類。
  • android.opengl - OpenGL ES 3D 圖片渲染 API 的 Java 接口。
  • android.os - 提供應用程序訪問標注操作系統服務的能力,包括消息,系統服務和進程間通信。
  • android.text - 在設備顯示上渲染和操作文本。
  • android.view - 應用程序用戶界面的基礎構建塊。
  • android.widget - 豐富的預置用戶界面組件集合,包括按鈕,標簽,列表,布局管理,單選按鈕等。
  • android.webkit - 一系列類的集合,允許為應用程序提供內建的 Web 瀏覽能力。

  (4)Android 運行環境

  Android 包含一個核心庫的集合,該核心庫提供了 Java 編程語言核心庫的大多數功能。幾乎每一個 Android 應用程序都在自己的進程中運行,都擁有一個獨立的 Dalvik 虛擬機實例。
  Dalvik 是 Google 公司自己設計的用於 Android 平台的 Java 虛擬機。Dalvik 虛擬機是 Google 等廠商合作開發的 Android 移動設備平台的核心組成部分之一,它可以支持已轉換為 .dex (Dalvik Executable) 格式的 Java 應用程序的運行。
  .dex 格式是專為 Dalvik 設計的一種壓縮格式,適合內存和處理器速度有限的系統。
  Dalvik 經過優化,允許在有限的內存中同時運行多個虛擬機的實例,並且每一個 Dalvik 應用作為一個獨立的 Linux 進程執行。Dalvik 虛擬機依賴 Linux 內核提供基本功能,如線程和底層內存管理。

   (5)LINUX內核

  Android 基於 Linux 提供核心系統服務,位於最底層的 Linux - 包括大約115個補丁的 Linux 3.6。提供包含安全、內存管理、進程管理、網絡堆棧、驅動模型等基本的系統功能。除了標准的 Linux 內核外,Android 還增加了內核的驅動程序,如Binder (IPC) 驅動、顯示驅動、輸入設備驅動、音頻系統驅動、攝像頭驅動、WiFi驅動、藍牙驅動、電源管理。於此同時,內核處理所有 Linux 所擅長的工作,如網絡和大量的設備驅動,從而避免兼容大量外圍硬件接口帶來的不便。
  Linux 內核也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節而為上層提供統一的服務。
  分層的好處就是使用下層提供的服務為上層提供統一的服務,屏蔽本層及以下層的差異,當本層及以下層發生了變化時,不會影響到上層,可以說是高內聚、低耦合。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM