原文位置:Dev Guide,Android Basics,what is Android?
《Android Dev Guide》系列教程1:什麼是Android?
Android是一個行動裝置的軟體集,他包括一個作業系統、中介軟體,和一些重要的應用程式。AndroidSDK提供了Android開發平台的必要的工具和APIs,他使用Java程式設計語言。
特點:
應用程式架構:支援組件的重用和替換。
Dalvik虛擬機器:為行動裝置最佳化的虛擬機器。
整合的瀏覽器:基於開源瀏覽器WebKit引擎。
最佳化的圖形影像處理:採用定製的2D圖形庫,基於OpenGL ES1.0規範(可選的硬體加速)。
SQLite:結構化的資料存放區。
媒體支援:支援的音頻視頻,還有標準的圖片格式(如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)。
GSM電話裝置:硬體依賴。
藍芽、EDGE網路、3G、WIFI:硬體依賴。
拍照、導航、指南針、加速度計:硬體依賴。
豐富的開發環境:包括一個模擬器、調試工具、記憶體和效能分析、Eclipse外掛程式。
Android 系統結構:
下面那張圖表顯示了Android作業系統的主要組件,每一部分將會在下面詳細講解。
2011-5-6 16:59:53 上傳
下載附件 (194.02 KB)
應用程式
Android 將會有一些核心的應用程式集,包括郵件用戶端、SMS程式、計算機、地圖、瀏覽器、連絡人等等。所有的應用程式都用Java語言開發。
應用程式架構
通過提供一個開放的平台,Android可以讓開發人員開發豐富、創新的應用程式。開發人員可以免費利用硬體裝置,訪問本地資訊、啟動後台服務、設定鬧鈴、給狀態列增加提醒,等更多的功能。
開發人員可以使用核心應用程式的同一架構APIs。應用程式架構被設計成簡化組件的複用。任何程式都可以公布他的功能讓其他程式來使用(在應用程式強加了安全約束的前提下)。相同的機制允許被使用者替換掉某些組件。
下面畫線的應用是服務和系統應用集合,包括:
一些豐富的可擴充視圖集:可以用來構造應用程式,包括列表、表格、輸入框、按鈕,還有一個嵌入式的瀏覽器。
內容提供者:應用程式可以訪問其他程式的資料,例如連絡人清單,或者共用自己的資料。
資源管理員:提供訪問非代碼的資源,例如本地化的一些字串、映像、布局檔案。
一個提示管理器:可以讓所有程式在狀態列顯示自訂的提示資訊。
一個Activity管理器:管理activity的生命週期並且提供一個公用的導航功能。
關於更多的細節和應用程式預覽,參考 Noteoad Tutorial。
Libraries:
Android包含了一些被安卓系統各個組件使用到的C/C++庫,通過Android應用程式程式架構,這些功能對於開發人員來說是公開的,部分核心庫如列表所示:
系統C庫:一個BSD的標準C系統庫的實現,為了嵌入式Linux裝置設計的。
多媒體庫:基於 PacketVideo's OpenCORE庫,支援播放和錄製一些主流的音頻視頻格式,還有靜態圖片檔案,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG格式。
Surface Manager(圖形管理器):管理進入子系統,在多個應用程式裡無縫綜合2D和3D圖層。
LibWebCore:一個流行的web瀏覽器引擎,供Android瀏覽器和嵌入式的web視圖。
SGL:一個底層的2D映像引擎。
3D庫:基於OpenGL ES 1.0 API的一個實現。包括3D硬體加速(如果可用的話)和最佳化過的3D軟體加速。
FreeType:位元影像和向量字型的渲染(rendering)。
SQLite:一個強大的輕量級的資料庫引擎對所有程式提供使用。
Android 執行階段程式庫:
Android包含了Java語言的大部分的核心庫。
每一個Android應用程式運行在自己的進程裡,有自己的dalvik虛擬機器執行個體,Dalvik虛擬機器被重寫用來支援在一個行動裝置上支援多個有效地虛擬機器。Dalvik虛擬機器執行檔案(.dex)被最佳化的記憶體佔用很小。VM是基於寄存器,並且通過Java語言編譯器運行由class檔案轉換的.dex檔案,通過內建的dx工具。
Dalvik虛擬機器依賴Linux核心底層的功能,例如線程和底層的記憶體管理。
Linux kernel:
Android 依賴Linux2.6核心作為核心系統服務,像安全、記憶體管理、進程管理、網路棧和驅動模型。Kernel扮演者一個軟硬體之間的抽象層的角色。