CN106844066B - 一种应用运行方法、装置及系统 - Google Patents
一种应用运行方法、装置及系统 Download PDFInfo
- Publication number
- CN106844066B CN106844066B CN201710046182.XA CN201710046182A CN106844066B CN 106844066 B CN106844066 B CN 106844066B CN 201710046182 A CN201710046182 A CN 201710046182A CN 106844066 B CN106844066 B CN 106844066B
- Authority
- CN
- China
- Prior art keywords
- application
- virtual machine
- host
- target
- host machine
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开一种应用运行方法、装置及系统,其中,应用运行方法包括:当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;所述虚拟机获取所述目标应用运行的应用画面渲染数据;所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。采用本发明实施例,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种应用运行方法、装置及系统。
背景技术
移动终端的使用越来越广泛,针对移动终端开发的各种应用也比较多,比如各种手机游戏应用,购物应用等等。但是很多时候,由于移动终端屏幕小,耗电发热等等,会导致很多应用在移动终端上面使用存在诸多不便。
比如,各种手机游戏应用在移动终端上面使用就会产生很多不便。目前手机游戏主要分两大类,一是轻度的休闲类,如开心消消乐,保卫萝卜等;另外一种是重度的MOBA或者FPS类,如王者荣耀,穿越火线手游版等;对于后者,在手机上玩有诸多不便之处,如屏幕太小,操控不灵活等缺点。
发明内容
本发明实施例提供一种应用运行方法、装置及系统,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
本发明第一方面提供一种应用运行方法,包括:
当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
所述虚拟机获取所述目标应用运行的应用画面渲染数据;
所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;
所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明第二方面提供一种应用运行方法,包括:
当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
所述虚拟机获取所述目标应用运行的应用画面渲染数据;
所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示。
本发明第三方面提供一种应用运行方法,包括:
当目标应用在虚拟机中运行时,宿主机建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
所述宿主机通过所述内核管道,接收所述虚拟机传输的应用画面渲染数据;
所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明第四方面提供一种应用运行装置,应用于虚拟机,包括:
建立模块,用于当目标应用在虚拟机中运行时,建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
第一获取模块,用于获取所述目标应用运行的应用画面渲染数据;
传输模块,用于通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示。
本发明第五方面提供一种应用运行装置,应用于宿主机,包括:
建立模块,用于当目标应用在虚拟机中运行时,建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
接收模块,用于通过所述内核管道,接收所述虚拟机传输的应用画面渲染数据;
渲染模块,用于调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明第六方面提供一种应用运行系统,包括第四方面所描述的虚拟机和第五方面描述的宿主机。
实施本发明实施例,具有如下有益效果:
本发明实施例,当目标应用在虚拟机中运行时,该虚拟机建立与宿主机之间的内核管道,该目标应用为移动终端应用,该虚拟机安装移动终端操作系统,宿主机安装桌面设备操作系统,虚拟机获取目标应用运行的应用画面渲染数据,并通过内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机,宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。通过建立虚拟机与宿主机之间的内核管道,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用运行方法的交互图;
图2为本发明实施例提供的另一种应用运行方法的交互图;
图3为本发明实施例提供的又一种应用运行方法的交互图;
图4为本发明实施例提供的又一种应用运行方法的交互图;
图5为本发明实施例提供的一种应用运行方法的流程图;
图6为本发明实施例提供的另一种应用运行方法的流程图;
图7为本发明实施例提供的一种应用运行方法的流程图;
图8为本发明实施例提供的另一种应用运行方法的流程图;
图9为本发明实施例提供的又一种应用运行方法的流程图;
图10为本发明实施例提供的一种产品界面示意图;
图11是本发明实施例提供的一种应用运行界面示意图;
图12是本发明实施例提供的一种游戏键位设置示意图;
图13是本发明实施例提供的一种技术架构图;
图14为本发明实施例提供的一种应用运行装置的结构示意图;
图15为本发明实施例提供的一种应用运行装置的结构示意图;
图16为本发明实施例提供的一种渲染模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合附图1-附图16,对本发明实施例提供的应用运行方法及装置进行详细介绍。
请参照图1,为本发明实施例提供的一种应用运行方法的流程交互图;该方法可包括以下步骤:
S10,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
本发明实施例中,内核管道为虚拟机与宿主机之间数据通信的通道,该虚拟机安装于宿主机,虚拟机通过内核管道实现与宿主机之间的通信,比如,该内核管道可以是virtio内核管道。
目标应用是移动终端应用,比如手机游戏应用,通常很多手机游戏应用只能在手机上面玩,但是由于移动终端耗电发热、屏幕太小并且操控不灵活,通常需要将移动终端应用安装在个人计算机(personal computer,PC)上面使用。若目标应用是手机游戏应用,则本发明实施例的应用运行方法可以实现在手游模拟器产品中。
本发明实施例利用虚拟化技术,在PC设备(宿主机)的桌面设备操作系统windows上运行一个虚拟移动设备(虚拟机);并在该虚拟机上安装andorid或者ios等手机操作系统,通过虚拟机和宿主机进行数据交互,从而实现在PC设备上面使用移动终端应用。
如图13所示,本发明实施例的整个框架分为两大块,APP应用市场(比如游戏应用市场),和模拟器(比如安卓模拟器),模拟器包括宿主机(比如PC设备的windows渲染客户端)和虚拟机;APP应用市场用于提供各种APP下载,APP应用市场和宿主机之间通过命令行+共享内存的方式进行通信。
具体可选的,如图13所示,应用市场采用的是基于webkit的内嵌网页的架构。自下而上,最下层是基础模块(Common Functional),提供基本的下载,异常捕获,消息通讯,帐号登陆,文件操作等操作系统底层功能;第二层是封装的功能接口层(Web Call Adapter),它的作用是抽象出一套通用的接口给web页面调用操作系统的功能;再上一层是网页渲染引擎(webkit),它的作用是显示游戏内容,该内容由后台运营人员维护,确保第一时间将最新的游戏相关内容推送到用户侧;最上层是界面框架层,提供网页渲染的容器以及周边功能窗口。如图10所示,即是应用市场显示的界面图,用户可以选择任意一个应用进行安装。
这里以游戏应用市场为例进行说明,APP应用市场提供游戏内容,供用户下载,当游戏下载完成时应用市场向安卓模拟器(安卓模拟器包括渲染客户端、虚拟机VirtualBox和屏幕)发起安装命令。APP应用市场同时将游戏参数通过共享内存传递给模拟器的渲染客户端,渲染客户端向虚拟机发送安装命令,虚拟机从windows预设磁盘资源上加载游戏安装包,并在Android系统内部去执行安装和运行游戏等命令。
虚拟机VirtualBox是一款开源的虚拟机软件,使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2Warp、BSD等系统作为客户端操作系统。在本案例中,VirtualBox虚拟机里安装的是Android4.0版本的操作系统。
当目标应用在虚拟机中运行启动后,通过virtio(linux的i/o半虚拟化框架,应用于宿主机与虚拟机之间通信)内核管道技术,将虚拟机内的游戏画面渲染数据从虚拟机系统(Android)内传输到宿主机系统(windows)。
半虚拟化(Para virtualization)是一种类似于全虚拟化的热门技术,它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
如图13所示,虚拟机的安卓系统内通过Linux半虚拟化抽象层将应用画面渲染数据解析为协议字节流传输至虚拟机VirtualBox的半虚拟化抽象层,虚拟机VirtualBox的半虚拟化抽象层通过虚拟机与宿主机(windows渲染客户端)之间所建立的内核管道,将协议字节流传输至宿主机。
这种方式是通过虚拟机系统与宿主机系统建立的windows内核管道穿梭到宿主系统中,这种管道直连的方式比套接字socket要快很多,可以满足我们对渲染数据传输的性能需求。
S11,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
本发明实施例中,虚拟机获取该目标应用运行的应用画面渲染数据,该应用画面渲染数据为目标应用在移动终端运行时在界面所显示的画面数据。比如,该目标应用为游戏应用,则应用画面渲染数据为游戏应用运行时的画面数据。
S12,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;
本发明实施例中,为了提高目标应用的应用画面渲染数据在虚拟机VirtualBox和宿主机系统间的传输效率,采用了virtio技术,建立virtio内核管道,从而将应用画面渲染数据从虚拟机传输至宿主机。
virtio它是针对Linux的I/O半虚拟化框架,应用于宿主机和虚拟机之间的通信,主要方法是在虚拟机的guest系统(Android)内建立一个到VirtualBox虚拟机的virtio内核管道,应用画面渲染数据通过该virtio内核管道从Android系统到达VirtualBox虚拟机,同时建立一个VirtualBox虚拟机到宿主机系统的windows的内核管道,应用画面渲染数据再次通过windows的内核管道从VirtualBox虚拟机传输到宿主机系统。
S13,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口,包括以下步骤:
步骤一,所述宿主机获取配置信息,所述配置信息包括所述宿主机运行的操作系统以及所述宿主机的硬件配置;
步骤二,所述宿主机根据所述配置信息,确定与所述配置信息适配的目标渲染引擎;
步骤三,所述宿主机采用所述目标渲染引擎绘制所述应用画面渲染数据对应的应用画面。
本发明实施例中,模拟器之上是windows渲染引擎,该模块运行在宿主机系统(windows)上,主要功能是和虚拟机内部功能进行对接,比如将Android里传出来的游戏画面渲染数据渲染到windows窗口上展示,提供诸如键位设置,游戏应用管理等相关功能。
由于windows对android原生的OpenGl游戏数据渲染支持不是很好,所以在本案例中加入了Angle技术,它是google开发的一个第三方开源库,能够将OpenGl格式的数据和DirectX格式的数据进行无损的互相转化。
OpenGl:(Open Graphics Library)其定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图象(二维的亦可),是一个功能强大,调用方便的底层图形库。
DerectX:(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、MicrosoftXBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。
虚拟机的Andorid系统里面的应用画面是用的OpenGl引擎渲染的,而桌面宿主机系统一般是windows系统,windows系统默认采用的是DirectX渲染引擎,它对OpenGl的支持并不好,所以有些应用画面传输到宿主机系统上显示的时候会出现黑屏或者花屏的现象。
本发明实施例中,宿主机系统会根据当前设备的操作系统,cpu,显卡等配置,自动选择合适的渲染引擎来将应用画面渲染数据进行绘制,使得移动终端应用画面在windows上能够完美的显示。
本发明实施例,当目标应用在虚拟机中运行时,该虚拟机建立与宿主机之间的内核管道,该目标应用为移动终端应用,该虚拟机安装移动终端操作系统,宿主机安装桌面设备操作系统,虚拟机获取目标应用运行的应用画面渲染数据,并通过内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机,宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。通过建立虚拟机与宿主机之间的内核管道,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
请参照图2,为本发明实施例提供的另一种应用运行方法的流程交互图,如图所示,本发明实施例的应用运行方法包括以下步骤:
S20,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S21,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
S22,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;
S23,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明实施例步骤S20-S23请参照图1的实施例步骤S10-S13,在此不再赘述。
S24,所述宿主机获取第一输入指令,所述第一输入指令携带用户输入的目标操作信息;
本发明实施例中,当目标应用在移动终端运行时,用户可以通过tap点击,长按以及多点触控操作等等实现对目标应用的操作。当目标应用在PC设备上面运行时,并不能通过tap点击,长按以及多点触控操作等等实现对目标应用的操作,因此本发明实施例提供一套指令转换方式,用户可以在PC设备上面进行键盘和鼠标操作,内部进行指令转换,从而实现对目标应用的操作。
可选的,如图13所示,宿主机的渲染客户端包含键位设置管理器,键位设置管理器的功能是将用户在PC设备输入的操作信息(即通过键盘和鼠标输入的操作信息)转换为移动终端屏幕上的操作信息(比如tap点击,长按以及多点触控操作信息)。
可选的,如图12所示,PC设备显示用户键位设置界面,用户可以在该节目上设定键盘和鼠标与手机屏幕上的tap点击,长按以及多点触控操作之间的对应关系,从而实现用户通过键盘和鼠标来操控目标应用的体验。比如用户可以通过自定义设置技能和方向键,通过键盘和鼠标来代替手机屏幕的点击和滑动操作,从而更精准的操控游戏人物和技能,无缝的将传统的游戏玩法融入手机游戏中。
S25,所述宿主机根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
本发明实施例中,键位设置管理器中设置预设指令转换表,将用户在PC设备上面操作的第一输入指令转换为第二输入指令,该第二输入指令为移动终端操作指令。
这里以目标应用为手机游戏应用作为举例说明,当玩家用鼠标和键盘操作游戏角色时,模拟器截获宿主机(windows)的鼠标键盘消息,并根据特定规则(比如预设指令转换表),将其转化为虚拟机系统(Aanroid)内对应的手势操作,如FPS类游戏里常用wasd来控制方向,鼠标滚轮加方向键表示该方向上的缩放功能等。
S26,所述宿主机将所述第二输入指令传输至所述虚拟机;
本发明实施例中,宿主机将第二输入指令传输至虚拟机,可选的,键位设置管理器可以通过socket套接字将第二输入指令传输至虚拟机。
S27,所述虚拟机根据所述第二输入指令,对所述目标应用进行操作。
本发明实施例中,虚拟机内的安卓系统根据第二输入指令,对该目标应用进行操作,比如,目标应用为手机游戏应用,则可以实现对某个角色的攻击操作,移动操作等等。
本发明实施例,当目标应用在虚拟机中运行时,该虚拟机建立与宿主机之间的内核管道,该目标应用为移动终端应用,该虚拟机安装移动终端操作系统,宿主机安装桌面设备操作系统,虚拟机获取目标应用运行的应用画面渲染数据,并通过内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机,宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。通过建立虚拟机与宿主机之间的内核管道,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
请参照图3,为本发明实施例提供的又一种应用运行方法的流程交互图,如图所示,本发明实施例的应用运行方法包括以下步骤:
S30,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S31,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
S32,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;
S33,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明实施例步骤S30-S33请参照图1的实施例步骤S10-S13,在此不再赘述。
S34,所述宿主机获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机;
本发明实施例中,对于某一些目标应用,需要设置位置信息,这里以目标应用为手机游戏应用为例进行说明,模拟器提供地图服务给玩家设定目标位置,如图11所示的界面,在该界面的右侧菜单栏包含虚拟定位的虚拟按钮,用户可以通过虚拟定位的方式设定目标位置信息。模拟器中的宿主机将设置好的目标位置通过所建立的virtio内核管道发送过虚拟机内,或者,宿主机将设置好的目标位置通过socket套接字的方式发送至虚拟机。
S35,所述虚拟机调用模拟位置程序进行虚拟定位,以将所述目标应用的运行地点定位至所述目标地理位置。
本发明实施例中,虚拟机利用Android系统的模拟位置程序来进行虚拟定位,以满足特定游戏的定位需求,如pokemon go这类玩法的游戏。
本发明实施例,当目标应用在虚拟机中运行时,该虚拟机建立与宿主机之间的内核管道,该目标应用为移动终端应用,该虚拟机安装移动终端操作系统,宿主机安装桌面设备操作系统,虚拟机获取目标应用运行的应用画面渲染数据,并通过内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机,宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。通过建立虚拟机与宿主机之间的内核管道,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
请参照图4,为本发明实施例提供的又一种应用运行方法的流程交互图,如图所示,本发明实施例的应用运行方法包括以下步骤:
S40,所述宿主机接收安装目标应用的安装指令,所述安装指令为应用下载模块下载完所述目标应用后触发的;
本发明实施例中,用户在APP应用市场里选择下载目标应用,APP应用市场将目标应用的安装包下载到预设磁盘资源中,该预设磁盘资源为预先分配的虚拟机挂载磁盘。APP应用市场发送安装指令到模拟器的宿主机。
S41,所述宿主机将所述安装指令传输至所述虚拟机;
本发明实施例中,宿主机将安装指令传输到虚拟机内部的移动终端操作系统。可选的,宿主机可以是通过socket套接字方式将安装指令传输至虚拟机。
S42,所述虚拟机从预设磁盘资源中,获取所述目标应用的安装包,所述预设磁盘资源为预先为所述虚拟机分配的磁盘资源;
本发明实施例中,虚拟机内从预设磁盘资源获取目标应用的安装包,通过这种方式可以将宿主机系统(windows)上的目标应用安装包目录映射到虚拟机内的guest系统(Android)中。
S43,所述虚拟机加载所述目标应用的所述安装包,以在所述虚拟机安装所述目标应用。
本发明实施例中,虚拟机从预设磁盘资源中加载该目标应用的安装包,实现在虚拟机安装该目标应用,后续可以在虚拟机中运行该目标应用。
S44,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S45,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
S46,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机;
S47,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
本发明实施例步骤S44-S47请参照图1的实施例步骤S10-S13,在此不再赘述。
本发明实施例,当目标应用在虚拟机中运行时,该虚拟机建立与宿主机之间的内核管道,该目标应用为移动终端应用,该虚拟机安装移动终端操作系统,宿主机安装桌面设备操作系统,虚拟机获取目标应用运行的应用画面渲染数据,并通过内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机,宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。通过建立虚拟机与宿主机之间的内核管道,不仅可以提供跨系统的画面数据渲染,实现在桌面设备上使用移动终端的应用,还可以提高渲染数据的传输性能。
请参照图5,为本发明实施例提供的一种应用运行方法的流程图,本发明实施例是从虚拟机侧进行阐述的,如图所示,本发明实施例的应用运行方法包括以下步骤:
S50,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S51,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
S52,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示。
本发明实施例步骤请参照图1的实施例中相关步骤的描述,在此不再赘述。
请参照图6,为本发明实施例提供的另一种应用运行方法的流程图,本发明实施例是从虚拟机侧进行阐述的,如图所示,本发明实施例的应用运行方法包括以下步骤:
S60,所述虚拟机接收宿主机传输的安装指令,所述安装指令为应用下载模块下载完所述目标应用后触发的;
S61,所述虚拟机从预设磁盘资源中,获取所述目标应用的安装包,所述预设磁盘资源为预先为所述虚拟机分配的磁盘资源;
S62,所述虚拟机加载所述目标应用的所述安装包,以在所述虚拟机安装所述目标应用。
S63,当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S64,所述虚拟机获取所述目标应用运行的应用画面渲染数据;
S65,所述虚拟机通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示。
本发明实施例步骤请参照图4的实施例中相关步骤的描述,在此不再赘述。
请参照图7,为本发明实施例提供的一种应用运行方法的流程图,本发明实施例是从宿主机侧进行阐述的,如图所示,本发明实施例的应用运行方法包括以下步骤:
S70,当目标应用在虚拟机中运行时,宿主机建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S71,所述宿主机通过所述内核管道,接收所述虚拟机传输的应用画面渲染数据;
S72,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口,包括以下步骤:
步骤一,所述宿主机获取配置信息,所述配置信息包括所述宿主机运行的操作系统以及所述宿主机的硬件配置;
步骤二,所述宿主机根据所述配置信息,确定与所述配置信息适配的目标渲染引擎;
步骤三,所述宿主机采用所述目标渲染引擎绘制所述应用画面渲染数据对应的应用画面。
本发明实施例步骤请参照图1的相关步骤描述,再次不再赘述。
请参照图8,为本发明实施例提供的另一种应用运行方法的流程图,本发明实施例是从宿主机侧进行阐述的,如图所示,本发明实施例的应用运行方法包括以下步骤:
S80,当目标应用在虚拟机中运行时,宿主机建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S81,所述宿主机通过所述内核管道,接收所述虚拟机传输的应用画面渲染数据;
S82,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
S83,所述宿主机获取第一输入指令,所述第一输入指令携带用户通过所述PC设备输入的目标操作信息;
S84,所述宿主机根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
S85,所述宿主机将所述第二输入指令传输至所述虚拟机,以触发所述虚拟机根据所述第二输入指令进行操作。
本发明实施例步骤请参照图2的实施例中相关步骤的描述,在此不再赘述。
请参照图9,为本发明实施例提供的又一种应用运行方法的流程图,本发明实施例是从宿主机侧进行阐述的,如图所示,本发明实施例的应用运行方法包括以下步骤:
S90,当目标应用在虚拟机中运行时,宿主机建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
S91,所述宿主机通过所述内核管道,接收所述虚拟机传输的应用画面渲染数据;
S92,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
S93,所述宿主机获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机,以触发所述虚拟机将所述目标应用的运行地点定位至所述目标地理位置。
本发明实施例步骤请参照图3的实施例中相关步骤的描述,在此不再赘述。
请参照图14,为本发明实施例提供的一种应用运行装置的结构示意图,本发明实施例的应用运行装置应用于虚拟机,如图所示,本发明实施例的应用运行装置包括:
建立模块10,用于当目标应用在虚拟机中运行时,建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
本发明实施例中,内核管道为虚拟机与宿主机之间数据通信的通道,该虚拟机安装于宿主机,虚拟机通过内核管道实现与宿主机之间的通信,比如,该内核管道可以是virtio内核管道。
目标应用是移动终端应用,比如手机游戏应用,通常很多手机游戏应用只能在手机上面玩,但是由于移动终端耗电发热、屏幕太小并且操控不灵活,通常需要将移动终端应用安装在个人计算机(personal computer,PC)上面使用。若目标应用是手机游戏应用,则本发明实施例的应用运行方法可以实现在手游模拟器产品中。
本发明实施例利用虚拟化技术,在PC设备的桌面设备操作系统windows上运行一个虚拟移动设备(虚拟机);并在该虚拟机上安装andorid或者ios等手机操作系统,通过虚拟机和宿主机(PC设备的window渲染客户端)进行数据交互,从而实现在PC设备上面使用移动终端应用。
如图13所示,本发明实施例的整个框架分为两大块,APP应用市场(比如游戏应用市场),和模拟器(比如安卓模拟器),模拟器包括宿主机(即windows渲染客户端)和虚拟机;APP应用市场用于提供各种APP下载,APP应用市场和宿主机之间通过命令行+共享内存的方式进行通信。
具体可选的,如图13所示,应用市场采用的是基于webkit的内嵌网页的架构。自下而上,最下层是基础模块(Common Functional),提供基本的下载,异常捕获,消息通讯,帐号登陆,文件操作等操作系统底层功能;第二层是封装的功能接口层(Web Call Adapter),它的作用是抽象出一套通用的接口给web页面调用操作系统的功能;再上一层是网页渲染引擎(webkit),它的作用是显示游戏内容,该内容由后台运营人员维护,确保第一时间将最新的游戏相关内容推送到用户侧;最上层是界面框架层,提供网页渲染的容器以及周边功能窗口。如图10所示,即是应用市场显示的界面图,用户可以选择任意一个应用进行安装。
这里以游戏应用市场为例进行说明,APP应用市场提供游戏内容,供用户下载,当游戏下载完成时应用市场向安卓模拟器(安卓模拟器包括渲染客户端、虚拟机VirtualBox和屏幕)发起安装命令。APP应用市场同时将游戏参数通过共享内存传递给模拟器的渲染客户端,渲染客户端向虚拟机发送安装命令,虚拟机从windows预设磁盘资源上加载游戏安装包,并在Android系统内部去执行安装和运行游戏等命令。
虚拟机VirtualBox是一款开源的虚拟机软件,使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2Warp、BSD等系统作为客户端操作系统。在本案例中,VirtualBox虚拟机里安装的是Android4.0版本的操作系统。
当目标应用在虚拟机中运行启动后,通过virtio(linux的i/o半虚拟化框架,应用于宿主机与虚拟机之间通信)内核管道技术,将虚拟机内的游戏画面渲染数据从虚拟机系统(Android)内传输到宿主机系统(windows)。
半虚拟化(Para virtualization)是一种类似于全虚拟化的热门技术,它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
如图13所示,虚拟机的安卓系统内通过Linux半虚拟化抽象层将应用画面渲染数据解析为协议字节流传输至虚拟机VirtualBox的半虚拟化抽象层,虚拟机VirtualBox的半虚拟化抽象层通过虚拟机与宿主机(windows渲染客户端)之间所建立的内核管道,将协议字节流传输至宿主机。
这种方式是通过虚拟机系统与宿主机系统建立的windows内核管道穿梭到宿主系统中,这种管道直连的方式比套接字socket要快很多,可以满足我们对渲染数据传输的性能需求。
第一获取模块11,用于获取所述目标应用运行的应用画面渲染数据;
本发明实施例中,虚拟机获取该目标应用运行的应用画面渲染数据,该应用画面渲染数据为目标应用在移动终端运行时在界面所显示的画面数据。比如,该目标应用为游戏应用,则应用画面渲染数据为游戏应用运行时的画面数据。
传输模块12,用于通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示。
本发明实施例中,为了提高目标应用的应用画面渲染数据在虚拟机VirtualBox和宿主机系统间的传输效率,采用了virtio技术,建立virtio内核管道,从而将应用画面渲染数据从虚拟机传输至宿主机。
virtio它是针对Linux的I/O半虚拟化框架,应用于宿主机和虚拟机之间的通信,主要方法是在虚拟机的guest系统(Android)内建立一个到VirtualBox虚拟机的virtio内核管道,应用画面渲染数据通过该virtio内核管道从Android系统到达VirtualBox虚拟机,同时建立一个VirtualBox虚拟机到宿主机系统的windows的内核管道,应用画面渲染数据再次通过windows的内核管道从VirtualBox虚拟机传输到宿主机系统
进一步可选的,本发明实施例的应用运行装置还包括接收模块13、第二获取模块14以及加载模块15;
接收模块13,用于接收宿主机传输的安装指令,所述安装指令为应用下载模块下载完所述目标应用后触发的;
第二获取模块14,用于从预设磁盘资源中,获取所述目标应用的安装包,所述预设磁盘资源为预先为所述虚拟机分配的磁盘资源;
本发明实施例中,虚拟机内从预设磁盘资源获取目标应用的安装包,通过这种方式可以将宿主机系统(windows)上的目标应用安装包目录映射到虚拟机内的guest系统(Android)中。
加载模块15,用于加载所述目标应用的所述安装包,以在所述虚拟机安装所述目标应用。
本发明实施例中,虚拟机从预设磁盘资源中加载该目标应用的安装包,实现在虚拟机安装该目标应用,后续可以在虚拟机中运行该目标应用。
请参照图15,为本发明实施例提供的一种应用运行装置的结构示意图,本发明实施例的应用运行装置应用于宿主机,如图所示,本发明实施例的应用运行装置包括:
建立模块20,用于当目标应用在虚拟机中运行时,建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统;
本发明实施例中,目标应用是移动终端应用,比如手机游戏应用,通常很多手机游戏应用只能在手机上面玩,但是由于移动终端耗电发热、屏幕太小并且操控不灵活,通常需要将移动终端应用安装在个人计算机(personal computer,PC)上面使用。若目标应用是手机游戏应用,则本发明实施例的应用运行方法可以实现在手游模拟器产品中。
本发明实施例利用虚拟化技术,在PC设备的桌面设备操作系统windows上运行一个虚拟移动设备(虚拟机);并在该虚拟机上安装andorid或者ios等手机操作系统,通过虚拟机和宿主机(PC设备的window渲染客户端)进行数据交互,从而实现在PC设备上面使用移动终端应用。
如图13所示,本发明实施例的整个框架分为两大块,APP应用市场(比如游戏应用市场),和模拟器(比如安卓模拟器),模拟器包括宿主机(即windows渲染客户端)和虚拟机;APP应用市场用于提供各种APP下载,APP应用市场和宿主机之间通过命令行+共享内存的方式进行通信。
具体可选的,如图13所示,应用市场采用的是基于webkit的内嵌网页的架构。自下而上,最下层是基础模块(Common Functional),提供基本的下载,异常捕获,消息通讯,帐号登陆,文件操作等操作系统底层功能;第二层是封装的功能接口层(Web Call Adapter),它的作用是抽象出一套通用的接口给web页面调用操作系统的功能;再上一层是网页渲染引擎(webkit),它的作用是显示游戏内容,该内容由后台运营人员维护,确保第一时间将最新的游戏相关内容推送到用户侧;最上层是界面框架层,提供网页渲染的容器以及周边功能窗口。如图10所示,即是应用市场显示的界面图,用户可以选择任意一个应用进行安装。
这里以游戏应用市场为例进行说明,APP应用市场提供游戏内容,供用户下载,当游戏下载完成时应用市场向安卓模拟器(安卓模拟器包括渲染客户端、虚拟机VirtualBox和屏幕)发起安装命令。APP应用市场同时将游戏参数通过共享内存传递给模拟器的渲染客户端,渲染客户端向虚拟机发送安装命令,虚拟机从windows预设磁盘资源上加载游戏安装包,并在Android系统内部去执行安装和运行游戏等命令。
虚拟机VirtualBox是一款开源的虚拟机软件,使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2Warp、BSD等系统作为客户端操作系统。在本案例中,VirtualBox虚拟机里安装的是Android4.0版本的操作系统。
当目标应用在虚拟机中运行启动后,通过virtio(linux的i/o半虚拟化框架,应用于宿主机与虚拟机之间通信)内核管道技术,将虚拟机内的游戏画面渲染数据从虚拟机系统(Android)内传输到宿主机系统(windows)。
半虚拟化(Para virtualization)是一种类似于全虚拟化的热门技术,它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
如图13所示,虚拟机的安卓系统内通过Linux半虚拟化抽象层将应用画面渲染数据解析为协议字节流传输至虚拟机VirtualBox的半虚拟化抽象层,虚拟机VirtualBox的半虚拟化抽象层通过虚拟机与宿主机(windows渲染客户端)之间所建立的内核管道,将协议字节流传输至宿主机。
这种方式是通过虚拟机系统与宿主机系统建立的windows内核管道穿梭到宿主系统中,这种管道直连的方式比套接字socket要快很多,可以满足我们对渲染数据传输的性能需求。
接收模块21,用于通过所述virtio内核管道,接收所述虚拟机传输的应用画面渲染数据;
本发明实施例中,为了提高目标应用的应用画面渲染数据在虚拟机VirtualBox和宿主机系统间的传输效率,采用了virtio技术,建立virtio内核管道,从而将应用画面渲染数据从虚拟机传输至宿主机。
virtio它是针对Linux的I/O半虚拟化框架,应用于宿主机和虚拟机之间的通信,主要方法是在guest系统(Android)内建立一个virtio内核管道,同时在虚拟机VirtualBox内部也建立一个virtio管道对接,应用画面渲染数据通过管道直接从虚拟机guest系统传输到宿主机系统。
渲染模块22,用于调用渲染引擎将所述应用画面渲染数据渲染到显示窗口。
可选的,如图16所示,本发明实施例的渲染模块可以包括获取单元220、确定单元221以及绘制单元222;
获取单元220,用于获取配置信息,所述配置信息包括所述宿主机运行的操作系统以及所述宿主机的硬件配置;
确定单元221,用于根据所述配置信息,确定与所述配置信息适配的目标渲染引擎;
绘制单元222,用于采用所述目标渲染引擎绘制所述应用画面渲染数据对应的应用画面。
本发明实施例中,模拟器之上是windows渲染引擎,该模块运行在宿主机系统(windows)上,主要功能是和虚拟机内部功能进行对接,比如将Android里传出来的游戏画面渲染数据渲染到windows窗口上展示,提供诸如键位设置,游戏应用管理等相关功能。
由于windows对android原生的OpenGl游戏数据渲染支持不是很好,所以在本案例中加入了Angle技术,它是google开发的一个第三方开源库,能够将OpenGl格式的数据和DirectX格式的数据进行无损的互相转化。
OpenGl:(Open Graphics Library)其定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图象(二维的亦可),是一个功能强大,调用方便的底层图形库。
DerectX:(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、MicrosoftXBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。
虚拟机的Andorid系统里面的应用画面是用的OpenGl引擎渲染的,而桌面宿主机系统一般是windows系统,windows系统默认采用的是DirectX渲染引擎,它对OpenGl的支持并不好,所以有些应用画面传输到宿主机系统上显示的时候会出现黑屏或者花屏的现象。
本发明实施例中,宿主机系统会根据当前PC设备的操作系统,cpu,显卡等配置,自动选择合适的渲染引擎来将应用画面渲染数据进行绘制,使得移动终端应用画面在windows上能够完美的显示。
可选的,本发明实施例的应用运行装置还可以包括获取模块23、转换模块24以及地域传输模块25;
获取模块23,用于获取第一输入指令,所述第一输入指令携带用户输入的目标操作信息;
本发明实施例中,当目标应用在移动终端运行时,用户可以通过tap点击,长按以及多点触控操作等等实现对目标应用的操作。当目标应用在PC设备上面运行时,并不能通过tap点击,长按以及多点触控操作等等实现对目标应用的操作,因此本发明实施例提供一套指令转换方式,用户可以在PC设备上面进行键盘和鼠标操作,内部进行指令转换,从而实现对目标应用的操作。
可选的,如图13所示,宿主机的渲染客户端包含键位设置管理器,键位设置管理器的功能是将用户在PC设备输入的操作信息(即通过键盘和鼠标输入的操作信息)转换为移动终端屏幕上的操作信息(比如tap点击,长按以及多点触控操作信息)。
可选的,如图12所示,PC设备显示用户键位设置界面,用户可以在该节目上设定键盘和鼠标与手机屏幕上的tap点击,长按以及多点触控操作之间的对应关系,从而实现用户通过键盘和鼠标来操控目标应用的体验。比如用户可以通过自定义设置技能和方向键,通过键盘和鼠标来代替手机屏幕的点击和滑动操作,从而更精准的操控游戏人物和技能,无缝的将传统的游戏玩法融入手机游戏中。
转换模块24,用于根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
本发明实施例中,键位设置管理器中设置预设指令转换表,将用户在PC设备上面操作的第一输入指令转换为第二输入指令,该第二输入指令为移动终端操作指令。
这里以目标应用为手机游戏应用作为举例说明,当玩家用鼠标和键盘操作游戏角色时,模拟器截获宿主机(windows)的鼠标键盘消息,并根据特定规则(比如预设指令转换表),将其转化为虚拟机系统(Aanroid)内对应的手势操作,如FPS类游戏里常用wasd来控制方向,鼠标滚轮加方向键表示该方向上的缩放功能等。
第一传输模块25,用于将所述第二输入指令传输至所述虚拟机,以触发所述虚拟机根据所述第二输入指令进行操作。
本发明实施例中,宿主机将第二输入指令传输至虚拟机,可选的,键位设置管理器可以通过socket套接字将第二输入指令传输至虚拟机。
可选的,本发明实施例的应用运行装置还可以包括第二传输模块26;
第二传输模块26,用于获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机,以触发所述虚拟机将所述目标应用的运行地点定位至所述目标地理位置。
本发明实施例中,对于某一些目标应用,需要设置位置信息,这里以目标应用为手机游戏应用为例进行说明,模拟器提供地图服务给玩家设定目标位置,如图11所示的界面,在该界面的右侧菜单栏包含虚拟定位的虚拟按钮,用户可以通过虚拟定位的方式设定目标位置信息。模拟器中的宿主机将设置好的目标位置通过所建立的virtio内核管道发送过虚拟机内,或者,宿主机将设置好的目标位置通过socket套接字的方式发送至虚拟机。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种应用运行方法,其特征在于,包括:
当目标应用在虚拟机中运行时,所述虚拟机建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统,所述内核管道包括第一内核管道和第二内核管道;
所述虚拟机获取所述目标应用运行的应用画面渲染数据;
所述虚拟机通过所述第一内核管道接收所述移动终端操作系统传输的所述应用画面渲染数据;
所述虚拟机通过所述第二内核管道将所述应用画面渲染数据传输至所述宿主机的桌面设备系统;
所述宿主机调用与所述宿主机的配置信息适配的渲染引擎将经格式转换后的所述应用画面渲染数据渲染到显示窗口,经格式转换后的所述应用画面渲染数据的数据格式与所述宿主机调用的渲染引擎适配。
2.如权利要求1所述的方法,其特征在于,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口之后,还包括:
所述宿主机获取第一输入指令,所述第一输入指令携带用户输入的目标操作信息;
所述宿主机根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
所述宿主机将所述第二输入指令传输至所述虚拟机;
所述虚拟机根据所述第二输入指令,对所述目标应用进行操作。
3.如权利要求1所述的方法,其特征在于,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口之后,还包括:
所述宿主机获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机;
所述虚拟机调用模拟位置程序进行虚拟定位,以将所述目标应用的运行地点定位至目标地理位置。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述虚拟机建立与宿主机之间的内核管道之前,还包括:
所述宿主机接收安装目标应用的安装指令,所述安装指令为应用下载模块下载完所述目标应用后触发的;
所述宿主机将所述安装指令传输至所述虚拟机;
所述虚拟机从预设磁盘资源中,获取所述目标应用的安装包,所述预设磁盘资源为预先为所述虚拟机分配的磁盘资源;
所述虚拟机加载所述目标应用的所述安装包,以在所述虚拟机安装所述目标应用。
5.一种应用运行方法,其特征在于,包括:
当目标应用在虚拟机中运行时,宿主机建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统,所述内核管道包括第一内核管道和第二内核管道;
所述宿主机接收所述虚拟机通过所述第二内核管道传输的应用画面渲染数据,所述虚拟机向所述宿主机传输的应用画面渲染数据是所述虚拟机通过所述第一内核管道接收的所述移动终端操作系统传输的目标应用运行的应用画面渲染数据;
所述宿主机调用与所述宿主机的配置信息适配的渲染引擎将经格式转换后的所述应用画面渲染数据渲染到显示窗口,经格式转换后的所述应用画面渲染数据的数据格式与所述宿主机调用的渲染引擎适配。
6.如权利要求5所述的方法,其特征在于,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口,包括:
所述宿主机获取配置信息,所述配置信息包括所述宿主机运行的操作系统以及所述宿主机的硬件配置;
所述宿主机根据所述配置信息,确定与所述配置信息适配的目标渲染引擎;
所述宿主机采用所述目标渲染引擎绘制所述应用画面渲染数据对应的应用画面。
7.如权利要求5或6所述的方法,其特征在于,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口之后,还包括:
所述宿主机获取第一输入指令,所述第一输入指令携带用户输入的目标操作信息;
所述宿主机根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
所述宿主机将所述第二输入指令传输至所述虚拟机,以触发所述虚拟机根据所述第二输入指令进行操作。
8.如权利要求5或6所述的方法,其特征在于,所述宿主机调用渲染引擎将所述应用画面渲染数据渲染到显示窗口之后,还包括:
所述宿主机获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机,以触发所述虚拟机将所述目标应用的运行地点定位至目标地理位置。
9.一种应用运行装置,应用于虚拟机,其特征在于,包括:
建立模块,用于当目标应用在虚拟机中运行时,建立与宿主机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统,所述内核管道包括第一内核管道和第二内核管道;
第一获取模块,用于获取所述目标应用运行的应用画面渲染数据;
传输模块,用于通过所述内核管道,将所述应用画面渲染数据从所述虚拟机传输至所述宿主机进行渲染显示,所述应用画面渲染数据用于在宿主机中经格式转换后由与所述宿主机的配置信息适配的渲染引擎渲染到显示窗口,经格式转换后的所述应用画面渲染数据的数据格式与所述宿主机调用的渲染引擎适配;
所述传输模块在将所述应用画面渲染数据从所述虚拟机传输至所述宿主机时,具体用于通过所述第一内核管道接收所述移动终端操作系统传输的所述应用画面渲染数据,并通过所述第二内核管道将所述应用画面渲染数据传输至所述宿主机的桌面设备系统。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收宿主机传输的安装指令,所述安装指令为应用下载模块下载完所述目标应用后触发的;
第二获取模块,用于从预设磁盘资源中,获取所述目标应用的安装包,所述预设磁盘资源为预先为所述虚拟机分配的磁盘资源;
加载模块,用于加载所述目标应用的所述安装包,以在所述虚拟机安装所述目标应用。
11.一种应用运行装置,应用于宿主机,其特征在于,包括:
建立模块,用于当目标应用在虚拟机中运行时,建立与虚拟机之间的内核管道,所述目标应用为移动终端应用,所述虚拟机安装移动终端操作系统,所述宿主机安装桌面设备操作系统,所述内核管道包括第一内核管道和第二内核管道;
接收模块,用于通过所述第二内核管道,接收所述虚拟机传输的应用画面渲染数据,所述虚拟机向所述宿主机传输的应用画面渲染数据是所述虚拟机通过所述第一内核管道接收所述移动终端操作系统传输的目标应用运行的应用画面渲染数据;
渲染模块,用于调用与所述宿主机的配置信息适配的渲染引擎将经格式转换后的所述应用画面渲染数据渲染到显示窗口,经格式转换后的所述应用画面渲染数据的数据格式与所述宿主机调用的渲染引擎适配。
12.如权利要求11所述的装置,其特征在于,所述渲染模块包括:
获取单元,用于获取配置信息,所述配置信息包括所述宿主机运行的操作系统以及所述宿主机的硬件配置;
确定单元,用于根据所述配置信息,确定与所述配置信息适配的目标渲染引擎;
绘制单元,用于采用所述目标渲染引擎绘制所述应用画面渲染数据对应的应用画面。
13.如权利要求11或12所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取第一输入指令,所述第一输入指令携带用户输入的目标操作信息;
转换模块,用于根据预设指令转换表,将所述第一输入指令转换为第二输入指令,所述预设指令转换表包含个人计算机操作信息和移动终端操作信息之间的对应关系;
第一传输模块,用于将所述第二输入指令传输至所述虚拟机,以触发所述虚拟机根据所述第二输入指令进行操作。
14.如权利要求11或12所述的装置,其特征在于,所述装置还包括:
第二传输模块,用于获取用户设定的目标位置信息,并将所述目标位置信息传输至所述虚拟机,以触发所述虚拟机将所述目标应用的运行地点定位至目标地理位置。
15.一种应用运行系统,其特征在于,包括权利要求9或10所述的装置和权利要求11-14任意一项所述的装置。
16.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046182.XA CN106844066B (zh) | 2017-01-22 | 2017-01-22 | 一种应用运行方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046182.XA CN106844066B (zh) | 2017-01-22 | 2017-01-22 | 一种应用运行方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844066A CN106844066A (zh) | 2017-06-13 |
CN106844066B true CN106844066B (zh) | 2022-09-27 |
Family
ID=59119303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710046182.XA Active CN106844066B (zh) | 2017-01-22 | 2017-01-22 | 一种应用运行方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844066B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402802A (zh) * | 2017-07-27 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种基于虚拟机的视频监控存储系统 |
CN107741863A (zh) * | 2017-10-08 | 2018-02-27 | 深圳市星策网络科技有限公司 | 一种显卡的驱动方法和装置 |
CN108847972A (zh) * | 2018-06-08 | 2018-11-20 | 山东超越数控电子股份有限公司 | 一种虚拟环境下提高网络数据传输速率的方法 |
CN109522734B (zh) * | 2018-11-19 | 2023-07-28 | 陕西西普数据通信股份有限公司 | 一种安全应用商店系统 |
CN111045674B (zh) * | 2019-12-16 | 2023-07-21 | 北京爱奇艺科技有限公司 | 一种播放器的交互方法和装置 |
CN112114916B (zh) * | 2020-08-31 | 2021-06-08 | 北京技德系统技术有限公司 | 一种在Linux操作系统上兼容运行Android应用的方法和装置 |
CN112070655A (zh) * | 2020-09-09 | 2020-12-11 | 西安万像电子科技有限公司 | 应用的渲染方法、系统、装置、存储介质和处理器 |
CN112269603B (zh) * | 2020-10-16 | 2021-05-28 | 北京技德系统技术有限公司 | 一种在Linux上兼容运行Android应用的图形显示方法与装置 |
CN113240571A (zh) * | 2021-05-07 | 2021-08-10 | 西安万像电子科技有限公司 | 图像处理系统、方法 |
CN115543526A (zh) * | 2021-06-29 | 2022-12-30 | 华为技术有限公司 | 一种控制方法及电子设备 |
CN114168239B (zh) * | 2021-10-21 | 2024-04-30 | 北京字节跳动网络技术有限公司 | 窗口显示方法、装置、设备和存储介质 |
CN114090172B (zh) * | 2021-11-10 | 2024-06-18 | 北京字节跳动网络技术有限公司 | 跨系统的小部件复用方法及装置 |
CN116932102A (zh) * | 2022-03-31 | 2023-10-24 | 华为技术有限公司 | 电子设备及其应用显示方法和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978226A (zh) * | 2014-04-03 | 2015-10-14 | 纬创资通股份有限公司 | 输入输出重定向方法、虚拟化系统与方法及内容递送装置 |
JP2015197874A (ja) * | 2014-04-03 | 2015-11-09 | 日本電信電話株式会社 | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム |
CN105872129A (zh) * | 2016-06-07 | 2016-08-17 | 国云科技股份有限公司 | 一种Linux虚拟机多网卡外网通信实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888485B (zh) * | 2012-12-19 | 2018-03-09 | 华为技术有限公司 | 云计算资源的分配方法、装置及系统 |
CN104850388B (zh) * | 2014-02-13 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 网页绘制方法及装置 |
CN104142852A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 在电脑上实现安卓模拟器图形加速方法 |
CN104740872B (zh) * | 2015-04-13 | 2018-06-19 | 北京奇虎科技有限公司 | 模拟安卓环境中游戏程序运行控制方法及装置 |
CN105550017A (zh) * | 2015-12-11 | 2016-05-04 | 北京奇虎科技有限公司 | 针对应用进行虚拟输入控制的方法、装置及系统 |
-
2017
- 2017-01-22 CN CN201710046182.XA patent/CN106844066B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978226A (zh) * | 2014-04-03 | 2015-10-14 | 纬创资通股份有限公司 | 输入输出重定向方法、虚拟化系统与方法及内容递送装置 |
JP2015197874A (ja) * | 2014-04-03 | 2015-11-09 | 日本電信電話株式会社 | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム |
CN105872129A (zh) * | 2016-06-07 | 2016-08-17 | 国云科技股份有限公司 | 一种Linux虚拟机多网卡外网通信实现方法 |
Non-Patent Citations (1)
Title |
---|
半虚拟化I/O模型的KVM虚拟机域间通信优化方法;丁圣阁等;《计算机科学与探索》;20111231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106844066A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844066B (zh) | 一种应用运行方法、装置及系统 | |
AU2019233201B2 (en) | Resource configuration method and apparatus, terminal, and storage medium | |
CN111433743B (zh) | 一种app远程控制方法及相关设备 | |
US9451043B2 (en) | Remote virtualization of mobile apps | |
US20160100036A1 (en) | System, method, server and device for trial use of application software | |
WO2018077041A1 (zh) | 应用运行的方法及装置 | |
CN109308241B (zh) | 监听应用程序启动流程方法、装置、终端设备和存储介质 | |
CN110691136A (zh) | 数据交互方法、装置、电子设备及存储介质 | |
US11890540B2 (en) | User interface processing method and device | |
CN104740872A (zh) | 模拟安卓环境中游戏程序运行控制方法及装置 | |
EP3623938B1 (en) | Game rendering method and apparatus, and non-transitory computer-readable storage medium | |
CN103777999A (zh) | 安卓软件模拟方法及装置 | |
CN106027631B (zh) | 一种数据传输方法及装置 | |
US9875099B2 (en) | Computer-implemented method and system for executing android apps natively on any environment | |
CN112121411A (zh) | 震动控制方法、装置、电子设备和计算机可读存储介质 | |
CN111078325B (zh) | 应用程序运行方法、装置、电子设备及存储介质 | |
CN105786452A (zh) | 移动设备上轻量级app开发系统及方法 | |
CN113617020B (zh) | 游戏控制方法、装置、存储介质、服务器以及终端 | |
CN105521603B (zh) | 针对跑酷类游戏进行虚拟输入控制的方法、装置及系统 | |
CN109522131A (zh) | 资源配置方法、装置及设备 | |
CN105550017A (zh) | 针对应用进行虚拟输入控制的方法、装置及系统 | |
CN111708533B (zh) | 在应用瘦客户端中设置鼠标显示状态的方法及装置 | |
CN105550046A (zh) | 虚拟操控的方法、装置及系统 | |
KR20130000045A (ko) | 클라우드 컴퓨팅 환경하에서 멀티 단말 장치 간 서버-클라이언트 서비스 환경을 지원하는 앱 구동 체계 | |
CN113419650A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |