Android基本组件在日常生活中的应用还是很普遍的,但是要熟练的使用Android基本组件的前提是先要了解下什么是Android基本组件?以及Android基本组件的组成部分。
Intent包含6中基本信息,分别为:目标组件名称,Action(动作),Data(数据),Category(类别),Extra(额外信息),Flag(标志)。Intent分为显示Intent和隐式Intent。显示Intent是在目标组件名称中指定目标组件的包名和类名,Intent请求会直接发送给这个组件。
由于不可能知道其他应用的类名及包名,所以显示Intent不可能用于不同应用程序,它只能在一个应用程序中传递消息。隐式Intent查找目标组件的方法是根据IntentFilter。每个Android基本组件(Activity,Service,BroadcastReceiver)都需要在AndroidManifest.xml中声明自己的IntentFilter。
以描述这个组件可以接受的Intent请求。Android系统会根据Intent中的信息查找IntentFilter,看是否匹配,以确定接受Intent请求的组件。影响Android匹配的因素是Intent中的Action、Data、Category。
隐式Intent不需要目标组件的名称来激活该组件,这样可以应用于在不同应用程序之间传递消息。下面是我对于Intent机制的一种理解,不知猜的对不对。 在Android中,系统维护一个数据结构,用于描述每种Intent可以匹配的组件。可以采用Hashtable<key Intent类型(Action), value 可以匹配的组件的列表>
这样就可以把不同类型的Intent映射为可以处理该Intent的组件。在每个应用程序安装时,系统搜索AndroidManifest.xml。根据每个组件的IntentFilter信息,调用Hashtable.put(IntentFilter.Action, 组件)把每个组件注册到系统中。
Android基本组件就可以轻松的维护每个组件可以处理的Intent信息。当某个组件发出一个Intent请求时Android系统会根据Intent的信息调用Hashtable.get(Intent.Action)得到所有与之匹配的组件列表,从而找到可以响应该Intent的组件。
正是由于隐式Intent的存在,才可以实现不同应用程序可以共享彼此的功能组件这是优势。一个应用程序要启动其他应用程序的一个组件时只要传递正确的Intent即可,从这一点上看Android系统是一个组件的集合,它的运行的基本单位是组件,而不是一个应用程序。
白色版HTC G1Android平台的研发队伍阵容强大,包括摩托罗拉、Google、HTC(宏达电)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业,都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。
“开放手机联盟”表示,Android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。
34家企业的加盟,也将大大降低新型手机设备的研发成本,完全整合的“全移动功能性产品”成为“开放手机联盟”的最终目标。这34家企业中并不包含把持Symbian的诺基亚,以及凭借着iPhone风光正在的苹果公司,美国运营商AT&T和Verizon,当然微软没有加入,独树一帜的加拿大RIM和他们的Blackberry也被挡在门外。
【编辑推荐】