1.環境搭建
網上關於環境搭建已經有不少文章,這裡可以參考一下這個網址。http://www.cnblogs.com/huaping-audio/archive/2009/05/26/1490455.html
另外買Andriod手機的時候官方也會有相應的SDK和相關文檔和模擬器可以下載,我用的是國產魅族M9,按照官方給出的文檔進行了配置,如果建立項目的時候有問題,在Windows→Android SDK and AVD Manager中 Update All一下就可以了。
2.首先建立一個HelloAndriod項目,對Andriod開發有一個大概的認識
其中有幾個必填項:
ProjectName:包含這個項目的資料檔案夾名稱
ApplicationName:顯示在應用程式上的標題
PackageName:這個是命名空間,而且也是套件名下Activity產生的地方。命名有一定規則 com.andriod.[ActivityName]
CreateActivity:項目的主要類別,可以在這裡啟動程式並控製程序流程,或控制螢幕介面等。
MinSDKVersion:選擇程式要啟動並執行最低版本。
好了,這裡我們依次命名:
- Project name: HelloAndroid
- Application name: Hello, Android
- Package name: com.example.helloandroid (or your own private namespace)
- Create Activity: HelloAndroid
點Finish後建立相應的項目:
首先展開HelloAndroid > src > com.example.helloandroid,開啟HelloAndroid.java ,看到以下代碼:
package com.example.helloandroid;import android.app.Activity;import android.os.Bundle;public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }}
這裡看到我們的類繼承於Activity,Activity在程式中相當於actions。@Override標示重寫這個onCreate方法。Bundle參數儲存了應用程式上次關閉時的狀態,並且可以通過一個Activity傳給下一個Activity。接下來改寫一下這個方法:
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity{
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); }}
大致可以看出,我們建立了一個TextView文本,然後設定它的Text為“Hello,Andriod”,最後讓這個文本顯示出來。
View就是介面中顯示的各種元素,TextView就就繼承了它的文本元素。
this代表了我們這個Context引用。
點運行可以看到模擬器上的樣子:
但其實上,既然採用MVC的開發模式,肯定會有介面與邏輯的分離,實際上我們開發過程中,各種View是分離出來的,Andriod的介面是用XML方式來表示的,有些類似於HTML。再回過來看一下我們的程式。
開啟res/layout/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"/>
xmlns:android |
聲明引用了Andriod的命名空間,每個介面都要有這個聲明。 |
android:id |
指定這個元素的唯一ID。它的命名有些特別,在代碼中我們可以通過類似R.id.height控制這個元素中的屬性。 |
android:layout_width |
在這裡是充滿全屏的寬 |
android:layout_height |
充滿全屏的高。 |
android:text |
這裡我們指定了文本資源,資源檔在res/values/strings.xml 中。 |
把HelloAndroid 這個class改回原樣。點運行。
3.更深層次的東西:
Andriod並不直接使用XML文檔,而是XML描述轉換成資源,程式要使用某個介面或各種資源的時候,會通過索引來查詢。
我們看一下gen裡產生的R.java檔案:
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.example.helloandroid;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int textview=0x7f050000;
}
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;
}
}
開發工具會根據XML的描述,產生對應的資源,自動指定一個位置。
在XML中我們就可以使用@[類型]/[識別符號] 這樣的文法來識別符號。
一些API和元素說明我們可以通過google的離線文檔進行查詢。