依照程式設計者的慣例,在撰寫第一個程式時,我們都會以最簡單的輸出 Hello World ! 訊息在銀幕上作為第一個程式,以下我們就遵循這樣一個慣例,在 Android 平台上開發出第一個屬於 Google Phone Hello World ! 程式。

建立 Android 程式專案

當你安裝好 Eclipse 之後,就可以開始撰寫程式了,首先要先建立一個專案,請點選 Eclipse 功能表中的 File/New/Android Project 的選項,如下圖所示: 

 

當您點選後,會出現一個 New Android Project 的視窗,請在 Project Name 一欄中鍵入 HelloWorld 作為專案名稱,選擇 Create new project in workspace,並在 Package Name 中鍵入 test.hello 作為套件名稱,接著在 Activity Name Application Name 欄位中都鍵入 HelloWorld 作為程式名稱,然後按下 Finish 鍵。

 

  如此、Eclipse 就會建立一個名稱為 HelloWorld 的專案,並且自動產生很多檔案,其中、我們的主程式位在 src/test/hello/HelloWorld.java 中,另外、還有一個重要的檔案,是 res/layout/main.xml 檔。


修改 XML介面

請點選 res/layout/main.xml 檔案,您會看到如下圖的一個 XML 文件,請仔細觀察一下這個文件,猜猜看他的用途?



您可能已經猜到、Android 是使用 XML 來做視窗介面的描述 (微軟也正在做同樣的事,Microsoft.NET 3.5 Visual Studio 2008 正在建立一個稱為 Windows Presentation Foundation (WPF) 的顯示架構,同樣是使用 XML 來描述視窗介面)

main.xml 中的最外層標記 LinearLayout 表示本畫面將使用線性排列的方式,其中的TextView 代表在本畫面中會有一個文字區域,屬性 android:text 代表該文字區域中所顯示的文字,在此、請將其內容改為 Hello World ! 



如此、您便完成了第一個程式 HelloWorld

執行專案程式

接著、您就可以在 Navigate 視窗中的 HelloWorld 專案上按下滑鼠右鍵,選擇 Run As/Android Application 功能,開始執行您的 HelloWorld 程式,如下圖所示:




稍後片刻之後,模擬器會被啟動,經過一小段開機程序,您會看到HelloWorld 程式的執行結果畫面如下。



讀到這裡,可能很多人對 Android 的程式設計原理會有相當大的疑問,為了解開這些疑問,我們將更深入 HelloWorld 程式的其他檔案一窺究竟。

程式執行的原理

src/test/hello資料夾中的HelloWorld.java程式如下所示:



在上例中、import 指令引入了 android.app.Activity android.os.Bundle 兩個類別,我們可以看到 HelloWorld 繼承了Activity 這個類別,Activity Android 平台當中的地位相當於一個作業系統的行程 (Process),也就是相當於 Java 程式中的主程式 main,然而、在 Android 當中使用 Activity 物件來取代主程式的概念是有原因的,因為 Android 將主程式的概念也徹底的物件導向化了,於是屬於靜態函數的 main 搖身一變就成了物件版的 Activity 了。

為何 Android 要將主程式物件化呢,這牽涉到 Android 的設計理念,在 Google Phone 當中,程式一開始執行後就會一直存在,通常不會結束,這樣的做法在手機當中很自然,例如、我們正在玩遊戲的當中可能會有電話打進來,此時、我們會先去接個電話,等到電話講完了,我們又會回來繼續玩遊戲,因此、Google Phone 的程式必須要適應這種半途中斷的狀況,於是 Android 平台將主程式物件化,使得主程式永遠存在 Google Phone 中,然而、當越來越多的 Activity 被放入記憶體執行之後,卻可能使得手機的記憶體不堪負荷,而導致記憶空間不足的窘境.

為了解決這樣的困擾,Android的作業系統在必要時會將不重要的 Activity 先置換出去,等到該 Activity 又要被執行的時候才置換回來,於是、Activity 必須要在被置換出去前先儲存重要資訊,以便在被置換回來後得以取回這些資訊,以回復到先前的程式執行狀態,這樣也可節省行程切換所產生的負擔,於是 Android 採用了物件化的 Activity 作為主程式的概念,使得 Android 中的程式變得很不一樣。

主程式被物件化為 Activity之後,視覺化介面的作業也跟著要搭配 Activity 而設計,因而、Android 採用了 View 這一個概念,每個 Activity 都可以搭配一些 View 而被顯示出來,只要使用Activity 中的 setContentView 函數即可,這也就是上述範例中  setContentView(R.layout.main) 指令的意義所在,當 HelloWorld 這個 Activity 被啟動後,立即將其顯示介面設為 R.layout.main,於是、R.layout.main 所對應到的介面將會被顯示出來。

然而、R.layout.main 到底對應到甚麼介面呢,這個答案很不明顯,但其實就是我們在 res/layout/main.xml 中所寫的那個介面。

當我們修改 main.xml 之後按下存檔按鈕時,Eclipse 會利用 Android tools 資料夾下提供的 Android Asset Packaging Tool (aapt) 程式,立即產生R.layout.main 以及對映的類別到 bin/test/ 資料夾下的 HelloWorld.apk 壓縮檔中,這裏會包含 R.layout.main 所對應的物件,於是當我們使用setContentView(R.layout.main) 指令的時候,Activity 就會指定該物件為其顯示物件。

 

推薦給同仁

Tell a Friend 

您想要瞭解更多的免費小竅門以便提升你的網站排名嗎?
請馬上聯繫我們網站管理員:
MSN: chenlinwu@cmmail.com 
Email: info@rank-ad.com