AndroidManifest.xml是Android應用程序中重要的文件之一,位于我們開發(fā)的應用程序的根目錄下,描述了package中的全局數(shù)據(jù),包括package中暴露的組件 (activities, services, 等等),以及他們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位置等重要信息。
代碼:AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
package=" com.examples.android.helloactivity"
android:versionCode="1"
android:versionName="1.0" >
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".HelloActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
上述代碼中,intent-filters描述了Activity啟動的位置和時間。每當一個Activity(或操作系統(tǒng))要執(zhí)行一個操作時,它將創(chuàng)建出一個Intent的對象,這個Intent對象能承載的信息可描述你想做什么,你想處理什么數(shù)據(jù),數(shù)據(jù)的類型,以及一些其他信息。而Android則會和每個Application所暴露的intent-filter的數(shù)據(jù)進行比較,找到合適Activity來處理調用者所指定的數(shù)據(jù)和操作。下面我們來仔細分析AndroidManifest.xml文件,如表1-1所示。
表1-1 AndroidManifest.xml分析
創(chuàng)建虛擬設備完成后,在建立好的項目上單擊鼠標右鍵,在彈出的快捷菜單中選擇"Run As" →"Android Application"命令,如圖1-3所示。
manifest
|
根節(jié)點,描述了package中所有的內容
|
xmlns:android
|
包含命名空間的聲明。xmlns:android=//schemas.android.com/apk/res/android,使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)
|
package
|
聲明應用程序包
|
application
|
包含Package中Application級別組件聲明的根節(jié)點。此元素也可包含Application的一些全局和默認的屬性,如標簽、icon、主題、必要的權限,等等。一個manifest能包含零個或一個此元素(不能大于一個)
|
ndroid:icon
|
應用程序圖標
|
android:label
|
應用程序名字
|
activity
|
用來與用戶交互的主要工具。Activity是用戶打開一個應用程序的初始頁面,大部分被使用到的其他頁面也由不同的Activity所實現(xiàn),并聲明在另外的Activity標記中。注意,每一個Activity必須有一個標記對應,無論它給外部使用或是只用于自己的Package中。如果一個Activity沒有對應的標記,你將不能運行它。另外,為了支持運行時查找Activity,可包含一個或多個元素來描述Activity所支持的操作
|
android:name
|
應用程序默認啟動的Activity
|
intent-filter
|
聲明了指定的一組組件支持的Intent值,從而形成了IntentFilter。除了能在此元素下指定不同類型的值,屬性也能放在這里來描述一個操作所需的唯一的標簽、icon和其他信息
|
action
|
組件支持的Intent action
|
category
|
組件支持的Intent Category。這里指定了應用程序默認啟動的Activity
|
uses-sdk
|
該應用程序所使用的SDK版本相關
|
補充說明:
1,幾乎所有的AndroidManifest.xml(以及許多其他Android的xml的文件)在第一個元素中包含了命名空間的聲明
xmlns:android="http://schemas.android.com/apk/res/android"。這樣使得Android中各 種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)。
2,大部分manifests包含了單個的元素,它定義了所有的application級別組件和屬性,并能在package中使用。
3,任何被用戶看作頂層應用程序,并能被程序啟動器所用的package,需要包含至少一個Activity組件來支持MAIN操作和LAUNCHER種 類。動作android.intent.action.MAIN指示這是應用程序的入口點。類別 android.intent.category.LAUNCHER將此Activity放在啟動器窗口中。
總之,AndroidManifest.xml文件雖然看起來復雜,但是,只要我們理清中里面各元素的作用,那么一切就變得簡單了。