一种Linux系统与Android系统的双系统通信装置技术领域
本发明涉及智能终端通信领域,具体涉及一种Linux系统与Android
系统的双系统通信装置。
背景技术
随着智能化、物联网时代的到来,智能家居、智能手机、智能路由等
智能终端日益普及,走进千家万户。
Google公司推出的Android(安卓)是一个以Linux为基础的开源移
动设备操作系统,其主要通信方式为Binder通信,Binder通信采用同步
方式,效率高,Binder通信是通过Linux的BinderDriver来实现的。由
于Android免费开放,系统集成性高,被广泛的运用在智能手机、平板电
脑等各类多媒体智能终端上。
目前,除了采用Android技术的智能移动终端产品之外,还有很大一
部分智能移动终端产品采用的是Android之外的技术,比如Linux系统。
Liunx系统通信的方式主要有Socket、命名管道、消息队列、信号量和共
享内存方式。而由于通信方式的不同,Android系统和Linux系统间的相互
通信就会受到阻碍。
发明内容
本发明所要解决的技术问题是由于通信方式的不同,Android系统和
Linux系统间的相互通信受阻的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种Linux
系统与Android系统的双系统通信装置,包括Android系统的Service服
务和Linux系统的Mpa进程服务,所述Service服务接收Android系统的
APP应用程序发送的第一请求数据,并设置有第一格式转换单元和第一
Socket单元;所述Mpa进程服务接收Linux系统的进程服务发送的第二请
求数据,并设置有第二格式转换单元和第二Socket单元;
所述第一格式转换单元将第一请求数据或者对第二请求数据的进行处
理的第一处理结果转化为第一格式,所述第一Socket单元将第一格式的第
一请求数据或者第一处理结果以Socket报文形式发送给所述第二Socket
单元,所述第二Socket单元读取Socket报文的第一请求数据或者第一处
理结果,所述第二格式转换单元将读取的第一请求数据或者第一处理结果
转换为第二格式,Linux系统的进程服务根据第二格式的第一请求数据进行
相应处理得到第二处理结果或者接收第一处理结果并显示;
所述第二格式转换单元将第二处理结果或者第二请求数据转化为第二
格式,所述第二Socket单元将第二格式的第二处理结果或者第二请求数据
以Socket报文形式发送给所述第一Socket单元,所述第一Socket单元读
取Socket报文的第二处理结果或者第二请求数据,第一格式转换单元将读
取的第二处理结果或者第二请求数据转化为第一格式,Android系统的APP
应用程序接收第二处理结果并显示或者根据第一格式的第二请求数据进行
相应处理得到第一处理结果。
在上述一种Linux系统与Android系统的双系统通信装置中,所述第
一格式为GSON字符串格式,所述第二格式为JSON字符串格式。
在上述一种Linux系统与Android系统的双系统通信装置中,在所述
第一格式转换单元和所述第一Socket单元之间设有第一加密单元和第一解
密单元;在所述第二格式转换单元和所述第二Socket单元之间设有分别与
第一加密单元和第一解密单元对应的第二解密单元和第二加密单元;
所述第一加密单元对由第一格式转换单元转化为第一格式的第一请求
数据或者第一处理结果按照预设格式进行加密;
所述第二解密单元对由第二Socket单元从Socket报文中读取的第一
请求数据或者第一处理结果以预设格式进行解密;
所述第二加密单元对由第二格式转换单元转化为第二格式的第二处理
结果或者第二请求数据按照预设格式进行加密;
所述第一解密单元对由第一Socket单元从Socket报文中读取的第二
处理结果或者第二请求数据以预设格式进行解密。
在上述一种Linux系统与Android系统的双系统通信装置中,所述预
设格式为Base64方式。
本发明通过充分利用Android系统自带的Service服务和GSON算法以
及Linux系统的Mpa进程服务和开源的JSON算法,并采用C/S模式和Socket
通信方式进行数据传输,实现了在多媒体终端Linux与Android双系统间
的通信,不仅保证低成本,结构简单,实施性高,而且通信速度快,移植
性强,扩展性、可靠性好。
附图说明
图1为本发明提供的一种Linux系统与Android系统的双系统通信装
置结构框图;
图2为本发明提供的一种Linux系统与Android系统的双系统通信装
置的工作流程图。
具体实施方式
本发明充分利用Android系统中提供的Service服务和Linux系统中
提供的Mpa进程服务,并采用C/S(Client/Server)模式,通过Socket
通信方式实现Android系统与Linux系统双系统间的通信。其中,当Android
系统作为Client端时,Linux系统则作为Server端;当Android系统作为
Server端时,则Linux系统作为Client端,两系统可随时根据数据传输的
需要进行改变,来实时保证通信的准确性。
下面结合说明书附图和具体实施例对本发明做出详细的说明。
如图1所示,本发明提供了一种Linux系统与Android系统的双系统
通信装置,该装置的应用环境为Linux系统与Android系统双系统终端,
具体包括Android系统的Service服务10和Linux系统的Mpa进程服务20;
Service服务10设置有第一格式转换单元11和第一Socket单元12,
用于为Android系统中的各个应用程序提供与Linux系统终端进行通信的
服务,即Service服务10接收Android系统的APP应用程序发送的第一请
求数据,并通过Mpa进程服务20或Linux系统其他进程服务对该第一请求
数据进行与请求相应的处理,得到第二处理结果;
Mpa进程服务20设置有第二格式转换单元21和第二Socket单元22,
用于为Linux系统中各个进程提供与Android系统终端进行通信的服务,
即Mpa进程服务20接收Linux系统的进程服务发送的第二请求数据,并通
过Android系统的APP应用程序对该第二请求数据进行与请求相应的处理,
得到第一处理结果。
第一格式转换单元11将第一请求数据或者对第二请求数据的进行处理
的第一处理结果转化为第一格式,第一Socket单元12将第一格式的第一
请求数据或者第一处理结果以Socket报文形式发送给第二Socket单元22,
第二Socket单元22监听指定端口的Socket报文,并读取Socket报文中
的第一请求数据或者第一处理结果,再由第二格式转换单元21将读取的第
一请求数据或者第一处理结果转换为第二格式,Linux系统的服务进程(Mpa
进程服务20和其他进程服务)根据第二格式的第一请求数据进行相应处理
得到第二处理结果或者接收第一处理结果并显示,其中,要将第二处理结
果返回Android系统端;
第二格式转换单元21将第二处理结果或者第二请求数据转化为第二格
式,第二Socket单元22将第二格式的第二处理结果或者第二请求数据以
Socket报文形式发送给第一Socket单元12,第一Socket单元12监听指
定端口的Socket报文,并读取Socket报文中的第二处理结果或者第二请
求数据,第一格式转换单元11将读取的第二处理结果或者第二请求数据转
化为第一格式,Android系统的APP应用程序接收第二处理结果并显示或者
根据第一格式的第二请求数据进行相应处理得到第一处理结果,再将第一
处理结果返回Linux系统端。
以上便完成了一次Linux系统与Android系统间的通信,其中,第一
格式为GSON字符串格式,第二格式为JSON字符串格式。
在本发明中,在第一格式转换单元11和第一Socket单元12之间设有
第一加密单元和第一解密单元;在第二格式转换单元21和第二Socket单
元22之间设有分别与第一加密单元和第一解密单元对应的第二解密单元和
第二加密单元;其中:
第一加密单元对由第一格式转换单元转化11为第一格式的第一请求数
据或者第一处理结果按照预设格式进行加密;
第二解密单元对由第二Socket单元22从Socket报文中读取的第一请
求数据或者第一处理结果以预设格式进行解密;
第二加密单元对由第二格式转换单元21转化为第二格式的第二处理结
果或者第二请求数据按照预设格式进行加密;
第一解密单元对由第一Socket单元12从Socket报文中读取的第二处
理结果或者第二请求数据以预设格式进行解密。
例如第一加密单元和第二加密单元别对Android系统和Linux系统发
出的数据以Base64方式进行加密;则第一解密单元和第二解密单元分别对
Android系统和Linux系统对接收的Socket报文中的数据以Base64方式进
行解密处理。
图2为本发明提供的一种Linux系统与Android系统的双系统通信装
置的工作流程图,下面以Android系统的APP应用程序向Linux系统进程
服务发送请求为例,对其通信过程进行详细说明,具体如下:
步骤S101、Android系统的APP应用程序发起相应的请求,Android
系统的应用程序通过AIDL接口注册Service服务,然后向Service服务发
送请求数据;
步骤S102、Android系统的Service服务收到APP应用程序发送的请
求数据后,会将数据转换成GSON字符串格式;
步骤S103、将GSON字符串格式的请求数据按照Base64方式进行加密;
步骤S104、将加密后的请求数据通过Socket方式进行打包,以Socket
报文形式发送到Liunx系统端;
步骤S105、Linux系统端的Mpa进程服务监听到Socket端口的Socket
报文,接收并读取到Socket报文的请求数据;
步骤S106、将从Socket报文中读取的请求数据按照Base64方式进行
解密处理;
步骤S107、将解密后的请求数据按照JSON字符串格式提取出相应的字
段内容;
步骤S108、Mpa进程服务对根据相应的字段内容在自身模块内或者转
发给其他进程服务进行相应处理,得到请求处理结果;
步骤S109、Mpa进程服务将请求处理结果转换成JSON字符串格式;
步骤S110、将JSON字符串格式的请求处理结果按照Base64方式进行
加密;
步骤S111、将加密后的请求处理结果以Socket方式进行打包,以
Socket报文形式发送给Android系统端;
步骤S112、Android端的Service服务监听到Socket端口的Socket
报文,接收并读取到Socket报文的请求处理结果;
步骤S113、将读取到Socket报文的请求处理结果按照Base64方式进
行解密处理;
步骤S114、将解密后的请求处理结果转换成JSON字符串格式,并提取
出所需要的字段内容,并返回给自身系统的APP应用程序,来做对应的处
理。
显然本领域的技术人员可以对本发明进行各种改动和变型而不脱离本
发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利
要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。