Android 技術專題系列之一 -- Android 是什麼

 原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=1032&highlight=Android%2B%E6%8A%80%E6%9C%AF%E4%B8%93%E9%A2%98

 

Android 是什麼?
Android是一個完整的手機軟件平臺,包含底層的操作系統(Linux), 中間件以及一些關鍵應用。 Android 還提供了一個SDK 幫助開發者使用Java語言來開發。

特性

  • 應用框架:提供機制使組件(component)能夠被複用和替換
  • Dalvik 虛擬機:爲移動設備專門進行優化
  • 瀏覽器:基於Webkit引擎
  • 優化的圖形庫:基於一個定製的2D圖形庫; 3D圖形庫基於OpenGL ES 1.0草案(硬件加速功能可選)
  • SQLite
  • 媒體支持:包括常見的音頻,視頻和靜態圖像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM 庫(硬件相關)
  • Bluetooth, EDGE, 3G, 和 WIFi (硬件相關)
  • Camera, GPS, compass 和accelerometer (硬件相關)
  • 完善的開發環境, 包括一個模擬器,調試工具,內存和性能分析工具以及Eclipse IDE插件

Android 架構
下圖給出了Android平臺的主要組成元素(參見http://code.google.com/android/images/system-architecture.jpg
應用
Android平臺預裝了一些核心手機應用,包括電子郵件,短信, 日曆,地圖,瀏覽器,地址本等等。這些應用都是使用Java語言編寫。開發者也需要使用Java語言在Android平臺上開發自己的應用程序。
應用框架
核心應用(電子郵件,短信等)所使用的任何API, Android 開發者都可以訪問。Android架構設計的一個重要考慮是使組件(component)易於複用:任意一個應用都可以向系統發佈功能,而任意一個其他應用都可以調用這些功能(在不違背系統安全策略前提下)。 這個機制還使任意組件(component)都可被開發者替換。

在應用之下是一組服務 (service)和功能庫, 包括:

  • 一組豐富和易於擴展的View(控件),用於構建應用的圖形用戶界面,包括list, grid, 文本框, 按鈕,甚至一個強大的web瀏覽器控件
  • Content provider (內容提供者),使一個應用能夠訪問另外一個應用的數據(如地址本),或者共享自己的數據給其他應用使用。
  • 資源管理器(Resource Manager), 提供接口訪問應用的non-code (非代碼)資源,如本地化的字符串,圖片文件,佈局文件等。
  • Notification Manager (通知管理器):所有應用都可以通過Notification Manager在狀態欄顯示定製化的Alert (通知)或狀態信息
  • Activity Manager: 管理應用的生命週期以及activity 窗口的後退機制。


Android平臺包含一套C/C++庫, 供上層的組件使用。開發者不能直接訪問這些庫,但是可以通過Android應用框架來訪問。下面列出了一些核心庫:

  • 系統C語言庫 - 標準C系統庫(libc)的一個BSD-派生實現,併爲嵌入式設備進行了優化
  • 媒體庫 - 急於PacketVideo的OpenCORE。這個庫支持許多音視頻格式以及靜態圖像的播放和錄音/像, 如MPEG4, H。264, MP3,AAC,AMR, JPG和PNG。
  • Surface Manager - 管理對顯示子系統的訪問,並無縫的合成多個應用的2D和3D圖層
  • LibWebCore - 先進的web瀏覽器引擎。 Android瀏覽器應用以及web view (控件,可嵌入其他應用)都是基於這個庫。
  • SGL - 底層的2D圖形引擎
  • 3D 庫 - 基於OpenGL ES 1.0 API的一個實現庫。如果硬件提供3D加速功能,這個庫會利用硬件這個功能,否則使用一個優化的3D軟件庫
  • Freetype - 位圖和矢量字體引擎
  • SQLite - 輕量級的關係數據庫引擎。

Android runtime
Android 包含一套核心庫,提供了Java核心庫的大多數功能。
每個Android應用運行在自己的進程空間中, 運行在一個單獨的Dalvik 虛擬機實例上。Dalvik的設計能夠保證同一個設備上有效的運行多個虛擬機(實例)。Dalvik上運行的可執行文件格式是Dalvik Executable (.dex)。這個格式文件佔用較小內存。VM是Register-based (?),運行的類由一個Java 編譯器編譯生成,然後由"dx"工具轉化成.dex格式。
Dalvik虛擬機依賴Linux kernel 提供提供一些基礎功能,如線程,初級內存管理等。
Linux Kernel
Android依賴Linux 內核2.6提供的一些核心功能,如安全機制,內存管理,進程管理,網絡協議棧和驅動模型等。內核還爲硬件提供一個抽象層。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章