Android 是一種基於 Linux 的開放源代碼軟件棧,爲普遍的設備和機型而建立。下圖所示爲 Android 平臺的主要組件。 編程
Android 隨附一套用於電子郵件、短信、日曆、互聯網瀏覽和聯繫人等的核心應用。平臺隨附的應用與用戶能夠選擇安裝的應用同樣,沒有特殊狀態。所以第三方應用可成爲用戶的默認網絡瀏覽器、短信 Messenger甚至默認鍵盤(有一些例外,例如系統的「設置」應用)。 系統應用可用做用戶的應用,以及提供開發者可從其本身的應用訪問的主要功能。例如,若是您的應用要發短信,您無需本身構建該功能,能夠改成調用已安裝的短信應用向您指定的接收者發送消息`瀏覽器
您可經過以 Java 語言編寫的 API 使用 Android OS 的整個功能集。這些 API 造成建立 Android 應用所需的構建塊,它們可簡化核心模塊化系統組件和服務的重複使用,包括如下組件和服務:安全
- 豐富、可擴展的視圖系統,可用以構建應用的 UI,包括列表、網格、文本框、按鈕甚至可嵌入的網絡瀏覽器
- 資源管理器,用於訪問非代碼資源,例如本地化的字符串、圖形和佈局文件
- 通知管理器,可以讓全部應用在狀態欄中顯示自定義提醒
- Activity 管理器,用於管理應用的生命週期,提供常見的導航返回棧 內容提供程序,可以讓應用訪問其餘應用(例如「聯繫人」應用)中的數據或者共享其本身的數據
一.原生 C/C++ 庫網絡
- 系統庫包括九個子系統,分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。
二.Android Runtime架構
- 對於運行 Android 5.0(API 級別 21)或更高版本的設備,每一個應用都在其本身的進程中運行,而且有其本身的 Android Runtime (ART) 實例。ART 編寫爲經過執行 DEX 文件在低內存設備上運行多個虛擬機,DEX 文件是一種專爲 Android 設計的字節碼格式,通過優化,使用的內存不多。編譯工具鏈(例如 Jack)將 Java 源代碼編譯爲 DEX 字節碼,使其可在 Android 平臺上運行。
- ART 的部分主要功能包括:
- 預先 (AOT) 和即時 (JIT) 編譯
- 優化的垃圾回收 (GC)
- 更好的調試支持,包括專用採樣分析器、詳細的診斷異常和崩潰報告,而且可以設置監視點以監控特定字段 在 Android 版本 5.0(API 級別 21)以前,Dalvik 是 Android Runtime。若是您的應用在 ART 上運行效果很好,那麼它應該也可在 Dalvik 上運行,但反過來不必定。 Android 還包含一套核心運行時庫,可提供 Java API 框架使用的 Java 編程語言大部分功能,包括一些 Java 8 語言功能。
硬件抽象層 (HAL) 提供標準界面,向更高級別的 Java API 框架顯示設備硬件功能。HAL 包含多個庫模塊,其中每一個模塊都爲特定類型的硬件組件實現一個界面,例如相機或藍牙模塊。當框架 API 要求訪問設備硬件時,Android 系統將爲該硬件組件加載庫模塊。框架
Android 平臺的基礎是 Linux 內核。例如,Android Runtime (ART) 依靠 Linux 內核來執行底層功能,例如線程和低層內存管理。 使用 Linux 內核可以讓 Android 利用主要安全功能,而且容許設備製造商爲著名的內核開發硬件驅動程序。編程語言