Android 平臺

http://www.ibm.com/developerworks/cn/opensource/os-android-devel/index.html 

Android 平臺

Android 有豐富的功能,因此很容易與桌面操作系統混淆。Android 是一個分層的環境,構建在 Linux 內核的基礎上,它包括豐富的功能。UI 子系統包括:

  • 窗口
  • 視圖
  • 用於顯示一些常見組件(例如編輯框、列表和下拉列表)的小部件

Android 包括一個構建在 WebKit 基礎上的可嵌入瀏覽器,iPhone 的 Mobile Safari 瀏覽器同樣也是以 WebKit 爲基礎。

Android 提供多種連接選項,包括 WiFi、藍牙和通過蜂窩(cellular)連接的無線數據傳輸(例如 GPRS、EDGE 和 3G)。Android 應用程序中一項流行的技術是鏈接到 Google 地圖,以便在應用程序中顯示地址。Android 軟件棧還提供對基於位置的服務(例如 GPS)和加速計的支持,不過並不是所有的 Android 設備都配備了必需的硬件。另外還有攝像支持。

過去,移動應用程序努力向桌面應用程序看齊的兩個領域分別是圖形/媒體和數據存儲方法。Android 通過提供對 2D 和 3D 圖形的內置支持,包括 OpenGL 庫,解決了圖形方面的挑戰。由於 Android 平臺包括流行的開源 SQLite 數據庫,因此緩解了數據存儲的負擔。圖 1 顯示一個簡化的 Android 軟件層次結構。


圖 1. Android 軟件層次結構
 

 

應用程序架構

如前所述,Android 運行在 Linux 內核上。Android 應用程序是用 Java 編程語言編寫的,它們在一個虛擬機(VM)中運行。需要注意的是,這個 VM 並非您想象中的 JVM,而是 Dalvik Virtual Machine,這是一種開源技術。每個 Android 應用程序都在 Dalvik VM 的一個實例中運行,這個實例駐留在一個由 Linux 內核管理的進程中,如下圖所示。


圖 2. Dalvik VM
 

Android 應用程序由一個或多個組件組成:

活動
具有可視 UI 的應用程序是用活動實現的。當用戶從主屏幕或應用程序啓動器選擇一個應用程序時,就會開始一個動作。
服務
服務應該用於任何需要持續較長時間的應用程序,例如網絡監視器或更新檢查應用程序。
內容提供程序
可以將內容提供程序看作數據庫服務器。內容提供程序的任務是管理對持久數據的訪問,例如 SQLite 數據庫。如果應用程序非常簡單,那麼可能不需要創建內容提供程序。如果要構建一個較大的應用程序,或者構建需要爲多個活動或應用程序提供數據的應用程序,那麼可以使用內容提供程序實現數據訪問。
廣播接收器
Android 應用程序可用於處理一個數據元素,或者對一個事件(例如接收文本消息)做出響應。

Android 應用程序是連同一個 AndroidManifest.xml 文件一起部署到設備的。AndroidManifest.xml 包含必要的配置信息,以便將它適當地安裝到設備。它包括必需的類名和應用程序能夠處理的事件類型,以及運行應用程序所需的許可。例如,如果應用程序需要訪問網絡 — 例如爲了下載一個文件 — 那麼 manifest 文件中必須顯式地列出該許可。很多應用程序可能啓用了這個特定的許可。這種聲明式安全性有助於減少惡意應用程序損害設備的可能性。

下一節討論構建 Android 應用程序所需的開發環境。


所需的工具

開始開發 Android 應用程序的最簡捷的方式是下載 Android SDK 和 Eclipse IDE(參見 參考資料)。Android 開發可以在 Microsoft® Windows®、Mac OS X 或 Linux 上進行。

本文假設您使用的是 Eclipse IDE 和用於 Eclipse 的 Android Developer Tools 插件。Android 應用程序是用 Java 語言編寫的,但是是在 Dalvik VM(非 Java 虛擬機)中編譯和執行的。在 Eclipse 中用 Java 語言編程非常簡單;Eclipse 提供一個豐富的 Java 環境,包括上下文敏感幫助和代碼提示。Java 代碼通過編譯後,Android Developer Tools 可確保適當地將它打包,包括 AndroidManifest.xml 文件。

雖然沒有 Eclipse 和 Android Developer Tools 插件也可以開發 Android 應用程序,但是那樣就需要熟悉 Android SDK。

Android SDK 是作爲一個 ZIP 文件發佈的,可以將該文件解壓到硬盤上的一個目錄中。由於有多個 SDK 更新,建議有意識地組織開發環境,以便在不同的 SDK 安裝之間輕鬆地切換。SDK 包括:

android.jar
Java 歸檔文件,其中包含構建應用程序所需的所有的 Android SDK 類。
documention.html 和 docs 目錄
本地和網上提供的 SDK 文檔。這些文檔的主要形式爲 JavaDocs,以便於在 SDK 中導航大量的包。文檔還包括一個高級開發指南和 Android 社區的鏈接。
Samples 目錄
samples 子目錄包含各種應用程序的源代碼,包括 ApiDemo,該應用程序演示了很多 API。這個示例應用程序可以作爲 Android 應用程序開發的良好起點。
Tools 目錄
包含所有用於構建 Android 應用程序的命令行工具。最常用、最有用的工具是 adb 實用程序(Android Debug Bridge)。
usb_driver
該目錄包含將開發環境連接到支持 Android 的設備(例如 G1 或 Android Dev 1 解鎖開發手機)所需的驅動程序。只有 Windows 平臺的開發人員才需要這些文件。

Android 應用程序可以在實際的設備上運行,也可以在 Android SDK 附帶的 Android Emulator 上運行。圖 3 顯示 Android Emulator 的主屏幕。


Android Debug Bridge

adb 實用程序支持一些可選命令行參數,以提供強大的特性,例如複製文件到設備或從設備複製文件。可以使用 shell 命令行參數連接到手機本身,併發送基本的 shell 命令。圖 4 顯示在通過 USB 線連接到 Windows 筆記本電腦的一個實際設備上運行的 adb shell 命令。


圖 4. 使用 adb shell 命令

在這個 shell 環境中,可以:

  • 顯示網絡配置,網絡配置可顯示多個網絡連接。注意這多個網絡連接:
    • lo 是本地或 loopback 連接。
    • tiwlan0 是 WiFi 連接,該連接由本地 DHCP 服務器提供一個地址。
  • 顯示 PATH 環境變量的內容。
  • 執行 su 命令,以成爲超級用戶。
  • 將目錄改爲 /data/app,其中存放用戶應用程序。
  • 列出包含某個應用程序的目錄。Android 應用程序文件實際上是歸檔文件,可通過 WinZip 之類的軟件查看。擴展名爲 apk。
  • 發出 ping 命令,查看 Google.com 是否可用。

從相同的命令提示符環境中,還可以與 SQLite 數據庫交互,啓動程序以及執行許多其他系統級任務。想像一下您正在連接到電話,因此這是非常了不起的功能。

在下一節,您將創建一個簡單的 Android 應用程序。

發佈了11 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章