CN116932122A - 硬件共享方法及相关设备 - Google Patents
硬件共享方法及相关设备 Download PDFInfo
- Publication number
- CN116932122A CN116932122A CN202210318467.5A CN202210318467A CN116932122A CN 116932122 A CN116932122 A CN 116932122A CN 202210318467 A CN202210318467 A CN 202210318467A CN 116932122 A CN116932122 A CN 116932122A
- Authority
- CN
- China
- Prior art keywords
- hardware
- electronic device
- module
- virtual
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000004891 communication Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 135
- 238000004590 computer program Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 238000010295 mobile communication Methods 0.000 description 12
- 210000000988 bone and bone Anatomy 0.000 description 9
- 230000005236 sound signal Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种硬件共享方法及相关设备。其中方法应用于第一电子设备,包括:在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。采用本申请实施例,使用本地硬件和使用其他电子设备的硬件的流程无差异性。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种硬件共享方法及相关设备。
背景技术
不同的电子设备提供的硬件能力是不同的。例如,手机的摄像头能力通常高于电视或者笔记本电脑的摄像头能力,电视或者电脑的音频能力通常高于手机的音频能力。当用户使用的电子设备的某一方面的硬件能力较弱时,有诉求通过该电子设备使用周边其他电子设备的该方面的硬件能力。例如,通过手机使用电视或者电脑的音频能力,通过电视或者电脑使用手机的摄像头能力。然而,某一电子设备在使用其他电子设备的硬件时,通常需要该电子设备中的应用触发获取其他电子设备的硬件的信息,以及根据其他电子设备的硬件的信息使用该应用定制化的接口创建虚拟硬件驱动,进而基于该虚拟硬件驱动访问其他电子设备的硬件的。因此,电子设备使用本地硬件和使用其他电子设备的硬件的流程不同,导致开发变得繁琐。如何使得电子设备使用本地硬件和使用其他电子设备的硬件的流程相同,是急需解决的技术问题。
发明内容
本申请实施例提供一种硬件共享方法及相关设备,使用本地硬件和使用其他电子设备的硬件的流程无差异性。
第一方面,本申请实施例提供一种硬件共享方法,应用于第一电子设备,所述方法包括:在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
在本申请实施例中,第一电子设备与第二电子设备建立通信连接之后,例如第一电子设备与第二电子设备在组成超级终端之后,第一电子设备即可获取第二电子设备中的硬件的信息创建虚拟硬件驱动。如此,无需第一电子设备中运行的应用触发获取第二电子设备中的硬件的信息,也无需第一电子设备中运行的应用调用定制化接口创建虚拟硬件驱动。第一电子设备中运行的应用上线后可以自动发现虚拟硬件驱动,调用与查询和使用本地硬件驱动相同的接口查询和使用虚拟硬件驱动。因此,本申请电子设备使用本地硬件和使用其他电子设备的硬件的流程无差异性。对于用户操作电子设备使用本地硬件和使用其他电子设备的体验是一致的。
在一种可能的实现方式中,所述与所述第二电子设备进行数据同步,以得到第一硬件的信息,包括:通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
在本实现方式中,第一电子设备与第二电子设备之间建立分布式数据库。第一电子设备可以采集本地硬件的信息,并写入分布式数据库。第一电子设备也可以采集本地硬件的信息,并写入分布式数据库。如此,第一电子设备与第二电子设备之间通过分布式数据库即可获得对方的硬件的信息。
在一种可能的实现方式中,所述方法还包括:采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;将所述第二硬件的信息写入所述分布式数据库。
在本实现方式中,第一电子设备也可以采集本地硬件的信息,并写入本地分布式数据库。如此,便于第二电子设备通过分布式数据库获得第一电子设备的硬件的信息,从而便于第二电子设备使用第一电子设备的硬件。
在一种可能的实现方式中,所述第一电子设备运行有第一应用;所述方法还包括:在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
在本实现方式中,在第一电子设备中的第一应用上线之前,第一电子设备就创建好了虚拟硬件驱动。如此,第一应用上线后即可自动发现虚拟硬件驱动,也即可以发现第二电子设备中的第一硬件,从而通过虚拟硬件驱动调用第一硬件。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块;所述在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,包括:在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;通过所述虚拟硬件驱动调用所述第一硬件。
在本实现方式中,第一电子设备中的第一应用上线后,若需要使用第二电子设备中的第一硬件,其直接向框架层的硬件服务模块发送第一请求。硬件服务模块接收到第一请求之后,打开虚拟硬件驱动,从而通过虚拟硬件驱动调用第一硬件。如此,第一电子设备中的第一应用使用第二电子设备中的第一硬件,与使用本地硬件的流程是相同的。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述方法还包括:在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。分布式硬件模块中可以存储硬件的冲突处理策略,通过分布式硬件模块来统一管理硬件的使用冲突。例如,通过分布式硬件模块来统一管理本地硬件和虚拟硬件的使用冲突。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件已经被第一电子设备中的第一应用使用时,第一电子设备中的第二应用还请求使用该虚拟硬件,此时该虚拟硬件存在使用冲突。由分布式硬件模块根据该虚拟硬件的冲突处理策略来处理冲突,确定第二应用是否可以抢占该虚拟硬件。
在一种可能的实现方式中,所述方法还包括:若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件已经被第一电子设备中的第一应用使用时,第一电子设备中的第二应用还请求使用该虚拟硬件,此时该虚拟硬件存在使用冲突。由于该虚拟硬件不允许被抢占,分布式硬件模块将不允许被抢占的冲突处理结果反馈给硬件服务模块,进而由硬件服务模块反馈给第二应用。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述方法还包括:若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
在本实现方式中,对硬件发生热插拔的场景,由分布式硬件组件在驱动层感知硬件发生热插拔事件,并上报给硬件服务模块,进而由硬件服务模块上报给上层应用。例如第一硬件从第二电子设备中移除或第一电子设备与第二电子设备的通信连接断开,导致第一硬件发生热插拔,虚拟硬件驱动向分布式硬件模块发送第一硬件发生热插拔的通知,分布式硬件模块再向硬件服务模块发送第一硬件发生热插拔的通知,从而应用可以感知虚拟硬件发生热插拔。现有技术中,应用无法感知虚拟硬件发生热插拔,应用只有在使用虚拟硬件时才知道虚拟硬件不可用。相比于现有技术,本申请应用可以在使用虚拟硬件之前获知虚拟硬件不可用。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述方法还包括:通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;通过所述分布式硬件模块记录所述第一硬件被调用。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件被第一电子设备中的第一应用使用时,虚拟硬件驱动会向分布式硬件模块发送虚拟硬件被调用的通知,分布式硬件模块记录该虚拟硬件被调用的状态。现有技术,由于虚拟硬件驱动由应用获取硬件的信息后创建,应用本身没有管理和监测虚拟硬件的使用状态,因此在虚拟硬件的使用过程中,尤其是本地硬件和虚拟硬件切换场景,无法进行冲突检测并上报。相比于现有技术,本申请可以记录虚拟硬件的使用状态,从而利于该虚拟硬件的冲突检测。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述方法还包括:在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
在本实现方式中,当第一电子设备中的第二硬件作为第二电子设备中的虚拟硬件,已经被第二电子设备调用时,第一电子设备中的第三应用还请求使用该第二硬件,此时该第二硬件存在使用冲突。由分布式硬件模块根据第二硬件的冲突处理策略处理冲突,确定第三应用是否可以抢占该第二硬件。
在一种可能的实现方式中,所述方法还包括:若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
在本实现方式中,当第一电子设备中的第二硬件作为第二电子设备中的虚拟硬件,已经被第二电子设备调用时,第一电子设备中的第三应用还请求使用该第二硬件,此时该第二硬件存在使用冲突。由于该第二硬件不允许被抢占,分布式硬件模块将不允许被抢占的冲突处理结果反馈给硬件服务模块,进而由硬件服务模块反馈给第三应用。
第二方面,本申请实施例提供一种硬件共享装置,应用于第一电子设备,所述装置包括:获取单元,用于在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;处理单元,用于根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
在一种可能的实现方式中,所述获取单元,具体用于:通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
在一种可能的实现方式中,所述处理单元,还用于:采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;将所述第二硬件的信息写入所述分布式数据库。
在一种可能的实现方式中,所述第一电子设备运行有第一应用;所述处理单元,还用于:在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块;所述处理单元,具体用于:在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;通过所述虚拟硬件驱动调用所述第一硬件。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述处理单元,还用于:在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。
在一种可能的实现方式中,所述处理单元,还用于:若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述处理单元,还用于:若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述处理单元,还用于:通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;通过所述分布式硬件模块记录所述第一硬件被调用。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述处理单元,还用于:在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
在一种可能的实现方式中,所述处理单元,还用于:若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
需要说明的是,第二方面的有益效果可以参照第一方面的描述,此处不再重复描述。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器。存储器耦合到所述处理器并存储由所述处理器执行的程序,其中,所述程序在由所述处理器执行时,使得所述电子设备执行第一方面中任意一种可能的实施例中的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如第一方面中任意一种可能的实施例中的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如第一方面中任意一种可能的实施例中的方法。
第六方面,本申请实施例提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如第一方面中任意一种可能的实施例中的方法。
附图说明
图1是本申请实施例提供的电子设备的结构的示意性图。
图2是基于安卓系统(Android)和苹果公司开发的移动操作系统(iOS)等操作系统的电子设备发现和使用本地硬件的流程示意图。
图3是基于Android和iOS等操作系统的电子设备发现和使用其他电子设备的硬件的流程示意图。
图4是本申请实施例提供的一种硬件共享系统的架构图。
图5是本申请实施例提供的一种硬件共享方法的流程示意图。
图6是本申请实施例提供的另一种硬件共享方法的流程示意图。
图7是本申请实施例提供的又一种硬件共享方法的流程示意图。
图8是本申请实施例提供的一种硬件共享装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本说明书中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本说明书所描述的实施例可以与其它实施例相结合。
首先,介绍本申请以下实施例中提供的电子设备。
请参阅图1,图1是本申请实施例提供的电子设备100的结构的示意性图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触控操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触控操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触控操作强度的触控操作,可以对应不同的操作指令。例如:当有触控操作强度小于第一压力阈值的触控操作作用于短消息应用图标时,执行查看短消息的指令。当有触控操作强度大于或等于第一压力阈值的触控操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。
气压传感器180C用于测量气压。
磁传感器180D包括霍尔传感器。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触控操作。触摸传感器可以将检测到的触控操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触控操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触控操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触控操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
其次,进一步分析本申请所要解决的技术问题。
请参阅图2,图2是基于Android和iOS等操作系统的电子设备发现和使用本地硬件的流程示意图。如图2所示,应用通过框架层的硬件服务模块发现硬件驱动,并且可以通过硬件服务模块调用硬件驱动,从而使用硬件。例如,硬件服务模块包括相机服务模块、音频服务模块的输入服务模块等,硬件驱动包括相机驱动、扬声器驱动和键盘、鼠标驱动等。应用可以通过相机服务模块发现和使用相机驱动,从而使用电子设备的相机。应用可以通过音频服务模块发现和使用扬声器驱动,从而使用电子设备的扬声器。应用可以通过输入服务模块发现和使用键盘、鼠标驱动,从而使用电子设备的键盘、鼠标。
请参阅图3,图3是基于Android和iOS等操作系统的电子设备发现和使用其他电子设备的硬件的流程示意图。如图3所示,基于Android和iOS等操作系统的电子设备要使用其他电子设备的硬件能力时,用户需要通过应用手动发现其他电子设备的硬件。在使用其他电子设备的硬件之前,该电子设备中应用需要先向其他电子设备请求获取其硬件的信息。该其他电子设备通过虚拟化接口查询加载本地硬件的信息,然后发送给该应用。其中,该虚拟化接口是适配该应用的定制化接口。该应用通过该虚拟化接口创建虚拟硬件驱动,之后该应用才能通过硬件服务模块调用该虚拟硬件驱动,从而使用其他电子设备中的硬件。这个流程对于开发者比较繁琐,而且电子设备和使用本地硬件流程不一致。
上述发现和使用其他电子设备的硬件的流程存在的缺点包括:
(1)应用参与手动发现其他电子设备的硬件。
需要使用分布式能力的应用主动向其他电子设备请求硬件的信息,每个应用都需要适配并调用定制化接口。
(2)交互流程不一致。
应用使用其他电子设备的硬件和使用本地硬件的使用方式不一致。对于本地硬件,应用可以直接通过框架层的硬件服务模块调用硬件驱动,即可使用该本地硬件。对于其他电子设备的硬件,应用需要调用定制化接口在本地创建虚拟硬件驱动后才能使用,且需要应用适配该定制化接口。
(3)硬件管理策略不一致。
本地硬件驱动(简称硬件驱动)全局管理,与应用无关。虚拟硬件驱动发现与可见性由应用控制,同时冲突处理也需要应用适配管理。
综上分析,本申请所要解决的技术问题具体包括:
(1)屏蔽了应用发现和使用本地硬件和其他电子设备的硬件的差异性,应用无需使用额外的定制化接口访问其他电子设备的硬件,提供和访问本地硬件一致的接口与交互体验。
(2)本地硬件驱动和虚拟硬件驱动统一管理。
鉴于上述需要解决的技术问题,本申请实施例提供一种硬件共享方法及相关设备。在两个电子设备建立通信连接后,例如在组成超级终端后,利用数据库同步技术,电子设备将其他电子设备的硬件的信息同步到本地。之后,电子设备自动添加其他电子设备的硬件到本地,也即电子设备在本地创建其他电子设备的硬件对应的虚拟硬件驱动。如此,电子设备上运行的应用可以自动发现其他电子设备的硬件。并且,使用统一接口进行本地硬件和其他电子设备的硬件的查询、使用和切换。如此,归一化使用本地硬件和其他电子设备的硬件,也即应用使用本地硬件和使用其他电子设备的硬件的流程一致。此外,统一管理本地硬件和其他电子设备的硬件,统一处管理硬件状态,统一处理硬件使用冲突。
请参阅图4,图4是本申请实施例提供的一种硬件共享系统的架构图。该硬件共享系统可以为由第一电子设备和第二电子设备组成的超级终端。第一电子设备和第二电子的结构如图1所示。第一电子设备和第二电子设备的软件结构包括应用层,框架层,驱动层,等等。
应用层包括一个或多个应用。应用层中应用可以使用电子设备中的本地硬件或虚拟硬件。虚拟硬件为其他电子设备中的硬件在该电子设备中的虚拟化。
框架层包括硬件服务模块,硬件服务模块包括:硬件查询子模块,硬件使用子模块,硬件切换子模块,等等。
硬件查询子模块用于查询电子设备中的本地硬件或虚拟硬件。例如,硬件查询子模块用于查询电子设备中的本地硬件驱动或虚拟硬件驱动,本地硬件驱动用于调用本地硬件,虚拟硬件驱动用于调用虚拟硬件。
硬件使用子模块用于调用本地硬件驱动或虚拟硬件驱动。硬件使用子模块通过调用本地硬件驱动,从而使用本地硬件。硬件使用子模块通过调用虚拟硬件驱动,从而使用虚拟硬件。例如,硬件使用子模块可以接收应用的硬件使用请求,从而打开本地硬件驱动或虚拟硬件驱动,进而实现使用本地硬件驱动或虚拟硬件驱动。
硬件切换子模块用于切换硬件之间的使用。例如,从虚拟硬件的使用切换为本地硬件的使用,从本地硬件的使用切换为虚拟硬件的使用,从一个虚拟硬件的使用切换为另一个虚拟硬件的使用,以及从一个本地硬件的使用切换为另一个本地硬件的使用。
驱动层包括:一个或多个本地硬件驱动(简称硬件驱动),一个或多个虚拟硬件驱动,等等。本地硬件驱动和虚拟硬件驱动可以组成电子设备的硬件资源池。本地硬件驱动包括:相机驱动,音频驱动,键盘、鼠标驱动,等等。虚拟硬件驱动包括:虚拟相机驱动,虚拟音频驱动,虚拟键盘、鼠标驱动,等等。作为一种示例,第一电子设备中的虚拟硬件驱动用于调用第二电子设备中的硬件,第二电子设备中的虚拟硬件驱动用于调用第一电子设备中的硬件。
第一电子设备和第二电子设备分别还可以包括分布式硬件模块。分布式硬件模块包括:硬件状态管理子模块,硬件能力管理子模块,冲突处理子模块,热插拔子模块,等等。
硬件状态管理子模块用于记录或存储本地硬件和虚拟硬件是否被使用的状态。例如,第一电子设备中的本地硬件被第一电子设备中的应用使用时,第一电子设备中的硬件状态管理子模块记录该本地硬件被使用的状态。第一电子设备中的虚拟硬件被第一电子设备中的应用使用时,第一电子设备中的硬件状态管理子模块可以记录该虚拟硬件被使用的状态。需要说明的是,第二电子设备中的本地硬件被第一电子设备中的应用作为虚拟硬件使用时,第二电子设备中的硬件状态管理子模块可以记录该本地硬件被使用的状态,第一电子设备中的硬件状态管理子模块也可以记录该虚拟硬件被使用的状态。
硬件能力管理子模块用于记录本地硬件和虚拟硬件的信息,本地硬件的信息可以表征本地硬件的能力,虚拟硬件的信息可以表征虚拟硬件的能力。其中,电子设备中的虚拟硬件的信息也即其他电子设备中的硬件的信息。例如,第一电子设备中的虚拟硬件的信息可以为第二电子设备中的硬件的信息。
冲突处理子模块用于处理本地硬件和虚拟硬件使用的冲突,包括将本地硬件和虚拟硬件使用的冲突上报给硬件服务模块。冲突处理子模块中存储有本地硬件和虚拟硬件在使用冲突时的冲突处理策略。例如,第一电子设备中的本地硬件被第一电子设备中的第一应用使用时,第一电子设备中的第二应用再请求使用该本地硬件时,由第一电子设备中的冲突处理子模块处理该本地硬件使用的冲突。或者,第一电子设备中的虚拟硬件被第一电子设备中的第一应用使用时,第一电子设备中的第二应用再请求使用该虚拟硬件时,由第一电子设备中的冲突处理子模块处理该虚拟硬件使用的冲突。又或者,第一电子设备中的本地硬件作为第二电子设备中的虚拟硬件被第二电子设备使用时,第一电子设备中的应用再请求使用该本地硬件时,由第一电子设备中的冲突处理子模块处理该本地硬件使用的冲突。
热插拔子模块用于检测或感知虚拟硬件的热插拔事件,并将虚拟硬件的热插拔事件上报给硬件服务模块。例如,第一电子设备中的虚拟硬件被移除时,由第一电子设备中的热插拔子模块感知到,并上报给第一电子设备中的硬件服务模块。
需要说明的是,第一电子设备和第二电子设备中的本地硬件和虚拟硬件均是由分布式硬件模块全局管理的。例如,本地硬件和虚拟硬件的使用冲突、使用状态、热插拔事件等均由分布式硬件模块管理。
第一电子设备和第二电子设备分别还可以包括分布式数据库。第一电子设备和第二电子设备可以基于分布式数据库进行数据同步。例如,第一电子设备和第二电子设备基于分布式数据库同步硬件的信息。
基于对上述硬件共享系统的介绍可知,第一电子设备和第二电子设备组成超级终端之后,第一电子设备和第二电子设备之间会自动完成组网,第一电子设备和第二电子设备上的分布式硬件模块在启动时分别会自动采集本电子设备上的硬件的信息。硬件的信息包括但不限于:摄像头的分辨率、帧率、码率和色彩空间等,麦克风(Mic)或扬声器(Speaker)的采样率、位宽、通道数等。第一电子设备中的分布式硬件模块采集到的第一电子设备的硬件的信息由该分布式硬件模块写入第一电子设备的分布式数据库。第二电子设备中的分布式硬件模块采集到的第二电子设备的硬件的信息由该分布式硬件模块写入第二电子设备的分布式数据库。当第一电子设备和第二电子设备组网后,分布式数据库会在不同第一电子设备和第二电子设备之间同步数据。数据同步完成后,由分布式硬件模块监听硬件更新事件,并基于该事件自动创建虚拟硬件。创建后的虚拟硬件和本地硬件一样,通过硬件服务模块由应用层的应用查询获取,应用层的应用使用相同的接口使用本地硬件和虚拟硬件以及完成硬件间的切换。
请参阅图5,图5是本申请实施例提供的一种硬件共享方法的流程示意图。该方法应用于图4所示的第一电子设备,该方法包括但不限于如下步骤:
501:在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件。
例如,第一电子设备与第二电子设备组成超级终端的设备之后,可以相互看到对方的硬件信息。
应理解,第二电子设备可以包括一个或多个硬件,第一硬件为第二电子设备中的任意一个硬件。本申请所描述的硬件不限于摄像头、麦克风和扬声器,还可以包括键盘、鼠标等传感器。
502:根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
应理解,第一电子设备根据第一硬件的信息创建虚拟硬件驱动自后,第一电子设备可以通过该虚拟硬件驱动调用该第一硬件。
需要说明的是,第二电子设备同样也可以在数据同步时获取第一电子设备中的硬件的信息,以及根据第一电子设备中的硬件的信息在本地创建虚拟驱动,从而第二电子设备可以调用第一电子设备中的硬件。例如,第二电子设备与第一电子设备进行数据同步,得到第一电子设备中的第二硬件的信息,并基于第二硬件的信息在本地创建虚拟驱动,从而第二电子设备可以调用第一电子设备中的第二硬件。
作为一种示例,第一电子设备和第二电子设备组成超级终端之后,第一电子设备上能查询到第二电子设备的摄像头、麦克风和扬声器等硬件的信息,并基于第二电子设备的摄像头、麦克风和扬声器等硬件的信息在本地创建相应的虚拟硬件驱动,从而第一电子设备可以直接使用第二电子设备的摄像头、麦克风和扬声器等硬件;同时,第二电子设备上能查询到第一电子设备的摄像头、麦克风和扬声器等硬件信息,并基于第一电子设备的摄像头、麦克风和扬声器等硬件的信息在本地创建相应的虚拟硬件驱动,从而第二电子设备可以直接使用第一电子设备的摄像头、麦克风和扬声器等硬件。
在本申请实施例中,第一电子设备与第二电子设备建立通信连接之后,例如第一电子设备与第二电子设备在组成超级终端之后,第一电子设备即可获取第二电子设备中的硬件的信息创建虚拟硬件驱动。如此,无需第一电子设备中运行的应用触发获取第二电子设备中的硬件的信息,也无需第一电子设备中运行的应用调用定制化接口创建虚拟硬件驱动。第一电子设备中运行的应用上线后可以自动发现虚拟硬件驱动,调用与查询和使用本地硬件驱动相同的接口查询和使用虚拟硬件驱动。因此,本申请电子设备使用本地硬件和使用其他电子设备的硬件的流程无差异性。对于用户操作电子设备使用本地硬件和使用其他电子设备的体验是一致的。
在一种可能的实现方式中,所述与所述第二电子设备进行数据同步,以得到第一硬件的信息,包括:通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
在本实现方式中,第一电子设备与第二电子设备之间建立分布式数据库。第一电子设备可以采集本地硬件的信息,并写入分布式数据库。第一电子设备也可以采集本地硬件的信息,并写入分布式数据库。如此,第一电子设备与第二电子设备之间通过分布式数据库即可获得对方的硬件的信息。
在一种可能的实现方式中,所述方法还包括:采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;将所述第二硬件的信息写入所述分布式数据库。
应理解,第一电子设备可以包括一个或多个硬件,第二硬件为第一电子设备中的任意一个硬件。
在本实现方式中,第一电子设备也可以采集本地硬件的信息,并写入本地分布式数据库。如此,便于第二电子设备通过分布式数据库获得第一电子设备的硬件的信息,从而便于第二电子设备使用第一电子设备的硬件。
在一种可能的实现方式中,所述第一电子设备运行有第一应用;所述方法还包括:在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
在本实现方式中,在第一电子设备中的第一应用上线之前,第一电子设备就创建好了虚拟硬件驱动。如此,第一应用上线后即可自动发现虚拟硬件驱动,也即可以发现第二电子设备中的第一硬件,从而通过虚拟硬件驱动调用第一硬件。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块;所述在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,包括:在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;通过所述虚拟硬件驱动调用所述第一硬件。
在本实现方式中,第一电子设备中的第一应用上线后,若需要使用第二电子设备中的第一硬件,其直接向框架层的硬件服务模块发送第一请求。硬件服务模块接收到第一请求之后,打开虚拟硬件驱动,从而通过虚拟硬件驱动调用第一硬件。如此,第一电子设备中的第一应用使用第二电子设备中的第一硬件,与使用本地硬件的流程是相同的。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述方法还包括:在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。分布式硬件模块中可以存储硬件的冲突处理策略,通过分布式硬件模块来统一管理硬件的使用冲突。例如,通过分布式硬件模块来统一管理本地硬件和虚拟硬件的使用冲突。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件已经被第一电子设备中的第一应用使用时,第一电子设备中的第二应用还请求使用该虚拟硬件,此时该虚拟硬件存在使用冲突。由分布式硬件模块根据该虚拟硬件的冲突处理策略来处理冲突,确定第二应用是否可以抢占该虚拟硬件。
在一种可能的实现方式中,所述方法还包括:若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件已经被第一电子设备中的第一应用使用时,第一电子设备中的第二应用还请求使用该虚拟硬件,此时该虚拟硬件存在使用冲突。由于该虚拟硬件不允许被抢占,分布式硬件模块将不允许被抢占的冲突处理结果反馈给硬件服务模块,进而由硬件服务模块反馈给第二应用。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述方法还包括:若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
在本实现方式中,对硬件发生热插拔的场景,由分布式硬件组件在驱动层感知硬件发生热插拔事件,并上报给硬件服务模块,进而由硬件服务模块上报给上层应用。例如第一硬件从第二电子设备中移除或第一电子设备与第二电子设备的通信连接断开,导致第一硬件发生热插拔,虚拟硬件驱动向分布式硬件模块发送第一硬件发生热插拔的通知,分布式硬件模块再向硬件服务模块发送第一硬件发生热插拔的通知,从而应用可以感知虚拟硬件发生热插拔。现有技术中,应用无法感知虚拟硬件发生热插拔,应用只有在使用虚拟硬件时才知道虚拟硬件不可用。相比于现有技术,本申请应用可以在使用虚拟硬件之前获知虚拟硬件不可用。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述方法还包括:通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;通过所述分布式硬件模块记录所述第一硬件被调用。
在本实现方式中,当第二电子设备中的第一硬件作为第一电子设备中的虚拟硬件,该虚拟硬件被第一电子设备中的第一应用使用时,虚拟硬件驱动会向分布式硬件模块发送虚拟硬件被调用的通知,分布式硬件模块记录该虚拟硬件被调用的状态。现有技术,由于虚拟硬件驱动由应用获取硬件的信息后创建,应用本身没有管理和监测虚拟硬件的使用状态,因此在虚拟硬件的使用过程中,尤其是本地硬件和虚拟硬件切换场景,无法进行冲突检测并上报。相比于现有技术,本申请可以记录虚拟硬件的使用状态,从而利于该虚拟硬件的冲突检测。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述方法还包括:在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
在本实现方式中,当第一电子设备中的第二硬件作为第二电子设备中的虚拟硬件,已经被第二电子设备调用时,第一电子设备中的第三应用还请求使用该第二硬件,此时该第二硬件存在使用冲突。由分布式硬件模块根据第二硬件的冲突处理策略处理冲突,确定第三应用是否可以抢占该第二硬件。
在一种可能的实现方式中,所述方法还包括:若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
在本实现方式中,当第一电子设备中的第二硬件作为第二电子设备中的虚拟硬件,已经被第二电子设备调用时,第一电子设备中的第三应用还请求使用该第二硬件,此时该第二硬件存在使用冲突。由于该第二硬件不允许被抢占,分布式硬件模块将不允许被抢占的冲突处理结果反馈给硬件服务模块,进而由硬件服务模块反馈给第三应用。
下面通过示例一和示例二对图5所示的方法做更详细的介绍。
示例一:
请参阅图6,图6是本申请实施例提供的另一种硬件共享方法的流程示意图。该方法应用于图4所示的硬件共享系统,该方法包括但不限于如下步骤:
601:第二电子设备通过本地分布式硬件模块采集第一硬件的信息。
应理解,分布式硬件模块启动时即可采集本地的硬件信息。例如,第二电子设备中的本地分布式硬件模块采集第二电子设备中的硬件的信息,从而采集到第一硬件的信息。
602:第二电子设备通过本地分布式硬件模块将第一硬件的信息写入分布式数据库。
603:第一电子设备与第二电子设备建立通信连接。
例如,第一电子设备与第二电子设备组成超级终端,此时第一电子设备与第二电子设备均已上线。
604:第一电子设备与第二电子设备通过分布式数据库进行数据同步。
应理解,第一电子设备与第二电子设备进行数据同步以后,第一电子设备的本地分布式数据库已经从第二电子设备中同步到了第一硬件的信息,也即第一电子设备获取到第一硬件的信息。
605:第一电子设备通过本地分布式硬件模块监听到本地分布式数据库中的硬件的信息有更新。
应理解,由于第一电子设备与第二电子设备进行数据同步以后,第一电子设备通过本地分布式硬件模块可以监听到本地分布式数据库同步到了第一硬件的信息。
606:第一电子设备通过本地分布式硬件模块根据第一硬件的信息创建虚拟硬件驱动。
应理解,第一电子设备获取到第二电子设备的第一硬件的信息后,自动根据第一硬件的信息创建虚拟硬件驱动,从而将第一硬件添加为虚拟硬件。此后,对于第一电子设备的应用层的应用,应用上线后自动可见该虚拟硬件驱动,也即自动可见该虚拟硬件,或者说自动可见第一硬件;并且应用可以直接使用该虚拟硬件驱动,也即直接使用该虚拟硬件,或者说直接使用第一硬件。
示例二:
请参阅图7,图7是本申请实施例提供的又一种硬件共享方法的流程示意图。该方法应用于图4所示的第一电子设备,该方法包括但不限于如下步骤:
701:第一电子设备通过硬件服务模块接收来自第一电子设备运行的第一应用的使用虚拟硬件的第一请求。
应理解,在执行步骤701之期,第一电子设备与第二电子设备进行数据同步,获取到了第二电子设备中的第一硬件的信息,并且基于第一硬件的信息创建了虚拟硬件驱动。从而第一硬件作为第一电子设备中的虚拟硬件,可以被第一电子设备运行的应用使用。
702:第一电子设备通过硬件服务模块调用虚拟硬件驱动。
应理解,在第一硬件并没有被使用时,硬件服务模块调用虚拟硬件驱动,也即实现第一应用使用虚拟硬件,例如第一应用使用第一硬件。
703:第一电子设备通过虚拟硬件驱动向分布式硬件模块中的硬件状态管理子模块进行状态上报。
应理解,虚拟硬件驱动被调用之后,也即虚拟硬件被使用之后,虚拟硬件驱动会向硬件状态管理子模块上报其已经被第一应用调用的状态,或者说虚拟硬件驱动会向硬件状态管理子模块上报虚拟硬件已经被第一应用调用的状态。硬件状态管理子模块会记录或存储虚拟硬件(驱动)被第一应用调用的状态。
704:第一电子设备通过硬件服务模块接收来自第一电子设备运行的第二应用的使用虚拟硬件的第二请求。
705:第一电子设备通过硬件服务模块调用虚拟硬件驱动。
706:第一电子设备通过虚拟硬件驱动向分布式硬件模块中的冲突处理子模块发送冲突处理的通知。
应理解,由于第二应用请求使用虚拟硬件之前,虚拟硬件已经被第二应用使用。如果虚拟硬件驱动再接收到硬件服务模块的调用,说明存在使用冲突。此时,虚拟硬件驱动向冲突处理子模块发送冲突处理的通知,由冲突处理子模块进行冲突处理。
其中,冲突处理子模块中存储有冲突处理策略,冲突处理子模块基于冲突处理策略来进行冲突处理。当冲突处理策略为虚拟硬件(第一硬件)允许被抢占,则冲突处理子模块通知虚拟硬件驱动继续调用虚拟硬件(第一硬件),从而第二应用对虚拟硬件(第一硬件)进行抢占使用,也即从第一应用使用虚拟硬件(第一硬件)变成第二应用使用虚拟硬件(第一硬件)。当冲突处理策略为虚拟硬件(第一硬件)允许被抢占,则冲突处理子模块向硬件服务模块进行冲突上报。
707:第一电子设备通过冲突处理子模块向硬件服务模块进行冲突上报。
应理解,冲突上报例如包括上报虚拟硬件(第一硬件)使用冲突、虚拟硬件(第一硬件)不允许被抢占等。
708:第一电子设备通过硬件服务模块向第二应用进行冲突上报。
例如,在虚拟硬件(第一硬件)使用冲突上报后,应用可以发起虚拟硬件(第一硬件)的抢占或者选择等待已使用的虚拟硬件(第一硬件)关闭后再使用。
709:第一电子设备通过虚拟硬件驱动向分布式硬件模块中的热插拔子模块进行连接断开/硬件移除上报。
例如,当虚拟硬件(第一硬件)被移除或第一电子设备和第二电子设备连接断开时,虚拟硬件驱动会向热插拔子模块上报,从而热插拔子模块可以感知到虚拟硬件(第一硬件)发生热插拔。
710:第一电子设备通过热插拔子模块发送硬件移除的通知。
应理解,热插拔子模块通过硬件移除的通知将虚拟硬件(第一硬件)发生热插拔上报给硬件服务模块。进一步地,硬件服务模块还可以通知应用层的应用虚拟硬件(第一硬件)移除。
需要说明的是,若第一电子设备中的本地硬件作为虚拟硬件正在被第二电子设备使用,此时第一电子设备中本地应用(例如第一应用或第二应用)请求使用该本地硬件,通过硬件服务模块调用本地硬件驱动时,本地硬件驱动也会向冲突处理子模块发送冲突处理的通知,由冲突处理子模块进行冲突处理,也可以将冲突处理结果通过硬件服务模块上报给该本地应用。
请参见图8,图8是本申请实施例提供的一种硬件共享装置的结构示意图。该硬件共享装置800应用于第一电子设备。该硬件共享装置800可以包括获取单元801、处理单元802。其中,各个单元的详细描述如下:
获取单元801,用于在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;
处理单元802,用于根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
在一种可能的实现方式中,所述获取单元801,具体用于:通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
在一种可能的实现方式中,所述处理单元802,还用于:采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;将所述第二硬件的信息写入所述分布式数据库。
在一种可能的实现方式中,所述第一电子设备运行有第一应用;所述处理单元802,还用于:在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块;所述处理单元802,具体用于:在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;通过所述虚拟硬件驱动调用所述第一硬件。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述处理单元802,还用于:在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。
在一种可能的实现方式中,所述处理单元802,还用于:若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述处理单元802,还用于:若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
在一种可能的实现方式中,所述第一电子设备还包括分布式硬件模块;所述处理单元802,还用于:通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;通过所述分布式硬件模块记录所述第一硬件被调用。
在一种可能的实现方式中,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述处理单元802,还用于:在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
在一种可能的实现方式中,所述处理单元802,还用于:若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
需要说明的是,图8所描述的硬件共享装置800的各个单元的实现可以参照图5所示的实施例的相应描述。并且,图8所描述的硬件共享装置800带来的有益效果,也可以参照图5所示的实施例的相应描述。
本申请实施例提供一种电子设备,包括:处理器和存储器。存储器耦合到所述处理器并存储由所述处理器执行的程序,其中,所述程序在由所述处理器执行时,使得所述电子设备执行图5所示的实施例中的方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如图5所示的实施例中的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如图5所示的实施例中的方法。
本申请实施例提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如图5所示的实施例中的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本说明书中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者终端设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。此外,本申请各实施例中的术语、解释说明,可以参照其他实施例中相应的描述。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上描述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (25)
1.一种硬件共享方法,其特征在于,应用于第一电子设备,所述方法包括:
在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;
根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
2.根据权利要求1所述的方法,其特征在于,所述与所述第二电子设备进行数据同步,以得到第一硬件的信息,包括:
通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;
将所述第二硬件的信息写入所述分布式数据库。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一电子设备运行有第一应用;所述方法还包括:
在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
5.根据权利要求4所述的方法,其特征在于,所述第一电子设备包括硬件服务模块;所述在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,包括:
在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;
通过所述虚拟硬件驱动调用所述第一硬件。
6.根据权利要求5所述的方法,其特征在于,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述方法还包括:
在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;
通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;
若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述第一电子设备还包括分布式硬件模块;所述方法还包括:
若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述第一电子设备还包括分布式硬件模块;所述方法还包括:
通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;
通过所述分布式硬件模块记录所述第一硬件被调用。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述方法还包括:
在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;
若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;
若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
12.一种硬件共享装置,其特征在于,应用于第一电子设备,所述装置包括:
获取单元,用于在所述第一电子设备与第二电子设备建立通信连接之后,与所述第二电子设备进行数据同步,以得到第一硬件的信息,所述第一硬件为所述第二电子设备中的硬件;
处理单元,用于根据所述第一硬件的信息创建虚拟硬件驱动,所述虚拟硬件驱动用于调用所述第一硬件。
13.根据权利要求12所述的装置,其特征在于,所述获取单元,具体用于:
通过分布式数据库与所述第二电子设备进行数据同步,以得到所述第一硬件的信息,所述第一硬件的信息由所述第二电子设备写入所述分布式数据库。
14.根据权利要求13所述的装置,其特征在于,所述处理单元,还用于:
采集第二硬件的信息,所述第二硬件为所述第一电子设备中的硬件;
将所述第二硬件的信息写入所述分布式数据库。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述第一电子设备运行有第一应用;所述处理单元,还用于:
在接收到来自所述第一应用的第一请求之后,通过所述虚拟硬件驱动调用所述第一硬件,所述第一请求用于调用所述第一硬件。
16.根据权利要求15所述的装置,其特征在于,所述第一电子设备包括硬件服务模块;所述处理单元,具体用于:
在通过所述硬件服务模块接收到所述第一请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动;
通过所述虚拟硬件驱动调用所述第一硬件。
17.根据权利要求16所述的装置,其特征在于,所述第一电子设备还包括分布式硬件模块,所述第一电子设备还运行有第二应用;所述处理单元,还用于:
在通过所述硬件服务模块接收到来自所述第二应用的第二请求之后,通过所述硬件服务模块调用所述虚拟硬件驱动,所述第二请求用于调用所述第一硬件;
通过所述虚拟硬件驱动从所述分布式硬件模块中获取第一冲突处理策略,所述第一冲突处理策略包括所述第一硬件允许被抢占或所述第一硬件不允许被抢占;
若所述第一冲突处理策略为所述第一硬件允许被抢占,则通过所述虚拟硬件驱动调用所述第一硬件。
18.根据权利要求17所述的装置,其特征在于,所述处理单元,还用于:
若所述第一冲突处理策略为所述第一硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第二应用发送所述第一硬件不允许被抢占的通知。
19.根据权利要求16-18任一项所述的装置,其特征在于,所述第一电子设备还包括分布式硬件模块;所述处理单元,还用于:
若所述第一硬件发生热插拔,则通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件发生热插拔的通知,以及通过所述分布式硬件模块向所述硬件服务模块发送所述第一硬件发生热插拔的通知。
20.根据权利要求16-19任一项所述的装置,其特征在于,所述第一电子设备还包括分布式硬件模块;所述处理单元,还用于:
通过所述虚拟硬件驱动向所述分布式硬件模块发送所述第一硬件被调用的通知;
通过所述分布式硬件模块记录所述第一硬件被调用。
21.根据权利要求12-20任一项所述的装置,其特征在于,所述第一电子设备包括硬件服务模块和分布式硬件模块,所述第一电子设备运行有第三应用;所述处理单元,还用于:
在通过所述硬件服务模块接收到来自所述第三应用的第三请求之后,通过所述硬件服务模块调用硬件驱动,所述第二请求用于调用第二硬件,所述第二硬件为所述第一电子设备中的硬件;
若所述第二硬件被所述第二电子设备调用,则通过所述硬件驱动从所述分布式硬件模块中获取第二冲突处理策略,所述第二冲突处理策略包括所述第二硬件允许被抢占或所述第二硬件不允许被抢占;
若所述第二冲突处理策略为所述第二硬件允许被抢占,则通过所述硬件驱动调用所述第二硬件。
22.根据权利要求21所述的装置,其特征在于,所述处理单元,还用于:
若所述第二冲突处理策略为所述第二硬件不允许被抢占,则通过所述分布式硬件模块向所述硬件服务模块发送所述第二硬件不允许被抢占的通知,以及通过所述硬件服务模块向所述第三应用发送所述第二硬件不允许被抢占的通知。
23.一种电子设备,其特征在于,包括:
处理器;
存储器,耦合到所述处理器并存储由所述处理器执行的程序,其中,所述程序在由所述处理器执行时,使得所述电子设备执行权利要求1-11中任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如权利要求1-11中任一项所述的方法。
25.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210318467.5A CN116932122A (zh) | 2022-03-29 | 2022-03-29 | 硬件共享方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210318467.5A CN116932122A (zh) | 2022-03-29 | 2022-03-29 | 硬件共享方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932122A true CN116932122A (zh) | 2023-10-24 |
Family
ID=88375818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210318467.5A Pending CN116932122A (zh) | 2022-03-29 | 2022-03-29 | 硬件共享方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932122A (zh) |
-
2022
- 2022-03-29 CN CN202210318467.5A patent/CN116932122A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112399390B (zh) | 一种蓝牙回连的方法及相关装置 | |
CN114079893B (zh) | 蓝牙通信方法、终端设备及计算机可读存储介质 | |
CN114115770B (zh) | 显示控制的方法及相关装置 | |
CN110602312B (zh) | 通话方法、电子设备及计算机可读存储介质 | |
CN116361255A (zh) | 数据同步方法、电子设备和计算机可读存储介质 | |
CN113126948B (zh) | 一种音频播放方法及相关设备 | |
CN114915747B (zh) | 视频通话的方法、电子设备及可读存储介质 | |
CN113490291B (zh) | 数据下载方法、装置和终端设备 | |
EP4106238A1 (en) | Wireless communication system and method | |
CN114125793A (zh) | 一种蓝牙数据传输方法及相关装置 | |
CN111343326A (zh) | 获取测试日志的方法及相关装置 | |
CN114827098B (zh) | 合拍的方法、装置、电子设备和可读存储介质 | |
CN114554012B (zh) | 来电接听方法、电子设备及存储介质 | |
CN116389884B (zh) | 缩略图显示方法及终端设备 | |
CN116133165A (zh) | 耳机连接系统、方法、耳机、电子设备及可读存储介质 | |
CN114116610A (zh) | 获取存储信息的方法、装置、电子设备和介质 | |
CN110737916A (zh) | 通信终端及处理方法 | |
CN116932122A (zh) | 硬件共享方法及相关设备 | |
CN114125805B (zh) | 蓝牙回连方法及终端设备 | |
WO2023020420A1 (zh) | 音量显示方法、电子设备及存储介质 | |
CN115460445B (zh) | 电子设备的投屏方法和电子设备 | |
CN114258044B (zh) | 待机方法、系统及终端设备 | |
WO2024093703A1 (zh) | 一种实例的管理方法、装置、电子设备及存储介质 | |
WO2020029213A1 (zh) | 通话发生srvcc切换时,接通和挂断电话的方法 | |
CN116938950A (zh) | 一种数据传输的方法、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |