在前幾章我們已經學到怎麼開啟現有的專案,也導覽過了整個模擬器的設定流程。 現在我們從設計一個簡單實用的身高體重指數計算(BMI)應用程式開始,學習設計一個 Android 應用程式所需的基礎。
維基百科上這麼介紹 BMI 身高體重指數:
身高體重指數(又稱身體質量指數,英文為BodyMassIndex,簡稱BMI)是一個計算值。 ...當我們需要比較及分析一個人的體重對於不同高度的人所帶來的健康影響時, BMI值是一個中立而可靠的指標。
簡而言之,我們要設計的程式就是允許輸入身高體重,按下「計算 BMI」鍵後就在螢幕上顯示 BMI 值,並彈出「你應該節食囉」、或「你應該多吃點」...等健康建議。健康建議的判斷: 只要 BMI 值超過 「25」 時就算偏胖、BMI 值低於 「20」 就算偏瘦。 判斷寫得很簡單。畢竟我們要學習的關鍵知識,不是在於 BMI 值的算法或健康建議的內容,而是在於 Android 程式的運作方式。
參考資源 http://zh.wikipedia.org/wiki/身高體重指數
我們這就先從建立一個新的程式專案開始吧。
建立新程式專案
首先,我們照前面章節的教學,建立一個新的程式專案。並將新專案名稱命名為 BMI。 在「內容」欄裡,我們選擇「在工作區域中建立新專案」(Create new project in workspace)。 這時,如果在"選擇欄"取消掉勾選「使用預設目錄」(Use default location) 選項,我們就可以切換儲存專案的資料夾。 大部分的時候我們並不需去改動這個選項,而是直接使用預設的資料夾。
前面章節中都是開啟現有的專案,因此那些專案屬性 (Properties) 等內容都被自動填寫好了。這章中要從無到有新建一個專案,因此我們必須自行填寫專案相關的屬性。
在此對"New Android Project" 對話框中出現的這些欄位作些簡單的說明:
名稱 | 描述 |
Project Name | 包含這個項目的資料夾的名稱 |
Application Name | 顯示在應用程式上的標題 |
Package Name | 套件(Package)名稱,JAVA 的習慣是用套件名稱來區分不同的類別(class)。依照專案的不同,我們會起不同的路徑名稱。 |
Create Activity | 使否建立這個是項目的主要類別,勾選後可以指定這個類別的名稱。這個類別是一個 Activity 類別的子類別。我們可以在「Activity」中啟動程式和控制程式流程,或是根據需要控制螢幕、界面。 |
Build Target | 選擇用來編譯專案的 SDK 版本。 當選定了 Build Target 後,開發工具會在 Min SDK Version 欄位中自動填入對應的值 |
Min SDK Version | 本應用程式所支援的最低 SDK 版本代號。 |
我們在欄位中分別填入以下的值:
名稱 | 值 |
Project Name | BMI |
Application Name | BMI |
Package Name | com.demo.android.bmi |
Create Activity | Bmi |
Min SDK Version | 4 |
填好值後按下「Finish」 按鈕,就建立好新專案了。
注意 Package Name 的設定,必須至少由兩個部分所構成,例如:com.android。「Activity Name」是指定用來產生預設 java 程式碼的文件名稱,與文件中預設 Activity 類別 (class) 的名稱。依照 java 語言的命名習慣,「Activity Name」最好採用開頭大寫的形式。
回到 Eclipse 主畫面,我們注意到在左側 Package Explorer 視窗中已順利新增加了一個 BMI 目錄。
程式專案架構
乍看之下,Android 插件已幫我們建立了不少檔案。 檢視新建立的 BMI 檔案夾中的內容,我們可以將一個 Android 應用程式基本的檔案結構歸納成如下:
我們來看看 Android 應用程式的基本檔案結構,以及各自所負責的內容。
src/ 原始碼(source)目錄
src 目錄中包含了一個 Android 應用程式中所需的各個程式碼檔案。這些檔案被包在對應 package 的子目錄下。(如本章的 BMI 例子中,子目錄指的就是 /src/com/demo/android/bmi/)
src 目錄中比較關鍵的程式有:
1. Bmi.java 這個檔案的檔名會隨著你在建立一個新的程式專案畫面中所填入「Create Activity」欄位值的不同而改變。這是新程式專案中的主要程式區塊。我們開發 Android 程式的多數時間,都是在 src 目錄下和 Android 打交道。
gen/ 自動生成(Generate)目錄
gen 目錄中存放所有自動生成的檔案。
gen 目錄中最關鍵的程式就是 R.java 檔。
1. R.java 這個檔是自動產生的。會由 ADT 插件自動根據你放入 res 目錄的 XML 描述文件、圖像等資源,同步更新修改 'R.java' 這個中介檔案。所有的 Android 程式中都會有以 R.java 為名的這個檔案,你完全不需要,也應避免手工修改 R.java 這個檔案。
R.java 中自動產生的 「R」 類別就像是個字典一樣,包含了使用者介面、圖像、字串等各式的資源與相應的編號(id)。Android 應用程式中很多時候會需要透過 R 類別調用資源。 編譯時編譯器也會查看這個資源列表,沒有使用到的資源就不會編譯進去,為手機應用程式節省不必要佔用的空間。
res/ 資源(Resource)目錄
「res」 目錄中存放所有程式中用到的資源檔案。"資源檔案"指的是資料檔案,或編譯時會被轉換成程式一部分的 XML 描述檔。Android 針對放在 「res」 目錄下的不同子目錄的資源,會有各自不同處理方式。因此我們寫程式時,最好能搞清楚各目錄下分別可放置的內容。
res/ 中的程式:
3. layout/ 版面配置(layout)目錄 「layout」目錄包含所有使用 XML 格式的介面描述檔。「layout」 中的 XML 介面描述檔就像寫網頁時用到的 HTML 檔案一樣,用來描述螢幕上的版面編排與使用的介面元件。XML 介面描述檔描述的內容可以是整張螢幕,也可以只描述一部分的介面(例如描述用來產生對話框的介面元件)。
雖然你也能直接通過 Java 來建立使用者介面,不過透過 XML 描述檔來建立使用者介面相對更簡單,架構也更清晰,以後維護時更容易釐清問題。要使用這些介面元件,應透過 「R.java」 檔中自動產生的 「R」 類別來調用。
4. values/ 參數值(value)目錄 「values」 目錄包含所有使用 XML 格式的參數值描述檔,可以在此添加一些額外的資源如字串(很常用)、顏色、風格等。使用時也是透過 「R」 類別來調用。
Android 功能清單
5. AndroidManifest.xml
「AndroidManifest.xml」 是 Android 程式的功能清單,應用程式在這裡列出該程式所提供的功能。當應用程式開啟時,會提供諸如內容提供者(ContentProvider)、處理的資料類型、實際運行的類別、跨應用程式的資訊等等訊息。 你可以在此指定你的應用程式會使用到的服務(諸如電話功能、網路功能、GPS功能等)。 當你新增一個頁面行為類別 (Activity) 時,你也需要先在此註冊這個新增的 Activity 類別後,才能順利調用。
參考資料
Android 應用程式的檔案組織方式與用途 http://developer.android.com/guide/appendix/faq/commontasks.html#filelist
没有评论:
发表评论