2009年12月24日 星期四

從無到有-實戰Android系統開發-系統分析(7)

接下來,我們要做的Prototyping,就是進行設定類別項目的動作。一進入類別項目的畫面,就先依支出、收人的區別來列出所屬的類別列表,是以支出區別為預設。如圖16所示。
要編輯或刪除某個選項,就長按住某個選項,就會出現「編輯及刪除」的選項視窗。按下「新增新支出(收入)」按鈕,可以進入新增類別畫面。如圖17所示。


圖16


在新增類別畫面,可以進行類別名稱、此類別預算的輸入,以及是否要判斷使用預算的勾選項目,如圖17所示。是否要判斷使用預算,是讓使用者可以設定此類別預算金額。如果在新增記帳項目時,如果此類別總計的金額超過的話,會提示使用者。

圖17

2009年12月22日 星期二

深入淺出Android程式設計(29)-如何將Eclipse中文化及方便的小工具DroidDraw

在這個最後的章節,我們要介紹如何將Eclipse中文化及方便的小工具DroidDraw的安裝及用法。

如何將Eclipse中文化,首先,先啟動Eclipse,接下來在選取選單「Help」中的「Software Updates....」選項。
在點選「Software Updates....」選項後,就會出現Software Updates的視窗,切換頁標籤至「Available Software」,再點選「Add Site...」按鈕。就會出現要新增外掛的網址輸入視窗。
在新增外掛的網址輸入視窗,在Location欄位輸入「http://download.eclipse.org/technology/babel/update-site/ganymede
」,再按下「OK」按鈕。就會回到原來的Software Updates視窗。
在Software Updates視窗,就會多出剛才輸入的網址而產生出來的選項,點選開來,再勾選「Babel Language Packs in traditional Chinese」選項,再按下「Install」按鈕,進行安裝動作,如圖75、圖76所示。再重新開啟Eclipse,就變成中文化的介面,如圖77所示。


圖75


圖76


圖77

而方便的小工具DroidDraw,是一個可以讓我們在設計Android介面的好工具,在Eclipse的開發介面沒有提供類似其他開發工具那樣,可以直接拖曳物件的功能,所以,有人就用Java寫了類似的工具,幫助Android的開發人員可以比較直覺的方式來拖曳物件,完成Android的介面。
首先,在連到DroidDraw的網頁(參考網址如下:http://www.droiddraw.org/ ),就會直接出現可以編輯的畫面,如圖78所示。在編輯畫面,可以先設定畫面的層次及螢幕的尺寸。可以選取的選項,如下所述:
Root Layout(畫面層次):Absolute Layout、Linear Layout、Relative Layout、Scroll View、Table Layout

Screen Size(螢幕尺寸):QVGA Land scape、QVGA Portrait、HVGA Land scape、HVGA Portrait


圖78

可以拖曳物件到編輯畫面上,再選取要編輯的物件,在右上方的視窗,切換到Properties(屬性頁籤)來設定此物件的屬性。編輯好介面後,在右下方,按下「Generate」按鈕來產生對應的XML內容,如圖76所示。
下一步就可以將這個XML內容選取後,複製到Eclipse的介面XML檔案。


圖79

總算結束了鐵人賽的連續發文,謝謝大家的支持。有關Android的介紹不是結束,而是開始。
我會再整理一些有關Android程式開發方面的文章,再分享給大家。預計會用一些程式範例,來說明如何驅動事件、每一個控制項的運作方式、資料庫SQLite的應用、如何使用Map View控制項等進階主題。
如果大家在it邦看不到圖片的話,大家也可以來看我的部落格:http://estyleservice.blogspot.com/,我會陸續更新之前我寫的文章及後面的進階主題。

深入淺出Android程式設計(28)-如何用非Eclipse平台來建立專案,以「Hello,Android!」專案說明

在這個章節要來介紹有關如何用非Eclipse平台來建立專案,以「Hello,Android!」專案說明。

如果不想使用Eclipse,而想用其它IDE開發介面,或者像傳統的C那樣,使用文字編輯器與命令列工具,那麼ADT外掛套件就無法協助來處理這些需求,不過,不用擔心,如果開發人員不會因為不使用Eclipse ADT外掛套件而失去之前章節,所提到的那些功能。

ADT外掛套件只是將一系列有關Android SDK的工具加以包裝(這些工具,例如:模擬器、aapt、adb、ddms)並且整合在Eclipse平台上,因此,是有可能用其它工具來包裝這些工具,如「Ant」。

Android SDK會建立的樣版檔案包含了一個可以跟「Ant」相容的build.xml檔案與檔案名稱為「activityCreator.py」的python檔案(在Windows平台為「activityCreator.bat」檔案名稱),可以為專案建立所有的基本目錄與檔案,讓開發人員可以從命令列建立專案,或者選擇整合到其它的IDE開發工具中。

例如,可以在Dos視窗,用以下命令建立與Eclipse建立類似的專案架構。請參考之前的章節-「如何在其他IDE或工具開發Android應用程式(上)」當中的描述。

activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid

下一步,為了建立出專案,開發人員得接著執行「ant」相關命令,然後會在專案路徑底下的bin目錄下會產生一個HelloAndroid.apk檔案,而.apk檔案是一個Android對應用程式的封裝檔案,最後再使用「adb」工具就可以安裝到模擬器來進行測試。

上述這些運作方式及工具的操作,請參考之前的章節,由深入淺出Android程式設計(15)的章節到深入淺出Android程式設計(21)的章節,都有提到這方面的運作。

深入淺出Android程式設計(27)-如何進行專案除錯,以「Hello,Android!」專案說明

在Eclipse的ADT外掛與Eclipse的除錯整合的非常好,為了要測試這樣的機制,讓我們在程式碼裡插入一個bug,修改一下專案的程式碼如下所述:

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);
}
}

當這樣的變動,加入「Object o = null;」及「o.toString();」等錯誤的程式碼,就會出現「Null Pointer Exception」的錯誤資訊,再一次執行專案時,就會顯示有錯誤訊息,如圖73所示。

圖73

如果要找出那裡發生錯誤,可以在「Object o = null;」這一行程式碼建立中斷點,使用的方式就是在Eclipse行號左邊區域建立中斷點,如圖74所示,然後選取選單「Run」中的選取「Debug」選項,來載入最後程式進入除錯模式。程式會重啟模擬器,但是,執行到中斷點時,程式會中斷,然後就可以在Eclipse的除錯模式下,一步一步的執行程式碼,如同除錯其它程式一樣。


圖74

2009年12月13日 星期日

深入淺出Android程式設計(26)-如何將介面升級到以XML方式來排版,以「Hello,Android!」專案說明

在這個章節要來介紹有關如何將介面升級到以XML方式來排版,以「Hello,Android!」專案說明。

如何將介面升級到以XML方式來排板

在上一個章節,我們所介紹的「Hello,Android!」專案是用開發人員稱之為程式化開發的介面,也就是說直接用程式碼來建構使用者介面,但是,這樣的建構介面的方式會發生許多問題,而小小的排版變動可能導致大部分的程式變更,最大的問題是容易忘記的是如何把正確的介面顯示在螢幕上,這可能導致發生錯誤並浪費時間除錯。

這也是為什麼Android SDK會提供另一種介面的建立模式,使用XML排版檔案來記錄介面的資料,最簡單了解的方法就是看下述的範例,下面的XML排版檔案內容就是跟剛編譯的程式同樣的的排版建構:




在上述的XML檔案中的標籤(Tag)可以自由使用,結構也很簡單,標籤(Tag)的名稱就是View物件的類別名稱,在這個範例,標籤(Tag)就只有一個「TextView」,開發人類可以使用任何繼承自View物件的類別做為標籤(Tag)名稱,包含一些開發人員所做的類別,這樣的結構比較容易快速建立界面,比起開發人員的程式碼要簡單的多了,這樣的模式受到Web開發的啟示,將參數從程式邏輯抽離只用來填入與取得資料。

在這個XML使用了一些屬性,大致說明如下:
xmlns:android

名稱空間宣告,讓Android工具參考Android名稱空間的一般屬性,大部分的XML排版檔必須使用這個名稱空間。

android:layout_width

這個屬性宣告View要佔螢幕多少空間,在這個例子,唯一的View要佔用全部的螢幕,所以使用「fill_parent」這個參數,就是填滿的意思。

android:layout_height

就像android:layout_width的屬性一樣,除了它是指螢幕可用的高度。

android:text

設定TextView包含的文字屬性,這上述的範例中,就是設定成「Hello,Android!」

那麼這個XML檔案會放在那裡呢?目前的設定是放到專案目錄下的res目錄底下的layout目錄,預設的檔案名稱是main.xml,如圖72所示。



圖72

下一步,打開Package Explorer下原始碼目錄內的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;
};
};

Android專案的R.java檔用來索引定義在這個檔案的內裡使用的資源,開發人員可以在程式碼內使用這個類別來做為方便參考的索引記錄。

參考資料:
Android SDK Document http://code.google.com/android/documentation.html

深入淺出Android程式設計(25)-執行程式碼,以「Hello,Android!」專案說明

如何執行程式碼

在Eclipse使用ADT外掛套件,就很容易就可以執行專案程式,進入Eclipse平台,選取選單「Run」中的「Run Configurations…」選項,如圖65所示。




圖65

進入Run Configurations視窗,選取左邊的專案型態為「Android Application」的項目,按下滑鼠右鍵,選取「New」選項,建立新的配置設定,預設會依目前的專案,自動建立所屬的配置設定。如圖66所示



圖66

新的配置設定視窗,如圖67所示。在「Name」欄位上輸入「HelloAndroid」配置名稱欄位值,切換到「Android」頁標籤,點選「Browse...」來選擇所屬的專案,而ADT外掛套件會掃瞄專案內的每一個Activity的子類別加到Activity標籤下的下拉項目,因為目前Hello,Android專案只有一個Activity,所預設值就直接選取即可,其他項目使用預設值即可。如圖68所示。



圖67



圖68

接下來就是要執行程式了,進入Eclipse平台,選取選單「Run」中的「Run」選項,來執行應用程式。如圖69所示。



圖69

下一步在執行那一種應用程式的視窗,選取「Android Application」,就會啟動Android的模擬器,來執行應用程式,如圖70所示。完成執行後,就會在模擬器畫面上出現結果。如圖71所示。



圖70



圖71

上述就是執行的步驟,在下一個章節就是介紹如何安排介面上設計及其他檔案的作用。

參考資料:
Android SDK Document http://code.google.com/android/documentation.html

2009年12月8日 星期二

從無到有-實戰Android系統開發-系統分析(6)

下一步,我們要做的Prototyping,就是進行設定資料的動作。一進入設定資料的畫面,就有三個選項列表,分別是類別設定、帳戶設定、歸屬設定等選項。如圖15所示。


可以依據使用者目前想要設定那方面的資料,再點選進入。


圖15