地址:https://developer.android.com/guide/topics/manifest/manifest-intro.html#filestruct html
下面顯示manifest的結構和包含的每個元素,每個元素都有本身的屬性
android
<?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 />
<path-permission />
</provider>
<uses-library />
</application>
</manifest>
<users-permission>app
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
爲了操做正確必需要請求這個受權權限,當應用安裝完後權限就被授予了,不是在運行的時候。ide
android:maxSdkVersion,可受權的最高版本,這個權限頗有用,好比你從某一個版本開始再也不須要這個權限ui
<permission>spa
<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
申明一個權限,用於限制訪問指定的組件或功能或其餘應用。
code
android:permissionGroup,這個屬性值是組的名稱,這個名稱必須在<permission-group>中申明或是其餘的應用中聲明,若是沒有設置,就不會歸類到一個組下。orm
android:protectionLevel,xml
normal,默認值,低風險權限,系統會自動受權這個類型的權限給請求的已安裝應用,而不須要顯示要求用戶受權htm
dangerous,高風險權限,由於這類型的權限有潛在風險,系統不會自動授予這類權限,必須顯示要求用戶確認
signature,系統只會授予有相同簽名的應用,若是簽名匹配,系統會自動授予權限
signatureOrSystem,只有有系統權限或是有一樣簽名的應用纔會授予權限,
<permisson-tree>
<permission-tree android:icon="drawable resource"
android:label="string resource" ]
android:name="string" />
聲明瞭一個權限樹的名稱,應用能獲取樹下全部的名稱,也能動態添加新的權限。這個元素本身不申明權限,只是一個放置權限的地方
若是基礎名字是com.example.project.taxes,添加的權限以下
com.example.project.taxes.CALCULATE
com.example.project.taxes.deductions.MAKE_SOME_UP
com.example.project.taxes.deductions.EXAGGERATE
<permisson-group>
<permission-group android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string" />
相關權限邏輯上的羣組,這個元素不申明權限,只是權限的一個類型
<meta-data>
<meta-data android:name="string"
android:resource="resource specification"
android:value="string" />
能夠用在<activity>\<activity-alias>\<application>\<provider>\<service>
定義了一個name-value的鍵值對,一個組件下面能夠包含任意多個<meta-data>子元素,他們會贊成收集到Bundle對象中,就像PackageItemInfo.metaData對象