Android中Manifest.xml配置文件里面有很多的属性,下面对部分进行了整理,还没有整理完全。
A、基本框架:
<?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>
详见:http://developer.android.com/guide/topics/manifest/manifest-intro.html
B、<manifest>
参数信息
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="string"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
. . .
</manifest>
<manifest>
必须包含<application>
,可以包含<compatible-screens>、<instrumentation> 、<permission>、<permission-group>、<permission-tree>、<supports-gl-texture>、<supports-screens>、<uses-configuration>、<uses-feature>、<uses-permission>、<uses-sdk>
(1)xmlns:android:定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
(2)package:指定本应用内java主程序包的包名,它也是一个应用进程的默认名称
(3)sharedUserId:表明数据权限,因为默认情况下,Android给每个APK分配一个唯一的UserID,所以是默认禁止不同APK访问共享数据的。如果想要实现两个APK数据的共享,就可以将这两个APK设置同一个UserID。参照:http://wallage.blog.163.com/blog/static/17389624201011010539408/
(4)sharedUserLabel:一个共享的用户名,它只有在设置了sharedUserId属性的前提下才会有意义
(5)versionCode:是给设备程序识别版本(升级)用的必须是一个interger值代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为2,3等.
(6)versionName:这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.2、2.0版本等.
(7)installLocation:安装参数,installLocation有三个值可以选择:internalOnly、auto、preferExternal,选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)选择auto,系统将会根据存储空间自己去适应选择internalOnly是指必须安装到内部才能运行。
详见:http://developer.android.com/guide/topics/manifest/manifest-element.html
C、application参数信息 对应的类为ApplicationInfo
<application android:allowTaskReparenting=["true" | "false"]
android:allowBackup=["true" | "false"]
android:backupAgent="string"
android:banner="drawable resource"
android:debuggable=["true" | "false"]
android:description="string resource"
android:enabled=["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:permission="string"
android:persistent=["true" | "false"]
android:process="string"
android:restoreAnyVersion=["true" | "false"]
android:requiredAccountType="string"
android:restrictedAccountType="string"
android:supportsRtl=["true" | "false"]
android:taskAffinity="string"
android:testOnly=["true" | "false"]
android:theme="resource or theme"
android:uiOptions=["none" | "splitActionBarWhenNarrow"]
android:vmSafeMode=["true" | "false"] >
. . .
</application>
包含在<manifest>
,可以包含<activity>、<activity-alias>、<meta-data>、<service>、<receiver>、<provider>、<uses-library>
(1)allowTaskReparenting:是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务,<activity>
也有它自己的allowTaskReparenting属性,可以对它进行重载。
(2)allowBackup:是否允许对应用进行备份。
(3)backupAgent:设置该APP的备份,属性值应该是一个完整的类名,如com.project.TestCase,此属性并没有默认值,并且类名必须得指定(就是个备份工具,将数据备份到云端的操作)
(4)banner:
(5)debuggable:是否应用程序可以被调试
(6)description:用户可阅读性的文本,这个文本比应用lable更长且更具描述性,并且它必须是一个字符串资源的引用,不同于标签的是他不能是原始的字符串。它没有默认值。
(7)enabled:android系统是否可以实例化应用程序的组件。
(8)hasCode:表示此APP是否包含任何的代码,默认为true,若为false,则系统在运行组件时,不会去尝试加载任何的APP代码.
(9)hardwareAccelerated:是否对所有的Activities和views启用硬件加速,如果minSdkVersion或者targetSdkVersion为14或者更高,则默认为TRUE,否则默认为FALSE
(10)icon:整个应用程序的图标,必须为图片的引用。
(11)isGame:应用程序是否为游戏。
(12)killAfterRestore:在一个全系统恢复操作中,当设置被恢复之后,有问题的应用程序是否应该被终止。
(13)largeHeap:是否应用程序进程应该带有一个大的Dalvik堆。
(14)label:应用程序可阅读的标签。
(15)logo:整个应用程序的logo,也是所有Activity默认的logo.
(16)manageSpaceActivity:系统可以启动来让用户管理设备内存占有率的Activity子类,在<activity>
中也应该进行声明。
(17)name:实现了application的一个Application子类的全名。
(18)permission:为了能够和此应用程序进行交互,客户端必须带有的权限。
(19)persistent:该应用程序是否应该在任何时候都保持运行状态,默认为false。因为应用程序通常不应该设置本标识,持续模式仅仅应该设置给某些系统应用程序才是有意义的。
(20)process:应用程序运行的进程名,它的默认值为<manifest>
元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。如果你想两个应用程序共用一个进程的话,你可以设置他们的android:process相同,但前提条件是他们共享一个用户ID及被赋予了相同证书的时候.
(21)restoreAnyVersion:来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本,默认是false.
(22)requiredAccountType:指明应用程序的帐号类型,如果你的应用程序需要一个帐号,那么这属性值必须对应一个账户认证者。
(23)restrictedAccountType:指明这样应用程序所需要的帐号类型,并且暗示了需要严格的认证,这种账户属于所有者用户。
(24)supportsRtl:是否应用程序支持从右向左的布局。
(25)taskAffinity:拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是<manifest>
元素中设定的package名
(26)testOnly:是否这个应用程序只是用来测试。
(27)theme:是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。
(27)uiOptions:activity的UI的额外选项。有两种值”none”和”splitActionBarWhenNarrow”,”none”表示没有额外的UI选项,”splitActionBarWhenNarrow”表示为了避免很少的action item出现在顶部的actionbar中,可以把actionbar分成顶部和顶部,确保合理数量的actionbar可以使用,不仅对action item,也对于顶部的导航和标题元素。
(28)vmSafeMode:是否应用程序像虚拟机一样运行在一种安全模式中。
详见:http://developer.android.com/guide/topics/manifest/application-element.html
D、<uses-permission>
uses-permission android:name="string"
android:maxSdkVersion="integer" />
声明应用程序所要使用到的权限。
(1)name:权限的名称
(2)maxSdkVersion:这个权限授予到app中的最大API级别。
详见:http://developer.android.com/guide/topics/manifest/uses-permission-element.html
E、<permission />
对应的就是PermissionInfo类
<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"] />
声明安全权限来限制其他具体组件或者应用程序的访问。
(1)description:权限的描述信息,带比lable有更长更更有描述性的信息
(2)icon:代表这个权限的图标资源
(3)label:权限的名称,显示给用户看的。
(4)name:权限的名字,这个名字被用在代码中来表示这个权限。
(5)permissionGroup:这个权限所属的权限组。所以必须声明一个权限组,如果这个属性没有设置,则它就不属于一个组。
(6)protectionLevel:当决定是否应该授予权限给一个请求的应用的时候,这个暗示了系统应该怎样处理。主要有四种选择:”normal”,”dangerous”,”signature”,”signatureOrSystem”,”normal”是默认值,低风险权限,在安装的时候,系统会自动的授予请求的应用程序权限,”dangerous”:较高风险的权限,可能让请求应用程序访问用户私有数据或者控制设备.”signature”只有请求应用程序用相同的认证前面才能获得权限。
“signatureOrSystem”:系统授权只有对于应用是在Android系统镜像或者使用相同认证签名的时候,应该避免使用这个选项。
详见:http://developer.android.com/guide/topics/manifest/permission-element.html
F、<permission-tree />
<permission-tree android:icon="drawable resource" android:label="string resource" ] android:name="string" />
声明了权限树的基本名称,通过调用PackageManager.addPermission(),它可以动态的添加新的权限到树里面,树里面的名字是用点隔开,例如,对于基本名称为com.example.project.taxes,下面的权限就可以添加进去
com.example.project.taxes.CALCULATE
com.example.project.taxes.deductions.MAKE_SOME_UP
com.example.project.taxes.deductions.EXAGGERATE
需要注意的是,这个权限树本身不是一个权限,它只是一个命名空间,里面放有很多的权限.
(1)icon:这个权限树所有权限的图标。
(2)label:这个组一个可读的名字。
(3)name:权限树的名称,它是权限树中所有权限的名称前缀。并且这个名字必须超过两个分割的字段,例如com.example.base。
详见:http://developer.android.com/guide/topics/manifest/permission-tree-element.html
G、<permission-group />
对应的就是PermissionGroupInfo类
<permission-group android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string" />
对相关权限的逻辑分组,声明了一个名称,单个的权限可以通过 <permission>
元素的permissionGroup属性来添加到分组中,一个组的成员会在用户接口一块进行呈现。
同样需要注意的是这个元素本身并不是一个权限,只是权限的一个分类.
(1)description:用户可阅读的描述信息。
(2)icon:权限的图标。
(3)label:用户可阅读的名字。
(4)name:权限组的名称,这个名字将会赋值给<permission>
元素的<permissionGroup>
属性。
详见:http://developer.android.com/guide/topics/manifest/permission-group-element.html
H、 <instrumentation />
对应的就是InstrumentationInfo类
<instrumentation android:functionalTest=["true" | "false"]
android:handleProfiling=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:targetPackage="string" />
声明了一个Instrumentation类,可以使你监控应用程序和系统的交互,这个Instrumentation对象在应用程序其他任何组件之前被实例化。
我们使用最多的是在单元测试中:
// <instrumentation
// android:name="android.test.InstrumentationTestRunner"
// android:targetPackage="com.zyb.file" />
(1)functionalTest:Instrumentation类是否运行作为一个功能性的测试,默认为false。
(2)handleProfiling:profiling调试功能开关是否开启
(3)icon:Instrumentation类的图标
(4)label:用户可阅读的标签
(5)name:Instrumentation子类的名字,它应该是一个名字全称,例如com.example.project.StringInstrumentation,为了简写,它的第一个字母可以为一个点,这样就是接着<manifest>
的包名。
(6)targetPackage:测试用例目标对象,一般就是<manifest>
的包名。
详见:http://developer.android.com/guide/topics/manifest/instrumentation-element.html
I、<uses-library />
<uses-library
android:name="string"
android:required=["true" | "false"] />
指明应用程序必须链接到的一个共享库,这个元素告诉系统在这个包的类加载器中包含这个库代码。所有的Android包,例如:android.app,android.content,android.view,android.widget,都是在默认的库中,并且所有的应用程序可以自动的链接,但是有些包,例如maps,是在单独的库中,不能自动链接。
这个元素也影响应用程序在特殊设备上的安装和应用程序在Google Play上的可用性:
安装:如果这个元素出现,并且android:required属性被设置为true,PackageManager框架不会让用户安装这个应用,除非这个库已经存在于用户设备中。
(1)name:库名
(2)required:是否应用程序需要这个库,如果设置为true,如果没有这个库,那么应用程序不会起作用,如果设置为false,如果存在这个库,应用程序可以使用这个库,如果没有这个库,系统也允许应用程序的安装。默认为true。
详见:http://developer.android.com/guide/topics/manifest/uses-library-element.html
J、<uses-sdk />
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
指明你的应用程序兼容安装平台的版本,
(1)minSdkVersion:应用程序运行需要的最小的API级别。
(2)targetSdkVersion:应用程序目标API级别。
(3)maxSdkVersion:应用程序运行需要的最大的API级别。
详见:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
K、<uses-configuration />
对应的就是ConfigurationInfo类
<uses-configuration
android:reqFiveWayNav=["true" | "false"]
android:reqHardKeyboard=["true" | "false"]
android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
指明硬件和软件所需要的一些特性,例如应用程序需要指明一个物理键盘或者特殊的导航设备,这种指定是为了避免应用安装到设备上不起作用。
(1)reqFiveWayNav:是否应用需要一个五种方式(上、下、左、右、中)的导航控制。
(2)reqHardKeyboard:应用是否需要硬件键盘。
(3)reqKeyboardType:应用所需的键盘类型,这个属性不能区分硬件键盘和软件键盘。有五个可选值:”undefined”、”nokeys”、”qwerty”、”twelvekey”。”undefined”表示应用不需要键盘,对于键盘的需要是不确定的。”nokeys”应用不需要一个键盘。”qwerty”应用需要一个标准的QWERTY键盘,”twelvekey”应用需要一个12键的键盘。
(4)reqNavigation:应用是否需要导航设备,有五种可选值:”undefined”、”nonav”、”dpad”、”trackball”、”wheel”,”undefined”表示应用不需要任何类型的导航控制,导航控制是否需要不确定,”nonav”表示应用不需要导航控制,”dpad”表示应用需要一个D-pad作为导航,”trackball”表示应用需要一个trackball作为导航,”wheel”表示应用需要一个导航轮。
(5)reqTouchScreen:应用所需要的触屏类型,有四个可选值:”wheel”、”notouch”、”stylus”、”finger”,其中”undefined”表示应用不需要一个触屏,或者不知道是否需要触屏,”notouch”表示不需要一个触屏,”stylus”应用需要一个触笔操作的触屏,”finger”:应用需要一个手指操作的触屏。
注意:如果一些类型的触摸输入是需要在你的应用中,你应该使用<uses-feature>
来声明需要使用的触屏类型。
详见:http://developer.android.com/guide/topics/manifest/uses-configuration-element.html
L、<uses-feature />
对应的就是ConfigurationInfo类
<uses-feature
android:name="string"
android:required=["true" | "false"]
android:glEsVersion="integer" />
声明单个硬件或者软件需要的特征,它主要是应用程序声明它需要使用的设备变量特性。这些应用变量特性可以通过Android的PackageManager来获取,如果你的应用程序需要许多的特性,你可以声明许多<uses-feature>
元素。例如,应用需要蓝牙和照相机可以声明一些特性:
<uses-feature android:name="android.hardware.bluetooth" />
<uses-feature android:name="android.hardware.camera" />
(1)name:指明你的应用程序所用到的硬件和软件特性。
(2)required:应用是否需要这个特性。
(3)glEsVersion:OpenGL ES版本是否需要在你的应用程序中。
详见:http://developer.android.com/guide/topics/manifest/uses-feature-element.html
M、<supports-screens />
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
指定你的应用程序所支持的屏幕的尺寸,
(1)resizeable:指明应用程序对于不同屏幕尺寸是否可以调整大小。
(2)smallScreens:指明应用程序是否支持较小外形的屏幕。
(3)normalScreens:指明应用程序是否支持正常外形的屏幕。
(4)largeScreens:指明应用程序是否支持较大外形的屏幕。
(5)xlargeScreens:指明应用程序是否支持超大外形的屏幕。
(6)anyDensity:指明是否应用程序包括资源,以适应任何屏幕的像素密度。
(7)requiresSmallestWidthDp:指明需要的最小的宽度。
(8)compatibleWidthLimitDp:通过指定你的应用程序的最大”最小屏幕宽度”,是屏幕的兼容模式为用户可选特性.
(9)largestWidthLimitDp:通过指定应用程序的最大”最小屏幕宽带”,来强制启动屏幕兼容模式。
详见:http://developer.android.com/guide/topics/manifest/supports-screens-element.html
N、<compatible-screens />
<compatible-screens>
<screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] />
...
</compatible-screens>
指定应用程序兼容的每个屏幕的配置,在配置文件中,只能有一个<compatible-screens>
元素,但是它可以包含很多<screen>
元素,android系统不能读取<compatible-screens>
,它只能被其他外部服务知道,使他们可以知道应用的指定的兼容屏幕,以便为用户筛选程序。
注意:一般不要使用这个配置元素.
(1)screenSize:指定屏幕接受的尺寸,有四种可选值:small,normal,large,xlarge.
(2)screenDensity:指定屏幕的密度设置,有四种可选值:ldpi,mdpi,hdpi,xhdpi.
详见:http://developer.android.com/guide/topics/manifest/compatible-screens-element.html
O、<supports-gl-texture />
<supports-gl-texture
android:name="string" />
指明应用程序支持的单个GL texture compression
详见:http://developer.android.com/guide/topics/manifest/supports-gl-texture-element.html
P、<activity>
对应的就是ActivityInfo类
<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:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "screenLayout", "fontScale",
"uiMode", "orientation", "screenSize",
"smallestScreenSize"]
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=["multiple" | "singleTop" |
"singleTask" | "singleInstance"]
android:maxRecents="integer"
android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
android:parentActivityName="string"
android:permission="string"
android:process="string"
android:relinquishTaskIdentity=["true" | "false"]
android:screenOrientation=["unspecified" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"userLandscape" | "userPortrait" |
"sensor" | "fullSensor" | "nosensor" |
"user" | "fullUser" | "locked"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:uiOptions=["none" | "splitActionBarWhenNarrow"]
android:windowSoftInputMode=["stateUnspecified",
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >
. . .
</activity>
(1)allowEmbedded:Activity是否可以作为另一个Activity的嵌套孩子被启动。
(2)allowTaskReparenting:是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
(3)alwaysRetainTaskState:是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态
(4)autoRemoveFromRecents:
(5)banner:
(6)clearTaskOnLaunch:
(7)configChanges:
(8)documentLaunchMode:
(9)enabled:
(10)excludeFromRecents:
(11)exported:
(12)finishOnTaskLaunch:
(13)hardwareAccelerated:
(14)icon:
(15)label:
(16)launchMode:activity启动方式.有四种,
(17)maxRecents:
(18)multiprocess:
(19)name:
(20)noHistory:
(21)parentActivityName:
(22)permission:
(23)process:
(24)relinquishTaskIdentity:
(25)screenOrientation:
(26)stateNotNeeded:
(27)taskAffinity:
(28)theme:activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序
(29)uiOptions:
(30)windowSoftInputMode:
详见:http://developer.android.com/guide/topics/manifest/activity-element.html
Q、<activity-alias>
<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>
详见:http://developer.android.com/guide/topics/manifest/activity-alias-element.html
R、<service>
对应的就是ServiceInfo类
<service 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>
详见:http://developer.android.com/guide/topics/manifest/service-element.html
S、<receiver>
<receiver 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>
详见:http://developer.android.com/guide/topics/manifest/receiver-element.html
T、<provider>
<provider android:authorities="list"
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>
详见:http://developer.android.com/guide/topics/manifest/provider-element.html
U、<action>
<action android:name="string" />
详见:http://developer.android.com/guide/topics/manifest/action-element.html
V、<category>
<category android:name="string" />
详见:http://developer.android.com/guide/topics/manifest/category-element.html
W、<data>
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:mimeType="string" />
详见:http://developer.android.com/guide/topics/manifest/data-element.html
X、<meta-data>
<meta-data android:name="string"
android:resource="resource specification"
android:value="string" />
详见:http://developer.android.com/guide/topics/manifest/meta-data-element.html
Y、<intent-filter>
<intent-filter android:icon="drawable resource" android:label="string resource" android:priority="integer" >
. . .
</intent-filter>
详见:http://developer.android.com/guide/topics/manifest/intent-filter-element.html
Z、<grant-uri-permission>
<grant-uri-permission android:path="string"
android:pathPattern="string"
android:pathPrefix="string" />
详见:http://developer.android.com/guide/topics/manifest/grant-uri-permission-element.html
AA、<path-permission>
<path-permission android:path="string"
android:pathPrefix="string"
android:pathPattern="string"
android:permission="string"
android:readPermission="string"
android:writePermission="string" />
详见:http://developer.android.com/guide/topics/manifest/path-permission-element.html
另外,需要说明的是它们对应的类位于android.content.pm这个包中。