Android Manifest标签之data, grant-uri-permission, instrumentation, intent-filter

<data>

语法:

<dataandroid:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:mimeType="string"/>

父标签:

<intent-filter>

描述:

为intent-filter指定data. 类型只能是mime type, data, 或者两者兼有. URI需符合如下格式:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]

URI的字段都是可选的, 但是它们之间有依赖关系:

如果未指定scheme, 那么而其他字段都会被忽略. 如果host未指定, 那么port和剩下的path部分也都会被忽略. <intent-filter>中可以放多个<data>标签.

属性:

android:scheme: URI的scheme部分. URI至少要包含一个scheme部分, 否则这个URI就没意义了. 一个scheme不应该包含尾随的冒号, 比如应该是”http”, 而不是”http:”. 如果filter中设置了mimeType而未设置URI, 那么将会默认添加content和file到URI. scheme是大小写敏感的, 我们应该总是使用小写字母来指定.

android:host: 指定一个host, 同样是大小写敏感, 建议小写字母, 如果不指定scheme, 那么该项属性则没意义.

android:port: 指定一个URI的port, 只有指定了scheme和host这个属性才有意义.

android:path: path部分必须以/开头, 为URI指定path. path指定一个intentfilter需要匹配的完整路径.

android:pathPrefix: pathPrefix为intentfilter指定初始部分的路径.

android:pathPattern: pathPattern为intentfilter指定完整路径, 但是可以使用*作为通配符.

android:mimeType: 指定一个MIMEtype, 比如image/jpeg, audio/mpeg4-generic. 也可以使用通配符表示任意子类, 比如image/*.intent filter经常只指定一个MIME type. MIME类型大小写敏感, 我们应该使用小写字符.

 

<grant-uri-permission>

语法:

<grant-uri-permissionandroid:path="string"
                     android:pathPattern="string"
                     android:pathPrefix="string"/>

父标签:

<provider>

描述:

为content provider指定可以接受的数据子集. 即哪些请求应该被content provider响应. 这些数据子集由一个content:类型的URI的path部分指定(该标签的格式跟<data>中URI的path长得一样). 如果content provider的grantUriPermission属性被设置为了true, 那么就相当于没有权限限制, 如果为false, 那么权限只能被授予给<grant-uri-permission>指定了的数据子集. 每个<provider>可以指定多个<grant-uri-permission>,但是每个<grant-uri-permission>只能指定一个路径(三个属性之一).

属性:

android:path:

android:pathPrefix:

android:pathPattern:

属性的解释跟上面的<data>是一样的.

 

<instrumentation>

语法:

<instrumentationandroid:functionalTest=["true" | "false"]
                 android:handleProfiling=["true" | "false"]
                 android:icon="drawable resource"
                 android:label="string resource"
                 android:name="string"
                 android:targetPackage="string"/>

父标签:

<manifest>

描述:

定义一个instrumentation类, 该类可以让我们监听APP跟Android的交互. instrumentation将会在所有的组件之前被实例化.

属性:

android:functionalTest: 指定Instrumentation是否作为一个functionalTest运行. true表示是, false表示不是, 默认值为false.

android:handleProfiling: 指定Instrumentation是否开启profiling.true表示profiling启动和停止的时间是确定的, false表示profiling会一直运行.  默认值为false.

android:icon: Instrumentation类的icon. 该属性必须设置为一个drawable资源.

android:label: Instrumentation类的label. 该属性可以设置为一个string资源或者一个rawstring资源.

android:name: Instrumentation子类的名字. 应该是一个完整的类名, 比如这样"com.example.project.StringInstrumentation".如果跟manifest的包名相同, 则可以用一个”.”来缩写, 即” .StringInstrumentation”, 该属性没有默认值, 而且是必选项.

android:targetPackage: 指定Instrumentation对象将要监视的APP. 名字对应的是指定APP的manifest文件的包名.

 

<intent-filter>

语法:

<intent-filterandroid:icon="drawable resource"
               android:label="string resource"
               android:priority="integer">
    . . .
</intent-filter>

父标签:

<activity>

<activity-alias>

<service>

<receiver>

必须包含:

<action>

可以包含:

<category>

<data>

描述:

为activity, service或者broadcast receiver可以相应的intent类型. 它接收指定的intent, 过滤掉不需要的intent. 多数的filter使用<action>, <category>, <data>描述.

属性:

android:icon: 为组件指定一个icon. 默认值是组件本身的icon,如果组件没指定, 那么就用application的icon.

android:label: 为组件指定一个label,默认值是组件本身的label, 如果组件没指定, 那么就用application的label.

android:priority: 该属性指定按照什么优先级处理intent. 对activity和broadcast receiver有效. 如果有多个activity相应了同一个intent, 那么该属性将发挥作用, 更高优先级的activity将会被用来处理该intent. 当用于broadcast receiver的时候, 高优先级的将比低优先级的更先收到消息(该属性只对同步消息有用, 异步消息将忽略这个属性).

该属性必须为整型, 取值范围为-1000~1000, 默认值为0, 越大的优先级越高.


参考:

http://developer.android.com/guide/topics/manifest/data-element.html

http://developer.android.com/guide/topics/manifest/grant-uri-permission-element.html

http://developer.android.com/guide/topics/manifest/instrumentation-element.html

http://developer.android.com/guide/topics/manifest/intent-filter-element.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值