<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