虚拟输入控制的方法、装置及系统的制作方法_2

文档序号:9810347阅读:来源:国知局
所述虚拟操作系统包括Android操作系统。
[0083]—种虚拟输入控制的装置,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述装置设置在所述宿主操作系统侧,所述装置包括:
[0084]虚拟网络配置单元,用于配置所述宿主操作系统与所述虚拟操作系统建立网络连接;
[0085]启动虚拟控制单元,用于控制所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;
[0086]虚拟IP地址获取单元,用于获取所述虚拟操作系统的IP地址;
[0087]虚拟连接建立单元,用于根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接;
[0088]用户命令接收单元,用于接收用户的控制命令;
[0089]用户命令处理单元,用于根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程。
[0090]优选的,
[0091]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0092]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0093]优选的,
[0094]所述虚拟机为VirtualBox虚拟机;所述启动虚拟控制单元具体用于,通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。
[0095]优选的,
[0096]所述虚拟机为VirtualBox虚拟机;所述虚拟IP地址获取单元具体用于,读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。
[0097]优选的,
[0098]所述虚拟连接建立单元具体用于,在所述虚拟操作系统的指定端口,所述模拟控制程序与所述虚拟操作系统的vinput进程建立连接。
[0099]优选的,
[0100]所述用户命令处理单元具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。
[0101]优选的,
[0102]所述虚拟网络配置单元,具体用于,配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。
[0103]—种虚拟输入控制的装置,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述装置设置在所述虚拟操作系统侧,所述装置包括:
[0104]虚拟启动单元,用于在所述宿主操作系统中的模拟控制程序控制下,启动所述虚拟操作系统;
[0105]基础进程控制单元,用于在所述虚拟操作系统中通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程;
[0106]虚拟连接建立单元,用于建立所述虚拟输入服务进程与所述模拟控制程序之间的连接;
[0107]用户命令解译单元,用于通过所述虚拟输入服务进程接收所述模拟控制程序发送的输入控制消息,并对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。
[0108]优选的,
[0109]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0110]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0111]优选的,
[0112]所述虚拟机为VirtualBox虚拟机;所述虚拟启动单元具体用于,在所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。
[0113]优选的,
[0114]所述虚拟机为VirtualBox虚拟机;所述基础进程控制单元具体用于,控制所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性,以及,通过init进程启动vinput 进程。
[0115]优选的,
[0116]所述虚拟连接建立单元具体用于,在所述虚拟操作系统的指定端口,控制所述vinput进程建立与所述模拟控制程序的连接。
[0117]优选的,
[0118]所述用户命令解译单元具体用于,控制对所述虚拟输入服务进程获取到的所述输入控制消息进行解译,得到控制命令;对解译后的控制命令进行硬件抽象层HAL转换,得到所述虚拟操作系统可识别的输入控制信号。
[0119]—种虚拟输入控制的系统,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述系统包括:
[0120]宿主操作系统,用于建立与所述虚拟操作系统的网络连接,并通过模拟控制程序启动所述虚拟操作系统,以及,根据获取的所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟操作系统中的输入服务进程之间的连接,并且,在接收到用户的控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;
[0121]虚拟操作系统,用于通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程,以及,由所述虚拟输入服务进程接收所述模拟控制程序发送来的输入控制消息,并且,对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。
[0122]优选的,
[0123]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0124]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0125]优选的,
[0126]所述虚拟机为VirtualBox虚拟机;所述宿主操作系统具体用于,通过模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。
[0127]优选的,
[0128]所述虚拟机为VirtualBox虚拟机;所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。
[0129]优选的,
[0130]所述虚拟操作系统通过init进程启动vinput进程;在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。
[0131]优选的,
[0132]所述宿主操作系统具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。
[0133]优选的,
[0134]所述虚拟操作系统具体用于,控制对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到控制命令;并对所述控制命令进行硬件抽象层HAL转换;得到所述虚拟操作系统可识别的输入控制信号。
[0135]优选的,
[0136]所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。
[0137]优选的,
[0138]所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。
[0139]通过上述方案,运行于宿主操作系统的输入控制程序可获取到虚拟操作系统的IP地址,宿主操作系统通过该IP地址与虚拟操作系统建立起通信连接,并将用户输入的控制命令提供给虚拟操作系统,最终由操作系统转换为虚拟操作系统可识别的输入控制信号。例如,可以实现在宿主操作系统的模拟器展现的窗口上看到Android系统实际运行的图像,并通过键盘/鼠标在模拟器窗口上进行输入,模拟器将得到的用户输入数据经过转化之后,通过通信连接发送到了 Android系统中的vinput进程,vinput进程则将这些输入数据转为对Android系统的实际控制。
[0140]如前所述的,现有技术中VirtualBox将鼠标的活动范围锁定在当前窗口会很大程度上影响用户体验,并且对于不同的Guest系统并不能保证输入控制的顺畅,VirtualBox将鼠标的活动范围锁定在当前窗口是VirtualBox的产品策略所致。而本发明所采用的方式将不再依赖VirtualBox的展现和输入控制方式,所以就不会受其弊端影响。另外,由于VirtualBox是一个开源的通用虚拟机软件,可以在其上运行的操作系统也不仅限于Android,虽然VirtualBox可以为运行其中的Guest系统提供输入控制,但是由于Guest系统种类很多,所以不可能每一个达到非常良好的效果,其自身对Android的输入控制就不够流畅,而本发明提出是输入控制方式是完全为Android定制的,可以达到非常流畅的体验,因此,本发明可有效改善输入控制的流畅度和准确性。
[0141]另外,本发明方案不限于虚拟操作系统运行在虚拟机上,也可以运行在与宿主操作系统不同的物理设备上,因此,本发明方案可减小对虚拟机的依赖,具有在分布式环境下实施的优点。
[0142]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0143]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0144]图1示出了根据本发明一个实施例的虚拟输入控制的方法的流程图;
[0145]图2示出了根据本发明一个实施例的一种宿主操作系统与虚拟操作系统布局示意图;
[0146]图3示出了根据本发明一个实施例的另一种宿主操作系统与虚拟操作系统布局示意图;
[0147]图4示出了根据本发明一个实施例的又一种宿主操作系统与虚拟操作系统布局示意图;
[0148]图5示出了根据本发明另一个实施例的虚拟输入控制的方法的流程图;
[0149]图6示出了根据本发明一个实施例的虚拟输入控制的装置的流程图;
[0150]图7示出了根据本发明另一个实施例的虚拟输入控制的装置的流程图。
【具体实施方式】
[0151]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0152]本发明提出一种模拟输入的控制方法,尽可能减小对VirtualBox虚拟机的依赖,在有效改善用户体验的同时,保证良好的兼容性,并在技术上具有非常好的可扩展性。
[0153]参见图1,为本发明一个实施例提供的一种虚拟输入控制的方法,该方法用于实现在虚拟操作系统中对宿主操作系统的输入进行控制。
[0154]本领域技术人员理解,操作系统分两类,一类是原生,一类是寄生。宿主操作系统,属于原生类操作系统,例如windows、Iinux等。在本发明中,宿主操作系统也称为Host OS、Host系统或Host端,比如,运行VirtualBox虚拟机的操作系统。虚拟操作系统,属于寄生类的操作系统,寄生在原生类的操作系统中。在本发明中,虚拟操作系统也称为Gust OSXust系统或Gust端,比如,运行于VirtualBox虚拟机环境中的操作系统,特别的,本发明优选的是指运行于VirtualBox虚拟机环境中的Android系统。
[0155]其中,宿主操作系统包括但不限于Windows操作系统、Mac操作系统或Linux操作系统;虚拟操作系统包括但
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1