CN105573816B - The method, apparatus and system virtually inputted - Google Patents
The method, apparatus and system virtually inputted Download PDFInfo
- Publication number
- CN105573816B CN105573816B CN201510921140.7A CN201510921140A CN105573816B CN 105573816 B CN105573816 B CN 105573816B CN 201510921140 A CN201510921140 A CN 201510921140A CN 105573816 B CN105573816 B CN 105573816B
- Authority
- CN
- China
- Prior art keywords
- operating system
- virtual
- input
- host
- host operating
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种虚拟输入的方法、装置及系统,其中的方法包括:建立宿主操作系统与虚拟操作系统之间的通信连接;在宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;宿主操作系统接收到用户输入的按键信息后,根据对应关系,确定用户输入的按键信息对应的控制命令;通过通信连接,宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,由虚拟操作系统对输入控制消息进行处理。可见,本发明向用户提供自定义键盘,可方便用户操作,从而允许用户按照个人习惯进行虚拟输入,提升用户感受。
The invention discloses a virtual input method, device and system, wherein the method includes: establishing a communication connection between a host operating system and a virtual operating system; providing a user-defined keyboard interface in the host operating system, receiving and storing user The corresponding relationship between the defined key information and the control command; after the host operating system receives the key information input by the user, according to the corresponding relationship, determine the corresponding control command of the key information input by the user; The system provides input control messages based on the control commands, and the virtual operating system processes the input control messages. It can be seen that the present invention provides users with a custom keyboard, which is convenient for users to operate, thereby allowing users to perform virtual input according to personal habits, and improving user experience.
Description
技术领域technical field
本发明涉及通信技术领域,具体涉及一种虚拟输入的方法、装置及系统。The present invention relates to the field of communication technology, in particular to a virtual input method, device and system.
背景技术Background technique
随着近年来移动智能终端的普及,催生了移动互联网的飞速发展,现在种类繁多而丰富多彩的应用让移动智能终端可以满足人们的各种需求。但是由于在某些方面的技术瓶颈,诸如电池的续航能力、屏幕的尺寸以及用户在使用移动设备时不可避免的局限(如操作的精准度等),都会影响用户的使用体验。因此如果能在PC上模拟出移动终端的运行环境,并充分发挥PC的优势,例如持续的电力、大屏幕的绚丽的画面效果、键盘鼠标的精准操作等,可以很大程度上满足用户在移动智能终端上无法得到的体验。With the popularization of mobile smart terminals in recent years, the rapid development of mobile Internet has been given birth. Now there are various and colorful applications that allow mobile smart terminals to meet people's various needs. However, due to technical bottlenecks in some aspects, such as battery life, screen size, and inevitable limitations of users when using mobile devices (such as the accuracy of operations, etc.), it will affect the user experience. Therefore, if the operating environment of the mobile terminal can be simulated on the PC, and the advantages of the PC can be fully utilized, such as continuous power supply, gorgeous picture effects on the large screen, and precise operation of the keyboard and mouse, etc., it can largely satisfy the needs of users in mobile devices. An experience that cannot be obtained on smart terminals.
例如,对于许多游戏玩家而言,将手游的界面移植到更大显示的PC上,可以获得更好的游戏感受。然而,受限于PC的输入限制,仅能通过PC的键盘或鼠标对手游进行操控,而每个用户的操作习惯不同,如果限制用户仅能使用键盘特定按键进行操控,很不方便。For example, for many gamers, porting the interface of a mobile game to a PC with a larger display can provide a better gaming experience. However, limited by the input restrictions of the PC, the mobile game can only be controlled through the PC keyboard or mouse, and each user has different operating habits. It is very inconvenient to restrict users to only use specific keys on the keyboard for manipulation.
发明内容Contents of the invention
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的虚拟输入的方法、装置及系统。In view of the above problems, the present invention is proposed to provide a method, device and system for virtual input that overcome the above problems or at least partially solve the above problems.
依据本发明的一个方面,提供一种虚拟输入的方法,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述方法包括:According to one aspect of the present invention, a virtual input method is provided for inputting a virtual operating system parasitic on a host operating system, the method comprising:
建立所述宿主操作系统与所述虚拟操作系统之间的通信连接;establishing a communication connection between the host operating system and the virtual operating system;
在所述宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;providing a user-defined keyboard interface in the host operating system, receiving and storing the correspondence between user-defined key information and control commands;
所述宿主操作系统接收到用户输入的按键信息后,根据所述对应关系,确定用户输入的按键信息对应的控制命令;After the host operating system receives the key information input by the user, according to the corresponding relationship, determine the control command corresponding to the key information input by the user;
通过所述通信连接,所述宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,由所述虚拟操作系统对输入控制消息进行处理。Through the communication connection, the host operating system provides an input control message based on the control command to the virtual operating system, and the virtual operating system processes the input control message.
优选的,所述建立所述宿主操作系统与所述虚拟操作系统之间的通信连接,包括:Preferably, the establishment of the communication connection between the host operating system and the virtual operating system includes:
通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;starting the virtual operating system through a simulation control program in the host operating system;
所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程;The virtual operating system loads a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process;
所述宿主操作系统根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟输入服务进程之间的连接。The host operating system establishes a connection between the simulation control program and the virtual input service process according to the IP address of the virtual operating system.
优选的,preferred,
在所述宿主操作系统确定用户输入的按键信息对应的控制命令之后,还包括:所述宿主操作系统根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;After the host operating system determines the control command corresponding to the key information input by the user, it further includes: the host operating system translates an input control message according to the control command, and the simulation control program sends the input control message Give the virtual input service process;
所述由所述虚拟操作系统对输入控制消息进行处理包括:所述虚拟操作系统对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。The processing the input control message by the virtual operating system includes: the virtual operating system interprets the input control message to obtain an input control signal recognizable by the virtual operating system.
优选的,所述根据所述控制命令转译得到输入控制消息,包括:Preferably, the input control message translated according to the control command includes:
所述模拟控制程序对所述控制命令以及控制参数进行转译,生成所述输入控制消息。The simulation control program translates the control commands and control parameters to generate the input control messages.
优选的,所述虚拟输入服务进程对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号,包括:Preferably, the virtual input service process interprets the input control message to obtain an input control signal recognizable by the virtual operating system, including:
对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述控制命令;Interpreting the input control message received by the virtual input service process to obtain the control command;
对解译得到的控制命令进行硬件抽象层HAL转换,得到所述虚拟操作系统可识别的输入控制信号。The hardware abstraction layer HAL converts the interpreted control command to obtain an input control signal recognizable by the virtual operating system.
优选的,preferred,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
优选的,所述虚拟机为VirtualBox虚拟机;Preferably, the virtual machine is a VirtualBox virtual machine;
所述通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统,包括:通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。The starting the virtual operating system through the simulation control program in the host operating system includes: controlling the VirtualBox virtual machine through the simulation control program in the host operating system, and starting the virtual operating system through the VirtualBox virtual machine.
优选的,所述虚拟机为VirtualBox虚拟机;Preferably, the virtual machine is a VirtualBox virtual machine;
所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,包括:The virtual operating system loads a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, including:
所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;The virtual operating system loads a predefined script through the init process, runs the client extension component of the VirtualBox virtual machine, and writes the IP address of the virtual operating system into the client attribute of the VirtualBox virtual machine;
所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。The host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
优选的,preferred,
所述通过所述基础进程启动虚拟输入服务进程,包括:通过init进程启动vinput进程;Said starting the virtual input service process through the basic process includes: starting the vinput process through the init process;
所述建立所述模拟控制程序与所述虚拟输入服务进程之间的连接,包括:在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。The establishment of the connection between the simulation control program and the virtual input service process includes: establishing a connection with the simulation control program by the vinput process at a designated port of the virtual operating system.
优选的,在通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统之前,还包括:所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。Preferably, before starting the virtual operating system through the simulation control program in the host operating system, it also includes: the host operating system configures a virtual network connection specially used to communicate with the virtual operating system, so that the host The operating system and the virtual operating system are communicated in the virtual network connection.
优选的,所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。Preferably, the host operating system includes Windows operating system, Mac operating system or Linux operating system; the virtual operating system includes Android operating system.
一种虚拟输入的装置,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述装置包括:A virtual input device for inputting a virtual operating system parasitic on a host operating system, the device comprising:
宿主虚拟通信单元,用于建立所述宿主操作系统与所述虚拟操作系统之间的通信连接;a host virtual communication unit, configured to establish a communication connection between the host operating system and the virtual operating system;
自定义单元,用于在所述宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;a custom unit, configured to provide a user-defined keyboard interface in the host operating system, and receive and store the correspondence between user-defined key information and control commands;
控制命令确定单元,用于在所述宿主操作系统接收到用户输入的按键信息后,根据所述对应关系,确定用户输入的按键信息对应的控制命令;A control command determining unit, configured to determine a control command corresponding to the key information input by the user according to the corresponding relationship after the host operating system receives the key information input by the user;
控制命令处理单元,用于通过所述通信连接,由所述宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,以便所述虚拟操作系统对输入控制消息进行处理。The control command processing unit is configured to provide the host operating system with an input control message based on the control command to the virtual operating system through the communication connection, so that the virtual operating system can process the input control message.
优选的,所述宿主虚拟通信单元具体包括:Preferably, the host virtual communication unit specifically includes:
启动虚拟控制子单元,用于控制所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;Start a virtual control subunit, configured to control a simulation control program in the host operating system to start the virtual operating system;
虚拟IP地址获取子单元,用于获取所述虚拟操作系统的IP地址;a virtual IP address obtaining subunit, configured to obtain the IP address of the virtual operating system;
虚拟连接建立子单元,用于根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接。The virtual connection establishing subunit is used to establish a connection between the simulation control program and the virtual input service process in the virtual operating system according to the IP address of the virtual operating system.
优选的,所述控制命令处理单元具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。Preferably, the control command processing unit is specifically configured to translate the control command and control parameters to generate the input control message.
优选的,preferred,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
优选的,所述虚拟机为VirtualBox虚拟机;所述启动虚拟控制子单元具体用于,通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。Preferably, the virtual machine is a VirtualBox virtual machine; the starting virtual control subunit is specifically configured to control the VirtualBox virtual machine through the simulation control program in the host operating system, and start the virtual operating system by the VirtualBox virtual machine.
优选的,所述虚拟机为VirtualBox虚拟机;所述虚拟IP地址获取子单元具体用于,读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。Preferably, the virtual machine is a VirtualBox virtual machine; the virtual IP address obtaining subunit is specifically configured to read the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
优选的,所述虚拟连接建立子单元具体用于,在所述虚拟操作系统的指定端口,所述模拟控制程序与所述虚拟操作系统的vinput进程建立连接。Preferably, the virtual connection establishing subunit is specifically configured to establish a connection between the simulation control program and the vinput process of the virtual operating system at a designated port of the virtual operating system.
优选的,还包括:Preferably, it also includes:
虚拟网络配置单元,用于在所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。The virtual network configuration unit is configured to configure a virtual network connection specially used to communicate with the virtual operating system on the host operating system, so that the host operating system and the virtual operating system are connected through the virtual network connection.
一种虚拟输入的系统,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述系统包括:A virtual input system for inputting a virtual operating system parasitic on a host operating system, the system comprising:
宿主操作系统,用于建立与所述虚拟操作系统之间的通信连接,并提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;接收到用户输入的按键信息,并根据所述对应关系,确定用户输入的按键信息对应的控制命令;通过所述通信连接,向所述虚拟操作系统提供基于所述控制命令的输入控制消息,The host operating system is used to establish a communication connection with the virtual operating system, provide a user-defined keyboard interface, receive and store the corresponding relationship between user-defined key information and control commands; receive the key information input by the user, And according to the corresponding relationship, determine the control command corresponding to the key information input by the user; through the communication connection, provide the virtual operating system with an input control message based on the control command,
虚拟操作系统,用于建立与所述宿主操作系统之间的通信连接,并在接收到宿主操作系统的输入控制消息之后,对输入控制消息进行处理。The virtual operating system is configured to establish a communication connection with the host operating system, and process the input control message after receiving the input control message from the host operating system.
优选的,preferred,
所述宿主操作系统还用于,建立与所述虚拟操作系统的网络连接,并通过模拟控制程序启动所述虚拟操作系统,以及,根据获取的所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟操作系统中的输入服务进程之间的连接;并且,在确定出控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;The host operating system is further configured to establish a network connection with the virtual operating system, start the virtual operating system through a simulation control program, and, according to the acquired IP address of the virtual operating system, establish the simulated The connection between the control program and the input service process in the virtual operating system; and, after the control command is determined, the input control message is translated according to the control command, and the input control message is translated by the simulation control program Send to the virtual input service process;
所述虚拟操作系统还用于,通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程,以及,由所述虚拟输入服务进程接收所述模拟控制程序发送来的输入控制消息,并且,对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。The virtual operating system is further configured to load a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process, and, The virtual input service process receives the input control message sent by the simulation control program, and interprets the input control message received by the virtual input service process to obtain the Input control signal.
优选的,preferred,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
优选的,所述虚拟机为VirtualBox虚拟机;所述宿主操作系统具体用于,通过模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。Preferably, the virtual machine is a VirtualBox virtual machine; the host operating system is specifically configured to control the VirtualBox virtual machine through a simulation control program, and the VirtualBox virtual machine starts the virtual operating system.
优选的,所述虚拟机为VirtualBox虚拟机;所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。Preferably, the virtual machine is a VirtualBox virtual machine; the virtual operating system loads a predefined script through the init process, runs the client extension component of the VirtualBox virtual machine, and writes the IP address of the virtual operating system into the client of the VirtualBox virtual machine Attribute: the host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
优选的,所述虚拟操作系统通过init进程启动vinput进程;在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。Preferably, the virtual operating system starts the vinput process through the init process; at the designated port of the virtual operating system, the vinput process establishes a connection with the simulation control program.
优选的,所述宿主操作系统具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。Preferably, the host operating system is specifically configured to translate the control command and control parameters to generate the input control message.
优选的,所述虚拟操作系统具体用于,控制对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到控制命令;并对所述控制命令进行硬件抽象层HAL转换;得到所述虚拟操作系统可识别的输入控制信号。Preferably, the virtual operating system is specifically used to control the interpretation of the input control message received by the virtual input service process to obtain a control command; and perform hardware abstraction layer HAL conversion on the control command; obtain An input control signal recognizable by the virtual operating system.
优选的,所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。Preferably, the host operating system configures a virtual network connection specially used to communicate with the virtual operating system, so that the host operating system and the virtual operating system communicate through the virtual network connection.
优选的,所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。Preferably, the host operating system includes Windows operating system, Mac operating system or Linux operating system; the virtual operating system includes Android operating system.
可见,通过本发明提供的方法,可以在宿主操作系统上提供给用户一个自定义键盘的界面,由用户自定义按键信息与控制命令的对应关系,并在用户输入按键信息后,将其对应的控制命令经处理后提供给虚拟操作系统,由虚拟操作系统进行处理并执行显示等。可见,通过用户自定义键盘,可方便用户操作,从而允许用户按照个人习惯进行虚拟输入,提升用户感受。It can be seen that through the method provided by the present invention, a user-defined keyboard interface can be provided to the user on the host operating system, and the corresponding relationship between the key information and the control command can be defined by the user, and after the user inputs the key information, the corresponding After the control command is processed, it is provided to the virtual operating system, and the virtual operating system processes and executes the display. It can be seen that through the user-defined keyboard, the operation of the user can be facilitated, thereby allowing the user to perform virtual input according to personal habits, and improving user experience.
在本发明优选实施例中,运行于宿主操作系统的输入控制程序可获取到虚拟操作系统的IP地址,宿主操作系统通过该IP地址与虚拟操作系统建立起通信连接。例如,可以实现在宿主操作系统的模拟器展现的窗口上看到Android系统实际运行的图像,并通过用户自定义键盘在模拟器窗口上进行输入控制,模拟器将用户输入数据发送到PC虚拟的Android环境上进行显示。本发明所采用的方式将不再依赖VirtualBox的展现和输入控制方式,所以就不会受其弊端影响。本发明提出是输入控制方式是完全为Android定制的,可以达到非常流畅的体验,因此,本发明可有效改善输入控制的流畅度和准确性。In a preferred embodiment of the present invention, the input control program running on the host operating system can obtain the IP address of the virtual operating system, and the host operating system establishes a communication connection with the virtual operating system through the IP address. For example, it is possible to see the actual running image of the Android system on the window displayed by the emulator of the host operating system, and perform input control on the emulator window through the user-defined keyboard, and the emulator sends the user input data to the PC virtual Display on the Android environment. The method adopted by the present invention will no longer depend on the presentation and input control methods of VirtualBox, so it will not be affected by its disadvantages. The present invention proposes that the input control mode is completely customized for Android, which can achieve a very smooth experience. Therefore, the present invention can effectively improve the fluency and accuracy of input control.
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。The above description is only an overview of the technical solution of the present invention. In order to better understand the technical means of the present invention, it can be implemented according to the contents of the description, and in order to make the above and other purposes, features and advantages of the present invention more obvious and understandable , the specific embodiments of the present invention are enumerated below.
附图说明Description of drawings
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiment. The drawings are only for the purpose of illustrating a preferred embodiment and are not to be considered as limiting the invention. Also throughout the drawings, the same reference numerals are used to designate the same components. In the attached picture:
图1示出了根据本发明一个实施例的虚拟输入的方法的流程图;Fig. 1 shows the flowchart of the method for virtual input according to one embodiment of the present invention;
图2示出了根据本发明一个实施例的虚拟输入的方法中一种建立宿主操作系统与虚拟操作系统之间连接的流程图;FIG. 2 shows a flowchart of establishing a connection between a host operating system and a virtual operating system in a virtual input method according to an embodiment of the present invention;
图3示出了根据本发明一个实施例的一种宿主操作系统与虚拟操作系统布局示意图;FIG. 3 shows a schematic layout diagram of a host operating system and a virtual operating system according to an embodiment of the present invention;
图4示出了根据本发明一个实施例的另一种宿主操作系统与虚拟操作系统布局示意图;FIG. 4 shows a schematic layout diagram of another host operating system and a virtual operating system according to an embodiment of the present invention;
图5示出了根据本发明一个实施例的又一种宿主操作系统与虚拟操作系统布局示意图;FIG. 5 shows a schematic layout diagram of yet another host operating system and a virtual operating system according to an embodiment of the present invention;
图6示出了根据本发明一个实施例的虚拟输入的方法中另一种建立宿主操作系统与虚拟操作系统之间连接的流程图;FIG. 6 shows another flow chart of establishing a connection between a host operating system and a virtual operating system in a virtual input method according to an embodiment of the present invention;
图7示出了根据本发明一个实施例的虚拟输入的装置结构示意图。Fig. 7 shows a schematic structural diagram of a device for virtual input according to an embodiment of the present invention.
具体实施方式Detailed ways
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided for more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
为了实现在PC上模拟出移动终端的运行环境,安卓(android)模拟器应运而生。安卓模拟器是一个能在Windows平台模拟安卓手机系统的模拟器,安卓模拟器能在电脑上模拟出安卓手机运行环境,安卓模拟器让用户在电脑上也能体验安卓游戏和应用。比较常用的安卓模拟器有:Android SDK、BlueStacks,可在PC系统和苹果iOS系统运行,著名的vmware虚拟机和Virtual Box虚拟机也可以模拟安卓系统,目前这些模拟器软件均可运行在微软公司的Windows操作系统平台。In order to simulate the operating environment of a mobile terminal on a PC, an Android (android) emulator emerges as the times require. The Android emulator is an emulator that can simulate the Android mobile phone system on the Windows platform. The Android emulator can simulate the Android mobile phone operating environment on the computer. The Android emulator allows users to experience Android games and applications on the computer. The more commonly used Android emulators are: Android SDK, BlueStacks, which can run on PC system and Apple iOS system. The famous vmware virtual machine and Virtual Box virtual machine can also simulate Android system. Currently, these emulator software can run on Microsoft Corporation Windows operating system platform.
本领域技术人员理解,操作系统分两类,一类是原生,一类是寄生。宿主操作系统,属于原生类操作系统,例如windows、linux等。在本发明中,宿主操作系统也称为Host OS、Host系统或Host端,比如,运行VirtualBox虚拟机的操作系统。虚拟操作系统,属于寄生类的操作系统,寄生在原生类的操作系统中。在本发明中,虚拟操作系统也称为Gust OS、Gust系统或Gust端,比如,运行于VirtualBox虚拟机环境中的操作系统,特别的,本发明优选的是指运行于VirtualBox虚拟机环境中的Android系统。其中,VirtualBox是一款开源虚拟机软件,用户可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2Warp、BSD等系统作为客户端操作系统。本发明中,宿主操作系统包括但不限于Windows操作系统、Mac操作系统或Linux操作系统;虚拟操作系统包括但不限于Android操作系统。Those skilled in the art understand that there are two types of operating systems, one is native and the other is parasitic. The host operating system belongs to the native operating system, such as windows, linux, etc. In the present invention, the host operating system is also referred to as Host OS, Host system or Host end, for example, the operating system running the VirtualBox virtual machine. The virtual operating system belongs to the parasitic operating system, which is parasitic in the native operating system. In the present invention, the virtual operating system is also referred to as Gust OS, Gust system or Gust end, such as the operating system running in the VirtualBox virtual machine environment, particularly, the present invention preferably refers to the operating system running in the VirtualBox virtual machine environment Android system. Among them, VirtualBox is an open source virtual machine software. Users can install and execute Solaris, Windows, DOS, Linux, OS/2Warp, BSD and other systems on VirtualBox as client operating systems. In the present invention, the host operating system includes but not limited to Windows operating system, Mac operating system or Linux operating system; the virtual operating system includes but not limited to Android operating system.
本发明为了解决现有技术中利用PC的鼠标键盘对虚拟操作系统操控不方便的问题,提出一种虚拟输入的方法,通过在宿主操作系统上提供用户自定义键盘界面,接收用户自定义按键信息与控制命令的对应关系,然后根据该对应关系实现按键信息到控制命令的映射,从而实现用户按照自己习惯对虚拟操作系统的输入控制。In order to solve the problem of inconvenient manipulation of the virtual operating system by using the mouse and keyboard of the PC in the prior art, the present invention proposes a virtual input method, by providing a user-defined keyboard interface on the host operating system to receive user-defined key information The corresponding relationship with the control command, and then realize the mapping from the key information to the control command according to the corresponding relationship, so as to realize the input control of the virtual operating system by the user according to his own habits.
参见图1,该方法包括:Referring to Figure 1, the method includes:
S101:建立宿主操作系统与虚拟操作系统之间的通信连接。S101: Establish a communication connection between the host operating system and the virtual operating system.
宿主操作系统与虚拟操作系统之间的通信连接是实现本发明的前提步骤,只有在二者建立通信连接基础上,才能够实现将宿主操作系统接收的用户输入提供给虚拟操作系统,从而在虚拟操作系统上进行显示。The communication connection between the host operating system and the virtual operating system is a prerequisite step for realizing the present invention. Only on the basis of establishing a communication connection between the two, can the user input received by the host operating system be provided to the virtual operating system, so that in the virtual displayed on the operating system.
宿主操作系统与虚拟操作系统之间的通信连接建立方式,可以采用现有的在宿主操作系统中运行virtualbox等虚拟机、通过虚拟机启动android等虚拟操作系统的方式,然而,本发明提出一种减少对虚拟机依赖的建立二者之间通信连接的方式,,主要是指建立宿主操作系统中的Player程序与虚拟操作系统中的vinput进程之间的通信连接通道,下文中会结合图2-6进行详细说明。The mode of establishing the communication connection between the host operating system and the virtual operating system can adopt the existing mode of running virtual machines such as virtualbox in the host operating system and starting virtual operating systems such as android through the virtual machine. However, the present invention proposes a The way to reduce the dependence on the virtual machine and establish the communication connection between the two mainly refers to the establishment of the communication connection channel between the Player program in the host operating system and the vinput process in the virtual operating system, which will be combined with Figure 2- 6 for details.
S102:在宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系。S102: Provide a user-defined keyboard interface in the host operating system, receive and store the correspondence between user-defined key information and control commands.
向用户提供自定义键盘界面,该界面上可预先显示一些控制命令集合(例如前进、后退、向左移动、向右移动等),供用户选择与哪些按键信息对应。例如,用户设置按键“R”与命令“向右移动”对应,等等。通过该界面,用户可以完成按键信息与控制命令的对应关系设置,由宿主操作系统保存。具体实现中,可以由类似安卓模拟器等应用程序实现“自定义键盘界面”功能。Provide the user with a custom keyboard interface, on which some control command sets (for example, forward, backward, move left, move right, etc.) can be displayed in advance, for the user to choose which key information corresponds to. For example, the user sets the key "R" to correspond to the command "move right", and so on. Through this interface, the user can complete the setting of the corresponding relationship between key information and control commands, which will be saved by the host operating system. In a specific implementation, the "custom keyboard interface" function can be realized by an application program such as an Android emulator.
S103:宿主操作系统接收到用户输入的按键信息后,根据对应关系,确定用户输入的按键信息对应的控制命令。S103: After receiving the key information input by the user, the host operating system determines a control command corresponding to the key information input by the user according to the corresponding relationship.
S104:通过通信连接,宿主操作系统向虚拟操作系统提供基于控制命令的输入控制消息,由虚拟操作系统对输入控制消息进行处理。S104: Through the communication connection, the host operating system provides an input control message based on a control command to the virtual operating system, and the virtual operating system processes the input control message.
宿主操作系统确定按键信息对应的控制命令后,结合该控制命令的相关参数(具体描述控制命令的参数,例如,鼠标点击的位置信息等),转译生成输入控制信号,然后,由Player程序将输入控制信息利用之前与vinput进程建立的通信连接通道发送给vinput进程。After the host operating system determines the control command corresponding to the button information, it combines the relevant parameters of the control command (specifically describe the parameters of the control command, for example, the position information of the mouse click, etc.), translates and generates the input control signal, and then, the Player program will input The control information is sent to the vinput process by using the communication connection channel established with the vinput process before.
然后,虚拟操作系统可对vinput进程接收到的输入控制信号进行解译,得到控制命令,然后对控制命令进行硬件抽象层HAL(Hardware Abstraction Layer)转换;经过HAL转换后,得到虚拟操作系统可识别的输入控制信号。其中,HAL(Hardware AbstractionLayer,硬件抽象层),HAL的作用是将操作系统的其余部分表示为抽象的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质,这些设备表现为操作系统的其它部分和设备可以使用的独立于机器的服务的形式(函数调用和宏)。通过使用HAL转换和间接硬件寻址,当移植到新的硬件上时,驱动程序和核心只需做很少的改动。移植HAL本身是直接的,因为所有的机器相关代码都集中在一个地方,并且移植的目标是充分定义的,即实现所有的HAL服务。本发明中,vinput是通过HAL转换将从通信连接中接收到的外部输入控制命令转变成Android系统可理解的输入,这是对Android中已有技术的创新应用。Then, the virtual operating system can interpret the input control signal received by the vinput process to obtain the control command, and then perform hardware abstraction layer HAL (Hardware Abstraction Layer) conversion on the control command; after HAL conversion, the virtual operating system can recognize input control signal. Among them, HAL (Hardware Abstraction Layer, hardware abstraction layer), the function of HAL is to represent the rest of the operating system as an abstract hardware device, especially to remove the defects and characteristics rich in real hardware. A form of machine-independent service (function calls and macros) that other parts and devices can use. By using HAL translation and indirect hardware addressing, when porting to new hardware, the driver and kernel need only do few changes. Porting the HAL itself is straightforward, since all machine-dependent code is in one place, and the goal of the porting is well defined, which is to implement all HAL services. In the present invention, vinput converts the external input control command received from the communication connection into an input understandable by the Android system through HAL conversion, which is an innovative application of the existing technology in Android.
可见,通过本发明提供的方法,可以在宿主操作系统上提供给用户一个自定义键盘的界面,由用户自定义按键信息与控制命令的对应关系,并在用户输入按键信息后,将其对应的控制命令经处理后提供给虚拟操作系统,由虚拟操作系统进行处理并执行显示等。可见,通过用户自定义键盘,可方便用户操作,从而按照个人习惯进行虚拟输入,提升用户感受。It can be seen that through the method provided by the present invention, a user-defined keyboard interface can be provided to the user on the host operating system, and the corresponding relationship between the key information and the control command can be defined by the user, and after the user inputs the key information, the corresponding After the control command is processed, it is provided to the virtual operating system, and the virtual operating system processes and executes the display. It can be seen that user-defined keyboards can facilitate user operations, thereby performing virtual input according to personal habits and improving user experience.
如前所述,上述步骤S101“宿主操作系统与虚拟操作系统之间建立通信连接”是本发明实现的一个前提。在现有技术中,一般是完全依赖VirtualBox实现宿主操作系统与虚拟操作系统之间的连通,然而,借助VirtualBox实现虚拟安卓系统至少存在以下问题:首先,由于VirtualBox虚拟机外挂不可定制,因此这对于一个希望自己定制外观的产品来说实际上就是不可接受的。其次,如果没有额外的输入控制优化组件,VirtualBox会将用户的鼠标活动范围锁定的在当前的虚拟机窗口上,并且对于android这样的Guest系统的输入控制实际上也并不流畅。也就是,VirtualBox将鼠标的活动范围锁定在当前窗口会很大程度上影响用户体验,并且对于不同的Guest系统并不能保证输入控制的顺畅。VirtualBox将鼠标的活动范围锁定在当前窗口是VirtualBox的产品策略所致。另外,由于VirtualBox是一个开源的通用虚拟机软件,可以在其上运行的操作系统也不仅限于Android,虽然VirtualBox可以为运行其中的Guest系统提供输入控制,但是由于Guest系统种类很多,所以不可能每一个达到非常良好的效果。其自身对Android的输入控制就不够流畅。因此,本发明提供一种宿主操作系统与虚拟操作系统之间连接的新方式。As mentioned above, the above step S101 of "establishing a communication connection between the host operating system and the virtual operating system" is a prerequisite for the implementation of the present invention. In the prior art, it is generally to completely rely on VirtualBox to realize the communication between the host operating system and the virtual operating system. However, there are at least the following problems in realizing the virtual Android system with the help of VirtualBox: First, because the plug-in of the VirtualBox virtual machine cannot be customized, it is very difficult for It is actually unacceptable for a product that wants to customize its appearance. Secondly, if there is no additional input control optimization component, VirtualBox will lock the user's mouse activity range on the current virtual machine window, and the input control of the Guest system such as android is actually not smooth. That is, the virtualbox locking the mouse's activity range to the current window will greatly affect the user experience, and it cannot guarantee smooth input control for different guest systems. VirtualBox locks the mouse's activity range to the current window due to the product strategy of VirtualBox. In addition, since VirtualBox is an open-source general virtual machine software, the operating system that can run on it is not limited to Android. One achieves very good results. Its own input control for Android is not smooth enough. Therefore, the present invention provides a new way of connection between the host operating system and the virtual operating system.
本发明提出的一种建立宿主操作系统与虚拟操作系统之间连接的方式,尽可能减小对VirtualBox虚拟机的依赖,在有效改善用户体验的同时,保证良好的兼容性,并在技术上具有非常好的可扩展性。A method for establishing a connection between a host operating system and a virtual operating system proposed by the present invention reduces the dependence on the VirtualBox virtual machine as much as possible, effectively improves user experience while ensuring good compatibility, and has technical advantages Very good scalability.
参见图2,示出了建立宿主操作系统与虚拟操作系统之间的通信连接的流程。Referring to FIG. 2 , it shows the flow of establishing a communication connection between the host operating system and the virtual operating system.
S201:通过宿主操作系统中的模拟控制程序启动虚拟操作系统。S201: Start the virtual operating system through the simulation control program in the host operating system.
在启动虚拟操作系统之前,宿主操作系统与虚拟操作系统需要预先建立网络连接,可以由宿主系统对网络连接进行配置,例如,通过配置(增加)一个专门用来通信的虚拟网络连接,并使得宿主系统和虚拟系统在这个虚拟网络连接中连通。对于宿主操作系统与虚拟操作系统之间的网络连接,说明如下:1)这个虚拟网络连接可由VirtualBox提供;2)对虚拟网络配置在启动虚拟系统之前进行,是每次启动之前的例行操作,以保证宿主和虚拟系统网络连通;3)策略是,如果这个虚拟连接不存在,则可通过如VirtualBox的虚拟机创建一个新的虚拟连接;如果虚拟连接已创建或已存在,对连接参数(IP地址,网关等)进行配置,以保证宿主和虚拟系统连通。Before starting the virtual operating system, the host operating system and the virtual operating system need to establish a network connection in advance, and the network connection can be configured by the host system, for example, by configuring (adding) a virtual network connection specially used for communication, and making the host Systems and virtual systems are connected in this virtual network connection. For the network connection between the host operating system and the virtual operating system, the instructions are as follows: 1) This virtual network connection can be provided by VirtualBox; 2) The virtual network configuration is performed before starting the virtual system, which is a routine operation before each startup. To ensure the host and virtual system network connectivity; 3) The strategy is, if this virtual connection does not exist, a new virtual connection can be created through a virtual machine such as VirtualBox; if the virtual connection has been created or already exists, the connection parameters (IP address, gateway, etc.) to ensure the connectivity between the host and the virtual system.
在宿主操作系统与虚拟操作系统建立网络连接之后,由宿主操作系统中的模拟控制程序启动虚拟操作系统。After the host operating system establishes a network connection with the virtual operating system, the virtual operating system is started by the simulation control program in the host operating system.
本发明中,模拟控制程序也称为player,具体实现中,可以在安卓模拟器实现该程序。如前所述的,虚拟操作系统一般运行在如VirtualBox的虚拟机中,因此,具体实现中,可以通过宿主操作系统中的player程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动虚拟操作系统。In the present invention, the simulation control program is also called player, and in specific implementation, the program can be implemented in an Android emulator. As mentioned above, the virtual operating system generally runs in a virtual machine such as VirtualBox. Therefore, in a specific implementation, the VirtualBox virtual machine can be controlled by the player program in the host operating system, and the virtual operating system can be started by the VirtualBox virtual machine.
S202:虚拟操作系统通过基础进程加载预定义脚本,从而将虚拟操作系统的IP地址提供给宿主操作系统,以及,通过基础进程启动虚拟输入服务进程。S202: The virtual operating system loads a predefined script through the basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process.
例如,虚拟机为VirtualBox虚拟机,虚拟操作系统是指Android系统。具体实现过程如下,首先,android系统通过其基础进程(init进程)加载预定义脚本(shell脚本),运行VirtualBox虚拟机的客户扩展组件,将android系统的IP地址写入VirtualBox虚拟机的客户属性;然后,宿主操作系统读取VirtualBox虚拟机的客户属性,获取android系统的IP地址。For example, the virtual machine is a VirtualBox virtual machine, and the virtual operating system refers to an Android system. The specific implementation process is as follows, at first, the android system loads a predefined script (shell script) by its basic process (init process), runs the client extension component of the VirtualBox virtual machine, and writes the IP address of the android system into the client attribute of the VirtualBox virtual machine; Then, the host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the android system.
本领域技术人员理解,在android系统中,内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以init始终是第一个进程(其进程编号始终为1)。本发明利用init进程来加载一个预定义功能的shell脚本,实现对VirtualBox虚拟机的客户扩展组件的控制。Those skilled in the art understand that in the android system, after the kernel starts automatically (loaded into memory, starts running, and initializes all device drivers and data structures, etc.), it will start a user-level program init, Complete the boot process. So init is always the first process (its process number is always 1). The invention utilizes the init process to load a shell script with a predefined function to realize the control of the client extension component of the VirtualBox virtual machine.
其中,Shell脚本(Shell Script)与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,由于使用了Linux/Unix下的命令,因此shell脚本比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。Among them, Shell Script (Shell Script) is similar to batch processing under Windows/Dos, that is, a program file that is pre-put into a file with various commands for one-time execution. , so shell scripts are more powerful than batch processing under Windows, and more efficient than programs edited with other programming programs.
VirtualBox虚拟机的客户扩展组件(VirtualBox Guest Additions),也称为客户端增强包,主要作用是为了增加:共享文件夹、无缝窗口、3D虚拟化显示。客户扩展组件是一堆软件包的集合,是运行在VirtualBox虚拟机内的,其目的在于,提升虚拟机的性能,增加和Host之间的交互性和通讯。可见,为了更好实现Host和Guest之间的互动,VirtualBox提供了Guest扩展组件。因此本发明中,在通信连接建立起来之前,通过Guest扩展组件提供的客户属性(guestproperty)机制将Guest的IP地址传给Host。VirtualBox Guest Additions (VirtualBox Guest Additions), also known as client enhancement package, is mainly used to add: shared folders, seamless windows, 3D virtualization display. The client extension component is a collection of software packages that run in the VirtualBox virtual machine. Its purpose is to improve the performance of the virtual machine and increase the interaction and communication with the Host. It can be seen that, in order to better realize the interaction between Host and Guest, VirtualBox provides Guest extension components. Therefore, in the present invention, before the communication connection is established, the IP address of the Guest is passed to the Host through the guest property mechanism provided by the Guest extension component.
init进程除了通过加载shell脚本,将IP地址提供给Host之外,还在android系统中启动一个关键的虚拟输入服务进程,本发明中也称为Vinput进程。Vinput是本发明中为了达到控制Guest Android系统输入,而并放置于Android系统中的关键进程。通过init控制的方式,使得在android系统启动的同时保证vinput进程也被启动。The init process also starts a key virtual input service process in the android system, which is also called the Vinput process in the present invention, except that the IP address is provided to the Host by loading the shell script. Vinput is a key process placed in the Android system in order to control the input of the Guest Android system in the present invention. By means of init control, it is ensured that the vinput process is also started when the android system is started.
S203:宿主操作系统根据虚拟操作系统的IP地址,建立模拟控制程序与虚拟输入服务进程之间的连接。S203: The host operating system establishes a connection between the simulation control program and the virtual input service process according to the IP address of the virtual operating system.
具体的,可在虚拟操作系统的指定端口,由vinput进程建立与Player程序建立通信连接。Specifically, a communication connection with the Player program can be established by the vinput process at a designated port of the virtual operating system.
通过上述图2所示的方案,运行于Host系统的模拟器(即Player)获取到了Android系统的IP地址,Host通过这个IP地址与Android中的vinput进程建立起通信连接,实际用户在Host系统的模拟器展现的窗口上看到Android系统实际运行的图像,并通过键盘/鼠标在模拟器窗口上进行输入,模拟器将得到的用户输入数据经过转化之后,通过通信连接发送到了Android系统中的vinput进程,vinput进程则将这些输入数据转为对Android系统的实际控制。Through the scheme shown in Figure 2 above, the emulator (ie Player) running on the Host system obtains the IP address of the Android system, and the Host establishes a communication connection with the vinput process in Android through this IP address. On the window displayed by the emulator, you can see the actual running image of the Android system, and input on the emulator window through the keyboard/mouse. After the emulator converts the user input data, it sends it to the vinput in the Android system through a communication connection. process, and the vinput process converts these input data into actual control of the Android system.
如前所述的,现有技术中VirtualBox将鼠标的活动范围锁定在当前窗口会很大程度上影响用户体验,并且对于不同的Guest系统并不能保证输入控制的顺畅,VirtualBox将鼠标的活动范围锁定在当前窗口是VirtualBox的产品策略所致。而本发明所采用的方式将不再依赖VirtualBox的展现和输入控制方式,所以就不会受其弊端影响。另外,由于VirtualBox是一个开源的通用虚拟机软件,可以在其上运行的操作系统也不仅限于Android,虽然VirtualBox可以为运行其中的Guest系统提供输入控制,但是由于Guest系统种类很多,所以不可能每一个达到非常良好的效果,其自身对Android的输入控制就不够流畅,而本发明提出是输入控制方式是完全为Android定制的,可以达到非常流畅的体验。As mentioned above, in the prior art, in the prior art, the virtual box locks the mouse's range of motion to the current window, which will greatly affect the user experience, and it cannot guarantee smooth input control for different guest systems. VirtualBox locks the mouse's range of motion The current window is due to the product policy of VirtualBox. And the mode adopted in the present invention will no longer depend on the display and input control mode of VirtualBox, so it will not be affected by its disadvantages. In addition, since VirtualBox is an open-source general virtual machine software, the operating system that can run on it is not limited to Android. One achieves a very good effect, but its own input control to Android is not smooth enough, and the present invention proposes that the input control method is completely customized for Android, which can achieve a very smooth experience.
本领域技术人员理解,尽管前面的技术描述都是以Host和Guest在同一台物理机器上为前提的,但是由于运行于Host的Player和运行于Guest的Android实际上的唯一联系是一个通信连接,所以只要是能够建立起这个通信连接就可以运用本发明的技术。因此,即使Player和Android运行在不同的物理机器上,也是可以进行虚拟输入控制的。Those skilled in the art understand that although the preceding technical descriptions all assume that the Host and the Guest are on the same physical machine, the actual only connection between the Player running on the Host and the Android running on the Guest is a communication connection. Therefore, as long as the communication connection can be established, the technology of the present invention can be used. Therefore, even if Player and Android run on different physical machines, virtual input control can be performed.
因此,在具体实现时,以上方法包括但不限于虚拟操作系统与宿主操作系统运行于同一操作性或同一物理PC机的情况,同样适用于虚拟操作系统运行于其它操作系统或其它物理PC机的情况;同理,以上方法包括但不限于虚拟操作系统以虚拟机形式运行的情况,同样适用于虚拟操作系统运行于实际物理设备的情况。Therefore, during specific implementation, the above method includes but is not limited to the situation where the virtual operating system and the host operating system run on the same operability or the same physical PC, and it is also applicable to the case where the virtual operating system runs on other operating systems or other physical PCs. Similarly, the above method includes but is not limited to the situation where the virtual operating system runs in the form of a virtual machine, and is also applicable to the situation where the virtual operating system runs on an actual physical device.
对于虚拟操作系统运行在虚拟机上的情况,请参见图3和图4。其中,图3示出了虚拟机运行在宿主操作系统所在的物理设备上的情形,即,虚拟机运行在宿主操作系统所在设备上、虚拟操作系统又运行在该虚拟机上,例如,Guest运行在VirtualBox上、VirtualBox运行在Host上。图4示出了虚拟机运行在与宿主操作系统所在物理设备不同的另一个物理设备上的情形,例如,宿主操作系统运行在第一设备(如:PC1)上,虚拟机运行在第二设备(如,PC2)上、虚拟操作系统又运行在该虚拟机上。For the situation that the virtual operating system runs on the virtual machine, please refer to Figure 3 and Figure 4 . Wherein, Fig. 3 shows the situation that the virtual machine runs on the physical device where the host operating system is located, that is, the virtual machine runs on the device where the host operating system is located, and the virtual operating system runs on the virtual machine, for example, the Guest runs On VirtualBox, VirtualBox runs on the Host. Figure 4 shows a situation where the virtual machine runs on another physical device different from the physical device where the host operating system is located, for example, the host operating system runs on the first device (such as: PC1), and the virtual machine runs on the second device (eg, PC2), the virtual operating system runs on the virtual machine.
对于虚拟操作系统不依赖虚拟机而运行在与宿主操作系统所在物理设备相独立的另一个物理设备上的情况,请参见图5。图5示出了虚拟操作系统直接运行在与宿主操作系统所在物理设备不同的另一个物理设备上的情形,例如,宿主操作系统运行在第一设备(如:PC)上,虚拟操作系统运行在第二设备(如,手机)上。此处,要求第二设备是可直接运行操作系统的设备,例如智能手机。For the situation that the virtual operating system does not depend on the virtual machine but runs on another physical device independent of the physical device where the host operating system is located, please refer to FIG. 5 . Fig. 5 shows the situation that the virtual operating system runs directly on another physical device different from the physical device where the host operating system is located, for example, the host operating system runs on the first device (such as: PC), and the virtual operating system runs on the on the second device (eg, mobile phone). Here, it is required that the second device is a device that can directly run an operating system, such as a smart phone.
可见,本发明提供的宿主操作系统与虚拟操作系统之间连接的方案具备在分布式环境下实施的能力。It can be seen that the solution for the connection between the host operating system and the virtual operating system provided by the present invention has the ability to be implemented in a distributed environment.
下面从palyer程序、VirtualBox、Android三方交互的角度,对本发明另一个实施例提供的建立宿主操作系统与虚拟操作系统之间通信连接的流程进行说明。可以理解,该另一实施例采取的是图3所示的布局,即,VirtualBox运行在Host端,Android(Guest端)又运行在VirtualBox,其中,palyer程序是在Host端实现的,与Android中的vinput配合实现本发明主要功能的程序,可以在Android模拟器中实现。The flow of establishing a communication connection between the host operating system and the virtual operating system provided by another embodiment of the present invention is described below from the perspective of the three-way interaction of the palyer program, VirtualBox, and Android. It can be understood that what this other embodiment adopts is the layout shown in Figure 3, that is, VirtualBox runs on the Host side, and Android (Guest side) runs on VirtualBox again, wherein, the palyer program is implemented on the Host side, and Android The vinput can be implemented in an Android emulator in cooperation with the program for realizing the main functions of the present invention.
因此,本发明的实现包括运行在宿主操作系统(Host)的模拟控制程序Player和运行虚拟android系统(Guest)的接收程序vinput,以及运行在虚拟机的android系统本身。Therefore, the realization of the present invention includes the simulation control program Player running on the host operating system (Host), the receiving program vinput running on the virtual android system (Guest), and the android system itself running on the virtual machine.
(1)Player程序的逻辑(1) The logic of the Player program
Player通过调用VirtualBox来启动Android系统;之后通过VirtualBox的guestproperty机制尝试获取Android系统的IP地址;在获取到Android系统的IP地址之后,与Android系统内运行的vinput建立通信连接;之后便可将Player接收到的用户输入发送的Android系统。Player starts the Android system by calling VirtualBox; then tries to obtain the IP address of the Android system through the guestproperty mechanism of VirtualBox; after obtaining the IP address of the Android system, establishes a communication connection with vinput running in the Android system; then the Player can receive The user input sent to the Android system.
前面提到的现有技术中,是通过VirtualBox运行Android系统(并没有通过Android模拟器中的palyer程序进程控制VirtualBox),是可以正常运行Android的,但是由于受限于前面提到的弊端,是不能产品化的。本发明的大前提是Android模拟器的整体方案,虽然仍然需要VirtualBox来运行Android系统,但是整个VirtualBox的工作都是后台的、不可见的,而展现给用户是:Android模拟器(即上述Player)。可见,通过Android模拟器直接控制在后台运行的VirtualBox,并采用了一些新技术取代了原先需要VirtualBox来进行的工作,包括接管了图像的渲染工作,以及本发明描述的接管了输入控制工作。In the prior art mentioned above, the Android system is run through VirtualBox (VirtualBox is not controlled by the palyer program process in the Android emulator), and Android can be run normally, but due to the drawbacks mentioned above, it is Cannot be productized. The major premise of the present invention is the overall scheme of the Android emulator, although VirtualBox is still needed to run the Android system, the work of the whole VirtualBox is background, invisible, and presented to the user is: Android emulator (i.e. the above-mentioned Player) . It can be seen that the VirtualBox running in the background is directly controlled through the Android emulator, and some new technologies are used to replace the work that originally required the VirtualBox to carry out, including taking over the image rendering work, and taking over the input control work described in the present invention.
(2)Android系统逻辑(2) Android system logic
Android系统启动,首先是linux内核启动,之后启动Android基础进程init,该进程会加载配置文件init.rc其中描述了init需要完成操作,包括文件系统操作、权限控制以及服务进程等。在这个过程中,本发明特别使得init进程加载一个shell脚本,完成一个关键动作,,即,借助VirtualBox的Guest扩展组件(VirtualBox Guest Additions)将当前系统的IP地址写入到guestproperty,以使得外部Player能获取到当前Android的IP地址。随后,使得init进程启动虚拟输入服务进程,即,vinput进程。该进程将在特定的端口等待与Player程序建立通信。一旦与Player程序建立连接,vinput进程将不断接收Player程序发送的用户在手机上输入的控制命令,虚拟Android系统将控制命令进行处理并显示。The Android system starts, first the linux kernel starts, and then starts the Android basic process init, which will load the configuration file init.rc, which describes the operations that init needs to complete, including file system operations, permission control, and service processes. In this process, the present invention particularly makes the init process load a shell script to complete a key action, that is, write the IP address of the current system into the guestproperty by means of the Guest extensions (VirtualBox Guest Additions) of VirtualBox, so that the external Player Can get the current Android IP address. Subsequently, the init process is made to start the virtual input service process, that is, the vinput process. The process will wait to establish communication with the Player program on a specific port. Once the connection with the Player program is established, the vinput process will continuously receive the control commands entered by the user on the mobile phone sent by the Player program, and the virtual Android system will process and display the control commands.
参见图6,示出了根据本发明另一个实施例的建立宿主操作系统与虚拟操作系统之间通信连接的流程图。Referring to FIG. 6 , it shows a flow chart of establishing a communication connection between a host operating system and a virtual operating system according to another embodiment of the present invention.
S601:player程序控制VirtualBox虚拟机启动android;S601: the player program controls the VirtualBox virtual machine to start android;
S602:android启动,包括:linux内核启动->android基础进程init启动->加载init.rc->运行虚拟输入服务进程vinput,等待与外部建立连接;S602: android start, including: linux kernel start->
S603:Player程序获取android系统的ip地址,包括:android运行init.vbox.sh写入IP地址至guestproperty、player从VirtualBox的guestproperty读取IP地址;S603: The Player program obtains the ip address of the android system, including: android runs init.vbox.sh to write the IP address to guestproperty, and the player reads the IP address from the guestproperty of VirtualBox;
S604:Player程序与android内部的vinput进程建立tcp连接,并完成初始化;S604: The Player program establishes a tcp connection with the vinput process inside the android, and completes the initialization;
S605:Player程序确定用户输入的按键信息对应的控制命令;S605: The Player program determines the control command corresponding to the key information input by the user;
S606:Player程序通过之前建立的通信通道将控制命令发送到android系统的vinput进程;S606: The Player program sends the control command to the vinput process of the android system through the previously established communication channel;
S607:Android系统对vinput进程收到的控制命令进行显示。S607: The Android system displays the control command received by the vinput process.
与上述方法相对应,本发明还提供一种虚拟输入的装置,用于对寄生于宿主操作系统的虚拟操作系统进行输入。优选的,该装置位于宿主操作系统侧,例如可以通过安卓模拟器等应用程序实现其功能。Corresponding to the above method, the present invention also provides a virtual input device for inputting a virtual operating system parasitic on a host operating system. Preferably, the device is located on the side of the host operating system, for example, its functions can be realized through applications such as an Android emulator.
参见图7,该装置包括:Referring to Figure 7, the device includes:
宿主虚拟通信单元701,用于建立所述宿主操作系统与所述虚拟操作系统之间的通信连接;a host virtual communication unit 701, configured to establish a communication connection between the host operating system and the virtual operating system;
自定义单元702,用于在所述宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;A custom unit 702, configured to provide a user-defined keyboard interface in the host operating system, receive and store the correspondence between user-defined key information and control commands;
控制命令确定单元703,用于在所述宿主操作系统接收到用户输入的按键信息后,根据所述对应关系,确定用户输入的按键信息对应的控制命令;A control command determining unit 703, configured to determine a control command corresponding to the key information input by the user according to the corresponding relationship after the host operating system receives the key information input by the user;
控制命令处理单元704,用于通过所述通信连接,由所述宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,以便所述虚拟操作系统对输入控制消息进行处理。The control command processing unit 704 is configured to provide the host operating system with an input control message based on the control command to the virtual operating system through the communication connection, so that the virtual operating system can process the input control message.
优选的,宿主虚拟通信单元701具体包括:Preferably, the host virtual communication unit 701 specifically includes:
启动虚拟控制子单元7011,用于控制所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;Start the virtual control subunit 7011, configured to control the simulation control program in the host operating system to start the virtual operating system;
虚拟IP地址获取子单元7012,用于获取所述虚拟操作系统的IP地址;A virtual IP address obtaining subunit 7012, configured to obtain the IP address of the virtual operating system;
虚拟连接建立子单元7013,用于根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接。The virtual connection establishment subunit 7013 is configured to establish a connection between the simulation control program and the virtual input service process in the virtual operating system according to the IP address of the virtual operating system.
优选的,所述控制命令处理单元704具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。Preferably, the control command processing unit 704 is specifically configured to translate the control command and control parameters to generate the input control message.
优选的,preferred,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
优选的,所述虚拟机为VirtualBox虚拟机;所述启动虚拟控制子单元7011具体用于,通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。Preferably, the virtual machine is a VirtualBox virtual machine; the start virtual control subunit 7011 is specifically used to control the VirtualBox virtual machine through the simulation control program in the host operating system, and start the virtual operating system by the VirtualBox virtual machine .
优选的,所述虚拟机为VirtualBox虚拟机;所述虚拟IP地址获取子单元7012具体用于,读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。Preferably, the virtual machine is a VirtualBox virtual machine; the virtual IP address obtaining subunit 7012 is specifically configured to read the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
优选的,所述虚拟连接建立子单元7013具体用于,在所述虚拟操作系统的指定端口,所述模拟控制程序与所述虚拟操作系统的vinput进程建立连接。Preferably, the virtual connection establishing subunit 7013 is specifically configured to establish a connection between the simulation control program and the vinput process of the virtual operating system at a designated port of the virtual operating system.
优选的,该装置还包括:Preferably, the device also includes:
虚拟网络配置单元700,用于在所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。The virtual network configuration unit 700 is configured to configure a virtual network connection specially used for communicating with the virtual operating system on the host operating system, so that the host operating system and the virtual operating system are connected through the virtual network connection.
与上述方法、装置相对应,本发明还提供一种虚拟输入的系统,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述系统包括:Corresponding to the above method and device, the present invention also provides a virtual input system for inputting a virtual operating system parasitic on a host operating system, the system comprising:
宿主操作系统,用于建立与所述虚拟操作系统之间的通信连接,并提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;接收到用户输入的按键信息,并根据所述对应关系,确定用户输入的按键信息对应的控制命令;通过所述通信连接,向所述虚拟操作系统提供基于所述控制命令的输入控制消息,The host operating system is used to establish a communication connection with the virtual operating system, provide a user-defined keyboard interface, receive and store the corresponding relationship between user-defined key information and control commands; receive the key information input by the user, And according to the corresponding relationship, determine the control command corresponding to the key information input by the user; through the communication connection, provide the virtual operating system with an input control message based on the control command,
虚拟操作系统,用于建立与所述宿主操作系统之间的通信连接,并在接收到宿主操作系统的输入控制消息之后,对输入控制消息进行处理。The virtual operating system is configured to establish a communication connection with the host operating system, and process the input control message after receiving the input control message from the host operating system.
优选的,preferred,
所述宿主操作系统还用于,建立与所述虚拟操作系统的网络连接,并通过模拟控制程序启动所述虚拟操作系统,以及,根据获取的所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟操作系统中的输入服务进程之间的连接;并且,在确定出控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;The host operating system is further configured to establish a network connection with the virtual operating system, start the virtual operating system through a simulation control program, and, according to the acquired IP address of the virtual operating system, establish the simulated The connection between the control program and the input service process in the virtual operating system; and, after the control command is determined, the input control message is translated according to the control command, and the input control message is translated by the simulation control program Send to the virtual input service process;
所述虚拟操作系统还用于,通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程,以及,由所述虚拟输入服务进程接收所述模拟控制程序发送来的输入控制消息,并且,对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。The virtual operating system is further configured to load a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process, and, The virtual input service process receives the input control message sent by the simulation control program, and interprets the input control message received by the virtual input service process to obtain the Input control signal.
优选的,preferred,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
优选的,所述虚拟机为VirtualBox虚拟机;所述宿主操作系统具体用于,通过模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。Preferably, the virtual machine is a VirtualBox virtual machine; the host operating system is specifically configured to control the VirtualBox virtual machine through a simulation control program, and the VirtualBox virtual machine starts the virtual operating system.
优选的,所述虚拟机为VirtualBox虚拟机;所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。Preferably, the virtual machine is a VirtualBox virtual machine; the virtual operating system loads a predefined script through the init process, runs the client extension component of the VirtualBox virtual machine, and writes the IP address of the virtual operating system into the client of the VirtualBox virtual machine Attribute: the host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
优选的,所述虚拟操作系统通过init进程启动vinput进程;在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。Preferably, the virtual operating system starts the vinput process through the init process; at the designated port of the virtual operating system, the vinput process establishes a connection with the simulation control program.
优选的,所述宿主操作系统具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。Preferably, the host operating system is specifically configured to translate the control command and control parameters to generate the input control message.
优选的,所述虚拟操作系统具体用于,控制对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到控制命令;并对所述控制命令进行硬件抽象层HAL转换;得到所述虚拟操作系统可识别的输入控制信号。Preferably, the virtual operating system is specifically used to control the interpretation of the input control message received by the virtual input service process to obtain a control command; and perform hardware abstraction layer HAL conversion on the control command; obtain An input control signal recognizable by the virtual operating system.
优选的,所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。Preferably, the host operating system configures a virtual network connection specially used to communicate with the virtual operating system, so that the host operating system and the virtual operating system communicate through the virtual network connection.
优选的,所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。Preferably, the host operating system includes Windows operating system, Mac operating system or Linux operating system; the virtual operating system includes Android operating system.
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。The algorithms and displays presented herein are not inherently related to any particular computer, virtual system, or other device. Various generic systems can also be used with the teachings based on this. The structure required to construct such a system is apparent from the above description. Furthermore, the present invention is not specific to any particular programming language. It should be understood that various programming languages can be used to implement the content of the present invention described herein, and the above description of specific languages is for disclosing the best mode of the present invention.
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, in order to streamline this disclosure and to facilitate an understanding of one or more of the various inventive aspects, various features of the invention are sometimes grouped together in a single embodiment, figure, or its description. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。Those skilled in the art can understand that the modules in the device in the embodiment can be adaptively changed and arranged in one or more devices different from the embodiment. Modules or units or components in the embodiments may be combined into one module or unit or component, and furthermore may be divided into a plurality of sub-modules or sub-units or sub-assemblies. All features disclosed in this specification (including accompanying claims, abstract and drawings) and any method or method so disclosed may be used in any combination, except that at least some of such features and/or processes or units are mutually exclusive. All processes or units of equipment are combined. Each feature disclosed in this specification (including accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。Furthermore, those skilled in the art will understand that although some embodiments described herein include some features included in other embodiments but not others, combinations of features from different embodiments are meant to be within the scope of the invention. and form different embodiments. For example, in the following claims, any of the claimed embodiments may be used in any combination.
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟输入的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。The various component embodiments of the present invention may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art should understand that a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all functions of some or all components in the device for virtual input according to the embodiment of the present invention. The present invention can also be implemented as an apparatus or an apparatus program (for example, a computer program and a computer program product) for performing a part or all of the methods described herein. Such a program for realizing the present invention may be stored on a computer-readable medium, or may be in the form of one or more signals. Such a signal may be downloaded from an Internet site, or provided on a carrier signal, or provided in any other form.
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a unit claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The use of the words first, second, and third, etc. does not indicate any order. These words can be interpreted as names.
可见,本发明提供如下方案:Visible, the present invention provides following scheme:
A1、一种虚拟输入的方法,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述方法包括:A1. A method for virtual input, for inputting a virtual operating system parasitic on a host operating system, the method comprising:
建立所述宿主操作系统与所述虚拟操作系统之间的通信连接;establishing a communication connection between the host operating system and the virtual operating system;
在所述宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;providing a user-defined keyboard interface in the host operating system, receiving and storing the correspondence between user-defined key information and control commands;
所述宿主操作系统接收到用户输入的按键信息后,根据所述对应关系,确定用户输入的按键信息对应的控制命令;After the host operating system receives the key information input by the user, according to the corresponding relationship, determine the control command corresponding to the key information input by the user;
通过所述通信连接,所述宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,由所述虚拟操作系统对输入控制消息进行处理。Through the communication connection, the host operating system provides an input control message based on the control command to the virtual operating system, and the virtual operating system processes the input control message.
A2、如A1所述的方法,所述建立所述宿主操作系统与所述虚拟操作系统之间的通信连接,包括:A2. The method as described in A1, the establishment of the communication connection between the host operating system and the virtual operating system includes:
通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;starting the virtual operating system through a simulation control program in the host operating system;
所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程;The virtual operating system loads a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process;
所述宿主操作系统根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟输入服务进程之间的连接。The host operating system establishes a connection between the simulation control program and the virtual input service process according to the IP address of the virtual operating system.
A3、如A2所述的方法,A3, the method as described in A2,
在所述宿主操作系统确定用户输入的按键信息对应的控制命令之后,还包括:所述宿主操作系统根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;After the host operating system determines the control command corresponding to the key information input by the user, it further includes: the host operating system translates an input control message according to the control command, and the simulation control program sends the input control message Give the virtual input service process;
所述由所述虚拟操作系统对输入控制消息进行处理包括:所述虚拟操作系统对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。The processing the input control message by the virtual operating system includes: the virtual operating system interprets the input control message to obtain an input control signal recognizable by the virtual operating system.
A4、如A3所述的方法,所述根据所述控制命令转译得到输入控制消息,包括:A4. The method as described in A3, wherein the input control message obtained through translation according to the control command includes:
所述模拟控制程序对所述控制命令以及控制参数进行转译,生成所述输入控制消息。The simulation control program translates the control commands and control parameters to generate the input control messages.
A5、如A3所述的方法,所述虚拟输入服务进程对所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号,包括:A5. The method as described in A3, wherein the virtual input service process interprets the input control message to obtain an input control signal recognizable by the virtual operating system, including:
对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述控制命令;Interpreting the input control message received by the virtual input service process to obtain the control command;
对解译得到的控制命令进行硬件抽象层HAL转换,得到所述虚拟操作系统可识别的输入控制信号。The hardware abstraction layer HAL converts the interpreted control command to obtain an input control signal recognizable by the virtual operating system.
A6、如A2所述的方法,A6, the method as described in A2,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
A7、如A6所述的方法,所述虚拟机为VirtualBox虚拟机;A7, the method as described in A6, described virtual machine is VirtualBox virtual machine;
所述通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统,包括:通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。The starting the virtual operating system through the simulation control program in the host operating system includes: controlling the VirtualBox virtual machine through the simulation control program in the host operating system, and starting the virtual operating system through the VirtualBox virtual machine.
A8、如A6所述的方法,所述虚拟机为VirtualBox虚拟机;A8, the method as described in A6, described virtual machine is VirtualBox virtual machine;
所述虚拟操作系统通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,包括:The virtual operating system loads a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, including:
所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;The virtual operating system loads a predefined script through the init process, runs the client extension component of the VirtualBox virtual machine, and writes the IP address of the virtual operating system into the client attribute of the VirtualBox virtual machine;
所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。The host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
A9、如A2所述的方法,A9, the method as described in A2,
所述通过所述基础进程启动虚拟输入服务进程,包括:通过init进程启动vinput进程;Said starting the virtual input service process through the basic process includes: starting the vinput process through the init process;
所述建立所述模拟控制程序与所述虚拟输入服务进程之间的连接,包括:在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。The establishment of the connection between the simulation control program and the virtual input service process includes: establishing a connection with the simulation control program by the vinput process at a designated port of the virtual operating system.
A10、如A2所述的方法,在通过所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统之前,还包括:所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。A10. The method as described in A2, before starting the virtual operating system through the simulation control program in the host operating system, further comprising: the host operating system configures a The virtual network connection enables the host operating system and the virtual operating system to communicate through the virtual network connection.
A11、如A1-A10任一项所述的方法,所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。A11. The method according to any one of A1-A10, wherein the host operating system includes a Windows operating system, a Mac operating system or a Linux operating system; and the virtual operating system includes an Android operating system.
B12、一种虚拟输入的装置,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述装置包括:B12. A device for virtual input, used to input a virtual operating system parasitic on a host operating system, said device comprising:
宿主虚拟通信单元,用于建立所述宿主操作系统与所述虚拟操作系统之间的通信连接;a host virtual communication unit, configured to establish a communication connection between the host operating system and the virtual operating system;
自定义单元,用于在所述宿主操作系统中提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;a custom unit, configured to provide a user-defined keyboard interface in the host operating system, and receive and store the correspondence between user-defined key information and control commands;
控制命令确定单元,用于在所述宿主操作系统接收到用户输入的按键信息后,根据所述对应关系,确定用户输入的按键信息对应的控制命令;A control command determining unit, configured to determine a control command corresponding to the key information input by the user according to the corresponding relationship after the host operating system receives the key information input by the user;
控制命令处理单元,用于通过所述通信连接,由所述宿主操作系统向所述虚拟操作系统提供基于所述控制命令的输入控制消息,以便所述虚拟操作系统对输入控制消息进行处理。The control command processing unit is configured to provide the host operating system with an input control message based on the control command to the virtual operating system through the communication connection, so that the virtual operating system can process the input control message.
B13、如B12所述的装置,所述宿主虚拟通信单元具体包括:B13. The device as described in B12, the host virtual communication unit specifically includes:
启动虚拟控制子单元,用于控制所述宿主操作系统中的模拟控制程序启动所述虚拟操作系统;Start a virtual control subunit, configured to control a simulation control program in the host operating system to start the virtual operating system;
虚拟IP地址获取子单元,用于获取所述虚拟操作系统的IP地址;a virtual IP address obtaining subunit, configured to obtain the IP address of the virtual operating system;
虚拟连接建立子单元,用于根据所述虚拟操作系统的IP地址,建立所述模拟控制程序与虚拟操作系统中虚拟输入服务进程之间的连接。The virtual connection establishing subunit is used to establish a connection between the simulation control program and the virtual input service process in the virtual operating system according to the IP address of the virtual operating system.
B14、如B13所述的装置,所述控制命令处理单元具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。B14. The device according to B13, wherein the control command processing unit is specifically configured to translate the control command and control parameters, and generate the input control message.
B15、如B13所述的装置,B15. A device as described in B13,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
B16、如B15所述的装置,所述虚拟机为VirtualBox虚拟机;所述启动虚拟控制子单元具体用于,通过所述宿主操作系统中的模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。B16, the device as described in B15, the virtual machine is a VirtualBox virtual machine; the virtual control subunit for starting is specifically used to control the VirtualBox virtual machine by the simulation control program in the host operating system, and is started by the VirtualBox virtual machine The virtual operating system.
B17、如B15所述的装置,所述虚拟机为VirtualBox虚拟机;所述虚拟IP地址获取子单元具体用于,读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。B17, the device as described in B15, the virtual machine is a VirtualBox virtual machine; the virtual IP address acquisition subunit is specifically used to read the client attribute of the VirtualBox virtual machine, and obtain the IP address of the virtual operating system .
B18、如B15所述的装置,所述虚拟连接建立子单元具体用于,在所述虚拟操作系统的指定端口,所述模拟控制程序与所述虚拟操作系统的vinput进程建立连接。B18. The device according to B15, wherein the virtual connection establishing subunit is specifically configured to establish a connection between the simulation control program and the vinput process of the virtual operating system at a designated port of the virtual operating system.
B19、如B13所述的装置,还包括:B19. The device as described in B13, further comprising:
虚拟网络配置单元,用于在所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。The virtual network configuration unit is configured to configure a virtual network connection specially used to communicate with the virtual operating system on the host operating system, so that the host operating system and the virtual operating system are connected through the virtual network connection.
C20、一种虚拟输入的系统,用于对寄生于宿主操作系统的虚拟操作系统进行输入,所述系统包括:C20, a virtual input system, used for inputting a virtual operating system parasitic on a host operating system, said system comprising:
宿主操作系统,用于建立与所述虚拟操作系统之间的通信连接,并提供用户自定义键盘界面,接收并存储用户定义的按键信息与控制命令的对应关系;接收到用户输入的按键信息,并根据所述对应关系,确定用户输入的按键信息对应的控制命令;通过所述通信连接,向所述虚拟操作系统提供基于所述控制命令的输入控制消息,The host operating system is used to establish a communication connection with the virtual operating system, provide a user-defined keyboard interface, receive and store the corresponding relationship between user-defined key information and control commands; receive the key information input by the user, And according to the corresponding relationship, determine the control command corresponding to the key information input by the user; through the communication connection, provide the virtual operating system with an input control message based on the control command,
虚拟操作系统,用于建立与所述宿主操作系统之间的通信连接,并在接收到宿主操作系统的输入控制消息之后,对输入控制消息进行处理。The virtual operating system is configured to establish a communication connection with the host operating system, and process the input control message after receiving the input control message from the host operating system.
C21、如C20所述的虚拟输入的系统,C21. The system of virtual input as described in C20,
所述宿主操作系统还用于,建立与所述虚拟操作系统的网络连接,并通过模拟控制程序启动所述虚拟操作系统,以及,根据获取的所述虚拟操作系统的IP地址,建立所述模拟控制程序与所述虚拟操作系统中的输入服务进程之间的连接;并且,在确定出控制命令后,根据所述控制命令转译得到输入控制消息,由所述模拟控制程序将所述输入控制消息发送给所述虚拟输入服务进程;The host operating system is further configured to establish a network connection with the virtual operating system, start the virtual operating system through a simulation control program, and, according to the acquired IP address of the virtual operating system, establish the simulated The connection between the control program and the input service process in the virtual operating system; and, after the control command is determined, the input control message is translated according to the control command, and the input control message is translated by the simulation control program Send to the virtual input service process;
所述虚拟操作系统还用于,通过基础进程加载预定义脚本,从而将所述虚拟操作系统的IP地址提供给所述宿主操作系统,以及,通过所述基础进程启动虚拟输入服务进程,以及,由所述虚拟输入服务进程接收所述模拟控制程序发送来的输入控制消息,并且,对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到所述虚拟操作系统可识别的输入控制信号。The virtual operating system is further configured to load a predefined script through a basic process, thereby providing the IP address of the virtual operating system to the host operating system, and starting a virtual input service process through the basic process, and, The virtual input service process receives the input control message sent by the simulation control program, and interprets the input control message received by the virtual input service process to obtain the Input control signal.
C22、如C21所述的虚拟输入的系统,C22. The system of virtual input as described in C21,
所述虚拟操作系统运行在与所述宿主操作系统所在物理设备相独立的另一个物理设备上;或者,The virtual operating system runs on another physical device independent of the physical device where the host operating system is located; or,
所述虚拟操作系统运行在虚拟机上,其中,所述虚拟机运行在所述宿主操作系统所在的物理设备上,或者,所述虚拟机运行在与所述宿主操作系统所在物理设备不同的另一个物理设备上。The virtual operating system runs on a virtual machine, wherein the virtual machine runs on a physical device where the host operating system is located, or the virtual machine runs on another physical device different from the physical device where the host operating system is located. on a physical device.
C23、如C22所述的虚拟输入的系统,所述虚拟机为VirtualBox虚拟机;所述宿主操作系统具体用于,通过模拟控制程序控制VirtualBox虚拟机,由VirtualBox虚拟机启动所述虚拟操作系统。C23, the virtual input system as described in C22, the virtual machine is a VirtualBox virtual machine; the host operating system is specifically used to control the VirtualBox virtual machine through a simulation control program, and start the virtual operating system by the VirtualBox virtual machine.
C24、如C22所述的虚拟输入的系统,所述虚拟机为VirtualBox虚拟机;所述虚拟操作系统通过init进程加载预定义脚本,运行VirtualBox虚拟机的客户扩展组件,将所述虚拟操作系统的IP地址写入VirtualBox虚拟机的客户属性;所述宿主操作系统读取所述VirtualBox虚拟机的客户属性,获取所述虚拟操作系统的IP地址。C24, the virtual input system as described in C22, the virtual machine is a VirtualBox virtual machine; the virtual operating system loads a predefined script through the init process, runs the client extension component of the VirtualBox virtual machine, and uses the virtual operating system The IP address is written into the client attribute of the VirtualBox virtual machine; the host operating system reads the client attribute of the VirtualBox virtual machine to obtain the IP address of the virtual operating system.
C25、如C21所述的虚拟输入的系统,所述虚拟操作系统通过init进程启动vinput进程;在所述虚拟操作系统的指定端口,所述vinput进程建立与所述模拟控制程序的连接。C25, the virtual input system as described in C21, the virtual operating system starts the vinput process through the init process; at the specified port of the virtual operating system, the vinput process establishes a connection with the simulation control program.
C26、如C21所述的虚拟输入的系统,所述宿主操作系统具体用于,对所述控制命令以及控制参数进行转译,生成所述输入控制消息。C26. In the virtual input system described in C21, the host operating system is specifically configured to translate the control command and control parameters, and generate the input control message.
C27、如C21所述的虚拟输入控制的系统,所述虚拟操作系统具体用于,控制对所述虚拟输入服务进程接收到的所述输入控制消息进行解译,得到控制命令;并对所述控制命令进行硬件抽象层HAL转换;得到所述虚拟操作系统可识别的输入控制信号。C27. The virtual input control system described in C21, the virtual operating system is specifically used to control the interpretation of the input control message received by the virtual input service process to obtain a control command; and The control command is converted by the hardware abstraction layer HAL; the input control signal recognizable by the virtual operating system is obtained.
C28、如C21所述的虚拟输入控制的系统,所述宿主操作系统配置一个专门用来与所述虚拟操作系统通信的虚拟网络连接,使得宿主操作系统和虚拟操作系统在所述虚拟网络连接中连通。C28. In the virtual input control system described in C21, the host operating system configures a virtual network connection specially used to communicate with the virtual operating system, so that the host operating system and the virtual operating system are connected in the virtual network connection connected.
C29、如C20-C28任一项所述的虚拟输入控制的系统,所述宿主操作系统包括Windows操作系统、Mac操作系统或Linux操作系统;所述虚拟操作系统包括Android操作系统。C29. The system controlled by virtual input according to any one of C20-C28, wherein the host operating system includes a Windows operating system, a Mac operating system or a Linux operating system; and the virtual operating system includes an Android operating system.
Claims (26)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510921140.7A CN105573816B (en) | 2015-12-11 | 2015-12-11 | The method, apparatus and system virtually inputted |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510921140.7A CN105573816B (en) | 2015-12-11 | 2015-12-11 | The method, apparatus and system virtually inputted |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN105573816A CN105573816A (en) | 2016-05-11 |
| CN105573816B true CN105573816B (en) | 2018-12-21 |
Family
ID=55883988
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201510921140.7A Active CN105573816B (en) | 2015-12-11 | 2015-12-11 | The method, apparatus and system virtually inputted |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN105573816B (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106528099A (en) * | 2016-10-21 | 2017-03-22 | 合肥联宝信息技术有限公司 | Method and device for recognizing operation command based on different operation systems |
| CN107278294B (en) * | 2017-05-12 | 2020-11-06 | 深圳前海达闼云端智能科技有限公司 | Input device implementation method and implementation device thereof |
| CN110649997B (en) * | 2018-06-26 | 2021-07-20 | 大唐移动通信设备有限公司 | Data processing method and device |
| CN111200535B (en) * | 2018-11-16 | 2022-11-15 | 阿里巴巴集团控股有限公司 | Simulation system and method for equipment |
| CN112799521B (en) * | 2021-03-29 | 2021-08-27 | 上海捷勃特机器人有限公司 | Electronic device and method for operating electronic device |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6003050A (en) * | 1997-04-02 | 1999-12-14 | Microsoft Corporation | Method for integrating a virtual machine with input method editors |
| US6004049A (en) * | 1998-10-29 | 1999-12-21 | Sun Microsystems, Inc. | Method and apparatus for dynamic configuration of an input device |
| CN102331927A (en) * | 2011-06-24 | 2012-01-25 | 浙大网新科技股份有限公司 | Method for integrating soft keyboard input of Wine and Android mobile phone |
| CN102364434A (en) * | 2011-06-24 | 2012-02-29 | 浙大网新科技股份有限公司 | Method for integrating Wine and Android mouse input |
| CN103064724A (en) * | 2012-12-14 | 2013-04-24 | 北京伸得纬科技有限公司 | Virtual mechanism constructing method and device |
| CN103177212A (en) * | 2013-03-08 | 2013-06-26 | 湘潭大学 | Computer security input system and method based on lightweight virtual machine monitor unit |
| CN103389884A (en) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | Method for processing input/output request, host, server and virtual machine |
| CN103593185A (en) * | 2013-11-04 | 2014-02-19 | 浙江大学 | Single-Linux-inner-core-based method for multiple Android systems to share input equipment and display equipment |
| US8863113B1 (en) * | 2007-07-10 | 2014-10-14 | Parallels IP Holdings GmbH | Method and system for unattended installation of guest operating system |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030093258A1 (en) * | 2001-11-14 | 2003-05-15 | Roman Fishstein | Method and apparatus for efficient simulation of memory mapped device access |
-
2015
- 2015-12-11 CN CN201510921140.7A patent/CN105573816B/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6003050A (en) * | 1997-04-02 | 1999-12-14 | Microsoft Corporation | Method for integrating a virtual machine with input method editors |
| US6004049A (en) * | 1998-10-29 | 1999-12-21 | Sun Microsystems, Inc. | Method and apparatus for dynamic configuration of an input device |
| US8863113B1 (en) * | 2007-07-10 | 2014-10-14 | Parallels IP Holdings GmbH | Method and system for unattended installation of guest operating system |
| CN102331927A (en) * | 2011-06-24 | 2012-01-25 | 浙大网新科技股份有限公司 | Method for integrating soft keyboard input of Wine and Android mobile phone |
| CN102364434A (en) * | 2011-06-24 | 2012-02-29 | 浙大网新科技股份有限公司 | Method for integrating Wine and Android mouse input |
| CN103064724A (en) * | 2012-12-14 | 2013-04-24 | 北京伸得纬科技有限公司 | Virtual mechanism constructing method and device |
| CN103177212A (en) * | 2013-03-08 | 2013-06-26 | 湘潭大学 | Computer security input system and method based on lightweight virtual machine monitor unit |
| CN103389884A (en) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | Method for processing input/output request, host, server and virtual machine |
| CN103593185A (en) * | 2013-11-04 | 2014-02-19 | 浙江大学 | Single-Linux-inner-core-based method for multiple Android systems to share input equipment and display equipment |
Also Published As
| Publication number | Publication date |
|---|---|
| CN105573816A (en) | 2016-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105573816B (en) | The method, apparatus and system virtually inputted | |
| CN104740872B (en) | Simulate game program operation control method and device in Android environment | |
| KR101251710B1 (en) | Boot negotiation among multiple boot-capable devices | |
| CN103262057B (en) | Cross-environment communication framework | |
| CN105521603B (en) | The method, apparatus and system of virtual input control are carried out for the game of cool run class | |
| US20130185351A1 (en) | System and method for remotely operating a wireless device using a server and client architecture | |
| JP2016076216A (en) | Application trial system, method, server thereof, and user device | |
| KR20140065837A (en) | Apparatus and system for providing software service using software virtualization and method thereof | |
| JP2009259108A (en) | Information processing apparatus and method of controlling information processing apparatus | |
| JP2005174307A (en) | System and method for bimodal device virtualization of actual hardware-based device and idealized hardware-based device | |
| WO2013156654A1 (en) | Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system | |
| CN108124475A (en) | Virtual system Bluetooth communication method and device, virtual system, storage medium and electronic equipment | |
| CN105550017A (en) | Method, apparatus and system for performing virtual input control for application | |
| CN105573817B (en) | Method, device and system for virtual input control | |
| KR20120096741A (en) | Virtual device cloud network system and method for providing applications on heterogeneous device platform | |
| CN105550046B (en) | Virtual control method, device and system | |
| CN115040866A (en) | Cloud game image processing method, device, equipment and computer readable storage medium | |
| CN105740012A (en) | Method for updating BIOS (Basic Input Output System) program of computer | |
| WO2024045584A1 (en) | Data processing method and apparatus based on cloud game, and electronic device and storage medium | |
| CN105550045A (en) | Method, device and system for controlling virtual input by mobile terminal | |
| CN109460280A (en) | Run method, the terminal of program | |
| CN113543364A (en) | Proxy service method, screen projection method, terminal device, electronic device and storage medium | |
| CN109117001B (en) | Android system gyroscope event conversion method and device | |
| Chai et al. | TEEI-A Mobile Security Infrastructure for TEE Integration | |
| WO2017211260A1 (en) | Data access method and related device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TR01 | Transfer of patent right | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20220729 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |