應用的聲明。包含應用組件的聲明和對組件有相關影響的屬性聲明。php
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:debuggable=["true" | "false"] android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:hasCode=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] >
. . .
</application>複製代碼
name:Application子類(自定義Application)的全名,此Application子類會在全部組件以前進行初始化。此項爲可選項,通常可不設置,此時會使用默認的Application類。android
taskAffinity:指定APP中全部的Activity所屬的任務棧的名字,除了那些設置了不一樣taskAffinity值的Activity。若是不設置此項,默認爲包名。而且默認狀況下,全部Activity都共享同一個taskAffinity。正則表達式
allowTaskReparenting:若是此屬性設置了true,則會出現以下的狀況。容許某個ActivityX從打開它的那個任務棧移動到它原本所屬的taskAffinity任務棧的最上面。而且對全部未設置allowTaskReparenting值的Activity都生效。具體的詳見下面的元素項。安全
allowBackup:是否容許使用adb backup和adb restore進行數據的備份和恢復。true:能夠;false,不能夠。默認值爲true。此項設置爲true可能會有安全風險,可參考這裏網絡
allowClearUserData:是否容許應用重置用戶數據。默認值爲true。非系統應用是不能包含此項到manifest文件中的,只有系統應用才能夠。app
backupAgent:用來設置備份代理。須要指定BackupAgent子類的全名,如com.example.project.MyBackupAgent。沒有默認值,須要的話必須指定。BackupAgent的說明和使用能夠參考這裏dom
backupInForeground:在allowBackup設置爲true的前提下,自動備份(Auto Backup)操做是否在APP運行在前臺的時候進行數據備份。true爲能夠,false爲不能夠。默認爲false。Android6.0以上才添加的,把數據備份到Google Drive上,有25M的空間。ide
banner:可在和中設定。用在AndroidTV主頁上的Activity(可以處理CATEGORY_LEANBACK_LAUNCHER intent的Activity),用來輪播圖佈局
debuggable:是否容許APP進入調試模式。通常不設置此值,由編譯器自動打包對其進行賦值。true:可調試。false:不可調試。此屬性可不用特地指定,發佈debug包的時候會自動設置爲true,release包的時候會設置爲false。測試
label:用戶可讀的此APP的標籤
description:關於此APP的詳細描述。
directBootAware:Android7.0引入的新特性,是否能夠能夠在Direct Boot模式下運行。true:能夠,false:不能夠。默認爲false若是此項設置了,而其餘組件沒設置,其餘組件此項的值和application的同樣
enabled:是否讓系統對application中的組件進行實例化。true爲能夠,false爲不能夠。當false時,須要本身手動最組件進行實例化。默認此項爲true。當application設置此項時,全部組件的此項的值必須和application保持一致。
extractNativeLibs:Android6.0引入的。安裝APK包時是否對其中的.so文件提取出來。設置爲false時.so文件必須爲page aligned 和 未壓縮過的,此時.so文件直接在運行的時候從apk包中加載進來。默認值爲true。
fullBackupContent:Android6.0引入。配合自動備份,用一個XML文件指明備份數據的規則。XML文件以下:
<application ... android:fullBackupContent="@xml/my_backup_rules">
</app>複製代碼
res/xml/my_backup_rules.xml
<!-- 規則 -->
<full-backup-content>
<include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" />
<exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" />
</full-backup-content>
<!-- 示例 -->
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
</full-backup-content>複製代碼
fullBackupOnly:當自動備份(Auto Backup)可使用的時候的時候,是否開啓。true爲開啓,而且6.0以上使用自動備份,如下使用 Key/Values Backups。默認爲false。
hasCode:APP是否包含代碼。true表示包含,false表示不包含,在APP加載組件的時候系統不會load任何代碼。默認值爲true。
hardwareAccelerated:是否爲全部的Activity和View進行硬件加速渲染。當minSdkVersion和targetSdkVersion爲14以上時,默認值爲true,不然爲false。
icon:APP的桌面顯示的圖標。
isGame:是否遊戲,用來和其餘應用區分開來。默認爲false。
killAfterRestore: 當系統恢復出廠設置,APP的設置信息被重置時,改APP是否應該被殺死。默認值爲true。
largeHeap:APP是否須要更大的內存空間。大部分APP不須要此屬性。要在運行時查詢可用的內存大小,可使用 getMemoryClass() 或getLargeMemoryClass() 方法。
label:APP桌面顯示的名稱。若是不指定,則桌面名稱爲包名。
logo:actionBar或toolBar上顯示的圖標
manageSpaceActivity:Activity子類的全名。當用戶清楚此APP數據時跳轉到此Activity,用戶將按照此APP的設置進行操做清除。
networkSecurityConfig:指向XML配置文件,此XML配置文件爲網絡安全配置文件。API 24引入。
格式以下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="..."/>
...
</trust-anchors>
</base-config>
<domain-config>
<domain>android.com</domain>
...
<trust-anchors>
<certificates src="..."/>
...
</trust-anchors>
<pin-set>
<pin digest="...">...</pin>
...
</pin-set>
</domain-config>
...
<debug-overrides>
<trust-anchors>
<certificates src="..."/>
...
</trust-anchors>
</debug-overrides>
</network-security-config>複製代碼
permission:設置權限。此處設置,則全部的組件都會繼承此權限(也可從新設置)。具體的可查看Manifest上篇中的權限部分。
persistent:是否讓此APP持續地保持運行。通常此項不進行設置,此項是專門對一些系統應用進行設置的,好比短信,通話等應用。
process:設置進程名字。每一個組件能夠對此項進行覆蓋,設置本身的process。默認的進程名爲APP的包名。以「:」開頭命名的進程名爲私有的。以小寫字母開頭的進程名爲公有的,能夠共享給其餘APP。
restoreAnyVersion:APP能夠經過任何版本的備份數據進行數據恢復,即便是高版本備份的數據恢復到低版本中去。設置true容許,false不容許。默認值爲false。此項可能會致使數據衝突,設置true後須要當心處理。
resizeableActivity:APP是否設置分屏操做。API24 引入。
supportsRtl:是否支持從右到左佈局。須要API17或更高的版本。若是設置爲false或targetSdkVersion設置爲16或更低版本,則會忽略RTL API。默認值爲false。
testOnly:設置此APP是不是用來測試的。AndroidStudio點擊運行的時候,會自動把此項設置爲true。發佈版本此項應該設置爲false。
theme:APP的主題。
uiOptions:有none和splitActionBarWhenNarrow兩項屬性值。none爲默認值。通常不多用到此項。
usesCleartextTraffic:API23引入。是否容許網絡使用明文傳輸。默認值爲true。
vmSafeMode:API22引入。是否讓虛擬機運行在安全模式下。默認值爲false。
對Activity的聲明,APP中的全部APP必須在Manifest文件中聲明纔可以顯示。
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "density", "screenSize", "smallestScreenSize"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" |複製代碼
name:Activity的子類全名。
allowEmbedded:此Activity是否能夠做爲其餘Activity可嵌入的子Activity啓動。在可穿戴的開發中此項須要設置爲true。默認值爲false。
taskAffinity:設置Activity所屬任務棧的名稱。具備相同taskAffinity的Activity屬於同一個任務棧。若是此值不指定,則和<application>中設置的taskAffinity同樣。默認狀況下同一個APP全部的Activity都屬於同一個任務棧,而且任務棧的名字和APP的包名(package name)一致。
allowTaskReparenting:設置爲true的時候:若是某個任務棧中的Activity啓動了此Activity,則此Activity會移動到它原本所屬的taskAffinity任務棧的最上面。好比說有APK1和APK2,其中APK1中有MainActivity1和ActivityX(ActivityX中的Manifest文件中的此項設置了true),APK2中有MainActivity2,而且ActivityX能夠被APK2中的MainActivity2啓動。此時先在Home頁面打開APK1啓動MainActivity1,而後按Home鍵回到Home頁面,再打開APK2啓動MainActivity2,在MainActivity2中啓動ActivityX,啓動完成後按Home鍵回到Home頁面,再進入APK1,會發現此時的最上面的Activity不是MainActivity1,而是ActivityX!此時若是再切換到APK2,會發現最上面的頁面是MainActivity2。緣由是ActivityX在被APK2啓動的時候會被移動到它原來所屬的taskAffinity任務棧上,就是APK1中任務棧。因爲singleTask和singleInstance啓動模式的Activity必須在任務棧的根部,因此這兩種啓動模式不能設置爲true。
alwaysRetainTaskState:是否保持APP任務棧的狀態(Activity的打開順序,保持狀態)。true爲老是保持,false不保持,默認值爲false。對於任務棧根部的Activity(好比設置了MAIN和LAUNCHER的Activity)有意義,其餘Activity設置了無心義。當爲false,APP退到後臺超過了必定時間在此切換到前臺時,系統會清除任務棧上除根Activity外的全部Activity。當爲true時,則會保持。
autoRemoveFromRecents:當設置了此項的activity所啓動的任務棧上的全部activity都關閉時,是否在預覽屏幕(overview screen,其實也是最近人物列表)中移除。true爲移除,false爲不移除。
clearTaskOnLaunch:當APP從桌面(Home Screen)切換回來是,是否移除掉任務棧上除了根Activity外的全部Activity,true爲移除,false爲不移除,默認值爲false。此項只對根Activity起做用。
banner:在AndroidTV主頁上的Activity進行輪播圖片。
configChanges:默認狀況下當Activity的配置在運行時改變時,會被銷燬掉並重啓,此時一些信息會得不到保存,如輸入框的信息,典型的例子就是橫豎屏切換。配置此項的相關信息,能夠避免配置改變帶來的信息遺失,當設置的條件發生時,會觸發Activity的onConfigurationChanged()回調方法。此項的值能夠設置多種狀況,用「|」分開。
directBootAware:Activity是否能夠在鎖屏的上運行和顯示。Direct Boot。默認值爲false。
documentLaunchMode:Android 5.0添加。此項屬性容許同一個APP可以有多個Activity展示在預覽界面上(最近使用過的任務列表)。每次Activity啓動時,新實例添加進task的方式。對應四種方式,除了none和never,其它兩種方式的launchMode必須設置爲standard:
intoExisting:重用現有的Activity,若是最近任務列表中沒有Activity啓動的任務棧(task),則建立一個;若是有的話則清除掉原來的,並重啓,此時會回調onNewIntent(Intent);方法
always:Activity每次啓動時建立新的任務棧(task)。等同於標籤:FLAG_ACTIVITY_NEW_DOCUMENT和FLAG_ACTIVITY_MULTIPLE_TASK
none:默認值。每次Activity啓動,不建立新的任務棧(task),展現在預覽界面上的Activity是在任務棧最上面的Activity。可是FLAG_ACTIVITY_NEW_DOCUMENT標籤可使Activity每次打開建立新的任務棧。
never:Activity啓動,都不會建立新的任務棧,即便設置了FLAG_ACTIVITY_NEW_DOCUMENT和FLAG_ACTIVITY_MULTIPLE_TASK標籤。
enabled:Activity是否設置爲系統進行實例化。默認值爲true。必須和application此項的屬性值保持一致。當爲false時,activity不能實例化。
excludeFromRecents:以此Activity爲根Activity的任務棧(task)是否從最近人物列表上移除,true爲移除,false爲包含。默認值爲false。
exported:設置Activity是否能夠被其餘APP的組件啓動。true能夠;false不容許,不論是隱式調用仍是顯示調用。默認值爲false。
finishOnTaskLaunch:當用戶再次啓動任務時(例如從預覽界面切換),是否finish掉此Activity。默認值爲false。當此項和allowTaskReparenting 同時設置爲true時,會忽略掉allowTaskReparenting 屬性。
hardwareAccelerated:開啓硬件渲染加速。true爲開啓,false不開啓。默認值爲false。
icon:Activity的圖標。做爲任務棧的根Activity的icon能夠在預覽界面顯示,而且會覆蓋掉application的icon,也能夠在intent-filter彈出的多選的activity顯示icon。此項缺省的話和application設置的icon同樣。
label:顯示給用戶看的Activity標籤名。同icon顯示的地方同樣,同樣會覆蓋掉application的label。缺省的話和application設置的icon同樣
launchMode:Activity的四種啓動模式。
maxRecents:以此Activity啓動的任務棧(task)的最大數目,範圍爲1-50,默認值爲16。超過數目會以最近最少使用的原則移除掉。
maxAspectRatio:
multiprocess:是否能夠將Activity的實例啓動到啓動它的那個組件所屬的進程中。true爲容許,false爲不容許。默認值爲false。
noHistory:當Activity不可見時,是否將其從任務棧中移除並finish掉。true移除,activity不會留在任務棧內,因此此時onActivityResult()方法不會被調用。false不移除。默認爲false。
parentActivityName:向上導航跳轉到的Activity類名,必需要和目標Activity的name一致。因爲是API 16引入的,因此要支持4-16,須要進行以下操做:
<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" >
<!-- Parent activity meta-data to support API level 4+ -->
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" />
</activity>複製代碼
permission:對Activity設置權限保護。若是調用方未設置指定權限,則intent不會傳遞給Activity。若是此項未設置,則繼承application的permission項,若是application也沒設置,則Activity無權限。
persistableMode:數據持久化。設置任務棧裏的Activity在設備重啓的時候是否進行數據的持久化處理。當設備重啓後啓動對應的Activity時可以對數據進行恢復。
API 21引入。
process:設置運行此Activity的進程名字。默認爲App建立的進程。以「:」開頭命名的進程名爲私有的,而且在須要的時候才建立。以小寫字母開頭的進程名爲公有的,能夠共享給其餘APP。
relinquishTaskIdentity:聲明此屬性的Activity是否放棄任務標識符而交由其任務棧上面的Activity。true,替換成下一個Activity的Intent的標識。此過程會一致持續,直到遇到某個Activity此屬性設置爲false。
resizeableActivity:是否支持多窗口展現。API 24引入
screenOrientation:Activity在設備的顯示方向。若是是多屏顯示,則會忽略此項。有以下值:
stateNotNeeded:Activity在被kill掉的時候是否須要保存相關狀態,在重啓的時候是否須要回覆狀態。true不須要,此時在kill掉的時候不會調用onSaveInstanceState() 方法,onCreate()傳null值,而不是Bundle。默認值爲false
supportsPictureInPicture:是否支持畫中畫。若是resizeableActivity設置爲false則此項會被忽略掉。API 24引入。
theme:Activity的主題設置,若是此項缺省,則繼承application的theme
uiOptions:API 14引入。爲Activity的UI添加額外的操做,可設置以下兩種值:
windowSoftInputMode:Activity 的主窗口與包含屏幕軟鍵盤的窗口的交互方式。主要影響兩個方面:
一、當 Activity 成爲用戶注意的焦點時軟鍵盤的狀態 — 隱藏仍是可見。
二、對 Activity 主窗口所作的調整 — 是否將其尺寸調小覺得軟鍵盤騰出空間,或者當窗口部分被軟鍵盤遮擋時是否平移其內容以使當前焦點可見。
有以下值,可進行組合(以state...和ajust...的組合模式,中間用「|」隔開)。
Activity的別名,爲目標Activity提供快捷入口
<activity-alias android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:targetActivity="string" >
. . .
</activity-alias>複製代碼
enabled:目標Activity是否可經過別名被系統實例化。默認爲true。若是爲false,則activity-alias無效。當application的enabled和此項都爲true時,纔可以對目標activity進行實例化。
exported:其餘APP的組件是否可經過此別名來啓動目標Activity。true爲能夠,false爲不能夠。若是爲false,則只能由其所屬的APP或相同User ID的APP啓動。
icon:展現的圖標。
label:展現的名字
name:別名的惟一字符串名字,命名風格和Java類名全路徑同樣,必須惟一。
permission:經過別名啓動目標Activity所須要的權限
targetActivity:目標Activity在Manifest中聲明的name。
以鍵值對的形式爲其父級組件元素提供額外的數據,且其父組件能夠包含任意多個meta-data元素。父組件元素包括:<application>、<activity>、<activity-alias>、<service>、<receiver>、<provider>。最終meta-data的值都會被封裝到Bundle對象放到PackageItemInfo.metaData字段。
<meta-data android:name="string" android:resource="resource specification" android:value="string" />複製代碼
name:meta-data的名字,必須具備惟一性。爲了確保惟一性,最好用Java風格的規範命名。如:"com.example.my.metadata.name"
value:對應的值。Bundle對相關類型的獲取以下:
resource:資源的引用,此處爲資源的ID。用Bundle.getInt()方法獲取資源ID
value和resource的區別:
<meta-data android:name="zoo" android:value="@string/kangaroo" />複製代碼
<meta-data android:name="zoo" android:resource="@string/kangaroo" />複製代碼
一樣是引用資源@string/kangaroo,value直接獲取的是從資源中取出來的值;resource則是資源的引用——ID。
聲明一個服務組件。
<service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" >
. . .
</service>複製代碼
description:對service作描述的字符串。
directBootAware:是否能夠在鎖屏的時候運行。默認值爲false。
enabled:是否可被系統實例化。true,能夠;false,不能夠。默認值爲true。
exported:是否容許其餘APP的組件對其進行調用或交互。true,容許。false,不容許,此時此service只容許其所屬的APP或具備相同User ID的APP對其進行調用。
icon:service展現的圖標。
isolatedProcess:若是設置爲true,則此服務會運行在一個獨立的進程中,此進程與系統的其餘進程是分開的而且沒有本身的權限。惟一可以與此服務通訊的方法是經過服務的API(binding 、starting)
label:展現給用戶看的服務名字。不設置的話默認繼承application的label。
name:服務子類全名。
permission:對service設置的權限保護。若是調用方未設置指定權限,則 startService(), bindService(), 或 stopService()不會起做用。若是此項未設置,則繼承application的permission項,若是application也沒設置,則Activity無權限。
process:服務運行所在的進程名,默認爲APP運行所在的進程,與包同名。以「:」開頭命名的進程名爲私有的,而且在須要的時候才建立。以小寫字母開頭的進程名爲公有的,能夠共享給其餘APP。
聲明一個廣播接收器(BroadcastReceiver的子類)組件。
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" >
. . .
</receiver>複製代碼
directBootAware:是否能夠在鎖屏的時候運行。默認值爲false。
enabled:是否可被系統實例化。默認爲true
exported:是否可接收其餘APP發送的廣播消息。
icon:展現的圖標。
label:展現給用戶看的名字
name:廣播接收器子類的全名。
permission:設置保護權限。
process:廣播接收器運行所在的進程名,默認爲APP運行所在的進程,與包同名。以「:」開頭命名的進程名爲私有的,而且在須要的時候才建立。以小寫字母開頭的進程名爲公有的,能夠共享給其餘APP。
聲明內容提供者(content provider)組件。
<provider android:authorities="list" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPermissions=["true" | "false"] android:icon="drawable resource" android:initOrder="integer" android:label="string resource" android:multiprocess=["true" | "false"] android:name="string" android:permission="string" android:process="string" android:readPermission="string" android:syncable=["true" | "false"] android:writePermission="string" >
. . .
</provider>複製代碼
name:ContentProvider對應的子類的全名。
authorities:指定提供給外部訪問的URI標識,能夠設置多個,用分號隔開。爲了不命名衝突,應該使用Java類的命名規範,而且都是小寫,最好是和ContentProvider子類的全名一致。
enabled:是否可被系統實例化。true,能夠;false,不行
directBootAware:是否能夠在鎖屏的時候運行
exported:是否可被其餘APP訪問。true,能夠;false,不行。在API 17或以上,默認值爲false。在API 16或如下因爲沒有引入,其效果至關於設置爲true值。
icon:對應展現的圖標。
initOrder:多個ContentProvider在同一個進程實例化的順序,爲整數值,大值會優先進行初始化。
label:展現給用戶看的名字。
process:設置ContentProvider運行所在的進程名。
multiprocess:若是APP有多個進程在運行,則是否設置多個ContentProvider的實例,每一個實例對應一個進程。true,每一個進程有屬於本身的ContentProvider實例對象。false,全部進程共享同一個ContentProvider實例對象。默認值爲false。
syncable:是否設置數據同步。true,同步。false,不一樣步
permission:鏈接此ContentProvider並進行讀寫操做所需的權限。
readPermission:設置客戶端鏈接此ContentProvider進行讀操做(查詢)所需的權限。
writePermission:設置客戶端鏈接此ContentProvider進行寫操做(查詢)所需的權限
grantUriPermissions:是否可給日常無權對 Content Provider 數據的訪問進行臨時受權 ,使之可以對數據進行操做。true,容許,可以對全部數據進行臨時受權訪問。false,只能受權訪問<grant-uri-permission>元素設置的數據子集,若是有設置的話。默認值爲false
定義ContentProvider數據子集相關的路徑和訪問所需權限。
<path-permission android:path="string" android:pathPrefix="string" android:pathPattern="string" android:permission="string" android:readPermission="string" android:writePermission="string" />複製代碼
path 用來匹配完整的路徑,如:content://example.com/a/b/c,這裏的path爲「/a/b/c」
pathPrefix 用來匹配路徑的開頭部分,拿上面的 Uri 來講,這裏將 pathPrefix 的值爲「/a」
pathPattern:使用通配符的完整路徑,有以下規則:
若是須要用到*號,因爲正則表達式的規範,須要使用轉義字符 「\\*」。
permission:設置訪問所需的權限,讀權限和寫權限。若是readPermission或writePermissio設置了,則會優先使用readPermission、writePermissio。
readPermission:讀權限
writePermissio:寫權限
指定父元素對應的ContentProvider的哪些數據子集能夠臨時受權給那些無權進行訪問的訪問。若是父元素對應的grantUriPermissions項設置爲true的話,能夠受權訪問任何數據。若是爲false的話,就只能訪問本元素所設置的數據集。
<grant-uri-permission android:path="string" android:pathPattern="string" android:pathPrefix="string" />複製代碼
參考path-permission對path、pathPrefix、pathPattern的描述
定義APP必須連接的公共庫, 本元素把程序包的類裝載器中須要包含的庫代碼通知系統。
<uses-library android:name="string" android:required=["true" | "false"] />複製代碼
name:代碼庫的名字。
required:設置爲true的話,若是系統沒有name聲明對應的庫,則程序不能安裝。設置爲false,沒有name聲明對應的包也容許程序安裝,單在APP裏要作好對缺乏聲明庫的相關處理。