摘要:接上文,配置好開發環境後本文將介紹如何開發Android手機的第一個Hello World程式,文章將介紹兩種方式,一種通過代碼的方式來開發,一種通過配置描述Layout的xml檔案來開發,後者其實就是Visual Studio裡的控制項設計介面,但是沒有Visual Studio使用方便,這也是Eclipse還有Android犧牲了易用性,但提供了很好的跨平台性中和的結果。
第一步,通過Eclipse建立項目,選擇Android項目類型並點擊下一步按鈕:
第二步,輸入項目名、包名等資訊,選擇“Build Target”為Android2.3.3,這裡可以根據實際需要來選擇編譯項目的目標平台,筆者所經曆的一個企業級的應用中就是用的是Anroid1.6,目的是為了對更多的手機相容,點擊完成由Eclipse來協助建立項目相關檔案:
第三步,展示的是Eclipse協助自動建立的各專案檔,關於裡面的內容稍後還會有詳細說明,這裡主要說明HelloworldActivity類檔案,Activity(活動)是Android應用程式中的一種主要類型,讀者可以參考整理自IBM相關文章的部落格(http://www.cnblogs.com/johnsonwong/archive/2011/08/08/2128012.html),
第四步,一個應用程式可以有多個Activity,使用者一次只能和一個Activity進行互動,使用者訪問Activity的時候,Android作業系統會自動調用其中的onCreate()事件,在此方法中添加如下代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
要使用TextView類,需要匯入android.widget.TextView,一個快捷的引入此類的方法是使用Ctrl+Shift+O按鍵組合;
第五步,接下來就可以運行應用程式了,運行應用程式之前需要配置一個模擬器,通過Eclipse Window菜單下的Android SDK and AVD Manager子功能表:
在彈出的視窗中選擇“New”,建立新的模擬器,在進一步彈出的視窗中設定模擬器的名字,並選擇測試的目標平台,這裡我們選擇“Andorid 2.3.3 – API Level 10”,保持其他的預設不變:
第六步,選中項目,選擇Run As,然後選擇1 Android Application,根據具體的模擬器的不同,啟動可能需要等待數分鐘:
執行的結果如下:
通過代碼來開發UI繁瑣而難以控制,Eclipse也支援可視化的UI設計器,UI畫面元素通過XML檔案來進行描述,預設的描述檔案是位於/res/layout檔案夾下面的main.xml:
main.xml檔案支援兩種編輯模式,可視化的設計器或者直接通過XML進行編輯,下面是視覺化設計工具的樣子,對於習慣了使用Visual Studio的朋友來說這種設計其略顯得笨重和難看,不過正如前文提到的,這種方便性上的犧牲帶來的是對更多平台的相容性:
第一步,接下來通過XML編輯器的方式直接編輯main.xml檔案,將main.xml檔案內的內容替換成如下內容:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>
第二步,開啟/res/values下的string.xml檔案,該檔案也提供了兩種編輯模式,設計模式或XML直接編輯模式,通過XML編輯模式修改其下的hello鍵的值如下,這個值被前面的布局檔案main.xml檔案使用:
?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, this is my first Android Application</string>
<string name="app_name">Helloworld</string>
</resources>
第三步,開啟HelloworldActivity.java類檔案,修改內容如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
這裡通過setContentView方法將我們在main.xml檔案裡的設定應用到當前Activity裡面去,實現這一點,Eclipse使用了動態產生的R.java類,該類儲存有到布局檔案等的引用:
package com.johnson;
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=0x7f040001;
public static final int hello=0x7f040000;
}
}
可以看到其中對main的引用位於靜態類layout之中,按住Ctrl+F11運行程式: