標籤:android http io ar 使用 java strong 檔案 資料
Android平台採用了整合的策略思想,包括底層Linux作業系統、中介層的中介軟體和上層的Java應用程式。下面我把Android的特性及其架構體繫結構總結一下。
一、Android的平台特性
Android平台有如下特性:
1. 應用程式架構支援組件的重用與替換。
這樣我們可以把系統中不喜歡的應用程式刪除,安裝我們喜歡的應用程式。
2. Dalvik虛擬機器專門為行動裝置進行了最佳化。
Android應用程式將由Java編寫、編譯的類檔案通過DX工具轉換成一種尾碼名為.dex的檔案來執行。Dalvik虛擬機器是基於寄存器的,相對於Java虛擬機器速度要快很多。
3. 內部整合瀏覽器基於開源的WebKit引擎。
有了內建的瀏覽器,這將意味著WAP應用的時代即將結束,真正的移動互連網時代已經來臨,手機就是一台“小電腦”,可以在網上隨意遨遊。
4. 最佳化的圖形庫包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0。
強大的圖形庫給遊戲開發帶來福音。在3G最為重要的的應用莫過於手機上網和手機遊戲。
5. SQLite用作結構化的資料存放區。
6. 多媒體支援包括常見的音頻、視頻和靜態印象檔案格式
如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。
7. GSM電話(依賴於硬體)。
8. 藍芽(Bluetooth)、EDGE、3G、WiFi(依賴於硬體)。
9. 照相機、GPS、指南針和加速度計(依賴於硬體)。
10. 豐富的開發環境包括裝置模擬器、調試工具、記憶體及效能分析圖表和Eclipse整合的開發環境外掛程式。
Google提供了Android開發包SDK,其中包含了大量的類庫和開發工具,並且針對Eclipse的可視化開發外掛程式ADT。
二、Android平台架構
Android 作業系統的體繫結構
從我們可以看出,Android作業系統的體繫結構可分為4層,由上到下依次是應用程式、應用程式架構、核心類庫和Linux核心,其中第三層還包括Android運行時的環境。下面分別來講解各個部分。
1. 程式應用
Android 連同一個核心應用程式套件組合一起發布,該應用程式套件組合包括E-mail用戶端、SMS短訊息程式、日曆、地圖、瀏覽器、連絡人管理程式等。所有的應用程式都是用Java編寫的。
2. 應用程式架構
開發人員完全可以訪問核心應用程式所使用的API架構。該應用程式架構架構用來簡化組件軟體的重用,任何一個應用程式都發行就緒它的功能塊並且任何其他的應用程式都可以使用其所發布的功能塊(不過得遵循架構的安全性限制)。該應用程式重用機制使得組件可以被使用者替換。
以下所有的應用程式都由一系列的服務和系統組成,包括:
1)一個可擴充的視圖(Views)可以用來建立應用程式,包括列表(lists)、網路(grids)、文字框(text boxes)、按鈕(buttons),甚至是一個可嵌入的Web瀏覽器。
2)內容組合管理(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如連絡人資料庫),或者共用它們自己的資料。
3)一個資源管理員(Resource Manager)提供非代碼資源的訪問,如本地字串、圖形和分層檔案(layout files)。
4)一個通知管理器(Notification Manager)使得應用程式可以在狀態列中顯示客戶通知資訊。
5)一個活動類管理器(Activity Manager)用來管理應用程式生命週期並提供常用的導航回退功能。
3. Android程式庫
Android包括一個被Android系統中各種不同組件所使用的C/C++集庫。該庫通過Android應用程式架構為開發人員提供服務。
以下是一些主要的核心庫:
1)系統C庫:一個從BSD繼承來的標準C系統函數庫(libc),專門為基於Embedded Linux的裝置定製。
2)媒體庫:基於PacketVideo OpenCORE;該庫支援錄放,並且可以錄製許多流行的音頻視頻格式,還有靜態映像檔案包括MPEG4、H.264、MP3、AAC、JPG、PNG。
3)Surface Manager:對顯示子系統的管理,並且為多個應用程式提供2D和3D圖層的無縫融合。
4)LibWebCore:一個最新的Web瀏覽器引擎,用來支援Android瀏覽器和一個可嵌入的Web視圖。
5)SGL:一個內建的2D圖形引擎。
6)3D libraries:基於OpenGL ES 1.0 APIs實現;該庫可以使用硬體3D加速(如果可用)或者使用高度最佳化的3D軟加速。
7)FreeType:位元影像(bitmap)和向量(vector)字型顯示。
8)SQLite:一個對於所以應用程式可用、功能強勁的輕型關係型資料庫引擎。
4. Android運行庫
Android包括了一個核心庫,該核心庫提供了Java程式設計語言核心庫的大多數功能。
每一個Android應用程式都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機器執行個體。Dalvik是針對同時高效地運行多個VMs實現的。Dalvik虛擬機器執行.dex的Dalvik可執行檔,該格式檔案針對最小記憶體使用量做了最佳化。該虛擬機器是基於寄存器的,所有的類都是經由Java彙編器編譯,然後通過SDK中的DX工具轉化成.dex格式由虛擬機器執行。
Dalvik虛擬機器依賴於Linux的一些功能,比如線程機制和底層記憶體管理機制。
5. Linux核心
Android的核心系統服務依賴於Linux核心,如安全性、記憶體管理、進程管理、網路通訊協定棧和驅動模型。Linux核心也同時作為硬體和軟體棧之間的硬體抽象層。
相關文檔:Google工程師多圖詳解Android架構
Android的平台架構及特性