首先Android是一個開放的移動設(shè)備平臺,包括操作系統(tǒng),中間件和關(guān)鍵應(yīng)用軟件堆棧。 它基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),是Google在2007年11月5日公布的手機系統(tǒng)平臺,早期由Google開發(fā),后由開放手機聯(lián)盟(Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。之后Android提供了NDK以供開發(fā)者使用其他語言編寫程序。另外,為了推廣此技術(shù),Google和其他幾十個手機公司創(chuàng)建了開放手機聯(lián)盟。Android在未公開之前常被傳聞為Google電話或gPhone。大多傳聞?wù)J為Google開發(fā)的是自己的手機電話產(chǎn)品,而不是一套軟件平臺。到了2010年1月,Google始發(fā)表自家品牌手機電話的Nexus One。它有以下特點:
· 應(yīng)用程序框架,使組件的重用和替換
· Dalvik虛擬機為移動設(shè)備優(yōu)化
· 集成瀏覽器基于開源的WebKit的引擎
· 優(yōu)化的圖形,通過自定義的2D圖形庫供電;基于3D圖形的OpenGL ES 1.0規(guī)范(硬件加速可選)
· SQLite為結(jié)構(gòu)化數(shù)據(jù)存儲
· 媒體支持常見的音頻,視頻和靜止圖像格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF )
· GSM電話(依賴于硬件)
· 藍牙,EDGE,3G和WiFi(依賴于硬件)
· 攝像頭,GPS,指南針,和加速度計(依賴于硬件)
· 豐富的開發(fā)環(huán)境,包括設(shè)備模擬器,調(diào)試,內(nèi)存和性能分析工具,和一個用于Eclipse IDE插件
該系統(tǒng)被成功運用到了 手機,平板電腦,彩電,GPS導(dǎo)航,車載電視等設(shè)備上。
Android架構(gòu)
應(yīng)用
Android核心應(yīng)用,包括電子郵件客戶端,SMS程序,日歷,地圖,瀏覽器,聯(lián)系人,和其他應(yīng)用。所有應(yīng)用程序都使用Java編程語言編寫的。
應(yīng)用框架
通過提供一個開放的開發(fā)平臺。開發(fā)者可以自由的開發(fā)豐富的應(yīng)用程序,開發(fā)人員可以完全訪問核心應(yīng)用中使用相同的框架API。應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用,任何應(yīng)用都可以發(fā)布它的功能并且能夠使用任何其他應(yīng)用程序的功能。
應(yīng)用庫
Android包含一套C / C + + Android系統(tǒng)的各個組成部分所使用的庫。這些功能通過Android應(yīng)用程序框架暴露給開發(fā)者。下面列出了一些核心庫:
· 系統(tǒng)C庫 -一個標準C系統(tǒng)庫,為嵌入式的,基于Linux的設(shè)備。
· 媒體庫 -基于PacketVideo的OpenCORE;支持許多流行的音頻和視頻格式的播放和錄音,以及靜態(tài)圖像文件,包括MPEG4,H.264,支持MP3,AAC,AMR,JPG, PNG
· 視圖管理器 -管理多個應(yīng)用程序,顯示子系統(tǒng)和2D,3D圖形層的訪問
· LibWebCore -一個現(xiàn)代的Web瀏覽器的引擎SGL -底層的2D圖形引擎
· 3D庫 -基于OpenGL ES 1.0 API的基礎(chǔ)上實現(xiàn);使用或者硬件3D加速(如果可用)或所包含的,高度優(yōu)化的3D
· FreeType -位圖和矢量字體渲染
· SQLite -所有的應(yīng)用程序提供的一個強大的和輕量級的關(guān)系數(shù)據(jù)庫引擎
Android的運行環(huán)境
每個Android應(yīng)用都運行在它自己的進程中,擁有自己的Dalvik虛擬機實例。Dalvik被設(shè)計成可以有效地運行多個虛擬機。Dalvik虛擬機執(zhí)行的Dalvik可執(zhí)行文件(。DEX)格式,這是最小的內(nèi)存占用優(yōu)化文件。VM是基于寄存器的,并運行由Java語言的編譯器,編譯成.dex文件的編譯類。Dalvik虛擬機依賴于Linux內(nèi)核。
Linux內(nèi)核
Android的核心系統(tǒng)服務(wù),如安全,內(nèi)存管理,進程管理,網(wǎng)絡(luò)堆棧和驅(qū)動程序模型依賴在Linux 2.6版本。內(nèi)核也作為硬件和軟件堆棧的其余部分之間的抽象層。
---------------------------------------------------------------------------------------------
Android版本發(fā)行
Android系統(tǒng)基本上每半年一次的升級,分別定在每年的夏天和年終。每代Android系統(tǒng)都將以甜點命名.比如:
1.5版叫做Cupcake(紙杯蛋糕)
1.6版為Donut(甜甜圈)
2.1版的Eclair(閃電泡芙,一種法式奶油夾心甜點),此版本曾被叫做Flan“水果餡餅”,之后是
2.2版的Froyo(凍酸奶)
2.3版的Gingerbread(姜餅).
以CDEFG字頭順序排列.