編輯:開發入門
簡介
黑莓和 iPhone 都提供了受歡迎的、高容量的移動平台,但是卻分別針對兩個不同的消費群體。黑莓是企業業務用戶的不二選擇。但是,作為一種消費設備,它在易用性和 “新奇特性” 方面難以和 iPhone 抗衡。android 則是一個年輕的、有待開發的平台,它有潛力同時涵蓋移動電話的兩個不同消費群體,甚至可能縮小工作和娛樂之間的差別
如今,很多基於網絡或有網絡支持的設備都運行某種 Linux 內核。這是一種可靠的平台:可經濟有效地進行部署和提供支持,並且可直接作為面向部署的良好的設計方法。這些設備的 UI 通常是基於 Html 的,可通過 PC 或 Mac 浏覽器查看。但並不是每個設備都需要通過一個常規的計算設備來控制。想象一下傳統的家用電器,例如電爐、微波爐或面包機。如果您的家用電器由 Android 控制,並且有一個彩色觸摸屏,會怎麼樣?如果電爐上有一個 android UI,那麼操控者甚至可以烹饪點什麼東西。
在本文中,了解 Android 平台,以及如何將它用於移動和非移動應用程序。安裝 android SDK,並構建一個簡單的應用程序。
android 簡史
android 平台是 Open Handset Alliance 的成果,Open Handset Alliance 組織由一群共同致力於構建更好的移動電話的公司組成。這個組織由 Google 領導,包括移動運營商、手持設備制造商、零部件制造商、軟件解決方案和平台提供商以及市場營銷公司。從軟件開發的觀點看,android 正處在開源領域的中心位置。
市場上第一款支持 Android 的手機是由 HTC 制造並由 T-Mobile 供應的 G1。這款設備從設想到推出花了大約一年的時間,惟一可用的軟件開發工具是一些實行增量改進的 SDK 發行版。隨著 G1 發行日的臨近,android 團隊發布了 SDK V1.0,用於這個新平台的應用程序也浮出水面。
為了鼓勵創新,Google 舉辦了兩屆 “Android Developer Challenges”,為優勝的參賽作品提供數百萬美金的獎勵。G1 問世幾個月之後,隨後就發布了 android Market,它使用戶可以浏覽應用程序,並且可以將應用程序直接下載到他們的手機上。經過大約 18 個月,一個新的移動平台進入公眾領域。
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 應用程序由一個或多個組件組成:
Android 應用程序是連同一個 AndroidManifest.xml 文件一起部署到設備的。androidManifest.XML 包含必要的配置信息,以便將它適當地安裝到設備。它包括必需的類名和應用程序能夠處理的事件類型,以及運行應用程序所需的許可。例如,如果應用程序需要訪問網絡 — 例如為了下載一個文件 — 那麼 manifest 文件中必須顯式地列出該許可。很多應用程序可能啟用了這個特定的許可。這種聲明式安全性有助於減少惡意應用程序損害設備的可能性。
下一節討論構建 android 應用程序所需的開發環境。
很多人會問,android平台可以不使用Java開發應用程序??我做Android平台native開發之前,也有這麼想過,但是我又想,底層系統全是c/c++代碼,用c/
下面是開始android編程的好方法: 找一些與你想做事情類似的代碼 調整它,嘗試讓它做你像做的事情 經歷問題 使用
簡介難以想象還有哪種技術比移動電話更流行。大量的平台在銷售和心理份額方面爭占此行業的頂級市場。設備是高級的工程樣品,真正讓它們流行起來的動力在於這些平台上可用的大量應用
在android的源代碼中,經常會看到形如:sp<xxx>、wp<xxx>這樣的類型定義,這其實是android中的智能指針。智能指針是C++中