Android開發學習入門Hello World工程文件解析
1.第一個Android項目Hello World!的創建和演示
Ø項目創建
(1)選擇菜單file->new->other 進入如下界面:
(2)選擇新建Android Project項目,點擊Next按鈕,進入如下界面
名稱自定義,應用程序名自定義,報名必須包含一個點以上,min SDK version裏面必須輸入整數,點擊Next出現如下界面:
注: 若有錯誤如: Project ... is missing required source folder: 'gen' ,則將gen->Android.Test->R.java這個文件刪掉,Eclipse會爲我們重新生成這個文件,並且不會報錯。
Ø配置運行Android項目
(1)右鍵項目->Run as -> Run Configuration 進入如下界面:
(2)點擊Browse 按鈕,選擇你要運行的項目,選擇Target切換到以下界面:
該界面選擇運行的AVD,將AVD前面的方框設置爲選擇狀態。
Ø測試項目運行
(1)右鍵項目名稱->run as ->Android Application 即可啓動運行該Android程序,如下所示:
(2)測試程序運行結果如下圖所示:
2.HelloAndroid項目工程文件詳解
可以看到整個項目裏還是有不少文件的,但最爲重要的是以下幾個:
a>src:HelloAndroid 的Activity代碼
b>gen:自動產生的代碼,不需手動編輯,也沒法手動編輯
c>Android 2.3.3:引入的SDK包
d>res:android應該需要的資源文件,其中我們先關注2個
d1> layout\main.xml –這個是HelloAndroid Activity的UI佈局,此時可以理解一個Activity有UI和後臺代碼
d2> values\strings.xml –這個是共用的鍵值定義,等同於.net中app.config/web.config中<appSettings>中自定義的鍵值項
e>AndroidManifest.xml:這個文件非常重要,定義的整個應用的關鍵配置
逐項來對其進行分析:
Øa – src下的HelloAndroid.java
package com.demo.android.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); } }
HelloAndroidActivity的代碼文件,繼承android.app.Activity,並重載(override)onCreate方法。
Øb – gen下的R.java
該文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是隻讀模式的,不能更改。R.java文件中定義了一個類——R,R類中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,即R類定義該項目所有資源的索引。
這是框架自動生成並會自動更新的java類文件,它產生對資源內容的映射屬性,這樣在代碼中可以方便的使用我們定義的每一個資源內容。
Ød1 -layout\main.xml
<?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" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
HelloAndroidActivity的UI採用了LinearLayout佈局方式,並添加了一個TextView控件。
它可以對d2中定義的鍵值項進行引用:android:text="@string/hello",意思是text的內容等於d2中hello那個值。
Ød2 -values\strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello Android, I am coming!</string> <string name="app_name">Hello Android</string> </resources>
定義了2個string類型的鍵值項:hello和app_name。來修改下hello,<string name="hello">Hello World!</string>
Øe -AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="helloworld.test" android:versionCode="1" android:versionName="1.0"> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>