[原文]
Android對行動裝置來說是一個軟體棧,包含了一個作業系統、中介軟體和關鍵的一些應用。Android SDK提供了必要的工具和API,以便使用Java語言在Android平台上進行軟體開發。
Android的特性:
應用程式框架:能夠重用和重設組件
Dalvik虛擬機器:專門為行動裝置最佳化
整合的瀏覽器:基於開源的WebKit引擎
最佳化的映像:由一個自訂的2D圖形庫提供支援;3D圖形基於OpenGL ES 1.0規範(硬體加速選項)
SQLite:用於結構化的資料儲存
媒體支援:常見的音頻、視頻和靜態映像格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
GSM電話(硬體支援)
藍芽、EDGE、3G和WiFi(硬體支援)
豐富的開發環境:包含一個裝置模擬器、調試工具、記憶體和效能檢測和一個用於Elipse整合開發環境的外掛程式
Android的架構:
中文版:
應用程式 (Applications)
* Android 系統會內建一些應用程式套件組合,包括email用戶端、SMS短訊息程式、日曆、地圖、瀏覽器、連絡人管理程式等。所有的應用程式都是使用JAVA語言編寫的。
應用程式架構(Application Framework)
* 豐富而又可擴充性的視圖(Views),可以用來構建應用程式,它包括列表(lists)、網格(grids)、文字框(text
boxes)、按鈕( buttons)、可嵌入的web瀏覽器。
* 內容提供者(Content Providers)使得應用程式可以訪問另一個應用程式的資料(如連絡人資料庫),或者共用它們自己的資料。
* 資源管理員(Resource Manager)提供非代碼資源的訪問,如本地字串、圖形和布局檔案(layoutfiles)。
* 通知管理器(Notification Manager)使得應用程式可以在狀態列中顯示自訂的提示資訊。
* Active Manager( Activity Manager)用來管理應用程式生命週期並提供常用的導航回退功能。
中介軟體
* 中介軟體包括兩部分:核心庫和運行時(libraries & Android runtime)
* 核心庫包括,SurfaceManager顯示系統管理庫,負責把2D或3D內容顯示到螢幕;Media Framework媒體庫,負責支援映像,支援多種視頻和音訊錄製和回放;SQlite資料庫,一個功能強大的輕量級嵌入式關聯式資料庫;WebKit瀏覽器引擎等。
* Dalvik虛擬機器:區別於Java虛擬機器的是,每一個Android應用程式都在它自己的進程中運行,都有一個屬於自己的Dalvik虛擬機器,這一點可以讓系統在運行時達到最佳化,程式間的影響大大降低。Dalvik虛擬機器並非運行Java位元組碼,而是運行自己的位元組碼。
Linux核心(Linux Kernel)
* Android運行在linux kernel 2.6之上,但是把linux內受GNU協議約束的部分做了取代,這樣Android的程式可以用於商業目的。
* Linux 核心是硬體和軟體層之間的抽象層。
部分參考自:Android2.2快速入門