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