AndroidManifest.xml文件詳解

    AndroidManifest.xml是每個android程序中必須的文件。它位於application的根目錄,描述了package中的全局數據,包括了package中暴露的組件(activities, services, 等等),它們各自的實現類,各種能被處理的數據和啓動位置。

    此文件一個重要的地方就是它所包含的intent-filters。這些filters描述了activity啓動的位置和時間。每當一個activity(或者操作系統)要執行一個操作,例如:打開網頁或聯繫簿時,它創建出一個intent的對象。它能承載一些信息描述了你想做什麼,你想處理什麼數據,數據的類型,和一些其他信息。Android比較了intent對象中和每個application所暴露的intent-filter中的信息,來找到最合適的activity來處理調用者所指定的數據和操作。

    除了能聲明你程序中的Activities, Content Providers, Services, Intent Receivers,你還能指定permissionsinstrumentation(安全控制和測試)在AndroidManifest.xml文件中。

    除了能聲明你程序中的Activities, Content Providers, Services, Intent Receivers,你還能指定permissionsinstrumentation(安全控制和測試)在AndroidManifest.xml文件中

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sockettest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.sockettest.MainActivity"
            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>

幾乎所有的AndroidManifest.xml(以及許多其他Androidxml的文件)在第一個元素中包含了命名空間的聲明xmlns:android="http://schemas.android.com/apk/res/android"。這樣使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數據。

大部分manifests包含了單個<application>的元素,它定義了所有的application級別組件和屬性,並能在package中使用

任何被用戶看作頂層應用程序,並能被程序啓動器所用的package,需要包含至少一個Activity組件來支持MAIN操作和LAUNCHER種類,如上述代碼中所見:

manifest

    根節點,描述了package中所有的內容。在它之下能放置:

    uses-permission

        請求你的package正常運作所需賦予的安全許可。見SecurityModel來獲得許可的更多的信息。一個manifest能包含零個或更多此元素。

    permission

        聲明瞭安全許可來限制哪些程序能啓動你package中的組件和功能。見SecurityModel來獲得許可的更多的信息。一個manifest能包含零個或更多此元素。

    instrumentation

        聲明瞭用來測試此package或其他package指令組件的代碼。見Instrumentation來獲得許可的更多的信息。一個manifest能包含零個或更多此元素。

    application

        包含packageapplication級別組件聲明的根節點。此元素也可包含application中全局和默認的屬性,如標籤,icon,主題,必要的權限,等等。一個manifest能包含零個或一個此元素(不允許多餘一個)。在它之下能放置零個或更多下列組件聲明:

        activity

            Activity是用來與用戶交互的主要工具。當用戶打開一個應用程序的初始頁面時一個activity,大部分被使用到的其他頁面也由不同的activity所實現並聲明在另外的activity標記中。

            注意:每一個activity必須要一個<activity>標記對應,無論它給外部使用或是隻用於自己的package中。如果一個activity沒有對應的標記,你將不能運行它。

            另外,爲了支持運行時查找你的activity,你能包含一個或多個<intent-filter>元素來描述你activity所支持的操作:

            intent-filter

                聲明瞭指定的一組組件支持的Intent值,從而形成了IntentFilter。除了能在此元素下指定不同類型的值,屬性也能放在這裏來描述一個操作所需的唯一的標籤,icon和其它信息。

                action

                    組件支持的Intentaction。

                category

                    組件支持的IntentCategory.

                type

                    組件支持的Intentdata MIME type.

                schema

                    組件支持的Intentdata URI scheme.

                authority

                    組件支持的Intentdata URI authority.

                path

                    組件支持的Intentdata URI path.

        receiver

            IntentReceiver能使的application獲得數據的改變或者發生的操作,即使它當前不在運行。利用activity標記,你能選擇地包含一個或多個receiver所支持的<intent-filter>元素;

        service

            Service是能在後臺運行任意時間的組件。利用activity標記,你能選擇地包含一個或多個receiver所支持的<intent-filter>元素;

        provider

            ContentProvider是用來管理持久化數據併發布給其他應用程序使用的組件。


出處:http://www.cnblogs.com/salam/archive/2010/09/22/1833080.html
發佈了34 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章