AndroidManifest.xml文件詳解(一)

每個應用程序在它的根目錄中都必須要有一個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的專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *