Android的系統架構與其操作系統一樣,采用分層架構。
Android分為四層,從上層到下層分別是應用層,應用框架層,系統運行層和linux核心層。
1.應用程序Android將與同一系列的核心應用程序包一起發布,包括電子郵件客戶端,短信短信程序,日歷,地圖,瀏覽器,聯系人管理程序等。
所有應用程序都是用Java語言編寫的。
2.應用程序框架開發人員還可以完全訪問核心應用程序使用的API框架。
應用程序的架構設計簡化了組件重用;任何應用程序都可以發布其功能塊,任何其他應用程序都可以使用其已發布的功能塊(盡管遵循框架的安全限制)。
同樣,應用程序重用機制也允許用戶輕松替換程序組件。
隱藏在每個應用程序后面的是一組服務和系統,包括; *豐富且可擴展的視圖(視圖),可用于構建應用程序,包括列表,網格,文本框,按鈕,甚至可嵌入的Web瀏覽器。
*內容提供商允許應用程序訪問來自其他應用程序(例如聯系人數據庫)的數據,或共享他們自己的數據*資源管理器提供對非代碼資源的訪問,例如本地字符字符串,圖形和布局文件。
*通知管理器允許應用程序在狀態欄中顯示自定義提示。
* Activity Manager用于管理應用程序生命周期并提供通用的導航回退功能。
有關更多詳細信息以及如何從頭開始編寫應用程序,請參閱如何編寫Android應用程序。
3.系統運行時1)庫Android包含一些可供Android系統中不同組件使用的C / C ++庫。
。
他們通過Android應用程序框架為開發人員服務以下是一些核心庫:* System C庫 - 繼承自BSD的標準C系統庫(libc),專為基于嵌入式Linux的設備而定制。
*媒體庫 - 基于PacketVideo OpenCORE;該庫支持各種常用的音頻和視頻格式,用于播放和錄制,以及支持靜止圖像文件。
編碼格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
* Surface Manager - 管理顯示子系統,為多個應用程序提供2D和3D層的無縫集成。
* LibWebCore - 支持Android瀏覽器和可嵌入Web視圖的新Web瀏覽器引擎。
* SGL - 基于OpenGL ES 1.0 API的底層2D圖形引擎* 3D庫;該庫可以使用硬件3D加速(如果可用)或使用高度優化的3D軟加速。
* FreeType - 位圖和矢量字體顯示。
* SQLite - 一種可用于所有應用程序的輕量級關系數據庫引擎。
2)Android運行時庫Android包含一個核心庫,它提供了JAVA編程語言核心庫的大部分功能。
每個Android應用程序都在自己的進程中運行,并具有單獨的Dalvik虛擬機實例。
Dalvik被設計為可以同時高效且高效地運行多個虛擬系統的設備。
Dalvik虛擬機執行(.dex)Dalvik可執行文件,該文件可針對小內存使用進行優化。
同時,虛擬機是基于寄存器的。
所有類都由JAVA編譯器編譯,然后由虛擬機通過“dx”轉換為.dex格式。
SDK中的工具。
Dalvik虛擬機依賴于Linux內核的某些功能,例如線程機制和底層內存管理機制。
4. Linux內核Android的核心系統服務依賴于Linux 2.6內核,如安全性,內存管理,進程管理,網絡協議棧和驅動程序模型。
Linux內核還充當硬件和軟件堆棧之間的抽象層。
2007.11.5 Android平臺發布2008.9.22 T-Mobile G1上市2009年第一季度G1銷量100萬2009.3 MWC華為發布Android手機Moto,三星,LG計劃于2009年下半年推出Android手機獲取Orange,Vodafone,O2,Telefonica支持2009年進入上網本1開放谷歌與開放手機聯盟合作開發Android,這是一個由30多種技術和無線應用組成的聯盟,包括中國移動,摩托羅拉,高通,HTC和T-Mobile。
Android是一個真正開放的移動設備平臺。
通過與運營商,設備制造商,開發商和其他相關方的深入合作,建立標準化,開放的手機軟件平臺,形成移動行業的開放生態系統。
應用程序之間的多功能性和互連性將得到最大程度的保持。
2應用程序平等所有Android應用程序都完全相同。
所有應用程序都在核心引擎上運行,核心引擎實際上是一個虛擬機,為應用程序和硬件資源之間的通信提供一組API。
留下這個核心引擎,Android中的所有其他東西都是“應用程序”。
3無邊界應用Android打破了應用程序之間的界限,例如開發人員可以將Web上的數據與本地聯系人,日歷,位置信息相結合,為用戶創建新的用戶體驗。
4快速簡便的應用程序開發Android平臺為開發人員提供了大量有用的庫和工具,開發人員可以快速創建自己的應用程序。
例如,在其他移動平臺上開發基于位置的應用程序非常復雜,Android集成了Google Maps,開發人員可以使用幾行代碼實現地圖應用程序。