AndroidManifest.xml文件解析?AndroidManifest.xml文件中如何定义一个Intent-filter?其中的action,category, data分别代表什么含义?何时设置category的属性值为android.intent.category.DEFAULT? 如何定义和使用一个自定义的action?
AndroidManifest.xml是比较重要的一个文件,定义了各种Compont(Activity, Broadcast Intent Receiver, Service, Content Provider等)
Android 的各种操作,其实都是由Android 的框架控制,在执行 startActivity的时候,应用程序并不是直接呼叫另一个Activity,而是将Intent传进Android框架中,框架会使用特定机制与AndroidManifest.xml中定义好了的Intent-filter进行比对,发现匹配的,就启动对应的服务或者Activity
AndroidManifest.xml 中的Intent-filter.描述了何时何种情况下让activity 启动. 当一个activity(或是操作系统)想要执行一个动作, 例如打开一个Web页或是打开一个联系人选取屏幕, 会创建一个Intent对象. 该对象包含了很多的描述信息, 描述了你想做什么操作, 你想处理什么数据, 数据的类型, 以及一些其他的重要信息. Android拿这个Intent的信息与所有定义了的Intent-filter进行匹配, 找到一个最能恰当处理请求者要求的数据和action的activity. 然后启动
另外还要声明您的应用的Activities, Content Providers, Services, 和 Intent Receivers, 你也可以在AndroidManifest.xml文件中指定权限和instrumentation(安全控制和测试).
AndroidManifest.xml 的结构大纲:
<manifest> 文件根节点, 描述了程序包的所有内容.
<uses-permission> 请求一个安全授权, 必须被授予该权限, 您的程序包才能正确的操作.可以包含零个或多个这样的节点.
<permission> 声明一个安全授权, 用来限制哪些应用可以访问您的程序包内的组件和特有机制. 可以包含零个或多个这样的节点.
<instrumentation>
<application> 描述程序包内应用级别组件的根节点. 该节点能够描述应用程序的全局(和/或)默认属性, 例如标签, 图标, 主题, 需要的授权, 等等.包含零个或一个这样的节点
<activity> Activity 是应用于用户交互的最主要机制. 当一个应用运行的时候, 用户看到的第一个屏幕就是activity, 并且, 用户所使用的其他绝大多数屏幕(界面)也会是
<intent-filter>
<action>
<category>
<type>
<scheme>
<authority>
<path>
<receiver> 一个IntentReceiver 可以让应用接收到一次数据变化和一次行为发生的通知, 甚至这个应用没有在运行也可以. 同activity 标签一样, 你可以选择包含一个或多个<intent-filter>元素
<service>Service 是一个在后台任意时刻都可以运行的组件. 同activity 标签一样, 你可以选择包含一个或多个<intent-filter>元素
<provider>ContentProvider组件是用来管理数据持久化及数据发布的, 发布的数据可以被其他的应用访问.
<intent-filter>的详细说明:http://www.moandroid.com/?p=1651
android.intent.category.DEFAULT是<intent-filter>的<category>默认的类型
使用自定义的Action是非常方便的,示例说明:http://hi.baidu.com/helloworldtoo/blog/item/c2109e12a30a415df819b8e2.html