[发明专利]一种在Android上实现Socket通讯服务共享的方法有效
申请号: | 201110389055.2 | 申请日: | 2011-11-30 |
公开(公告)号: | CN102520936B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 郑振贵;许宁;吕瑞明;林剑棍;王文欣 | 申请(专利权)人: | 厦门雅迅网络股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 泉州市诚得知识产权代理事务所(普通合伙)35209 | 代理人: | 方惠春 |
地址: | 361000 福建*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 实现 socket 通讯 服务 共享 方法 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种应用于Android平台上的Socket通讯服务的共享管理方法。
背景技术
在Android平台上,网络通讯通常采用Socket建立。一个网络业务的发起,通常先建立Socket连接,然后获取中间的管道连接数据流,进行数据的收发。在应用过程中,可以在一个UI视图操作里发起网络业务,等待Socket连接建立后进行网络通讯,业务结束后断开网络连接并释放Socket资源。这种方法将网络通信与UI视图操作耦合在一块,不利于业务的扩展和代码的共享。若调用过程是同步阻塞,则有可能影响用户在UI视图上的操作响应,而采用创建新线程的方式进行网络数据收发,则又面临着多条连接冲突、多线程同步和浪费Socket资源等问题。
综上所述,同一网络业务有可能面临着被多个UI视图调用,而套接字的建立若与各个UI视图绑定,那么其同步控制工作和资源共享方面都存在很多不确定因素。因此,需要一种能被多个UI视图共享调用的Socket通讯,实现UI视图和通讯服务的解耦,并能够统一管理的方法。
发明内容
本发明所要解决的技术问题是提供在Android上实现Socket通讯服务共享的方法,实现Socket通讯服务的共享管理和远程调用,其具体包括:
创建Socket管理模块的步骤,将网络层的所有操作封装为接口,包括Socket的建立和连接、中间管道数据流的创建,以及Socket网络数据的接收和发送;
创建独立线程以运行Socket管理模块的步骤,通过Handler进行线程间的消息通信,并且采用线程消息队列管理多个服务的请求;
将Socket管理模块封装为系统的服务组件的步骤,该服务组件提供服务的创建、销毁、绑定和解绑的接口,以管理多个调用者对Socket服务的共享使用;
将Socket服务所具有的对外接口实现为Android的IBinder对象的步骤,同一进程下的本地调用者通过绑定Socket服务来获取IBinder对象本身,进而访问Socket服务的对外接口,实现Socket通讯服务共享;
采用Android接口描述语言AIDL实现IBinder对象远程代理的步骤,通过进程间的通信和解析,不同进程下的远程调用者在绑定Socket服务后获取IBinder对象代理,进而访问Socket服务的对外接口,实现Socket通讯服务共享。
进一步的,所述将Socket管理模块封装为系统的服务组件的步骤中,是通过重载Socket服务类提供的各接口来实现对Socket管理的服务封装。
进一步的,所述创建独立线程以运行Socket管理模块的步骤中,采用线程消息队列管理多个服务的请求,具体是通过消息的识别字段和附带数据字段描述业务接口的类别和传入参数,对循环消息队列的处理又将消息的相关字段转化为对指定业务的调用。
进一步的,将Socket服务所具有的对外接口实现为Android的IBinder对象的步骤中,IBinder对象实现的具体业务接口根据特定规则转化为对应的消息数据,通过Handler进行发送,并由Socket线程进行解析处理。
进一步的,所述采用Android接口描述语言AIDL实现IBinder对象远程代理,来达到不同进程间Socket通讯服务共享,具体是通过AIDL接口定义文件及其代理对象,使得不同进程的客户端能够了解远程服务的接口描述,并且利用代理对象获得远程服务的调用方式。
本发明采用上述方法,具有如下几种优势:
1. 以通讯服务为Socket通讯的代理主体,将通讯服务进行组件化,实现了业务UI视图和通讯服务的解耦,只要调用的接口定义不变,各组件内部调整都不会相互影响,维护起来也更加方便,同时提高了代码的共享;
2. 以独立线程运行Socket管理模块,提高了服务的运行效率,消息队列的管理使得多个服务请求能够进行统一的调度;
3. 以统一的外部调用接口描述网络通讯业务的使用,这样调用者只需关心业务逻辑而无需了解网络Socket的具体操作;
4. 实现不同进程间Socket通讯服务共享,使服务的应用范围提升到系统级别,并且能够实现程序运行空间的独立,使其不会因其它程序的错误而导致异常。
附图说明
图1是Socket通讯服务架构的示意图;
图2是Socket服务的调用示意图;
图3是Socket共享服务的实现流程图;
图4是Socket共享服务的调用管理流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110389055.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双气流风力发电机
- 下一篇:电控变几何涡轮增压器