Android的體系結(jié)構(gòu)
1. Android的簡介
1996年萬維網(wǎng)(WWW)開始流行,通過瀏覽器我們可以查看圖文混合的網(wǎng)頁,但此時最好的移動手機設(shè)備只能用來查看簡單的文字,為了解決這個問題,相關(guān)部門發(fā)布了WAP(Wireless Application protocal)技術(shù),提供了移動互聯(lián)網(wǎng)的入口,該技術(shù)使用了WML(Wireless markup language,即無線標(biāo)記語言),這種語言的實質(zhì)是:精簡版的html,但是這種方法不僅訪問速度慢而且費用成本高。2000年之后隨著技術(shù)的快速發(fā)展,特別是2005年之后設(shè)備硬件成本的下降使手機智能化成為可能,這一時刻Android智能手機也隨之發(fā)展壯大,如下圖1-1為Android發(fā)展的歷史圖:
圖1-1所示
至2008年以后,Android的進化速度也越來越快,各種不同版本的SDK也隨之迅速推出,以下是不同版本SDK的簡單信息,如下圖1-2所示:
圖1-2Android發(fā)展進程圖
2. Android的系統(tǒng)結(jié)構(gòu)
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),至上而下可以分為4個層次,各個層次相對獨立但又密不可分,如下圖1-3所示:
圖1-3Android的系統(tǒng)結(jié)構(gòu)
1. Android以Linux2.6為系統(tǒng)服務(wù)提供最底層的支持,這些服務(wù)包括如下幾點:
l 安全管理(Security Management)
l 內(nèi)存管理(Memory Management)
l 進程管理(Process Management)
l 電源管理(Power Management)
l 硬件驅(qū)動(Driver Model)
2. 庫(Libraries)和運行環(huán)境(Android RunTime)。
(1) Libraries提供運行時的支持環(huán)境,庫中的各個模塊都是一些開源項目,各個開源項目的功能如下:
l Surface Manager:提供與上層顯示相關(guān)的支持庫。
l Media Framework:基于PackeVideo OpenCore,支持多種常用的多媒體的播放以及錄制。
l SQLite:一個對所有應(yīng)用程序開發(fā)的輕量級數(shù)據(jù)庫。
l OpenGL|ES:3D界面以及快速渲染的引擎。
l FreeType:字體引擎。
l WebKit:瀏覽器內(nèi)核。
l SGL:2D圖像引擎。
l SSL:安全管理相關(guān)。
l Libc:標(biāo)準(zhǔn)的系統(tǒng)C庫。
(2) 運行環(huán)境
Android程序是用java寫的,java的運行需要java虛擬機。為了解決這個問題,Android工程師自定義了一個虛擬機(Dalvik Virtual Machine),為手機應(yīng)用程序提供運行環(huán)境。
3. 應(yīng)用程序框架(Application Framework)。普通開發(fā)者之所以能夠調(diào)用底層的服務(wù)是因為該框架為我們提供了統(tǒng)一的底層訪問接口,即API。該框架提供了對底層的多種訪問接口,如Activity Manager提供進程管理,Window Manager提供窗體管理等,這一層我們稱之為中間件。
4. 應(yīng)用程序(Applications)是和用戶交互的一個層次,用戶可以看得見的并且可以操作的。作為一個智能手機,Android本身提供了桌面(Home),聯(lián)系人(Contacts),打電話(Phone),瀏覽器(Browser)等常用的基本功能。
通過對系統(tǒng)架構(gòu)的學(xué)習(xí),我們可以認(rèn)為Android操作系統(tǒng)是一個手機設(shè)備的軟件棧,它包括上層的關(guān)鍵應(yīng)用程序,中間層的中間件,以及下層的一個完整的Linux操作系統(tǒng)。
本文版權(quán)歸黑馬程序員Android+物聯(lián)網(wǎng)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Android+物聯(lián)網(wǎng)培訓(xùn)學(xué)院
首發(fā):android.itheima.com