如果是熟悉安卓的开发者都会知道,在Android的架构里面是有4种应用程序,分别是Activity,Service服务,ContentProvider内容提供者,以及BroadcastReceiver广播接收器。本文将介绍一下这四个组件是怎样的。
我们知道Android操作系统,实际上是一个复杂的操作平台,并且也是包含了多种功能的一些模块,比如用户界面系统、系统间通信系统、数据库系统和定位服务等,并且的话各种功能模块之间相互配合为应用程序提供服务。
第一:活动activities——桌面操作系统中独立的应用程序类似
操作者是可以通过查询queries和意图intents向其他活动或服务services获取数据和服务。
第二:服务services——后台程序daemons类似
如果是启动以后,将会是一直在后台运行,然后是直到手机设备关机为止。一般服务是不显示用户界面的
比如当用户可以播放mp3的时刻运行其他一些应用程序,但在退出操作界面后仍然维持程序的一个运行。
第三:广播和意图的接收器(broadcast and Intent Receivers)
表示的是用户处理应用程序出发的服务请求。广播接收器是用户处理系统级别的一个事件消息,这些消息可能是android系统本身发出的,也有可能是来自系统中正在运行的其它的应用程序。当一个活动或者服务通过实现意图接收器来向其他应用程序提供服务,就会意图接收器就是一段可执行的代码,负责响应其它的活动或者服务发出的数据或者服务请求。
当想要发送请求的活动、客户端将会首先需要创建一个意图的对象,然后将这个意图的对象,会给android系统,最后由android系统决定使用哪个应用程序处理该意图,智能化的响应。
第四:内容提供器Contentproviders
作用是用户向其它活动或服务提供的数据服务。一般内容提供器是通过使用标准URI(uniform resource identifier)的接口为其他应用程序提供数据服务,数据的请求者甚至不需要去知道服务的提供者是那个东西。
例如:某个应用程序发出了一个查询某个联系人信息的消息,它的请求格式如下:
Content://contacts/people
Android系统就会查询系统中注册了这个URI格式的内容提供器,并且是将请求发送给响应的应用程序,若程序没有启动,系统将会自动的启动。当有多个应用程序都注册了同样的URI格式,则操作系统就会提示用户去选择其中的一个。
要想熟悉安卓,组件、服务、这些细微的知识点还是需要去弄明白的,安卓是一个复杂的操作系统,功能模块的学习是开发的基础,系统化、有连串性的进行学习是提高的有效方法。