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

文档序号:9810347阅读:来源:国知局
roid;
[0190]S502: android启动,包括:Iinux内核启动->android基础进程丨11;[1:启动->加载init.rc->运行虚拟输入服务进程vinput,等待与外部建立连接;[0191 ] S503:Player程序获取android系统的 ip地址,包括:android运行init.vbox.sh写入 IP 地址至 guestproperty、P layer 从 VirtualBox 的guestproperty 读取 IP 地址;
[0? 92] S504: Player程序与android内部的vinput进程建立tcp连接,并完成初始化;
[0193] S505 = Player程序将Host端收到的用户输入的控制命令进行转译,得到输入控制消息;
[ΟΙ94] S506: Player程序将输入控制消息通过之前建立的通信通道发送到android系统的vinput进程;
[ΟΙ95] S506: Android系统对vinput进程收到的输入控制消息进行解译得到控制命令,然后将控制命令通过HAL模拟成android系统的实际输入控制信号。
[0196]下面以一个具体实例对本发明实施例进行说明。
[0197]以鼠标点击为例,Player在收到鼠标点击后,先获取鼠标在Player清染窗口的相对位置,然后再根据当前虚拟屏幕尺寸和的旋转状态,以及渲染窗口的缩放比例,计算出此次点击在虚拟机屏幕的坐标;之后将表示点击触屏的控制命令及坐标位置转译成控制消息,之后通过通信连接将控制消息发送到Android系统中的vinput进程。Vinput进程在收到控制消息之后,解译控制命令,之后将控制命令通过HAL转换成实际的输入。至此Android认为触屏被用户点击了。无论是鼠标的输入还是键盘的输入或是其它设备输入,原理相同,因此不多举例赘述。
[0198]与上述方法相对应,本发明还提供一种虚拟输入控制的装置,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,该装置设置在所述宿主操作系统侧,参见图6,为该装置结构示意图。该装置包括:
[0199]虚拟网络配置单元600,用于配置宿主操作系统与虚拟操作系统之间的网络连接;
[0200]启动虚拟控制单元601,用于控制宿主操作系统中的模拟控制程序启动虚拟操作系统;
[0201 ]虚拟IP地址获取单元602,用于获取虚拟操作系统的IP地址;
[0202]虚拟连接建立单元603,用于根据虚拟操作系统的IP地址,建立模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接;
[0203]用户命令接收单元604,用于接收用户的控制命令;具体的,可以将虚拟操作系统的输出图像渲染到一个窗口上呈现给用户(例如,相当于虚拟手机的显示器),用户在这个渲染窗口上的输入操作(键盘鼠标操作等)被用户命令接收单元604接收,用户命令接收单元604将接收到的用户命令转给用户命令处理单元605处理;
[0204]用户命令处理单元605,用于根据控制命令转译得到输入控制消息,控制模拟控制程序将输入控制消息发送给虚拟输入服务进程。
[0205]优选的,虚拟操作系统运行在与宿主操作系统所在物理设备相独立的另一个物理设备上;或者,虚拟操作系统运行在虚拟机上,其中,虚拟机运行在宿主操作系统所在的物理设备上,或者,虚拟机运行在与宿主操作系统所在物理设备不同的另一个物理设备上。
[0206]优选的,虚拟机为VirtualBox虚拟机;启动虚拟控制单元601具体用于,通过宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动虚拟操作系统。
[0207]优选的,虚拟机为VirtualBox虚拟机;虚拟IP地址获取单元602具体用于,读取VirtualBox虚拟机的客户属性,获取虚拟操作系统的IP地址。
[0208]优选的,虚拟连接建立单元603具体用于,在虚拟操作系统的指定端口,模拟控制程序与虚拟操作系统的vinput进程建立连接。
[0209]优选的,用户命令处理单元605具体用于,对控制命令以及控制参数进行转译,生成输入控制消息。
[0210]优选的,虚拟网络配置单元600具体用于,配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。
[0211]与上述方法相对应,本发明还提供另一种虚拟输入控制的装置,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,该装置设置在所述虚拟操作系统侧,参见图7,为该装置结构示意图。该装置包括:
[0212]虚拟启动单元701,用于在宿主操作系统中的模拟控制程序控制下,启动虚拟操作系统;
[0213]基础进程控制单元702,用于在虚拟操作系统中通过基础进程加载预定义脚本,从而将虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过基础进程启动虚拟输入服务进程;
[0214]虚拟连接建立单元703,用于建立虚拟输入服务进程与模拟控制程序之间的连接;
[0215]用户命令解译单元704,用于通过虚拟输入服务进程接收模拟控制程序发送的输入控制消息,并对输入控制消息进行解译,得到虚拟操作系统可识别的输入控制信号。
[0216]优选的,虚拟操作系统运行在与宿主操作系统所在物理设备相独立的另一个物理设备上;或者,虚拟操作系统运行在虚拟机上,其中,虚拟机运行在宿主操作系统所在的物理设备上,或者,虚拟机运行在与宿主操作系统所在物理设备不同的另一个物理设备上。
[0217]优选的,虚拟机为VirtualBox虚拟机;虚拟启动单元701具体用于,由宿主操作系统中的模拟控制程序控制VirtualBox虚拟机基础上,由VirtualBox虚拟机启动虚拟操作系统。
[0218]优选的,虚拟机为VirtualBox虚拟机;基础进程控制单元702具体用于,控制虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性,以及,通过init进程启动vinput进程。
[0219]优选的,虚拟连接建立单元703具体用于,在虚拟操作系统的指定端口,控制vinput进程建立与模拟控制程序的连接。
[0220]优选的,用户命令解译单元704具体用于,控制对虚拟输入服务进程获取到的输入控制消息进行解译,得到控制命令,并对控制命令进行硬件抽象层HAL转换;经过HAL转换后,得到虚拟操作系统可识别的输入控制信号。
[0221]与上述方法相对应,本发明还提供一种虚拟输入控制的系统,用于实现在虚拟操作系统中对宿主操作系统的输入进行控制,该该系统包括:
[0222]宿主操作系统,用于建立与虚拟操作系统之间的网路连接,并通过模拟控制程序启动虚拟操作系统,以及,根据获取的虚拟操作系统的IP地址,建立模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接,并且,在接收到用户的控制命令后,根据控制命令转译得到输入控制消息,由模拟控制程序将输入控制消息发送给虚拟输入服务进程;
[0223]虚拟操作系统,用于通过基础进程加载预定义脚本,从而将虚拟操作系统的IP地址提供给宿主操作系统,以及,通过基础进程启动虚拟输入服务进程,以及,由虚拟输入服务进程接收输入控制消息,并且,对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。
[0224]优选的,虚拟操作系统运行在与宿主操作系统所在物理设备相独立的另一个物理设备上;或者,虚拟操作系统运行在虚拟机上,其中,虚拟机运行在宿主操作系统所在的物理设备上,或者,虚拟机运行在与宿主操作系统所在物理设备不同的另一个物理设备上。
[0225]优选的,虚拟机为VirtualBox虚拟机;宿主操作系统具体用于,通过模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动虚拟操作系统。
[0226]优选的,虚拟机为VirtualBox虚拟机;虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取虚拟操作系统的IP地址。
[0227]优选的,虚拟操作系统通过init进程启动vinput进程;在虚拟操作系统的指定端口,vinput进程建立与模拟控制程序的连接。
[0228]优选的,宿主操作系统具体用于,对控制命令以及控制参数进行转译,生成输入控制消息。
[0229]优选的,虚拟操作系统具体用于,控制对虚拟输入服务进程获取到的控制命令进行转译,得到控制命令,之后对控制命令进行硬件抽象层HAL转换;经过HAL转换后,得到虚拟操作系统可识别的输入控制信号。
[0230]优选的,宿主操作系统配置一个专门用来与虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在虚拟网络连接中连通。
[0231]优选的,宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;虚拟操作系统包括Android操作系统。
[0232]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0233]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0234]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0235]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0236]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0237]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟输入控制的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0238]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1