android mainfest.xml 解釋

來源:互聯網
上載者:User
Android學習(一) - AndroidManifest.xml解析(翻譯)
    部落格分類: 

  • Android
XMLAndroidScheme資料結構Security

轉自:http://blog.chinaunix.net/u2/85805/showart_1421762.html

 

AndroidManifest.xml 是每個android程式中必須的檔案。它位於application的根目錄,描述了package中的全域資料,包括了package中暴露的組件 (activities, services, 等等),他們各自的實作類別,各種能被處理的資料和啟動位置。

    此 檔案一個重要的地方就是它所包含的intent-filters。這些filters描述了activity啟動的位置和時間。每當一個 activity(或者作業系統)要執行一個操作,例如:開啟網頁或聯絡簿時,它建立出一個intent的對象。它能承載一些資訊描述了你想做什麼,你想 處理什麼資料,資料的類型,和一些其他資訊。Android比較了intent對象中和每個application所暴露的intent-filter中
的資訊,來找到最合適的activity來處理調用者所指定的資料和操作。關於intent的更多資訊請訪問Intent 參考頁面。

    除 了能聲明你程式中的Activities, Content Providers, Services, 和Intent Receivers,你還能指定permissions和instrumentation(安全控制和測試)在AndroidManifest.xml文 件中。請見AndroidManifest 標記和屬性的參考。

    這是一個簡單的AndroidManifest.xml。

<? xml version="1.0" encoding="utf-8" ?>

< manifest  xmlns:android ="http://schemas.android.com/apk/res/android"

        package ="com.my_domain.app.helloactivity">

 

     < application  android:label ="@string/app_name">

 

         < activity  class =".HelloActivity">

             < intent-filter >

                 < action  android:value ="android.intent.action.MAIN"/>

                 < category  android:value ="android.intent.category.LAUNCHER"/>

             </ intent-filter >

         </ activity >

 

     </ application >

 

</ manifest >

值得一提一些常用之處:

  • 幾 乎所有的AndroidManifest.xml(以及許多其他Android的xml的檔案)在第一個元素中包含了命名空間的聲明 xmlns:android="http://schemas.android.com/apk/res/android"。這樣使得Android中各 種標準屬效能在檔案中使用,提供了大部分元素中的資料。
  • 大部分manifests包含了單個<application>的元素,它定義了所有的application層級組件和屬性,並能在package中使用。
  • 任何被使用者看作頂層應用程式,並能被程式啟動器所用的package,需要包含至少一個Activity組件來支援 MAIN 操作和 LAUNCHER 種類,如上述代碼中所見。

這裡是AndroidManifest.xml檔案結構的一個詳細的列表,描述了所有能被使用的標記。

manifest

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

    uses-permission

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

    permission

        聲明了安全許可來限制哪些程式能你package中的組件和功能。見Security Model 來獲得許可的更多的資訊。一個manifest能包含零個或更多此元素。

    instrumentation

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

    application

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

        activity

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

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

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

 

            intent-filter

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

                action

                    組件支援的Intent action 。

                category

                    組件支援的Intent Category .

                type

                    組件支援的Intent data
MIME type .

                schema

                    組件支援的Intent data
URI scheme .

                authority

                    組件支援的Intent data
URI authority .

                path

                    組件支援的Intent data
URI path .

        receiver

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

        service

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

        provider

            ContentProvider 是用來管理持久化資料並發布給其他應用程式使用的組件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.