欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 中Manifest.xml文件詳解

 更新時(shí)間:2017年03月22日 11:43:01   作者:liujc  
這篇文章主要介紹了Android 中Manifest.xml文件詳解的相關(guān)資料,需要的朋友可以參考下

Android 中Manifest.xml文件詳解

每一個(gè)Android項(xiàng)目都包含一個(gè)清單(Manifest)文件--AndroidManifest.xml,它存儲(chǔ)在項(xiàng)目層次中的最底層。清單可以定義應(yīng)用程序及其組件的結(jié)構(gòu)和元數(shù)據(jù)。

它包含了組成應(yīng)用程序的每一個(gè)組件(活動(dòng)、服務(wù)、內(nèi)容提供器和廣播接收器)的節(jié)點(diǎn),并使用Intent過濾器和權(quán)限來確定這些組件之間以及這些組件和其他應(yīng)用程序是如何交互的。

它還提供了各種屬性來詳細(xì)地說明應(yīng)用程序的元數(shù)據(jù)(如它的圖標(biāo)或者主題)以及額外的可用來進(jìn)行安全設(shè)置和單元測(cè)試頂級(jí)節(jié)點(diǎn),如下所述。

清單由一個(gè)根manifest標(biāo)簽構(gòu)成,該標(biāo)簽帶有一個(gè)設(shè)置項(xiàng)目包的package屬性。它通常包含一個(gè)xmlns:android屬性來提供文件內(nèi)使用的某些系統(tǒng)屬性。下面的XML代碼段展示了一個(gè)典型的聲明節(jié)點(diǎn):

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

manifest標(biāo)簽包含了一些節(jié)點(diǎn)(node),它們定義了應(yīng)用程序組件、安全設(shè)置和組成應(yīng)用程序的測(cè)試類。下面列出了一些常用的manifest節(jié)點(diǎn)標(biāo)簽,并用一些XML代碼段說明了它們是如何使用的。

1.application

一個(gè)清單只能包含一個(gè)application節(jié)點(diǎn)。它使用各種屬性來指定應(yīng)用程序的各種元數(shù)據(jù)(包括標(biāo)題、圖標(biāo)和主題)。它還可以作為一個(gè)包含了活動(dòng)、服務(wù)、內(nèi)容提供器和廣播接收器標(biāo)簽的容器,用來指定應(yīng)用程序組件。

<application 
  android:icon="@drawable/icon"
  android:theme="@style/my_theme">
  [ ... application nodes ... ]
 </application>

2.activity

應(yīng)用程序顯示的每一個(gè)Activity都要求有一個(gè)activity標(biāo)簽,并使用android:name屬性來指定類的名稱。這必須包含核心的啟動(dòng)Activity和其他所有可以顯示的屏幕或者對(duì)話框。啟動(dòng)任何一個(gè)沒有在清單中定義的Activity時(shí)都會(huì)拋出一個(gè)運(yùn)行時(shí)異常。每一個(gè)Activity節(jié)點(diǎn)都允許使用intent-filter子標(biāo)簽來指定哪個(gè)Intent啟動(dòng)該活動(dòng)。

<activity 
  android:name=".MyActivity"
  android:label="@string/app_name">
  <intent-filter>
    <action
      android:name="android.intent.action.MAIN" />
    <category
      android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

3.provider

provider標(biāo)簽用來說明應(yīng)用程序中的每一個(gè)內(nèi)容提供器。內(nèi)容提供器是用來管理數(shù)據(jù)庫訪問以及程序內(nèi)和程序間共享的。

<provider
   android:permission="com.liujc.MY_PERMISSION"
   android:name=".MyContentProvider"
   android:enabled="true"
   android:authorities="com.liujc.myapp.MyContentProvider">
</provider>

4.receiver

通過添加receiver標(biāo)簽,可以注冊(cè)一個(gè)廣播接收器(Broadcast Receiver),而不用事先啟動(dòng)應(yīng)用程序。廣播接收器就像全局事件監(jiān)聽器一樣,一旦注冊(cè)了之后,無論何時(shí),只要與它相匹配的intent被應(yīng)用程序廣播出來,它就會(huì)立即執(zhí)行。通過在聲明中注冊(cè)一個(gè)廣播接收器,可以使這個(gè)進(jìn)程實(shí)現(xiàn)完全自動(dòng)化。如果一個(gè)匹配的Intent被廣播了,則應(yīng)用程序就會(huì)自動(dòng)啟動(dòng),并且你注冊(cè)的廣播接收器也會(huì)開始運(yùn)行。

<receiver
   android:enabled="true" 
   android:label="My Broadcast Receiver"
   android:name=".MyBroadcastReceiver">
</receiver>

5.service

Service作為Android四大組件之一,在每一個(gè)應(yīng)用程序中都扮演著非常重要的角色。它主要用于在后臺(tái)處理一些耗時(shí)的邏輯,或者去執(zhí)行某些需要長(zhǎng)期運(yùn)行的任務(wù)。

<service 
  androidandroid:enabled="true"
  android:name=".MyService">
</service>

6. uses-permission

作為安全模型的一部分,uses-permission標(biāo)簽聲明了那些由你定義的權(quán)限,而這些權(quán)限是應(yīng)用程序正常執(zhí)行所必需的。在安裝程序的時(shí)候,你設(shè)定的所有權(quán)限將會(huì)告訴給用戶,由他們來決定同意與否。對(duì)很多本地Android服務(wù)來說,權(quán)限都是必需的,特別是那些需要付費(fèi)或者有安全問題的服務(wù)(例如,撥號(hào)、接收SMS或者使用基于位置的服務(wù))。如下所示,第三方應(yīng)用程序,包括你自己的應(yīng)用程序,也可以在提供對(duì)共享的程序組件進(jìn)行訪問之前指定權(quán)限。

<uses-permission android:name="android.permission.ACCESS_LOCATION"> </uses-permission>

7.permission

在可以限制訪問某個(gè)應(yīng)用程序組件之前,需要在清單中定義一個(gè)permission??梢允褂胮ermission標(biāo)簽來創(chuàng)建這些權(quán)限定義。然后,應(yīng)用程序組件就可以通過添加android:permission屬性來要求這些權(quán)限。再后,其他的應(yīng)用程序就需要在它們的清單中包含uses-permission標(biāo)簽(并且通過授權(quán)),之后才能使用這些受保護(hù)的組件。

在uses-permission標(biāo)簽內(nèi),可以詳細(xì)指定允許的訪問權(quán)限的級(jí)別(normal、dangerous、signature、signatureOrSystem)、一個(gè) label屬性和一個(gè)外部資源,這個(gè)外部資源應(yīng)該包含了對(duì)授予這種權(quán)限的風(fēng)險(xiǎn)的描述。

<permission
   android:name="com.liujc.DETONATE_DEVICE"
   android:protectionLevel="dangerous"
   android:label="Self Destruct"
   android:description="@string/detonate_description">
</permission>

8.instrumentation

instrumentation類提供一個(gè)框架,用來在應(yīng)用程序運(yùn)行時(shí)在活動(dòng)或者服務(wù)上運(yùn)行測(cè)試。它們提供了一些方法來監(jiān)控應(yīng)用程序及其與系統(tǒng)資源的交互。對(duì)于為自己的應(yīng)用程序所創(chuàng)建的每一個(gè)測(cè)試類,都需要?jiǎng)?chuàng)建一個(gè)新的節(jié)點(diǎn)。

<instrumentation
  android:label="My Test"
  android:name=".MyTestClass"
  android:targetPackage="com.liujc.test">
</instrumentation>

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論