Android 是一個包含有作業系統、中介軟體和關鍵應用程式的軟體集。Android SDK為在Android平台上,用java開發應用程式提供了必要的工具和API介面。
Android平台特性:
- 應用程式架構:提供可重用和可替代的組件。
- Davlik 虛擬機器:為行動裝置最佳化的虛擬機器。
- 內建瀏覽器:基於WebKit的內建瀏覽器。
- 經過最佳化的圖形處理:支援自訂的2D圖形庫,基於OpenGL ES 1.0的3D圖形庫(可硬體加速)
- SQLite:用於結構化資料存放區的輕量級資料庫。
- 多媒體支援:支援常用的音頻、視頻格式和靜態圖片格式(MPEG3、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
- GSM通話:(依賴於硬體)
- 藍芽、EDGE網路、3G和WIFI:(依賴於硬體)
- 完備的開發環境:包括模擬器、調試工具、記憶體和效能分析、Android在Eclipse上的外掛程式ADT。
Android 構架:
顯示了Android的主要組件,每層都將在下面進行更詳細的描述。
Android應用程式:
Android推出的時候包含了email用戶端、SMS應用程式、日曆、地圖、通訊了等等核心應用程式集。所有的應用程式都是使用Java語言編寫的。
Android應用程式架構:
通過提供一個開放的開發平台,開發人員可以構建豐富多彩、富有創意的應用程式。開發人員可以自由的使用裝置的硬體、訪問本地資訊、運行後台服務、設定鬧鐘、在狀態列上增加提示等等。
開發人員可以像Android核心應用程式一樣訪問Android API. Adnroid應用程式架構的設計方法簡化了組件的複用。任何應用程式發行就緒它的功能塊,並且任何其他應用程式都可以使用這些功能塊(必須遵循架構的安全訪問限制)。該應用程式重用機制使得組件可以被使用者程式替換。
以下的所有應用程式都由一系列的服務和系統功能組成,包括:
- 一個豐富的可擴充的視圖(Views),可以用來構建應用程式的介面。包括列表(lists)、網格(grids)、文字框(text boxes)、按鈕(buttons),甚至一個可嵌入的Web瀏覽器。
- 內容提供器(Content Providers),提供了資料共用的能力,應用程式訪問其他應用程式的資料(例如連絡人),或者共用它們自己的資料。
- 一個資源管理員類(Resource Manager),提供了訪問非代碼資料的能力,例如:本地字元長、圖片、和布局檔案(layout files)
- 一個通知管理器(Notification Manager),應用程式可以在狀態列中顯示客戶通知訊息。
- 一個活動類管理器(Activity Manager),管理應用程式的生命週期並提供常用的回退切換功能。
Android 程式庫:
Android 包含了一個被Android系統中各個不同組件所使用的C/C++庫。這些庫經過android應用程式架構的封裝之後提供給開發人員使用。一下是一些主要的核心庫:
- 系統C庫:一個從BSD繼承來的標準系統C庫(libc),libc是專門為Embedded linux裝置定製的C庫。
- 媒體庫:基於PacketVideo’s的OpenCRE; 這個庫支援錄放,並且可以錄製許多流行的音頻視頻格式,還有靜態影像檔,包含MPEG3、H.264、MP3、AAC、AMR、JPG、PNG。
- 顯示管理(Surface Manager):對顯示子系統的管理,並且為多個應用程式提供2D和3D圖層的無縫串連。
- LibWebCore:一個最新的Web瀏覽器引擎,用來支援Android瀏覽器和可嵌入的Web視圖。
- SGL: 內建的2D圖形引擎。
- 3D圖形庫(3D libraries):基於OpenGL ES 1.0 APIs實現的3D庫;該庫可使用3D硬體加速(如果可用)或者包含高度最佳化的3D軟體加速。
- FreeType:位元影像(bitmap)和向量(vector)字型的顯示。
- SQLite:一個對所有應用程式可用、輕量級關係型資料庫。
Android 執行階段程式庫:
Android包含了一個核心庫,該庫提供了java程式設計語言核心庫的大多數功能。
每個Android應用程式都運行在它自己的進程中,擁有一個獨立的Davlvik虛擬機器執行個體。Dalvik是針對同時高效運行多個VMs執行個體而設計實現的。Dalvik虛擬機器執行Dalvik可執行檔(尾碼名為.dex),該格式(Dalvik Executable format)檔案針對小記憶體進行了最佳化。該虛擬機器是針對寄存器的,該虛擬機器上啟動並執行類都經過java編譯器編譯,然後經過android的dx工具轉換為.dex格式。
Dalvik 虛擬機器依賴於linux核心的一些功能,例如線程機制和底層記憶體管理機制。
Linux 核心:
Android 基於 linux2.6 核心,通過 linux核心提供一些核心系統服務,例如:安全性、記憶體管理、進程管理、網路通訊協定棧、驅動模組等。這個核心也同時作為硬體和軟體之間的硬體抽象層。