壹、Android的平臺特性
Android平臺具有以下特性:
1.應用程序框架支持組件重用和替換。
這樣就可以刪除系統中我們不喜歡的應用,安裝我們喜歡的應用。
2.Dalvik虛擬機專門針對移動設備進行了優化。
Android應用將Java編寫編譯的類文件轉換成壹個後綴為。通過DX工具執行。Dalvik虛擬機是基於寄存器的,比Java虛擬機快很多。
3.內部集成瀏覽器基於開源WebKit引擎。
有了內置瀏覽器,將意味著WAP應用的時代即將結束,真正的移動互聯網時代已經到來。手機是壹臺可以在互聯網上自由漫遊的“小電腦”。
4.優化後的圖形庫包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0。
強大的圖形庫給遊戲開發帶來福音。3G最重要的應用是手機上網和手機遊戲。
5.SQLite被用作結構化數據存儲。
6.多媒體支持包括常見的音頻、視頻和靜態印象文件格式。
比如MPEG4-4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。
7.GSM電話(取決於硬件)。
8.藍牙、EDGE、3G、WiFi(取決於硬件)。
9.攝像頭、GPS、指南針和加速度計(取決於硬件)。
10.豐富的開發環境包括設備模擬器、調試工具、內存和性能分析圖表以及Eclipse集成開發環境插件。
Google提供了Android開發包SDK,裏面包含了大量的類庫和開發工具,為Eclipse可視化開發插件ADT。
二、Android平臺架構
從上圖可以看出,Android操作系統的架構可以分為四層,從上到下分別是應用、應用框架、核心類庫和Linux內核,第三層還包括Android運行時環境。讓我們分別解釋每壹部分。
1.程序應用
安卓
與核心應用程序包壹起,應用程序包包括電子郵件客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯系人管理器等。所有的應用程序都是用Java編寫的。
2.應用框架
開發人員可以完全訪問核心應用程序使用的API框架。應用程序框架用於簡化組件軟件的重用。任何應用程序都可以發布其功能塊,任何其他應用程序都可以使用其發布的功能塊(受框架的安全限制)。應用程序重用機制允許用戶替換組件。
以下所有應用程序都由壹系列服務和系統組成,包括:
1)壹個可擴展的視圖可以用來創建應用程序,包括列表、網格和文本框。
框)、按鈕,甚至是嵌入式網絡瀏覽器。
2)內容提供商使應用程序能夠訪問另壹個應用程序的數據(如聯系人數據庫)或* * *享用自己的數據。
3)資源管理器提供對非代碼資源的訪問,例如本地字符串、圖形和布局文件。
4)通知管理器使應用程序能夠在狀態欄中顯示客戶通知信息。
5)活動管理器用於管理應用程序的生命周期,並提供通用導航和回退功能。
3.Android庫
Android包括壹個由Android系統中的各種組件使用的C/C++庫。該庫通過Android應用框架為開發者提供服務。
以下是壹些主要的核心庫:
1)系統C庫:繼承自BSD的標準C系統函數庫(libc),專門為基於嵌入式Linux的設備定制。
2)媒體庫:基於PacketVideo。
OpenCORE該庫支持錄制和回放,可以錄制許多流行的音頻和視頻格式,以及包括MPEG4、H.264、MP3、AAC、JPG和PNG在內的靜態圖像文件。
3)表面管理器:管理顯示子系統,並為多種應用提供2D和3D層的無縫集成。
4)LibWebCore:支持Android瀏覽器和嵌入式Web視圖的最新Web瀏覽器引擎。
5)SGL:壹個內置的2D圖形引擎。
6)3D庫:基於OpenGL ES 1.0 API;該庫可以使用硬件3D加速(如果可用)或高度優化的3D軟加速。
7)FreeType:位圖和矢量字體顯示。
8)SQLite:壹個輕量級且功能強大的關系數據庫引擎,可用於所有應用程序。
4.Android運行時
Android包括壹個核心庫,提供了Java編程語言核心庫的大部分功能。
每個Android應用都運行在自己的進程中,都有壹個獨立的Dalvik虛擬機實例。實施Dalvik是為了同時高效運行多個虛擬機。Dalvik虛擬機執行的Dalvik可執行文件。dex,它針對最小內存使用進行了優化。虛擬機是基於寄存器的,所有的類都由Java匯編程序編譯,然後轉換成。dex格式由SDK中的DX工具執行,並由虛擬機執行。
Dalvik虛擬機依賴於Linux的壹些功能,比如線程機制和底層內存管理機制。
5.Linux內核
Android的核心系統服務依賴於Linux內核,如安全性、內存管理、進程管理、網絡協議棧、驅動模型等。Linux內核還充當硬件和軟件棧之間的硬件抽象層。