【技术实现步骤摘要】
跨进程数据传输方法、装置、电子设备和存储介质
本申请涉及数据传输
,具体涉及一种跨进程数据传输方法、装置、电子设备和存储介质。
技术介绍
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。安卓(Android)操作系统在开发过程中,基于功能隔离、进程安全、进程保活等等考虑,经常需要为应用划分进程,然而这种操作不得不面临跨进程通信和跨进程共享数据的挑战。跨进程通信的目的在于实现进程间数据的分享以及交互。最典型的跨进程通信的应用场景是剪切板上数据的复制与粘贴,但这种跨进程通信的方式仅限于一些String类数据的传送。在Android系统中,对于进程间数据的传输限于AIDL(AndroidInterfaceDefinitionLanguage,即Android接口定义语言)方式,但该方式下的数据传输限于基本的数据类型,如int、long、list、String等,如果需要传送一个对象的话,则需要将类进行序列化,如进行Parcelable化(可打包化)或Serializable(序列化)化,但Parcelable化或Serializable化又需要额外实现序列化的接口。而且AIDL属于单向通信,即一套AIDL方案仅允许进程A向进程B进行传送,但要使进程B向进程A传送的话则需要另一套AIDL方案。
技术实现思路
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的跨进程数据传输方法、装置、电 ...
【技术保护点】
1.一种跨进程数据传输方法,其特征在于,所述方法应用于安卓操作系统中的数据传输层,所述方法包括:/n通过第一进程中实现的数据传输接口,接收所述第一进程的传输数据;/n将所述传输数据写入到内存空间中;/n通过第二进程中实现的数据传输接口,接收所述第二进程对所述传输数据的获取请求;/n根据所述获取请求,从所述内存空间中提取所述传输数据并发送给所述第二进程;/n其中,所述第一进程中实现的数据传输接口和所述第二进程中实现的数据传输接口均是基于所述数据传输层定义的数据传输接口实现的。/n
【技术特征摘要】
1.一种跨进程数据传输方法,其特征在于,所述方法应用于安卓操作系统中的数据传输层,所述方法包括:
通过第一进程中实现的数据传输接口,接收所述第一进程的传输数据;
将所述传输数据写入到内存空间中;
通过第二进程中实现的数据传输接口,接收所述第二进程对所述传输数据的获取请求;
根据所述获取请求,从所述内存空间中提取所述传输数据并发送给所述第二进程;
其中,所述第一进程中实现的数据传输接口和所述第二进程中实现的数据传输接口均是基于所述数据传输层定义的数据传输接口实现的。
2.根据权利要求1所述的方法,其特征在于,所述将所述传输数据写入到内存空间中包括:
对所述传输数据进行解析,根据解析结果确定所述传输数据的数据类型,其中所述数据类型包括基础数据和/或对象数据;
根据所述传输数据的数据类型对所述传输数据进行封装,得到已封装的传输数据;
将所述已封装的传输数据写入所述内存空间中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述传输数据的数据类型对所述传输数据进行封装,得到已封装的传输数据包括:
若所述传输数据中包括所述基础数据和所述对象数据,则分别对所述基础数据和所述对象数据进行封装。
4.根据权利要求3所述的方法,其特征在于,所述对所述对象数据进行封装包括:
确定所述对象数据是否已经序列化;
若所述对象数据已经序列化,则直接对所述对象数据进行封装;
若所述对象数据没有序列化,则记录所述对象数据的对象格式,并对所述对象数据进行封装,以将所述对象数据的对象格式和已封装的对象数据均写入所述内存空间中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述获取请求,从所述内存空间中提取所述传输数据并发送给所述第二进程包括:
根据所述获取请求,从所述内存空间中获取所述传输数据;
对所述传输数据进行解析,根据解析结果确定所述传输数据的数据类型,其中所述数据类型包括基础数据和/或对象数据;
根据所述传输数据的数据类型对解析后的传输数据进行还原,得到已还原的传输数据;
通过所述第二进程中实现的数据传输接口,将所述已还原的传输数据发送给所述第二进程。
6.根据权利要求5所述的方法,其特征在于,所述根据所述传输数据的数据类型对解析后的传输数据进行还原,得到已还原的传输数据...
【专利技术属性】
技术研发人员:李廷,蔡蓉,
申请(专利权)人:重庆创通联智物联网有限公司,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。