如果你接觸.NET Framework有段期間,應該或多或少聽過 Mono -- 一個由Novell所主導的一個Open Source計畫,目標是建立可以讓.NET應用程式跨平台執行的環境(http://www.mono-project.com/Main_Page). 而其中的Moonlight計畫目標,則是針對微軟Silverlight技術目前無法支援Linux作業系統,建立一個可以供Silverlight應用程式執行的環境(http://www.mono-project.com/Moonlight)。而針對行動裝置應用程式的需求,Mono則是提供了MonoTouch的開發環境,讓.NET的程式開發人員可以透過C#程式語言以及相關的函式庫,建立Android、iPhone、iPad以及iPod Touch上的應用程式。而今天要介紹的就是Android平台的應用程式開發環境 – Mono for Android(http://mono-android.net/).
Mono for Android 支援Visual Studio 2010 開發工具,因此C#開發人員可以在既有熟悉的開發環境中,開發、測試與部署Android應用程式。Mono for Android也提供了許多不同的版本(http://mono-android.net/Store),針對企業用戶的需求,Mono for Android也可以將開發好的Android應用程式直接部署到員工的手機上執行。而使用試用版本開發好的Android應用程式,則是可以直接部署到Android SDK當中的模擬器執行;如果你花399美金購買專業版,就可以將使用VS 2010開發好的Android應用程式部署到最多100隻手機上執行。
要使用VS 2010開發工具撰寫Android應用程式之前,首先要先下載Mono for Android以及相關的開發環境,參考下面的步驟:(完整的安裝指南請參考:http://mono-android.net/Installation/Visual_Studio)
1. 安裝32位元版Java開發套件(JDK):
從這下載:http://www.oracle.com/technetwork/java/javase/downloads/index.html,即使你的作業系統是64位元版,也請安裝32位元版的JDK。請注意,只安裝Java執行環境(JRE)是不行的喔!!
2. 安裝Android SDK
從這下載:http://developer.android.com/sdk/index.html。下載安裝之後,以系統管理員身分執行SDK Manager,SDK Manager會自動下載並安裝開發Android應用程式的環境所需要的套件。
3. 設定模擬器環境:
接著要建立Android應用程式開發完成之後,測試應用成試所需要的模擬器環境。首先在SDK Manager當中選取 "Virtual devices",然後按下 "New"按鈕:
輸入模擬器的名稱、要模擬的目標版本等設定之後,按下"Create AVD" 按鈕:
接著會出現下面的對話方塊,按下"OK"就完成了!
建立好模擬器環境之後,可以不需要馬上啟動,但是我建議各位可以先啟動看看。在預設狀況下,當Android啟動模擬器時,預設是到使用者目錄路徑下的 ".Android" 子目錄(例如:C:\Users\john_chang\.android)下讀取設定檔;若是你的使用者目錄不在Windows預設的C槽目錄下,那就必須在C槽的使用者目錄下建立一個".Android" 的目錄捷徑,指向實際使用者目錄路徑下的 ".Android" 子目錄位置(例如:F:\Users\john_chang\.android)
4. 安裝 Mono for Android 的VS 2010 套件
從這裡下載試用版:http://mono-android.net/DownloadTrial。安裝之前請記得先關閉所有開啟的VS 2010開發工具。
安裝完成之後,重新啟動VS 2010,新增專案的時候,就會出現"Mono for Android"的新範本類別,並且預設有三個新的範本可以使用:
直接選取"Mono for Android Application",然後將專案的名稱改成"HelloWorld",按下OK,就可以建立你的第一個Android應用程式專案。在Android專案中,Main.axml是用來定義主表單上面的使用者操作介面,Strings.xml相當於.NET專案中的資源檔,而程式則是定義在Activity1.cs的程式擋中。
雖然專案中這些檔案的架構與.NET專案不同,但若是你有接觸過WPF或是Silverlight專案的話,相信對於這種 Applicetion = Markup + Code的寫法不陌生。開啟 Main.axml檔案,在HelloWorld應用程式中,預設已經加入一個 "MyButton":
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/MyButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Hello"
/>
</LinearLayout>開啟Activity1.cs程式檔,當MyButton被按下去的時候,程式中計數器的值會加一,同時按鈕上會顯示總共被按過幾次:
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
最後開啟Strings.xml檔案,根據Main.axml檔案中的設定,找到表示表單中按紐文字設定的標籤,可以直接將按鈕上的文字換成你想要的值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Hello">請按我!</string>
<string name="ApplicationName">HelloWorld</string>
</resources>詳細的程式寫法就先不介紹了,完成之後按下 F5鍵,就可以執行HelloWorld應用程式。程式編譯完成之後,會彈出一個對話方塊,讓你選擇要將程式部署到哪裡測試。因為目前使用的是測試版,所以選取 "Start emulator image",啟動Android模擬器:
接著選取之前建立的模擬器名稱,按下OK鍵,Andorid模擬器就會啟動:
啟動完成之後,在之前的 "Select Device"對話方塊中,再按下 OK鍵,VS 2010就會開始將Android應用程式部署到模擬器上。按下應用程式主表單中的按鈕,就會顯示總共按過多少次。程式的執行結果如下:
沒有留言:
張貼留言