探秘豐富多彩的Android 應(yīng)用程序
谷歌和其它幾十個手機公司建立了開放手機聯(lián)盟,Android在未公開之前常被傳聞為Google電話或GPhone,開發(fā)既有用又有吸引力的移動服務(wù),并推廣這些產(chǎn)品。
開發(fā)者對于核心應(yīng)用程序使用的相同框架的API具有完全的訪問權(quán)限. 應(yīng)用程序架構(gòu)被設(shè)計來簡化組件的重用; 任何應(yīng)用程序都能發(fā)布其功能。然后任何其它應(yīng)用程序都可以使用那些功能(以框架強迫的安全限制為準(zhǔn)). 這個相同的機制允許組件被用戶所替換。
所有基礎(chǔ)的Android 應(yīng)用程序都是一套服務(wù)和體系, 包括: 一套豐富的, 可擴展的視圖(Views), 可被用來構(gòu)建一個應(yīng)用程序, 包括列表(lists), 柵格(grids), 文本框(text boxes), 按鈕(buttons), 以及內(nèi)嵌網(wǎng)絡(luò)瀏覽器 。
內(nèi)容提供程序(Content Providers)使得應(yīng)用程序能夠從其它應(yīng)用程序訪問數(shù)據(jù)(例如聯(lián)系人), 或共享它們自己的數(shù)據(jù)。資源管理器(Resource Manager), 提供對非代碼資源的訪問, 例如本地化字符串, 圖形, 以及布局文件通知管理器(Notification Manager)使得所有應(yīng)用程序能夠在狀態(tài)欄顯示自定義的警報 。
Android包含了一套被Android系統(tǒng)各種各樣組件所使用的C/C++庫. 這些功能通過Android應(yīng)用程序框架展現(xiàn)給開發(fā)者. 一些核心庫列舉如下:
◆系統(tǒng)C庫 - 一個BSD驅(qū)動的標(biāo)準(zhǔn)C系統(tǒng)庫(libc)的實現(xiàn), 基于嵌入式Linux的設(shè)備所調(diào)整
◆媒體庫 - 基于PacketVideo的OpenCORE; 這個庫除了支持對很多流行的音視頻格式的回放和錄制之外, 也支持對靜態(tài)圖像文件, 包括MPEG4, H.264, MP3, AAC, AMR, JPG, 以及PNG
◆表面管理器 - 管理對顯示子系統(tǒng)的訪問以及從多個應(yīng)用程序?qū)?D與3D圖形層的無縫合成
◆LibWebCore - 一個現(xiàn)代的網(wǎng)絡(luò)瀏覽器引擎, 使得Android瀏覽器和可嵌入的網(wǎng)絡(luò)視圖更加強大
◆SGL - 基礎(chǔ)的2D圖形引擎
◆3D庫 - 基于OpenGL ES 1.0 API而實現(xiàn); 它或使用硬件3D加速(如果可用), 或使用內(nèi)含的高度優(yōu)化的3D軟件
◆光柵化引擎 FreeType - 位圖和矢量字體渲染 SQLite - 一個對所有應(yīng)用程序可用的強大且輕量的關(guān)系型數(shù)據(jù)庫引擎
Android包含了一套核心庫, 提供了在Java程序設(shè)計語言核心庫中可用的大部分功能,每個Android 應(yīng)用程序運行在它自己的進程中, 具有它自己的Dalvik虛擬機實例。Dalvik被編寫以便于一個設(shè)備可以有效地運行多個虛擬機. Dalvik虛擬機通過為最小內(nèi)存封裝優(yōu)化的Dalvik可執(zhí)行文件(.dex)格式來執(zhí)行文件。
虛擬機是基于寄存器的, 并且運行通過Java語言編譯器編譯并通過所含"dx"工具轉(zhuǎn)換為.dex格式的類. Dalvik虛擬機對于基礎(chǔ)的功能依賴于Linux內(nèi)核, 例如線程和低級內(nèi)存管理。Android對于核心系統(tǒng)服務(wù)基于Linux 2.6版本, 例如安全性, 內(nèi)存管理, 進程管理, 網(wǎng)絡(luò)堆棧, 以及驅(qū)動模型. 內(nèi)核同樣在硬件和其余軟件棧之間起到一個抽象層的作用。
每一個Android 應(yīng)用程序都有自己的進程,每個進程都對應(yīng)著一個Dalvik虛擬機進程。當(dāng)一個Android 應(yīng)用程序中運行著多個 Dalvik 虛擬機時,我們不用擔(dān)心其效率問題,Dalvik已對此作了相應(yīng)的優(yōu)化。
Dalvik 虛擬機是基于寄存器的,所以速度要快一些,其可執(zhí)行文件格式是(.dex) 格式。通過"dx"工具可以將java可執(zhí)行程序轉(zhuǎn)換成dex格式。Dalvik虛擬機通過linux內(nèi)核來管理線程以及底層的內(nèi)存操作。
開放手機聯(lián)盟的成立和 Android 的推出是對現(xiàn)狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。但是,我們認(rèn)為全球移動用戶從中能獲得的潛在利益是值得付出這些努力的。
【編輯推薦】