Android開(kāi)發(fā)第一步:認(rèn)識(shí)Android
譯文什么是Android?
Android是一個(gè)移動(dòng)設(shè)備的軟件套件,它包括一個(gè)操作系統(tǒng)、中間件和關(guān)鍵應(yīng)用。Android SDK提供必需的工具和API,并基于java語(yǔ)言開(kāi)發(fā)。
特征
- 應(yīng)用程序框架 組件的重用和自定義
- Dalvik虛擬機(jī) 為移動(dòng)設(shè)備優(yōu)化
- 一體化瀏覽器 基于開(kāi)源的webkit內(nèi)核
- 圖形優(yōu)化 提供一個(gè)定制的2D圖形庫(kù),3D圖形基于OpenGL(硬件加速可選)
- SQLite 結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)
- 多媒體支持 對(duì)通用的音頻、視頻、圖像提供支持
- GSM技術(shù) (依賴于硬件)
- 藍(lán)牙,EDGE網(wǎng)絡(luò),3G和WiFi (依賴于硬件)
- 攝像頭、GPS、方向和速度傳感器 (依賴于硬件)
Android結(jié)構(gòu)示意圖
自帶應(yīng)用程序
Android包含一套核心應(yīng)用程序,如email客戶端、SMS程序、日歷、地圖、瀏覽器、通訊錄以及其它。所有程序都是用java語(yǔ)言編寫(xiě)。
應(yīng)用程序框架
在Android平臺(tái)上,開(kāi)發(fā)者可創(chuàng)建華麗而創(chuàng)新的應(yīng)用??砂l(fā)揮出硬件能力,利用地理位置信息、后臺(tái)服務(wù)、警告和程序欄通知,以及更多。
開(kāi)發(fā)者與核心應(yīng)用程序?qū)PI享用同樣權(quán)限。應(yīng)用程序結(jié)構(gòu)被設(shè)計(jì)成簡(jiǎn)化組件重用,應(yīng)用程序可以開(kāi)放其功能供其他程序調(diào)用(在框架的安全限制內(nèi)),此機(jī)制也允許用戶自定義組件。
下列服務(wù)和系統(tǒng)享有高優(yōu)先級(jí):
- 一系列視圖(Views),包括列表、網(wǎng)格、文字框、按鈕、甚至是可嵌入的瀏覽器。
- 內(nèi)容提供器(Content Providers),讓程序可以連接其他程序或者共享數(shù)據(jù)。
- 資源管理器(Resource Manager),提供對(duì)非代碼的資源的連接,比如局域字符串、圖像和布局文件。
- 通知管理器(Notification Manager),使程序可以展現(xiàn)自定義通知。
- 活動(dòng)管理器(Activity Manager),管理程序生命周期并提供通用導(dǎo)航返回棧。
更多細(xì)節(jié)參見(jiàn)Notepad Tutorial。
類庫(kù)
Android包括一系列C/C++庫(kù),這些庫(kù)被用于很多Android系統(tǒng)組件,它們也能夠通過(guò)框架被程序調(diào)用。
- 系統(tǒng)C語(yǔ)言庫(kù) 由BSD衍生的標(biāo)準(zhǔn)C語(yǔ)言系統(tǒng)庫(kù),為基于Linux的設(shè)備所調(diào)整。
- 多媒體庫(kù) 基于PacketVideo的OpenCORE框架。支持回放、錄制等多媒體功能。
- 外觀管理器(Surface Manager) 管理訪問(wèn)顯示子系統(tǒng)和從多模塊應(yīng)用中無(wú)縫整合2D和3D的圖形
- LibWebCore 現(xiàn)代瀏覽器引擎 為瀏覽器和嵌入式視圖提供支持
- SGL 高優(yōu)先級(jí)的2D圖形引擎
- 3D類庫(kù) OpenGL ES API的一個(gè)衍生,支持硬件加速和軟件優(yōu)化加速
- FreeType 位圖和矢量字體渲染
- SQLite 一個(gè)輕量的關(guān)系型數(shù)據(jù)庫(kù)
Android運(yùn)行時(shí)
Android包括Java的一個(gè)精簡(jiǎn)的核心類庫(kù),可實(shí)現(xiàn)java的多數(shù)功能。
每個(gè)Android應(yīng)用程序都有獨(dú)自的進(jìn)程和虛擬機(jī),設(shè)備可以同時(shí)運(yùn)行多個(gè)Dalvik虛擬機(jī),Dalvik虛擬機(jī)執(zhí)行后綴為.dex的文件,這種文件為最小內(nèi)存占用而優(yōu)化,此虛擬機(jī)是基于寄存器的,運(yùn)行被dx工具編譯為.dex文件的類。
Dalvik依賴于Linux核心,以確保一些高優(yōu)先級(jí)的功能,如線程處理和低級(jí)別內(nèi)存管理。
Linux核心
Android依賴于Linux版本2.6,以提供核心系統(tǒng)服務(wù),如安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)棧和驅(qū)動(dòng)模型。此核心也在硬件和其他程序之間提供一個(gè)抽象層。