Google Android 詳細開發教程

第一部分:安裝 SDK
這裏介紹如何安裝 Android 的 SDK 開發包和配置開發環境。如果你還沒有下載 SDK,點擊下面的鏈結開
始。
Download the Android SDK

系統和軟體配置要求
要通過 Android SDK 中提供的代碼和工具進行 Android 應用程式的開發,需要一個合適的用於開發的電
腦和合適的開發環境,具體要求如下:
支援的開發環境
Eclipse
Eclipse 3.2,3.3(Europa)
Android 開發工具插件(可選)
其他的開發環境或者 IDE
JDK5.0 或者 JDK6.0(僅有 JRE 是不夠的)

安裝 SDK
下載好 SDK 包後,將 zip 檔解壓縮至合適的地方。在下文中,我們默認你的 SDK 安裝目錄為
$SDK_ROOT 你可以選擇將$SDK_ROOT/tools 加入到你的路徑中
1.Linux 下,打開文件~/.bash_profile 或者~/.bashrc,找到設定 PATH 環境變數的一行,將
$SDK_ROOT/tools 的完整路徑加入其中。如果沒有找到設定 PATH 變數的行,你可以自己添加一行:
export PATH=${PATH}:<你的$SDK_ROOT/tools 的完全路徑>
2.Mac 下,在你的 home 目錄中找到檔.bash_profile,和 Linux 的一樣處理。如果還沒有在機器上設定
這個檔,你可以創建一個.bash_profile 文件。
3.Windows 下,右鍵點擊【我的電腦】,選擇【屬性】,在【高級】頁中,點擊【環境變數】按鍵,在彈出的對
話方塊中雙擊“系統變數”中的變數“Path”,將$SDK/tools 的完全路徑加入其中。
通過將$SDK/tools 加入系統路徑,在運行 adb 和其他一些命令行工具時就不需要鍵入完全路徑名了。需
要注意到是,當你升級了 SDK 後,如果安裝路徑有變動的話,不要忘記了更新你的 PATH 變數的設置,
將其指向變動後的路徑。

在彈出的對話方塊中,為遠端站點輸入一個自定義的名字(例如:Android Plugin),然後輸入下面的 內容作為其默認的 URL:然後點擊 OK https://dl-ssl.google. 此主題相關圖片如下: 2..com/android/eclipse/ 5.在彈出的視窗中,選擇 Search for new features to install,然後點擊 Next 3.點擊 New Remote Site 4.現在你應該可以在搜索列表中看見剛才新加入的站點了(默認已經選中了),點擊 Finish 6..安裝 Eclipse 插件(ADT) 如果你選擇 Eclipse 作為 Android 的開發環境,可以安裝一個專門為 Android 定制的插件:Android Development Tools(ADT),ADT 插件集成 了對 Android 工程和工具的支援,它包含了大量功能強大的擴展,使得創建、運行、調試 Android 程式更 簡單更快捷。 如果你不打算使用 Eclipse,那麼就不需要下載或者安裝 ADT 插件。 為了下載和安裝 ADT 插件,請按照下面的步驟設置 Eclipse 的遠端更新站點: 1.在隨後的 Search Results 對話方塊中,選中 Android Plugin > Eclipse Integration > Android Development Tools,然後點擊 Next .啟動 Eclipse,依次選擇 Help > Software Updates > Find and Install..

然後點擊 OK 更新 ADT 插件 按照下面的步驟將你的 ADT 插件升級到最新版本: 1..閱讀許可協議,然後選擇 Accept terms of the license agreement,點擊 Next 8.. 看一下要創建"Hello.定位到 SDK 的目錄 d. 如果你安裝好了 Android 的 Eclipse 插件,你將 會在彈出的對話方塊中看到"Android Project" 的選項。 .點擊 Finish 9..選擇 Window > Preferences.選擇 Help > Software Updates > Find and Install. World"程式從高級層面上有哪些步驟: 1...ADT 插件沒有 signed,在安裝過程中會彈出確認視窗,你只需要點擊 Install All 就可以了 10. 2.如果 ADT 插件有任何更新,選擇並且安裝 第二部分:創建一個 hello Android 工程 創建一個新項目是很簡單的,只要你安裝了 Android SDK,並且你的 Eclipse 軟體版本在 3.在左側的面板中選擇 Android c.重啟後,在 Eclipse 的 Preferences 中指定 SDK 的路徑: a.重啟 Eclipse 11.點擊 Apply.打開 Preference 的面板。(Mac OS X:Eclipse > Preferences) b.2 或 3.7..選擇 Search for updates of the currently installed features,然後點擊 Finish 3. 選擇 File -> New -> Project 功能表. 編輯自動生成的代碼範本。 盡此而已,我們通過下面的詳細說明來完成每個步驟。 1, 創建一個新的 Android 項目 啟動 Eclipse. 通過 File -> New -> Project 功能表,建立新專案"Android Project" 2.3,你 就可以開始開發了。 首先.在主面板中,點擊 Browse. 填寫新專案各種參數。 3.

此主題相關圖片如下: 選擇“Android Project”. 下面的對話方塊需要你輸入與專案有關的參數: .點擊 Next 按鈕。 2. 填寫專案的細節參數.

android".你應該按照你的計畫起一個有別於這個的路徑的名稱。 Activity Name: 這是項目的主類名,這個類將會是 Android 的 Activity 類的子類。一個 Activity 類是一 個簡單的啟動程 序和控制程式的類。它可以根據需要創建介面,但不是必須的。 Application Name: 一個易讀的標題在你的應用程式上。 在"選擇欄"的 "Use default location" 選項,允許你選擇一個已存在的項目。 .google.此主題相關圖片如下: 這個表格中詳細介紹了每個參數的含義: Project Name: 包含這個項目的檔夾的名稱。 Package Name: 包名,遵循 JAVA 規範,用包名來區分不同的類是很重要的,例子中用到的 是"com.

*/ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle).setText("Hello. TextView tv = new TextView(this). Android"). tv. 訪問資料庫等 . } } 注意你還需要添加 import android. setContentView(tv). public class HelloAndroid extends Activity { /** Called when the activity is first created. setContentView(R. 在代碼開端處。 在 Android 程式中.3,編輯自動生成的代碼。 當項目創建後,你剛才創建的 HelloAndroid 就會是包含下面的代碼. TextView 的構造參數是 Android 程式的 Context 實例.TextView.main).widget. */ @Override public void onCreate(Bundle icicle) { super. 用戶介面是由叫做 Views 類來組織的。 一個 View 可以簡單理解為可以繪製的物件, 像選擇按鈕,一 個動畫,或者一個文本標籤(這個程式中),這個顯示文本標籤的 View 子類叫做 TextView.onCreate(icicle).  如何構造一個 TextView: TexiView tv = new TextView(this). Context 可以控制系統調用. } } 下面我們開始修改它 [構建介面] 當一個項目建立好以後,最直接的效果,就是在螢幕上顯示一些文本,下面是完成後的代碼,稍後我們在 逐行解釋。 public class HelloAndroid extends Activity { /** Called when the activity is first created.layout. 它提供了諸如資源 解析.

setText("Hello. Activity 的 setContentView()方法指示出系統要用哪個 View 作為 Activity 的介面. 如果一個 Activity 類沒有執行這個方法,將會沒有介面並且顯示白屏。在這個程式中,我們要顯示文本,所以我們傳入已創 建好的 TextView。 好了,程式碼已經寫好,下面看看運行效果。 運行代碼: Hello. 這個步驟很簡單,當我們完成了這些步驟以後,最後要把 TextView 顯示在螢幕上。 setContentView(tv). Android 使用 Android 的 Eclipse 插件就可以很輕鬆的運行你的程式,選擇 Run -> Open Run Dialog。你將會看 到下面的對話方塊 . Android").等。Activity 類繼承自 Context 類,因為我們的 HelloAndroid 是 Activity 的子類, 所以它也是一個 Context 類,所以我們能用"this"在 TextView 構造中。 當我們構造完 TextView 後,我們需要告訴它顯示什麼: tv.

 高亮"Android Application" 標籤.此主題相關圖片如下: 下一步. . 然後按下左上角的圖示(就是像一片紙帶個小星星那個), 或者直接雙擊 "Android Application" 標籤. 你將會看到一個新的運行項目,名 為"New_configuration".

然後插件會自動搜索在你的專案中的 Activity 類並且將所 有找到的添加在"Activity"標籤的下拉清單中。 我們只有"Hello. Android". 然後通過 Browser 按鈕選取你的專案(如果你有很多個 項目在 Eclipse 中,確保你選擇要運行的項目).下圖 .此主題相關圖片如下: 取一個可以表意的名稱,比如"Hello. Android"一個項目,所以它會作為默認 選擇。 點擊"Apply" 按鈕.

此主題相關圖片如下: 到這裏,已經完成了,你只需要點擊"Run"按鈕,然後 Android 的模擬器將會啟動,你的應用程式就會 被顯示出來。 .

此主題相關圖片如下: 下次繼續介紹如何把介面的佈局用 XML 表示以及使用命令行進行編譯和運行 Android 程式。 .

com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Hello. 你將要涉 及到公共的屬性已被定義在 XML 命名空間。在每一個 Android 的佈局檔的最外邊的標籤必須有這個屬性。 android:layout_width        這個屬性定義了在螢幕上這個 View 可用的寬度是多少。 android:layout_height        這個屬性定義了在螢幕上這個 View 可用的高度是多少。 android:text            設置 TextView 所包含的文本內容,當前設置為”Hello.java 的檔, 你將看到下面的內容: .它是告訴 Android 的工具.第三部分:將介面實現用 XML 編排 你剛剛完成的"Hello. 它是一個很簡單的只有一個元素的樹,一個 TextView。你可以使用任何繼承自 View 類的名字 作為標籤的名字。包括在你的代碼中自定義的 View 類。這個結構可以很容易的構建介面,它比你在源代碼 中使用的結構和語法更簡單。這個模式的設計靈感來自于 Web 開發。就是可以將介面和應用程式邏輯分離 的模式。 在這個例子中, 也有些是 XML 的屬性,下面是他們的含義: 屬性               含義 xmlns:android           這是 XML 命名空間的聲明. 並且編輯 main. 替換掉那個文本內容,然後保存。 現在,在包流覽狀態,打開在代碼檔夾中名為 R.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.xml. Android"/> AndroidXML 佈局檔的大體的結構很簡單。 它是一個標籤的樹,任何一個標籤就是 View 類的名字。在這 個例子中. Android”資訊 以上就是一個 XML 佈局檔的樣子,但是你需要放在哪里?它要放在你的專案目錄的 res/ 檔夾下。 “res” 是”resources”的縮寫,它是存放所有非代碼資源的檔夾,包含象圖片,本地化字串和 XML 佈局檔。 這些 Eclipse 的插件已經給你創建好了,在我們上面的例子中,我們沒有使用它。在包流覽器中,展開 res 目錄的 layout. World"例子我們稱之為”程式化”的介面編排。意思就是說構建你的應用程式介面是 直接使用的源代碼。如果你已經完成過很多介面程式,你大概熟悉像此類的方式是多麼脆弱:一個對佈局 小小的修改會對源代碼造成很頭疼的事情。如果忘掉與 View 的緊密結合,這個導致代碼出錯和浪費你的 調試時間的介面問題也會很簡單。 這就是為什麼 Android 提供了一種可替換的介面構建方式: 基於 XML 的佈局文件。最簡單的解釋這個概念 的方式就是展示一個例子。 我們就用剛才創建的專案來進行演示,達到相同的介面效果。 <?xml version="1.android.

@Override */ public void onCreate(Bundle icicle) { super. public static final class layout { public static final int main=0x7f030000.main). }.java 檔是一個定義所有資源的索引檔。 使用這個類就像使用一種速記方式來引用你專案中 包含的資源。這個有點特別的強大像對於 Eclipse 這類 IDE 的代碼編譯特性,因為它使你快速的,互動式 的定位你正在尋找的特定引用。 到目前需要注意的重要事情是叫做”layout”的內部類和他的成員變數”main”.public final class R { public static final class attr { }. }. } } 當你做這些改變的時候,不要僅僅複製,粘貼到你的代碼中,嘗試去體驗 R. }. 一個項目的 R. public static final class drawable { public static final int icon=0x7f020000. }. 插件會通知你添加一個新 的 XML 佈局檔,然後從新產生這個 R.onCreate(icicle).java 檔,比如你添加了新的資源到你的專案,你將會看到 R. public static final class string { public static final int app_name=0x7f040000. setContentView(R.layout.java 也相應的改變了 最後重要的事情是你需要去修改你的 HelloAndroid 源代碼,去使用新的 XML 佈局你的介面。替換掉編碼 式的介面模式。下面是你的新代碼的樣子,你可以看到,代碼變得更加簡單了。 public class HelloAndroid extends Activity { /** Called when the activity is first created.java 的代碼編譯特點。你會發 現它對你有很大的幫助。 .

現在完成這些改變以後,你就可以重新運行你的程式,然後你會發現兩種不同的介面編排方式會產生同樣 的效果。 第四部分:調試你的項目 這個用於 Eclipse 中的 Android 插件作為 Eclipse 中的調試器也具有優秀的相容性。要演示這些,讓我們 製造一個 bug 在代碼中,改變你的 HelloAndroid 源代碼象下面這樣: public class HelloAndroid extends Activity { /** Called when the activity is first created. Object o = null.onCreate(icicle). } } 這次簡單的變化會引起一個 NullPointerException 異常, 如果你再次運行程式,你將會看到下面的螢幕: .layout. */ @Override public void onCreate(Bundle icicle) { super.main).toString(). setContentView(R. o.

此主題相關圖片如下: .

要找到什麼地方出錯,需要設置個中斷點在你源代碼的 “Object o = null.” 行後(你可以雙擊在 Eclipse 中顯示行數的左部區域). 然後選擇 Run -> Debug 選擇最後一次的運行載入。 你的程式將會重起模擬器, 但是這個時候它會掛起,當它走到你剛才設置的中斷點的時候,在 Eclipse 的調試模式視圖中,它就會停 止在你的代碼處。就像你可以在其他任意程式中做這個一樣。 此主題相關圖片如下: .