一、 Android特性
· 應用程序框架支持組件的重用與替換
· Dalvik 虛擬機專(zhuān)為移動(dòng)設備優(yōu)化
· 集成的瀏覽器基于開(kāi)源的WebKit 引擎
· 優(yōu)化的圖形庫包括定制的2D 圖形庫,基于OpenGL ES 1.0的3D 圖形庫
· SQLite 用作結構化的數據存儲
· 多媒體支持包括常見(jiàn)的音頻、視頻和靜態(tài)圖像格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG , GIF) · GSM 電話(huà)技術(shù)(依賴(lài)于硬件)
· 藍牙Bluetooth, EDGE, 3G, 和WiFi(依賴(lài)于硬件)
· 照相機,GPS,指南針,和加速度計(accelerometer)(依賴(lài)于硬件)
· 豐富的開(kāi)發(fā)環(huán)境包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse 集成開(kāi)發(fā)環(huán)境插件
二、Android的系統架構
1、應用程序
2、應用程序框
開(kāi)發(fā)者可以用它開(kāi)發(fā)應用,其中包括:
· 豐富而又可擴展的視圖(Views):可以用來(lái)構建應用程序, 它包括列表(lists),網(wǎng)格(grids), 文本框(text boxes),按鈕( buttons), 甚至可嵌入的web 瀏覽器。
· 內容提供器(Content Providers):使得應用程序可以訪(fǎng)問(wèn)另一個(gè)應用程序的數據(如聯(lián)系人數據庫), 或者共享它們自己的數據
· 資源管理器(Resource Manager):提供非代碼資源的訪(fǎng)問(wèn),如本地字符串,圖形,布局文件( layoutfiles )
· 通知管理器(Notification Manager): 使得應用程序可以在狀態(tài)欄中顯示自定義的提示信息
· 活動(dòng)管理器( Activity Manager):用來(lái)管理應用程序生命周期并提供常用的導航回退功能
3、類(lèi)庫
一些C/C++核心庫,方便開(kāi)發(fā)者進(jìn)行應用的開(kāi)發(fā)。
· 系統C 庫(libc):專(zhuān)門(mén)為基于embedded linux的設備定制的
· 媒體庫:支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
· SurfaceManager :對顯示子系統的管理并且為多個(gè)應用程序提供了2D和3D 圖層的無(wú)縫融合
· webkit/LibWebCore :Web 瀏覽引擎,支持Android 瀏覽器和一個(gè)可嵌入的web視圖
· SGL:底層的2D圖形引擎
· 3D libraries : 基于OpenGL ES 1.0 APIs 實(shí)現的3D引擎
· FreeType :位圖(bitmap)和矢量(vector)字體顯示
· SQLite :輕型關(guān)系型數據庫引擎
4、 Android 運行時(shí)環(huán)境
· Android 核心庫:提供了JAVA庫的大多數功能
· Dalvik 虛擬機:依賴(lài)于linux 內核的一些功能,比如線(xiàn)程機制和底層內存管理機制。同時(shí)虛擬機是基于寄存器的,Dalvik 采用簡(jiǎn)練、高效的byte code 格式運行,它能夠在低資耗和沒(méi)有應用相互干擾的情況下并行執行多個(gè)應用,每一個(gè)Android 應用程序都在它自己的進(jìn)程中運行,都擁有一個(gè)獨立的Dalvik 虛擬機實(shí)例。Dalvik 虛擬機中可執行文件為.dex文件,該格式文件針對小內存使用做了優(yōu)化。所有的類(lèi)都經(jīng)由JAVA 編譯器編譯,然后通過(guò)SDK中的"dx" 工具轉化成.dex 格式由虛擬機執行。
5、 Linux 內核
Linux 內核作為硬件和軟件棧之間的抽象層。Android 的核心系統服務(wù): 安全機制、內存管理、進(jìn)程管理、網(wǎng)絡(luò )、硬件驅動(dòng)