AndroidManifest.xml介紹

先說一下,我的開發環境為Eclipse 3.7.1 + Android SDK + Android 1.5(API level3)
Android最大的一個特點,就是用xml文件來配置,這個演習瞭Java的特點。所以,理解Android程序,同時需要理解xml文件。
我們寫程序,需要關註AndroidManifest.xml,和res/layout下的xml文件以及res/value下的xml文件。
首先看AndroidManifest.xml,我的程序的AndroidManifest.xml如下:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest package="Workshop.english.englishwords"
 3     android:versionCode="1"
 4     android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android">
 5
 6     <uses-sdk android:minSdkVersion="3" />
 7
 8     <application
 9 android:icon="@drawable/ic_launcher"
10         android:label="@string/app_name" >       
11         <activity
12 android:name=".EnglishWordsActivity"
13             android:label="@string/app_name">
14             <intent-filter>
15                 <action android:name="android.intent.action.MAIN" />
16
17                 <category android:name="android.intent.category.LAUNCHER" />
18             </intent-filter>
19            
20         </activity>
21         <activity
22 android:name=".UnitListAdapter">
23            
24         </activity>
25        
26         <activity
27 android:name=".WordActivity">       
28         </activity>
29        
30     </application>
31
32 </manifest>
首先來說說這個文件有啥用。Manifest, 我不知道翻譯成中文咋說,隻能意會。寫Java程序的,對這個詞語並不陌生。可以看作一個類似於清單說明一樣的東西。大傢都有過網購的經驗,對於產品的包裝,會有一個清單,說明瞭這個包裹裡頭有些啥。這裡Manifest其實大致也是這個意思。
這個xml文件,其實就是描述瞭我們的應用程序有些啥,當然還有其他的比如運行環境的說明。下面細細的介紹。
line 1,說明瞭版本號,字符集,世界上都有哪些字符集,可以網上去查。
line 2-4, 說明瞭package,C++中習慣叫命名空間,其實差不多一個意思。
line 6, 說明瞭SDK的版本是3,因為我選擇是Android 1.5,所以這裡就是3。關於這個對應關系,從Eclipse更新Android的SDK的時候,會列出來。比較新的是Android 4.0.3,對應的level是15.這個是在創建應用的時候選擇的。
line 9,  說明瞭應用在Android桌面中顯示的圖標,顯示的圖標在res/drawable目錄下的ic_lancher.png,這個可以自己改,但是名字必須是drawable目錄下的。
line 10, 說明瞭應用程序顯示的名字,lable標簽,對應的app_name在res/values目錄下的strings.xml中可以找到。
line 11-28, 列舉瞭三個Activity, 三個Activity對應瞭三個類名,這裡必須是這樣的格式,我曾經試圖將前綴“.”去掉,結果報錯。感覺這個“.”有點像目錄中當前目錄的標識,這裡標識的是當前命名空間。
第一個Activity和另兩個不同,最顯著的是intent-filter段,line15和17表明這是應用啟動的第一個Activity,是不是有點C語言中Main函數的味道?你也可以理解為應用程序的入口。每一個應用至少有一個Activity被定義為MAIN. 註意到另外兩個Activity沒有intent-filter,其實是可以有的,隻是這裡我的程序中用不著。關於intent-filter,網上也有比較詳細的描述,暫時這裡也不詳細介紹瞭。我也會在後面總結一下,因為這可以專門的當作一個topic,包含瞭很豐富的內容。
需要指出的是,AndroidManifest.xml基本上是自動生成的,當然瞭,我們也可以去編輯它。但是編輯的時候必須小心,編輯每一個元素都需要弄清楚他的意義,否則,很容易導致出錯。這個我覺得是Android的一個對於新手不太好的地方。真是因為這個原因,我這個文件詳細的說明瞭一下。偷偷說一下,我吃過虧。

 摘自 愛心覺羅氏

發佈留言