CN114090188A - 基于安卓系统虚拟化的实现独立多用户系统的方法及应用 - Google Patents

基于安卓系统虚拟化的实现独立多用户系统的方法及应用 Download PDF

Info

Publication number
CN114090188A
CN114090188A CN202111432322.XA CN202111432322A CN114090188A CN 114090188 A CN114090188 A CN 114090188A CN 202111432322 A CN202111432322 A CN 202111432322A CN 114090188 A CN114090188 A CN 114090188A
Authority
CN
China
Prior art keywords
input event
virtual
event message
virtual machine
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111432322.XA
Other languages
English (en)
Inventor
何庆泥
胡磊
张文俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Blue Carp Technology Co ltd
Original Assignee
Wuhan Blue Carp Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Blue Carp Technology Co ltd filed Critical Wuhan Blue Carp Technology Co ltd
Priority to CN202111432322.XA priority Critical patent/CN114090188A/zh
Publication of CN114090188A publication Critical patent/CN114090188A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

发明公开了一种基于安卓系统虚拟化的实现独立多用户系统的方法及应用。该方法包括步骤:生成与虚拟机一一对应的虚拟设备节点和监听输出节点;将输入事件消息写入分发队列,利用分发进程解析获取与所述输入事件消息对应的虚拟设备节点ID,将所述输入事件消息写入对应的虚拟设备节点;所述对应的虚拟设备节点完成事件写入后,将所述输入事件消息输出给对应的监听输出节点;响应于所述输入事件消息,所述对应的监听输出节点启动对应的虚拟机系统对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。本发明可以实现多用户独立互不干扰的输入。

Description

基于安卓系统虚拟化的实现独立多用户系统的方法及应用
技术领域
本发明属于虚拟化用户输入技术领域,更具体地,涉及一种基于安卓系统虚拟化的实现独立多用户系统的方法及系统。
背景技术
在安卓虚拟化多开技术的应用场景中,由于触摸屏感应器只有一个,所以只能同时只有一个用户操作,当有多个用户同时需要对自己所在的虚拟机进行操作的时候,所有的触摸或者按键事件将会直接写入到驱动层,并由驱动层再映射到各个虚拟机中这样势必会导致操作混乱。
为了解决这个问题传统方案是通过事件注入的方式直接向Android系统层注入输入事件。如图1所示,Android系统输入事件的基本原理是:Android系统启动后会在系统服务器(SystemServer)中启动Android系统所有的框架服务,其中包括InputManagerService(IMS,也即输入事件管理)服务和WindowManagerService(WMS,也即窗口管理)服务,WindowManagerService在显示顶层窗口的时候会将获取焦点的窗口的对象添加到InputManagerService对象中。InputManagerService在初始化的时候创建Jni层的NativeInputManager模块,在该模块中创建InputManager和EventHub模块,EventHub主要负责监听/dev/input驱动节点的创建、删除和输入事件。InputManager初始化创建InputReader和InputDispatcher,InputReader主要是通过EventHub读取输入事件,InputDispatcher通过InputReader获取的事件分发到InputManagerService中的焦点窗口上,这样就完成了事件的读取到分发到窗口界面。在InputManagerService还提供一个InjectInputEvent接口,这个接口主要用于模拟事件发送,它的实现也很简单,就是将用户的模拟事件通过NativeInputManager创建的InputDispatcher直接分发事件到焦点窗口。
从图1可知,事件从/dev/input驱动节点发送到EventHub模块然后继续通过InputReader读取并通过InputDispatcher分发给焦点窗口,传统注入事件的方式通过IMS获取InputManager对象然后通过InputDispatcher直接向焦点窗口发送事件,这样存在一个弊端:对于一些直接监听设备/dev/input驱动节点输出事件的应用将完全无效,兼容性能大打折扣。
例如云手机场景中,需要对一个真实的硬件设备进行虚拟化多个容器虚拟机,原始的交互方式是,如果想使用哪个虚拟机就必须切换到要交互的虚拟机中,另外一台不交互的虚拟机就保持在后台运行不接受输入事件。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种基于安卓系统虚拟化的实现独立多用户系统的方法及系统,其目的在于解决虚拟化多用户如何实现独立互不干扰的触摸或者按键输入的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于安卓系统虚拟化的实现独立多用户系统的方法,在基于安卓系统的实体机的内核层设置有用于多个虚拟机进程管理的设备管理模块,该方法包括:
响应于虚拟交互设备发送的虚拟机创建需求消息,设备管理模块生成与虚拟机一一对应的虚拟设备节点和监听输出节点;
响应于虚拟交互设备发送的输入事件消息,并将输入事件消息写入分发队列,利用分发进程解析获取与输入事件消息对应的虚拟设备节点ID,将输入事件消息写入对应的虚拟设备节点;
对应的虚拟设备节点完成事件写入后,将输入事件消息输出给对应的监听输出节点;
响应于输入事件消息,对应的监听输出节点启动对应的虚拟机系统对输入事件消息进行解析以获取对应的用户输入事件,并响应用户输入事件在对应的虚拟交互设备显示操作进程。
作为本发明的进一步改进,虚拟机系统为安卓系统,其创建过程包括通过创建一个linux内核命名空间,通过在linux内核命名空间复制出一个安卓的init进程,通过init进程创建安卓的核心服务进程。
作为本发明的进一步改进,利用虚拟机系统中的InputManagerService服务实现虚拟交互设备的输入事件消息的监听。
作为本发明的进一步改进,利用虚拟机系统中的InputManagerService服务实现对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
为实现上述目的,按照本发明的另一个方面,提供了一种基于安卓系统虚拟化的实现独立多用户系统的系统,系统包括应用层和内核层,应用层包括多个虚拟机系统和多个虚拟交互设备,内核层设置有用于多个虚拟机进程管理的设备管理模块,其中,
设备管理模块用于响应虚拟交互设备发送的虚拟机创建需求消息,生成与虚拟机一一对应的虚拟设备节点和监听输出节点;
设备管理模块还用于响应虚拟交互设备发送的输入事件消息,并将输入事件消息写入分发队列,利用分发进程解析获取与输入事件消息对应的虚拟设备节点ID,将输入事件消息写入所述对应的虚拟设备节点;
对应的虚拟设备节点用于完成事件写入后,将输入事件消息输出给对应的监听输出节点;
对应的监听输出节点用于响应所述输入事件消息,启动对应的虚拟机系统对输入事件消息进行解析以获取对应的用户输入事件,以使得对应的虚拟机系统响应用户输入事件在对应的虚拟交互设备显示操作进程。
作为本发明的进一步改进,虚拟机系统为安卓系统,其创建过程包括通过创建一个linux内核命名空间,通过在linux内核命名空间复制出一个安卓的init进程,通过init进程创建安卓的核心服务进程。
作为本发明的进一步改进,利用虚拟机系统中的InputManagerService服务实现虚拟交互设备的输入事件消息的监听。
作为本发明的进一步改进,利用虚拟机系统中的InputManagerService服务实现对所述输入事件消息进行解析以获取对应的用户输入事件,并响应用户输入事件在对应的虚拟交互设备显示操作进程。
为实现上述目的,按照本发明的另一个方面,提供了一种终端设备,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述方法的步骤。
为实现上述目的,按照本发明的另一个方面,提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行上述方法的步骤。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
本发明提供的一种基于安卓系统虚拟化的实现独立多用户系统的方法及应用,通过创建每个虚拟机对应的虚拟设备节点和监听输出节点,虚拟设备节点在内核层收到用户层输入后,将消息转发到监听该虚拟机的监听输出节点,而不再继续向下真实设备驱动投递,可以实现多用户独立互不干扰的输入。
附图说明
图1是现有技术中输入事件的原理示意图;
图2本发明实施例的一种基于安卓系统虚拟化的实现独立多用户系统的方法的应用场景示意图;
图3本发明实施例的一种基于安卓系统虚拟化的实现独立多用户系统的方法的原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
下面结合实施例和附图对本发明提供的基于安卓系统虚拟化的实现独立多用户系统的方法及系统的结构和工作原理进行详细说明。
本发明实施例的一种基于安卓系统虚拟化的实现独立多用户系统的方法的应用场景为如图2所示。
虚拟机(Virtual Machine,简称VM)通过调用系统clone函数来进行创建,在克隆的时候可以根据自己的需求对硬件资源进行单独隔离,这就衍生出了命名空间(Namespace),命名空间可以实现对网络、磁盘、内存、IO、CPU等硬件资源进行单独分割出来给新的进程使用和其他进程完全隔离开来,所以只需要创建一个网络、磁盘、CPU、内存、IO完全隔离的命名空间即可,然后在此命名空间中调用android系统的init进程开始初始化整个虚拟机。
标准linux内核命名空间分为net、ipc、pid、mnt、uts这几个,当有新的进程创建(fork clone)的时候会随之在内核中创建对应指定参数对应属性的命名空间,由于这几个都是虚拟机启动后才会单独一一创建,为了能统一管理这些命名空间以及后面将要创建的虚拟设备实例,本发明实施例在linux内核添加了一个设备命名管理空间dev_namespace,这个设备命名空间在主系统初始化(即主系统init进程启动)的时候在内核层开始创建,设备命名管理空间dev_namespace管理驱动中会注册一个pid和一个event到所有内核上层的虚拟机和主机中的设备目录中,容器(即虚拟机)和主机中的程序可以读取或者写数据到此节点中,pid用来读取当前容器在内核层对应的真实的进程id号,event是主系统向容器下发命令或者关闭回收容器指令的节点,当容器系统被创建出来后会调用dev_namespace模块的注册函数,此时设备命名空间根据新系统主进程init的pid去初始化对应容器内的虚拟设备驱动模块,并将创建过程中生成的一系列文件句柄保存到一个全局链表中,当虚拟容器关闭的时候做回收处理。
在通过传屏协议进行传屏控制时,多个客户端(Client1~Clientn)可以通过创建多个虚拟机(VM1~VMn)的方式使用同一硬件资源,当多个用户同时需要对自己所在的虚拟机进行操作的时候。若使用传统的方法,则所有的触摸或者按键事件将会直接写入到驱动层,并由驱动层再映射到各个虚拟机中这样会导致操作混乱。
本发明实施例的一种基于安卓系统虚拟化的实现独立多用户系统的方法,事件从获取到内核的分发原理如图3所示,在基于安卓系统的实体机的内核层设置有用于多个虚拟机进程管理的设备管理模块,该方法包括:
S1,响应于虚拟交互设备发送的虚拟机创建需求消息,设备管理模块生成与虚拟机一一对应的虚拟设备节点和监听输出节点,每个虚拟设备节点有对应的虚拟设备节点ID。
例如,在图2的应用场景中,分别为每个客户端创建对应的虚拟机,分别为每个虚拟机一一对应的虚拟设备节点和监听输出节点。
S2,响应于监听得到的虚拟交互设备发送的输入事件消息,并将所述输入事件消息写入分发队列,利用分发进程解析获取与所述输入事件消息对应的虚拟设备节点ID,将所述输入事件消息写入对应的虚拟设备节点。
当多个客户端分别通过各自的虚拟交互设备进行交互式,会监听到多个输入事件消息,将多个输入事件消息写入分发队列。
获得虚拟设备节点ID后,分别将输入事件消息写入对应的虚拟设备节点。假设监听到Client1发送输入事件消息1,Client2发送输入事件消息2,则将输入事件消息1写入到VM1对应的虚拟设备节点1,将输入事件消息2写入到VM1对应的虚拟设备节点2。
S3,虚拟设备节点完成事件写入后,将所述输入事件消息输出给对应的监听输出节点。
虚拟设备节点1完成输入事件消息1的写入后,将输入事件消息1输出给对应的监听输出节点1,虚拟设备节点2完成输入事件消息2的写入后,将输入事件消息2输出给对应的监听输出节点2。
S4,响应于所述输入事件消息,监听输出节点启动对应的虚拟机系统对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
监听输出节点1接收到输入事件消息1后启动对应VM1对输入事件消息进行解析。虚拟设备节点2接收到输入事件消息2后,启动对应的VM2对事件消息2进行解析。
优选的,虚拟机系统为android系统,其工作原理为通过创建一个完全隔离的linux内核命名空间,该linux内核命名空间包括网络属性、文件读写、进程管理、cpu和内存调度等,通过在这个命名空间复制出一个android的init进程,通过init进程创建android的核心服务进程,从而克隆出一个完整的android系统。在进行虚拟机系统建立完成后,触发内核的设备管理模块生成与虚拟机一一对应的虚拟设备节点和监听输出节点。如每个虚拟机的init进程创建的时候会在内核层创建一个设备命名空间,命名空间中记录了init进程pid的属性,主机的init的pid是0,在内核层通过判断如果init的pid不为0那么就不再继续往下投递消息。
安卓虚拟化系统,每次启动一个虚拟机,则在内核层对应创建一个内核空间标记和一个虚拟设备节点并映射到虚拟机的外设目录下,命名空间中记录这个虚拟机的一些属性信息。这样虚拟机启动后会启动一个通信服务程序来打开这个虚拟设备节点负责远程终端的输入以及将用户事件输出到内核中去,虚拟机启动的每一个子进程都会继承这个虚拟机的命名空间,虚拟机启动用户通过远程终端发送触摸或者按键事件到该虚拟机的接收进程,然后该进程接收数据后通过打开虚拟输入设备节点并写入数据,虚拟设备节点在内核层收到用户层输入,并根据命名空间标记直接将消息转发到监听该虚拟机的输出节点的进程中,而不再继续向下真实设备驱动投递。
优选的,可利用虚拟机系统进行虚拟交互设备的输入事件消息的监听,如虚拟机系统启动并运行InputManagerService服务并打开/dev/input去监听虚拟交互设备(如各种应用终端)的输出的事件消息。
优选的,虚拟机系统启动InputManagerService服务对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程,以响应用户操作完成了人机操作。
上述方法通过虚拟化输入设备后,交互数据从用户终端输入到虚拟机容器的事件服务程序,然后再由输入服务程序将事件写入到内核中创建的一个虚拟设备节点上,最后由这个设备节点将输入事件进行转发到对应的android系统InputManager服务层最后完成交互,每个虚拟机都有自己的虚拟设备节点,这样就可以多个用户独立完成输入操作互不干扰。
综上所述,本发明的一种基于安卓系统虚拟化的实现独立多用户系统的方法的创新及有益效果在于:替代传统注入事件方式以及改造原始内核input模块。原始的内核input模块是不支持虚拟化技术的,所以如果直接用原始的input去模拟输入事件会导致所有的虚拟机全部能接收响应事件这样就没办法做到多个用户独立交互了,这里修改了原始的input模块使其支持虚拟化技术,让输入硬件模块也可以独立给虚拟机使用互相不干扰具体实现原理如下。
一种基于安卓系统虚拟化的实现独立多用户系统的系统,该系统包括应用层和内核层,应用层包括多个虚拟机系统和多个虚拟交互设备,内核层设置有用于多个虚拟机进程管理的设备管理模块,其中,
设备管理模块用于响应虚拟交互设备发送的虚拟机创建需求消息,生成与虚拟机一一对应的虚拟设备节点和监听输出节点;
设备管理模块还用于响应虚拟交互设备发送的输入事件消息,并将输入事件消息写入分发队列,利用分发进程解析获取与输入事件消息对应的虚拟设备节点ID,将输入事件消息写入对应的虚拟设备节点;
对应的虚拟设备节点用于完成事件写入后,将所述输入事件消息输出给对应的监听输出节点;
对应的监听输出节点用于响应所述输入事件消息,启动对应的虚拟机系统对输入事件消息进行解析以获取对应的用户输入事件,以使得对应的虚拟机系统响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
优选的,虚拟机系统为android系统,其工作原理为通过创建一个完全隔离的linux内核命名空间,该linux内核命名空间包括网络属性、文件读写、进程管理、cpu和内存调度等,通过在这个命名空间复制出一个android的init进程,通过init进程创建android的核心服务进程,从而克隆出一个完整的android系统。在进行虚拟机系统建立完成后,触发内核的设备管理模块生成与虚拟机一一对应的虚拟设备节点和监听输出节点。如每个虚拟机的init进程创建的时候会在内核层创建一个设备命名空间,命名空间中记录了init进程pid的属性,主机的init的pid是0,在内核层通过判断如果init的pid不为0那么就不再继续往下投递消息。
安卓虚拟化系统,每次启动一个虚拟机,则在内核层对应创建一个内核空间标记和一个虚拟输入设备节点并映射到虚拟机的外设目录下,命名空间中记录这个虚拟机的一些属性信息。这样虚拟机启动后会启动一个通信服务程序来打开这个设备节点负责远程终端的输入以及将用户事件输出到内核中去,虚拟机启动的每一个子进程都会继承这个虚拟机的命名空间,虚拟机启动用户通过远程终端发送触摸或者按键事件到该虚拟机的接收进程,然后该进程接收数据后通过打开虚拟输入设备节点并写入数据,虚拟设备节点在内核层收到用户层输入,并根据命名空间标记直接将消息转发到监听该虚拟机的输出节点的进程中,而不再继续向下真实设备驱动投递。
优选的,可利用虚拟机系统进行虚拟交互设备的输入事件消息的监听,如虚拟机系统启动并运行InputManagerService服务并打开/dev/input去监听虚拟交互设备(如各种应用终端)的输出的事件消息。
优选的,虚拟机系统启动InputManagerService服务对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程,以响应用户操作完成了人机操作。
上述方法通过虚拟化输入设备后,交互数据从用户终端输入到虚拟机容器的事件服务程序,然后再由输入服务程序将事件写入到内核中创建的一个虚拟设备节点上,最后由这个设备节点将输入事件进行转发到对应的android系统InputManager服务层最后完成交互,每个虚拟机都有自己的虚拟设备节点,这样就可以多个用户独立完成输入操作互不干扰。
本实施例还提供了一种电子设备,其包括至少一个处理器、以及至少一个存储器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,使得处理器执行实施例中方法的步骤,具体步骤参见实施例,此处不再赘述;本实施例中,处理器和存储器的类型不作具体限制,例如:处理器可以是微处理器、数字信息处理器、片上可编程逻辑系统等;存储器可以是易失性存储器、非易失性存储器或者它们的组合等。该电子设备也可以与一个或多个外部设备(如键盘、指向终端、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的终端通信,和/或与使得该电子设备能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LocalArea Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。
本实施例还提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行实施例中的方法的步骤。计算机可读介质的类型包括但不限于SD卡、U盘、固定硬盘、移动硬盘等存储介质。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于安卓系统虚拟化的实现独立多用户系统的方法,其特征在于,在基于安卓系统的实体机的内核层设置有用于多个虚拟机进程管理的设备管理模块,所述方法包括:
响应于虚拟交互设备发送的虚拟机创建需求消息,设备管理模块生成与虚拟机一一对应的虚拟设备节点和监听输出节点;
响应于虚拟交互设备发送的输入事件消息,并将所述输入事件消息写入分发队列,利用分发进程解析获取与所述输入事件消息对应的虚拟设备节点ID,将所述输入事件消息写入对应的虚拟设备节点;
所述对应的虚拟设备节点完成事件写入后,将所述输入事件消息输出给对应的监听输出节点;
响应于所述输入事件消息,所述对应的监听输出节点启动对应的虚拟机系统对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
2.如权利要求1所述的一种基于安卓系统虚拟化的实现独立多用户系统的方法,其中,所述虚拟机系统为安卓系统,其创建过程包括通过创建一个linux内核命名空间,通过在linux内核命名空间复制出一个安卓的init进程,通过init进程创建安卓的核心服务进程。
3.如权利要求1所述的一种基于安卓系统虚拟化的实现独立多用户系统的方法,其中,利用虚拟机系统中的InputManagerService服务实现虚拟交互设备的输入事件消息的监听。
4.如权利要求1所述的一种基于安卓系统虚拟化的实现独立多用户系统的方法,其中,利用虚拟机系统中的InputManagerService服务实现对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
5.一种基于安卓系统虚拟化的实现独立多用户系统的系统,其特征在于,所述系统包括应用层和内核层,所述应用层包括多个虚拟机系统和多个虚拟交互设备,所述内核层设置有用于多个虚拟机进程管理的设备管理模块,其中,
所述设备管理模块用于响应虚拟交互设备发送的虚拟机创建需求消息,生成与虚拟机一一对应的虚拟设备节点和监听输出节点;
所述设备管理模块还用于响应虚拟交互设备发送的输入事件消息,并将输入事件消息写入分发队列,利用分发进程解析获取与输入事件消息对应的虚拟设备节点ID,将输入事件消息写入所述对应的虚拟设备节点;
所述对应的虚拟设备节点用于完成事件写入后,将所述输入事件消息输出给对应的监听输出节点;
所述对应的监听输出节点用于响应所述输入事件消息,启动对应的虚拟机系统对输入事件消息进行解析以获取对应的用户输入事件,以使得所述对应的虚拟机系统响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
6.如权利要求5所述的一种基于安卓系统虚拟化的实现独立多用户系统的系统,其中,所述虚拟机系统为安卓系统,其创建过程包括通过创建一个linux内核命名空间,通过在linux内核命名空间复制出一个安卓的init进程,通过init进程创建安卓的核心服务进程。
7.如权利要求5所述的一种基于安卓系统虚拟化的实现独立多用户系统的系统,其中,利用虚拟机系统中的InputManagerService服务实现虚拟交互设备的输入事件消息的监听。
8.如权利要求5所述的一种基于安卓系统虚拟化的实现独立多用户系统的系统,其中,利用虚拟机系统中的InputManagerService服务实现对所述输入事件消息进行解析以获取对应的用户输入事件,并响应所述用户输入事件在对应的虚拟交互设备显示操作进程。
9.一种终端设备,其特征在于,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求1~4任一权利要求所述方法的步骤。
10.一种计算机可读介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行权利要求1~4任一项所述方法的步骤。
CN202111432322.XA 2021-11-29 2021-11-29 基于安卓系统虚拟化的实现独立多用户系统的方法及应用 Pending CN114090188A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111432322.XA CN114090188A (zh) 2021-11-29 2021-11-29 基于安卓系统虚拟化的实现独立多用户系统的方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111432322.XA CN114090188A (zh) 2021-11-29 2021-11-29 基于安卓系统虚拟化的实现独立多用户系统的方法及应用

Publications (1)

Publication Number Publication Date
CN114090188A true CN114090188A (zh) 2022-02-25

Family

ID=80305421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111432322.XA Pending CN114090188A (zh) 2021-11-29 2021-11-29 基于安卓系统虚拟化的实现独立多用户系统的方法及应用

Country Status (1)

Country Link
CN (1) CN114090188A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132455A (zh) * 2023-02-16 2023-05-16 无锡宇宁智能科技有限公司 基于lxc镜像的通讯方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132455A (zh) * 2023-02-16 2023-05-16 无锡宇宁智能科技有限公司 基于lxc镜像的通讯方法、装置、设备及存储介质
CN116132455B (zh) * 2023-02-16 2023-11-21 无锡宇宁智能科技有限公司 基于lxc镜像的通讯方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10637796B2 (en) Linking instances within a cloud computing environment
CN104536802B (zh) 一种实现应用调用的方法及虚拟机
WO2018126957A1 (zh) 显示虚拟现实画面的方法和虚拟现实设备
US9104438B2 (en) Mapping computer desktop objects to cloud services within a cloud computing environment
CN106575243A (zh) 管理程序托管的虚拟机取证
US9766913B2 (en) Method and system for managing peripheral devices for virtual desktops
US10698705B2 (en) Method and device for managing virtual desktops virtualized by a host server and allocated to terminal users, and virtual desktop server
US9225662B2 (en) Command management in a networked computing environment
CN111679911B (zh) 云环境中gpu卡的管理方法、装置、设备及介质
US10698715B2 (en) Alert mechanism for VDI system based on social networks
CN102291445A (zh) 一种基于虚拟化资源的云计算管理系统
US20190310882A1 (en) Multiple application instances in operating systems that utilize a single process for application execution
CN108073350A (zh) 一种用于云渲染的对象存储系统和方法
JP2013084276A (ja) ネットワークシステム
CN108632354A (zh) 物理机纳管方法、装置及云桌面管理平台
CN114157907A (zh) 基于云手机的vr应用设计方法及系统
CN108074210A (zh) 一种用于云渲染的对象获取系统和方法
CN108287647A (zh) 一种应用运行方法及装置
El-Omari Cloud IoT as a crucial enabler: a survey and taxonomy
CN114090188A (zh) 基于安卓系统虚拟化的实现独立多用户系统的方法及应用
CN104717175B (zh) 虚拟桌面的处理方法和系统
US10409762B2 (en) Remote direct memory access-based on static analysis of asynchronous blocks
US20180107723A1 (en) Content oriented analysis of dumps
US20230114321A1 (en) Cloud Data Ingestion System
CN111949265A (zh) 一种数据处理方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination