【技术实现步骤摘要】
数据通信方法、装置及电子设备
本申请涉及计算机领域,尤其涉及大数据和信息流
,尤其涉及一种数据通信方法、装置及电子设备。
技术介绍
随着计算机技术的发展,电子设备上可以被构建并运行不同技术的虚拟机,如电子设备上可以运行基于flutter技术构建的虚拟机、以及基于native技术构建的虚拟机。在现有技术中,电子设备上的不同虚拟机之间可以进行数据传输,例如,若电子设备上运行有第一虚拟机和第二虚拟机,则第一虚拟机和第二虚拟机可以相互传输数据,且由第一虚拟机获取到待传输数据时,由第一虚拟机对待传输数据进行编码,并将编码后的待传输数据传输给第二虚拟机,由第二虚拟机对编码后的待传输数据进行解码,以便得到待传输数据。然而,采用上述编码和解码的方式传输数据,可能造成数据传输的效率偏低的技术问题。
技术实现思路
本申请提供了一种用于提高数据传输效率的数据通信方法、装置及电子设备。根据本申请的第一方面,提供了一种数据通信方法,应用于电子设备,所述电子设备中运行第一虚拟机和第二虚拟机,所述方法包括:通过所述第一虚拟机获取待传输数据,其中,所述待传输数据具有数据类型;根据所述待传输数据的数据类型,通过所述第一虚拟机确定所述待传输数据的传输方式,其中,所述待传输数据的传输方式为直接传输方式或者地址传输方式,所述直接传输方式为不编码数据的传输方式,所述地址传输方式为指示出所述待传输数据的存储地址的传输方式;根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传 ...
【技术保护点】
1.一种数据通信方法,应用于电子设备,所述电子设备中运行第一虚拟机和第二虚拟机,所述方法包括:/n通过所述第一虚拟机获取待传输数据,其中,所述待传输数据具有数据类型;/n根据所述待传输数据的数据类型,通过所述第一虚拟机确定所述待传输数据的传输方式,其中,所述待传输数据的传输方式为直接传输方式或者地址传输方式,所述直接传输方式为不编码数据的传输方式,所述地址传输方式为指示出所述待传输数据的存储地址的传输方式;/n根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机。/n
【技术特征摘要】
1.一种数据通信方法,应用于电子设备,所述电子设备中运行第一虚拟机和第二虚拟机,所述方法包括:
通过所述第一虚拟机获取待传输数据,其中,所述待传输数据具有数据类型;
根据所述待传输数据的数据类型,通过所述第一虚拟机确定所述待传输数据的传输方式,其中,所述待传输数据的传输方式为直接传输方式或者地址传输方式,所述直接传输方式为不编码数据的传输方式,所述地址传输方式为指示出所述待传输数据的存储地址的传输方式;
根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机。
2.根据权利要求1所述的方法,其中,根据所述待传输数据的数据类型,通过所述第一虚拟机确定所述待传输数据的传输方式,包括:
根据预设的数据类型与传输方式之间的对应关系,通过所述第一虚拟机确定所述待传输数据的传输方式。
3.根据权利要求1或2所述的方法,其中,所述地址传输方式为采用指针指示出所述待传输数据的存储地址的传输方式。
4.根据权利要求2所述的方法,其中,若所述待传输数据的数据类型为第一数据类型,则与所述待传输数据的数据类型对应的传输方式为直接传输方式;若所述待传输数据的数据类型为第二数据类型,则与所述待传输数据的数据类型对应的传输方式为地址传输方式。
5.根据权利要求4所述的方法,其中,所述第一数据类型为以下的任意一种:整数数据类型、布尔数据类型、浮点数据类型;
所述第二数据类型为非所述第一数据类型的其他数据类型。
6.根据权利要求1-5任一项所述的方法,其中,所述第一虚拟机为采用flutter技术的虚拟机,所述第二虚拟机为采用native技术的虚拟机。
7.根据权利要求6所述的方法,其中,所述第一虚拟机部署有编程语言层和内核语言层;根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机,包括:
通过第一通信链路将所述待传输数据从所述编程语言层传输给所述内核语言层,其中,所述第一通信链路是采用外部函数接口建立的所述编程语言层与所述内核语言层之间的通信链路;
采用所述待传输数据的传输方式,将所述待传输数据从所述内核语言层传输给所述第二虚拟机。
8.根据权利要求7所述的方法,其中,所述第二虚拟机部署有Java语言层;由所述内核语言层采用所述待传输数据的传输方式,将所述待传输数据传输给所述第二虚拟机,包括:
根据待传输数据的传输方式,通过第二通信链路将所述待传输数据传输给所述第二虚拟机;其中,所述第二通信链路是采用本地接口协议建立的所述内核语言层与所述Java语言层之间的通信链路。
9.根据权利要求7所述的方法,其中,所述第二虚拟机部署有Objective-C语言层;由所述内核语言层采用所述待传输数据的传输方式,将所述待传输数据传输给所述第二虚拟机,包括:
根据待传输数据的传输方式,通过第三通信链路将所述待传输数据传输给所述第二虚拟机;其中,所述第三通信链路是所述内核语言层与所述Objective-C语言之间的通信链路。
10.根据权利要求1-5任一项所述的方法,其中,所述第一虚拟机为采用native技术的虚拟机,所述第二虚拟机为采用flutter技术的虚拟机。
11.根据权利要求10所述的方法,其中,所述第一虚拟机部署有Java语言层,所述第二虚拟机部署有编程语言层和内核语言层;根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机,包括:
根据待传输数据的传输方式,依次通过第二通信链路和第一通信链路,将所述待传输数据从所述Java语言层传输给所述第二虚拟机,其中,所述第二通信链路是采用本地接口协议建立的所述内核语言层与所述Java语言层之间的通信链路,所述第一通信链路是采用外部函数接口建立的所述编程语言层与所述内核语言层之间的通信链路。
12.根据权利要求10所述的方法,其中,所述第一虚拟机部署有Objective-C语言层,所述第二虚拟机部署有编程语言层和内核语言层;根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机,包括:
根据待传输数据的传输方式,依次通过第三通信链路和第一通信链路,将所述待传输数据从所述Objective-C语言层传输给所述第二虚拟机,其中,所述第三通信链路是所述内核语言层与所述Objective-C语言之间的通信链路,所述第一通信链路是采用外部函数接口建立的所述编程语言层与所述内核语言层之间的通信链路。
13.根据权利要求1至12中任一项所述的方法,还包括:
通过所述第一虚拟机接收所述第二虚拟机通过与目标传输数据对应的传输方式所传递的目标传输数据,其中,与所述目标传输数据对应的传输方式为依据所述目标传输数据的数据类型所确定的,与目标传输数据对应的传输方式为直接传输方式或者地址传输方式。
14.根据权利要求1至13中任一项所述的方法,其中,若所述待传输数据的数量为多个,则所述待传输数据的数据类型为集合数据类型,所述待传输数据的传输方式为地址传输方式。
15.根据权利要求1至13中任一项所述的方法,其中,若所述待传输数据的数量为多个,则每一待传输数据具有对应的传输方式;根据所述待传输数据的传输方式,通过所述第一虚拟机将所述待传输数据传输给所述第二虚拟机,包括:
为每一待传输数据分配位置标识;
根据每一待传输数据的传输方式,通过所述第一虚拟机将每一携带位置标识的待传输数据传输给所述第二虚拟机。
16.根据权利要求1至15中任一项所述的方法,若所述待传输数据的传输方式为地址传输方式,则所述方法还包括:
通过所述第二虚拟机,依据所述地址传输方式所指示的存储地址获取所述待传输数据。
17.一种数据通信装置,应用于电子设备,所述电子设备中运行第一虚拟机和第二虚拟机,所述装置包括:
第一获取单...
【专利技术属性】
技术研发人员:李俊蓉,高飞,曲彦辉,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。