android服务框架分析

android服务框架分析

ID:8148163

大小:74.10 KB

页数:10页

时间:2018-03-07

android服务框架分析_第1页
android服务框架分析_第2页
android服务框架分析_第3页
android服务框架分析_第4页
android服务框架分析_第5页
资源描述:

《android服务框架分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android服务框架分析摘要:Android系统服务提供系统最基本、最核心的功能,比如设备控制、地理位置信息提供、定时设置等。这些系统服务都是使用Android的ServiceFramework实现的,AndroidServiceFramework是Android系统的重要组成部分。探索ServiceFramework内部原理,理解并掌握ServiceFramework的运作方式,有助于我们开发出各种新功能,例如视频通话、DMB服务等非基本的系统服务。本文将重点学习AndroidServiceFramework,分析各个构成元素,理解其原理与运行机制,以便开发出各种服务。一、服务框架(Ser

2、viceFramework)AndroidServiceFramework是一系列类的集合,它用来开发运行在Android平台上的各种服务。ServiceFramework提供了设计精良、复用度高的服务设计与实现,开发者可以使用ServiceFramework提供的各种类与接口,快速开发出可靠优良的服务。在使用ServiceFramework开发服务时,开发者只要把主要精力集中在开发服务的核心功能上即可,服务核心功能之外的部分ServiceFramework会帮我们处理。例如,在开发服务时,服务注册、服务BinderIPC等功能都由系统提供,开发者不需要实现这些功能。总之,开发者在使用Serv

3、iceFramework开发服务时,只要集中精力开发服务要提供的功能即可。之前,读者可能听说过AndroidApplicationFramework这个词,但什么是ServiceFramework,有些读者可能不太明白。在Android平台中,ServiceFramework大致由两大部分构成,一部分是使用C++语言编写的本地服务框架,另一部分是使用Java语言编写的Java服务框架。既然已经存在“应用程序框架”这一术语了,为什么还要使用“服务框架”(ServiceFramework)这个术语呢?首先在说明由C++语言编写的系统服务以及由Java编写的系统服务时,有必要将两者合在一起来说明。在

4、使用应用程序框架(ApplicationFramework)时,由Java实现的服务将被包含进去,所以在开发服务时需要一个通用的术语来指代所使用的框架(Framework)。并且,应用程序框架中构成要素十分庞大,为了说明的方便,也需要一个术语将实现服务所需要的素有框架元素表达出来。其次,在“服务框架”中包含了所有框架的特征。框架有两个代表性的特征,一是通过扩展而非修改框架添加新的功能;二是使用框架实现的应用程序控制流由框架而非程序自身控制。在Android平台中,许多服务通过扩展而非修改服务框架来实现,并且服务的动作流也是由服务框架所决定,所实现的服务只是按照内部定义的方式进行运作。若开发者采

5、用任意的方法开发服务,那么开发出的服务将无法再系统中正常运行,即只有使用Android提供的类与已经定义好的方法开发,才能够开发出可以再系统中正常运行的服务。一、服务框架(ServiceFramework)的构成1、各层构成元素的配置在分析“服务框架”时,将BinderIPC各抽象层的作用以及相应的类联系起来,有助于我们更容易地理解“服务框架”中的各个类。“服务框架”各个层的组成元素以及它们各自的作用如表1:服务客户端(ServiceClient)ServiceServer服务层配置IFooService服务接口foo()服务接口服务FooServicefoo()IFooServicefoo(

6、)功能■FooService服务的公用接口■提供FooService服务的foo()函数接口■FooService服务的公用接口■运行FooService服务的foo()函数RPC层配置BpFooService服务协议foo()BnFooService服务StubonTransact()功能■支持BinderRPC■调用foo()函数,转换成RPC数据■支持BinderRPC■分析RPC代码与数据,调用foo()服务的Stub函数IPC层配置BinderIPC处理IPCThreadStateBpBinderBinderIPC处理IPCThreadStateBpBinder功能■支持Binder

7、IPC■将RPC代码与数据转换成IPC数据,传递给BinderDriver■支持BinderIPC■接收BinderIPC数据,转换成RPC代码与数据表1首先服务客户端与ServiceServer在ServiceFramework的构成元素配置上存在不同。在服务层的服务客户端有服务接口,而在ServiceServer中不仅有服务接口,还有相应的服务。在RPC层的服务客户端只有名称为“BpFooSe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。