AndroidManifest.xml介紹

每一個Android項目都包含一個清單(Manifest)文件--AndroidManifest.xml,它存儲在項目層次中的最底層。清單可以定義應用程序及其組件的結構和元數據。

  它包含了組成應用程序的每一個組件(活動、服務、內容提供器和廣播接收器)的節點,並使用Intent過濾器和權限來確定這些組件之間以及這些組件和其他應用程序是如何交互的。

  它還提供了各種屬性來詳細地說明應用程序的元數據(如它的圖標或者主題)以及額外的可用來進行安全設置和單元測試頂級節點,如下所述。

  清單由一個根manifest標籤構成,該標籤帶有一個設置項目包的package屬性。它通常包含一個xmlns:android屬性來提供文件內使用的某些系統屬性。下面的XML代碼段展示了一個典型的聲明節點:

  <manifest xmlns:android=http://schemas.android.com/apk/res/android package="com.my_domain.my_app"> [ ... manifest nodes ... ] </manifest>

  manifest標籤包含了一些節點(node),它們定義了應用程序組件、安全設置和組成應用程序的測試類。下面列出了一些常用的manifest節點標籤,並用一些XML代碼段說明了它們是如何使用的。

  application  一個清單隻能包含一個application節點。它使用各種屬性來指定應用程序的各種元數據(包括標題、圖標和主題)。它還可以作爲一個包含了活動、服務、內容提供器和廣播接收器標籤的容器,用來指定應用程序組件。

  activity  應用程序顯示的每一個Activity都要求有一個activity標籤,並使用android:name屬性來指定類的名稱。這必須包含核心的啓動Activity和其他所有可以顯示的屏幕或者對話框。啓動任何一個沒有在清單中定義的Activity時都會拋出一個運行時異常。每一個Activity節點都允許使用intent-filter子標籤來指定哪個Intent啓動該活動。

  service  和activity標籤一樣,應用程序中使用的每一個Service類都要創建一個新的service標籤。(Service標籤也支持使用intent-filter子標籤來允許後面的運行時綁定。

  provider  provider標籤用來說明應用程序中的每一個內容提供器。內容提供器是用來管理數據庫訪問以及程序內和程序間共享的,第6章將會對其進行詳細講述。

  receiver  通過添加receiver標籤,可以註冊一個廣播接收器(Broadcast Receiver),而不用事先啓動應用程序。廣播接收器就像全局事件監聽器一樣,一旦註冊了之後,無論何時,只要與它相匹配的intent被應用程序廣播出來,它就會立即執行。通過在聲明中註冊一個廣播接收器,可以使這個進程實現完全自動化。如果一個匹配的Intent被廣播了,則應用程序就會自動啓動,並且你註冊的廣播接收器也會開始運行。

  uses-permission  作爲安全模型的一部分,uses-permission標籤聲明瞭那些由你定義的權限,而這些權限是應用程序正常執行所必需的。在安裝程序的時候,你設定的所有權限將會告訴給用戶,由他們來決定同意與否。對很多本地Android服務來說,權限都是必需的,特別是那些需要付費或者有安全問題的服務(例如,撥號、接收SMS或者使用基於位置的服務)。如下所示,第三方應用程序,包括你自己的應用程序,也可以在提供對共享的程序組件進行訪問之前指定權限。

  permission  在可以限制訪問某個應用程序組件之前,需要在清單中定義一個permission。可以使用permission標籤來創建這些權限定義。然後,應用程序組件就可以通過添加android:permission屬性來要求這些權限。再後,其他的應用程序就需要在它們的清單中包含uses-permission標籤(並且通過授權),之後才能使用這些受保護的組件。
  在permission標籤內,可以詳細指定允許的訪問權限的級別(normal、dangerous、signature,signatureOrSystem)、一個 label屬性和一個外部資源,這個外部資源應該包含了對授予這種權限的風險的描述。

  instrumentation  instrumentation類提供一個框架,用來在應用程序運行時在活動或者服務上運行測試。它們提供了一些方法來監控應用程序及其與系統資源的交互。對於爲自己的應用程序所創建的每一個測試類,都需要創建一個新的節點。

發佈了1 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章