Google和其它幾十個手機公司建立了開放手機聯盟,Android在未公開之前常被傳聞為Google電話或GPhone,開發既有用又有吸引力的行動服務,並推廣這些產品。
開發人員對於核心應用程式使用的相同架構的API具有完全的存取權限. 應用程式架構被設計來簡化組件的重用; 任何應用程式都能發布其功能。然後任何其它應用程式都可以使用那些功能(以架構強迫的安全限制為準). 這個相同的機制允許組件被使用者所替換。
所有基礎的Android 應用程式都是一套服務和體系, 包括: 一套豐富的, 可擴充的視圖(Views), 可被用來構建一個應用程式, 包括列表(lists), 柵格(grids), 文字框(text boxes), 按鈕(buttons), 以及內嵌網路瀏覽器 。
內容提供者(Content Providers)使得應用程式能夠從其它應用程式訪問資料(例如連絡人), 或共用它們自己的資料。資源管理員(Resource Manager), 提供對非代碼資源的訪問, 例如本地化字串, 圖形, 以及布局檔案通知管理器(Notification Manager)使得所有應用程式能夠在狀態列顯示自訂的警報 。
Android包含了一套被Android系統各種各樣組件所使用的C/C++庫. 這些功能通過Android應用程式架構展現給開發人員. 一些核心庫列舉如下:
◆系統C庫 - 一個BSD驅動的標準C系統庫(libc)的實現, 基於嵌入式Linux的裝置所調整
◆媒體庫 - 基於PacketVideo的OpenCORE; 這個庫除了支援對很多流行的音視頻格式的回放和錄製之外, 也支援對靜態影像檔, 包括MPEG4, H.264, MP3, AAC, AMR, JPG, 以及PNG
◆表面管理器 - 管理對顯示子系統的訪問以及從多個應用程式對2D與3D圖形層的無縫合成
◆LibWebCore - 一個現代的網路瀏覽器引擎, 使得Android瀏覽器和可嵌入的網路視圖更加強大
◆SGL - 基礎的2D圖形引擎
◆3D庫 - 基於OpenGL ES 1.0 API而實現; 它或使用硬體3D加速(如果可用), 或使用內含的高度最佳化的3D軟體
◆光柵化引擎 FreeType - 位元影像和向量字型渲染 SQLite - 一個對所有應用程式可用的強大且輕量的關係型資料庫引擎
Android包含了一套核心庫, 提供了在Java程式設計語言核心庫中可用的大部分功能,每個Android 應用程式運行在它自己的進程中, 具有它自己的Dalvik虛擬機器執行個體。Dalvik被編寫以便於一個裝置可以有效地運行多個虛擬機器. Dalvik虛擬機器通過為最小記憶體封裝最佳化的Dalvik可執行檔(.dex)格式來執行檔案。
虛擬機器是基於寄存器的, 並且運行通過Java語言編譯器編譯並通過所含"dx"工具轉換為.dex格式的類. Dalvik虛擬機器對於基礎的功能依賴於Linux核心, 例如線程和低級記憶體管理。Android對於核心系統服務基於Linux 2.6版本, 例如安全性, 記憶體管理, 進程管理, 網路堆棧, 以及驅動模型. 核心同樣在硬體和其餘軟體棧之間起到一個抽象層的作用。
每一個Android 應用程式都有自己的進程,每個進程都對應著一個Dalvik虛擬機器進程。當一個Android 應用程式中運行著多個 Dalvik 虛擬機器時,我們不用擔心其效率問題,Dalvik已對此作了相應的最佳化。
Dalvik 虛擬機器是基於寄存器的,所以速度要快一些,其可執行檔格式是(.dex) 格式。通過"dx"工具可以將java可執行程式轉換成dex格式。Dalvik虛擬機器通過linux核心來管理線程以及底層的記憶體操作。
開放手機同盟成立和 Android 的推出是對現狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。但是,我們認為全球移動使用者從中能獲得的潛在利益是值得付出這些努力的。