Android程序開發初級教程(一) 開始Hello Android – Android移動開發技術文章_手機開發 Android移動開發教學課程

平臺簡介
  令人激動的Google手機操作系統平臺-Android正式發佈瞭,這是一個開放源代碼的操作系統,內核為Linux. 作為開發者,我們所關心的是這個平臺的架構以及所支持的開發語言。下面是這個平臺的架構模型:
  

  這個平臺有以下功能:
  + Application framework: 可重用的和可替換的組件部分,在這個層面上,所有的軟件都是平等的。
  + Dalvik virtul machine: 一個基於Linux的虛擬機。
  + Integrated browser: 一個基於開源的WebKit引擎的瀏覽器,在應用程序層。
  + Optimized graphics: 包含一個自定義的2D圖形庫和基於OpenGL ES 1.0 標準的3D實現。
  + SQLite: 數據庫
  + Media support: 通用的音頻,視頻和對各種圖片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  + GSM Telephony: GSM 移動網絡, 硬件支持。
  + Bluetooth, EDGE, 3G, and WiFi: 都依賴於硬件支持。
  + Camera, GPS, compass, and accelerometer: 都依賴於硬件支持。
  + Rich development environment: 包含一套完整的開發工具集,方便跟蹤調試,內存檢測和性能測試,而且提供瞭Eclipse的插件。
  下面我們就來親身體驗一下Android程序的開發之旅。
  先介紹一下開發環境,下面是對系統及相關軟件的版本要求:
  操作系統:
  Windows XP or Vista
  Mac OS X 10.4.8 or later (x86 only)
  Linux (tested on Linux Ubuntu Dapper Drake)
  Supported Development Environments
  Eclipse
  Eclipse 3.2, 3.3 (Europa)
  Android Development Tools plugin (optional)
  Other development environments or IDEs
  JDK 5 or JDK 6 (JRE alone is not sufficient)
  Not compatible with Gnu Compiler for Java (gcj)
  Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
  我使用Eclipse 3.3 + JDK 1.6. + Ant 1.7 的組合。還有兩個重要的就是: Android SDK 以及 Android 用於Eclipse 中的插件。
  Android SDK 的下載鏈接: http://code.google.com/android/
  如果你是第一次使用這些軟件,請註意安裝順序和設置好環境變量。 一般的順序是先安裝 JDK 然後 解壓 ant 壓縮包,然後設置 java 環境變量和 ant 環境變量, 然後是解壓 Android SDK ,再設置 Android SDK的環境變量。 總之就是把 JDK, ANT, Android SDK的路徑添加到 path 裡。
  Android for eclipse plug in 在安裝過程很簡單,通過網絡安裝插件就可以瞭,這個是 URL: https://dl-ssl.google.com/android/eclipse/
  具體的配置過程,可以查看:http://code.google.com/android/intro/installing.html#otherides
以下為一個hello Android的開發步驟:
  創建一個項目:
  創建一個新項目是很簡單的,隻要你安裝瞭Eclipse插件,並且你的Eclipse軟件版本在3.2或3.3,你就可以開始開發瞭。
  首先, 看一下要創建"Hello, World"程序從高級層面上有哪些步驟:
  1, 通過 File -> New -> Project 菜單,建立新項目"Android Project"
  2, 填寫新項目各種參數。
  3, 編輯自動生成的代碼模板。
  盡此而已,我們通過下面的詳細說明來完成每個步驟。
  1, 創建一個新的Android項目
  啟動Eclipse, 選擇 File -> New -> Project 菜單, 如果你安裝好瞭Android的Eclipse插件,你將會在彈出的對話框中看到"Android Project" 的選項。
  
  選擇“Android Project”,點擊 Next 按鈕。
  2, 填寫項目的細節參數.
  下面的對話框需要你輸入與項目有關的參數:
  
  這個表格中詳細介紹瞭每個參數的含義:
  Project Name: 包含這個項目的文件夾的名稱。
  Package Name: 包名,遵循JAVA規范,用包名來區分不同的類是很重要的,例子中用到的是"com.google.android",你應該按照你的計劃起一個有別於這個的路徑的名稱。
  Activity Name: 這是項目的主類名,這個類將會是Android的Activity類的子類。一個Activity類是一個簡單的啟動程
  序和控制程序的類。它可以根據需要創建界面,但不是必須的。
  Application Name: 一個易讀的標題在你的應用程序上。
  在"選擇欄"的 "Use default location" 選項,允許你選擇一個已存在的項目。
 3,編輯自動生成的代碼。
  當項目創建後,你剛才創建的HelloAndroid就會是包含下面的代碼.
  public class HelloAndroid extends Activity
  {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle icicle)
  {
  super.onCreate(icicle);
  setContentView(R.layout.main);
  }
  }
  下面我們開始修改它
  [構建界面]
  當一個項目建立好以後,最直接的效果,就是在屏幕上顯示一些文本,下面是完成後的代碼,稍後我們在逐行解釋。
  public class HelloAndroid extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  TextView tv = new TextView(this);
  tv.setText("Hello, Android");
  setContentView(tv);
  }
  }
  註意你還需要添加 import android.widget.TextView; 在代碼開端處。
  在Android程序中, 用戶界面是由叫做Views類來組織的。 一個View可以簡單理解為可以繪制的對象,像選擇按鈕,一
  個動畫,或者一個文本標簽(這個程序中),這個顯示文本標簽的View子類叫做TextView.
  如何構造一個TextView:
  TexiView tv = new TextView(this);
  TextView的構造參數是Android程序的Context實例, Context可以控制系統調用, 它提供瞭諸如資源解析, 訪問數據庫等
  等。Activity類繼承自Context類,因為我們的HelloAndroid 是Activity的子類, 所以它也是一個Context類,所以我們能用"this"在TextView構造中。
  當我們構造完TextView後,我們需要告訴它顯示什麼:
  tv.setText("Hello, Android");
  這個步驟很簡單,當我們完成瞭這些步驟以後,最後要把TextView顯示在屏幕上。
  setContentView(tv);
  Activity的setContentView()方法指示出系統要用哪個View作為Activity的界面, 如果一個Activity類沒有執行這個方法,將會沒有界面並且顯示白屏。在這個程序中,我們要顯示文本,所以我們傳入已創建好的TextView。
  好瞭,程序代碼已經寫好,下面看看運行效果。
  運行代碼: Hello, Android
  使用Android的Eclipse插件就可以很輕松的運行你的程序,選擇Run -> Open Run Dialog。你將會看到下面的對話框
  
  下一步, 高亮"Android Application" 標簽, 然後按下左上角的圖標(就是像一片紙帶個小星星那個), 或者直接雙擊 "Android Application" 標簽, 你將會看到一個新的運行項目,名為"New_configuration".
  
  取一個可以表意的名稱,比如"Hello, Android", 然後通過Browser按鈕選取你的項目(如果你有很多個項目在Eclipse中,確保你選擇要運行的項目), 然後插件會自動搜索在你的項目中的Activity類並且將所有找到的添加在"Activity"標簽的下拉列表中。 我們隻有"Hello, Android"一個項目,所以它會作為默認選擇。
  點擊"Apply" 按鈕,下圖
  
  到這裡,已經完成瞭,你隻需要點擊"Run"按鈕,然後 Android的模擬器將會啟動,你的應用程序就會被顯示出來。
  
  下次繼續介紹如何把界面的佈局用XML表示以及使用命令行進行編譯和運行Android程序。
將界面實現用XML編排

你剛剛完成的"Hello, World"例子我們稱之為”程序化”的界面編排。意思就是說構建你的應用程序界面是直接使用的源代碼。如果你已經完成過很多界面程序,你大概熟悉像此類的方式是多麼脆弱:一個對佈局小小的修改會對源代碼造成很頭疼的事情。如果忘掉與View的緊密結合,這個導致代碼出錯和浪費你的調試時間的界面問題也會很簡單。

這就是為什麼Android提供瞭一種可替換的界面構建方式: 基於XML的佈局文件。最簡單的解釋這個概念的方式就是展示一個例子。我們就用剛才創建的項目來進行演示,達到相同的界面效果。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="Hello, Android"/>

AndroidXML佈局文件的大體的結構很簡單。它是一個標簽的樹,任何一個標簽就是View類的名字。在這個例子中, 它是一個很簡單的隻有一個元素的樹,一個 TextView。 你可以使用任何繼承自View類的名字作為標簽的名字。包括在你的代碼中自定義的View類。這個結構可以很容易的構建界面,它比你在源代碼中使用的結構和語法更簡單。這個模式的設計靈感來自於Web開發。就是可以將界面和應用程序邏輯分離的模式。

在這個例子中, 也有些是XML的屬性,下面是他們的含義:

屬性 含義
xmlns:android 這是XML命名空間的聲明,它是告訴Android的工具, 你將要涉及到公共的屬性已被定義在XML命名空間。在每一個Android的佈局文件的最外邊的標簽必須有這個屬性。
android:layout_width 這個屬性定義瞭在屏幕上這個View可用的寬度是多少。
android:layout_height 這個屬性定義瞭在屏幕上這個View可用的高度是多少。
android:text 設置TextView所包含的文本內容,當前設置為”Hello, Android”信息


以上就是一個XML佈局文件的樣子,但是你需要放在哪裡?它要放在你的項目目錄的res/ 文件夾下。 “res”是”resources”的縮寫,它是存放所有非代碼資源的文件夾,包含象圖片,本地化字符串和XML佈局文件。
這些Eclipse的插件已經給你創建好瞭,在我們上面的例子中,我們沒有使用它。在包瀏覽器中,展開res目錄的layout. 並且編輯 main.xml, 替換掉那個文本內容,然後保存。

現在,在包瀏覽狀態,打開在代碼文件夾中名為 R.java的文件, 你將看到下面的內容:

public final class R {
    public static final class attr {
    };
    public static final class drawable {
        public static final int icon=0x7f020000;
    };
    public static final class layout {
        public static final int main=0x7f030000;
    };
    public static final class string {
        public static final int app_name=0x7f040000;
    };
};


一個項目的R.java文件是一個定義所有資源的索引文件。使用這個類就像使用一種速記方式來引用你項目中包含的資源。這個有點特別的強大像對於Eclipse這類IDE的代碼編譯特性,因為它使你快速的,互動式的定位你正在尋找的特定引用。

到目前需要註意的重要事情是叫做”layout”的內部類和他的成員變量”main”, 插件會通知你添加一個新的XML佈局文件,然後從新產生這個R.java文件,比如你添加瞭新的資源到你的項目,你將會看到R.java也相應的改變瞭

最後重要的事情是你需要去修改你的HelloAndroid源代碼,去使用新的XML佈局你的界面。替換掉編碼式的界面模式。下面是你的新代碼的樣子,你可以看到,代碼變得更加簡單瞭。

public class HelloAndroid extends Activity {
  
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
    }
}

當你做這些改變的時候,不要僅僅復制,粘貼到你的代碼中,嘗試去體驗R.java的代碼編譯特點。你會發現它對你有很大的幫助。

現在完成這些改變以後,你就可以重新運行你的程序,然後你會發現兩種不同的界面編排方式會產生同樣的效果。
調試你的項目

這個用於Eclipse中的Android插件作為Eclipse中的調試器也具有優秀的兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣:

public class HelloAndroid extends Activity {
   
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        Object o = null;
        o.toString();
        setContentView(R.layout.main);
    }
}


這次簡單的變化會引起一個NullPointerException異常,如果你再次運行程序,你將會看到屏幕
要找到什麼地方出錯,需要設置個斷點在你源代碼的 “Object o = null;” 行後(你可以雙擊在Eclipse中顯示行數的左部區域), 然後選擇 Run -> Debug 選擇最後一次的運行加載。你的程序將會重起模擬器,但是這個時候它會掛起,當它走到你剛才設置的斷點的時候,在Eclipse的調試模式視圖中,它就會停止在你的代碼處。就像你可以在其他任意程序中做這個一樣。。

 


使用其它的IDE工具創建項目

調試你的項目
這個用於Eclipse中的Android插件作為Eclipse中的調試器也具有優秀的兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣:
public class HelloAndroid extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         Object o = null;
         o.toString();
         setContentView(R.layout.main);
     }
}
這次簡單的變化會引起一個NullPointerException異常, 如果你再次運行程序,你將會看到下面的屏幕:

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

使用其它的IDE工具創建項目
如果你沒有使用Eclipse(比如你使用其他的IDE開發工具,或者簡單的隻使用文本編輯和命令行工具), 那麼這個插件不會幫上你忙,別擔心,你不會因為沒有使用Eclipse而丟失任何開發能力。
其實Android的Eclipse插件也是將一套Android SDK的開發工具包裝瞭。(這些工具像:模擬器,aapt, adb, ddms, 和其他的,可以參考google的相關文檔), 因此, 它也可以被其他工具包裝,比如ant.
在Android SDK中包含一個Python腳本,叫做”activityCreator.py”, 它用於為瞭你的項目創建所有的源代碼和目錄的編譯環境(個人理解), 也就是會產生可用於ant編譯的build.xml. 這樣就允許你的項目從命令行方式創建或者集成到你選擇的IDE中。
比如,要創建一個HelloAndroid項目,就像剛才我們用Eclipse中的一樣, 你可以使用下面的命令:
activityCreator.py –out HelloAndroid com.google.android.hello.HelloAndroid
要編譯你的項目,你要接著使用ant命令,當命令行提示成功時候,你會看到一個名為HelloAndroid.apk的文件在”bin”目錄下。 這個.apk文件是一個Android的包, 它需要使用”adb”工具安裝進模擬器。
到這裡為止,我向大傢展示瞭Android平臺的程序簡單的開發實例,本人水平有限,翻譯的時間倉促,一定有很多錯誤和疏漏,請多提修改意見。本系列教程的主要內容都是翻譯自Google的Android開發文檔。通過下面的鏈接查看全部內容。

作者“如果有夢”
 

發佈留言