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

文档序号:9810347阅读:511来源:国知局
虚拟输入控制的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及一种虚拟输入控制的方法、装置及系统。
【背景技术】
[0002]随着近年来移动智能终端的普及,催生了移动互联网的飞速发展,现在种类繁多而丰富多彩的应用让移动智能终端可以满足人们的各种需求。但是由于在某些方面的技术瓶颈,诸如电池的续航能力、屏幕的尺寸以及用户在使用移动设备时不可避免的局限(如操作的精准度等),都会影响用户的使用体验。因此如果能在PC上模拟出移动终端的运行环境,并充分发挥PC的优势,例如持续的电力、大屏幕的绚丽的画面效果、键盘鼠标的精准操作等,可以很大程度上满足用户在移动智能终端上无法得到的体验。为此安卓(android)模拟器应运而生。安卓模拟器是一个能在Windows平台模拟安卓手机系统的模拟器,安卓模拟器能在电脑上模拟出安卓手机运行环境,安卓模拟器让用户在电脑上也能体验安卓游戏和应用。比较常用的安卓模拟器有= Android SDK、BlueStacks,可在PC系统和苹果1S系统运行,著名的vmware虚拟机和Virtual Box虚拟机也可以模拟安卓系统,目前这些模拟器软件均可运行在微软公司的Windows操作系统平台。
[0003]如何运用PC现有输入手段实现对虚拟android系统的控制则是关系到用户体验的关键技术。由于需要在虚拟机中运行android,所以通常会考虑使用开源虚拟机VirtualBox JirtualBox是一款开源虚拟机软件,用户可以在VirtualBox上安装并且执行Solaris、Windows、D0S、Linux、0S/2Warp、BSD 等系统作为客户端操作系统。VirtualBox 虚拟机本身就可以将用户在虚拟机上的输入控制模拟输入到内部运行的Guest系统中,但前提是VirtualBox虚拟机窗口必须是可见的。
[0004]但是,借助VirtualBox实现虚拟安卓系统至少存在以下问题:
[0005]首先,由于VirtualBox虚拟机外挂不可定制,因此这对于一个希望自己定制外观的产品来说实际上就是不可接受的。
[0006]其次,如果没有额外的输入控制优化组件,VirtualBox会将用户的鼠标活动范围锁定的在当前的虚拟机窗口上,并且对于android这样的Guest系统的输入控制实际上也并不流畅。也就是,VirtualBox将鼠标的活动范围锁定在当前窗口会很大程度上影响用户体验,并且对于不同的Guest系统并不能保证输入控制的顺畅。VirtualBox将鼠标的活动范围锁定在当前窗口是VirtualBox的产品策略所致。
[0007]另外,由于VirtualBox是一个开源的通用虚拟机软件,可以在其上运行的操作系统也不仅限于Android,虽然VirtualBox可以为运行其中的Guest系统提供输入控制,但是由于Guest系统种类很多,所以不可能每一个达到非常良好的效果。其自身对Android的输入控制就不够流畅。

【发明内容】

[0008]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的虚拟输入控制的方法、装置及系统。
[0009]依据本发明的一个方面,提供一种虚拟输入控制的方法,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述方法包括:
[0010]所述宿主操作系统与所述虚拟操作系统建立网络连接后,通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;
[0011]所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程;
[0012]所述宿主操作系统根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟输入服务进程之间的连接;
[0013]所述宿主操作系统接收到用户的控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;
[0014]所述虚拟操作系统对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。
[0015]优选的,
[0016]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0017]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0018]优选的,
[0019]所述虚拟机为VirtualBox虚拟机;
[0020]所述通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统,包括:通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。
[0021 ]优选的,
[0022]所述虚拟机为VirtualBox虚拟机;
[0023]所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,包括:
[0024]所述虚拟操作系统通过ini t进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;
[0025]所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。
[0026]优选的,
[0027]所述通过所述基础进程启动虚拟输入服务进程,包括:通过ini t进程启动vinput进程;
[0028]所述建立所述模拟控制程序与所述虚拟输入服务进程之间的连接,包括:在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。
[0029]优选的,
[0030]所述根据所述控制命令转译得到输入控制消息,包括:
[0031]所述模拟控制程序对所述控制命令以及控制参数进行转译,生成所述输入控制消息。
[0032]优选的,
[0033]所述虚拟输入服务进程对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号,包括:
[0034]对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述控制命令;
[0035]对解译得到的控制命令进行硬件抽象层HAL转换,得到所述虚拟操作系统可识别的输入控制信号。
[0036]优选的,
[0037]所述宿主操作系统与所述虚拟操作系统建立网络连接包括:所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。
[0038]优选的,
[0039I所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。
[0040]—种虚拟输入控制的方法,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述方法包括:
[0041]所述宿主操作系统与所述虚拟操作系统建立网络连接后,通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;
[0042]所述宿主操作系统通过所述模拟控制程序获取所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟操作系统中虚拟输入服务进程之间的连接;
[0043]所述宿主操作系统接收到用户的控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程。
[0044]优选的,
[0045]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0046]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0047]优选的,
[0048]所述虚拟机为VirtualBox虚拟机;
[0049]所述通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统,包括:通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。
[0050]优选的,
[0051 ] 所述虚拟机为VirtualBox虚拟机;
[0052]所述宿主操作系统通过所述模拟控制程序获取所述虚拟操作系统的IP地址,包括;所述宿主操作系统通过所述模拟控制程序读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。
[0053]优选的,
[0054]所述建立所述模拟控制程序与所述虚拟操作系统中虚拟输入服务进程之间的连接,包括:在所述虚拟操作系统的指定端口,建立所述模拟控制程序与所述虚拟操作系统中虚拟输入服务进程之间的连接。
[0055]优选的,
[0056]所述根据所述控制命令转译得到输入控制消息,包括:
[0057]所述模拟控制程序对所述控制命令以及控制参数进行转译,生成所述输入控制消息。
[0058]优选的,
[0059]所述宿主操作系统与所述虚拟操作系统建立网络连接包括:所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。
[0060]优选的,
[0061]所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。
[0062]—种虚拟输入控制的方法,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,所述方法包括:
[0063]所述虚拟操作系统与所述宿主操作系统建立网络连接后,所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程;
[0064]通过将所述虚拟操作系统的IP地址提供给所述宿主操作系统,建立所述宿主操作系统中的模拟控制程序与所述虚拟输入服务进程之间的连接;
[0065]所述虚拟输入服务进程接收所述输入控制程序发送的输入控制消息,所述虚拟操作系统对所述宿主操作系统发送的输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。
[0066]优选的,
[0067]所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,
[0068]所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。
[0069]优选的,
[0070]所述虚拟机为VirtualBox虚拟机;
[0071]所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,包括:
[0072]所述虚拟操作系统通过ini t进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;
[0073]所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。
[0074]优选的,
[0075]所述通过所述基础进程启动虚拟输入服务进程,包括:通过ini t进程启动vinput进程;
[0076]所述建立所述模拟控制程序与所述虚拟输入服务进程之间的连接,包括:在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。
[0077]优选的,
[0078]所述虚拟输入服务进程对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号,包括:
[0079]对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述控制命令;
[0080]对解译得到的控制命令进行硬件抽象层HAL转换,得到所述虚拟操作系统可识别的输入控制信号。
[0081 ]优选的,
[0082I所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1