每個應用程序在它的根目錄中都必須要有一個AndroidManifest.xml文件。這個清單把應用程序的基本信息提交給Android系統,在應用程序的代碼能夠運行之前,這個信息系統必須建立。以下是清單文件要做的一些事情:
1. 用Java包給應用程序命名。這個包名是應用程序的唯一標識;
2. 描述應用程序的組件—組成應用程序的Activity、Service、Broadcast Receiver以及Content Provider。它要用每個組件的實現類來命名,並向外發佈對應組件功能(例如,組件所能處理的Intent消息)。這些聲明會讓Android系統瞭解應用程序中組件,以及這些組件被加載的條件。
3. 判斷哪些進程是主應用程序組件。
4. 聲明應用程序所必須的權限,以便能夠訪問被保護的API,以及能夠跟其他應用程序進行交互。
5. 為瞭跟應用程序組件進行交互,還聲明瞭其他要求有的權限。
6. 列出瞭能夠提供應用程序運行時的分析和其他信息的Instrumentation類。隻有在開發和測試應用程序時才在清單文件中聲明這些類,在應用程序被發佈之前,要刪除這些類。
7. 聲明應用程序所要求的最小的Android API級別。
8. 列出應用程序必須鏈接的外部庫。
Manifest文件的結構
下圖中包含瞭清單文件的一般性結構,並且包含所有能包含的元素。每個元素所帶有的全部元素會在它們各自的文檔中介紹。
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission/>
<permission/>
<permission-tree/>
<permission-group/>
<instrumentation/>
<uses-sdk/>
<uses-configuration/>
<uses-feature/>
<supports-screens/>
<compatible-screens/>
<supports-gl-texture/>
<application>
<activity>
<intent-filter>
<action/>
<category/>
<data/>
</intent-filter>
<meta-data/>
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data/>
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data/>
</receiver>
<provider>
<grant-uri-permission/>
<meta-data/>
</provider>
<uses-library/>
</application>
</manifest>
以下按字母順序列出瞭清單文件中的所有元素,這些元素時Android系統法定元素,不能添加自定義的元素或屬性。
<action>
<activity>
<activity-alias>
<application>
<category>
<data>
<grant-uri-permission>
<instrumentation>
<intent-filter>
<manifest>
<meta-data>
<permission>
<permission-group>
<permission-tree>
<provider>
<receiver>
<service>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-library>
<uses-permission>
<uses-sdk>
摘自 FireOfStar的專欄