一种在模拟器中处理渲染指令的方法及移动终端技术

技术编号:23704377 阅读:44 留言:0更新日期:2020-04-08 11:05
本申请实施例提供一种在模拟器中处理渲染指令的方法,该方法包括:遍历待发送的渲染指令,所述待发送的渲染指令包括同步执行渲染指令和异步执行渲染指令;将遍历得到的所述异步执行渲染指令进行压缩,得到第一指令压缩包;发送所述第一指令压缩包;解压缩所述第一指令压缩包,执行解压缩得到的所述异步执行渲染指令。通过上述方案,可以提高模拟器的数据传输能力。

A method of processing rendering instructions in simulator and mobile terminal

【技术实现步骤摘要】
一种在模拟器中处理渲染指令的方法及移动终端
本申请实施例涉及电子
,尤其涉及一种在模拟器中处理渲染指令的方法及移动终端。
技术介绍
安卓模拟器可以在个人计算机端模拟出安卓手机端的运行环境,从而用户可以在个人计算机上运行安卓手机的应用程序(例如游戏等)。相比于在安卓手机上运行安卓应用程序,通过安卓模拟器运行安卓应用程序有以下优点:个人计算机的屏幕通常比手机屏幕大,大屏幕可以获得更好的视觉体验;不存在消耗电量、网络流量的顾虑;使用个人计算机的键盘鼠标,操控性能更流畅;可以同时运行多个安卓应用程序;个人计算机的计算性能通常强于手机,可以突破手机性能的限制(如CPUCentralProcessingUnit中央处理单元等);等等。在模拟器运行过程中,传输管道的带宽大小影响着渲染指令传输的快慢,如果管道带宽小,可能造成渲染指令传输较慢,会出现画面掉帧、卡顿等现象,影响用户体验。所以,亟需提高模拟器的传输能力。
技术实现思路
本申请实施例提供一种在模拟器中处理渲染指令,能够提高模拟器传输管道的传输能力,避免画面掉帧、卡顿等现象。为达到上述目的,本申请实施例采用如下技术方案:第一方面,本申请实施例提供一种在模拟器中处理渲染指令的方法,包括:遍历待发送的渲染指令,所述待发送的渲染指令包括同步执行渲染指令和异步执行渲染指令;将遍历得到的所述异步执行渲染指令进行压缩,得到第一指令压缩包;发送所述第一指令压缩包;解压缩所述第一指令压缩包,执行解压缩得到的所述异步执行渲染指令。通过对异步执行渲染指令进行压缩,提高了传输效率。在一种可能的实现方式中,所述遍历待发送的渲染指令,包括:按照待发送的顺序逐一检测所述待发送的渲染指令。在一种可能的实现方式中,所述执行解压缩得到的所述异步执行渲染指令,包括:将所述异步执行渲染指令发送给GPU,由所述GPU生成渲染画面。在一种可能的实现方式中,所述方法还包括:发送遍历得到的所述同步执行渲染指令。在一种可能的实现方式中,在所述遍历待发送的渲染指令之前,所述方法还包括:检测渲染指令的类型并进行标记。在一种可能的实现方式中,所述检测渲染指令的类型,包括:对于返回值为void的渲染指令,标记为异步执行渲染指令;对于返回值为非void的渲染指令,标记为同步执行渲染指令。在一种可能的实现方式中,所述检测渲染指令的类型,包括:使用指令函数符号表来检测所述渲染指令的类型。在一种可能的实现方式中,在所述遍历待发送的渲染指令之前,所述方法还包括:检测所述模拟器中当前运行的应用所需要的第一带宽;判断所述第一带宽是否超过所述模拟器支持的最大带宽能力。在一种可能的实现方式中,所述遍历待发送的渲染指令,包括:如果遍历得到同步执行渲染指令,则暂停遍历并发送所述同步执行渲染指令;如果遍历得到异步执行渲染指令,则继续遍历,直到遇到同步执行指令时暂停遍历。第二方面,本申请实施例提供一种移动终端,该移动终端包括一个或多个处理器,存储器,一个或多个程序;其中,一个或多个程序被存储在存储器中并被配置为被一个或多个处理器执行,一个或多个程序包括指令,指令用于执行如第一方面所述的方法。第三方面,本申请实施例提供一种存储介质,用于存储计算机软件指令,计算机软件指令用于执行如第一方面所述的方法。第四方面,本申请实施例提供一种计算机程序产品,当运行计算机程序产品时,使得计算机执行如第一方面所述的方法。通过以上方案,可以提高模拟器的传输能力,改善用户体验。附图说明图1为本申请实施例提供的一种模拟器传输指令的示意图;图2为本申请实施例提供的一种操作系统的结构示意图;图3为本申请实施例提供的一种在模拟器中处理渲染指令的方法流程图;图4为本申请实施例提供的另一种模拟器传输指令的示意图;图5为本申请实施例提供的另一种在模拟器中处理渲染指令的方法流程图;图6为本申请实施例提供的另一种在模拟器中处理渲染指令的方法流程图;图7为本申请实施例提供的另一种模拟器传输指令的示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。本申请所述的移动终端可以包括诸如手机、平板电脑、可穿戴设备(例如,手表、手环、智能头盔等)、个人计算机(personalcomputer,PC),车载设备、智能家居设备、增强现实(augmentedreality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)等。本申请一些实施例以个人计算机为例,可以理解的是,这些实施例也可应用于其他类型的移动终端。本申请涉及的应用程序(application,app),可以简称应用,为能够实现某项或多项特定功能的软件程序。通常,移动终端中可以安装多个应用,例如,运动类应用,音乐类应用,词典类应用等。可以理解的是,应用可以是移动终端出厂时已安装的应用,也可以是用户在使用移动终端的过程中从网络下载或从其他电子设备获取的应用。第三方应用通常是指非移动终端生产商开发的应用,例如对于华为手机,第三方应用可以是除了华为以外的其他开发者开发的应用。模拟器可以在A终端上模拟出B终端的系统或运行环境,将B终端上的应用程序在A终端上运行。常见的例如安卓模拟器,可以在个人计算机端模拟出安卓手机端的运行环境,从而用户可以在个人计算机上运行安卓手机的应用程序(例如游戏等)。以安装了微软公司的系统的个人计算机为例,可以在个人计算机上安装安卓模拟器软件;用户可以在安卓模拟器软件中运行安卓应用程序(例如apk文件),这些安卓应用程序可以是用户通过安卓模拟器软件下载的,也可以是用户通过除了安卓模拟器软件以外的渠道下载的(例如浏览器等)。相比于在安卓手机上运行安卓应用程序,通过安卓模拟器运行安卓应用程序有以下优点:个人计算机的屏幕通常比手机屏幕大,大屏幕可以获得更好的视觉体验;不存在消耗电量、网络流量的顾虑;使用个人计算机的键盘鼠标,操控性能更流畅;可以同时运行多个安卓应用程序;个人计算机的计算性能通常强于手机,可以突破手机性能的限制(如CPUCentralProcessingUnit中央处理单元等);等等。目前使用模拟器玩游戏的过程中,会出现掉帧现象,导致画面不流畅,用户体验不佳。如图1所示,用户在个人计算机端(host端)安装模拟器客户端(guest端),模拟器客户端通过传输管道(pipe)向个人计算本文档来自技高网...

【技术保护点】
1.一种在模拟器中处理渲染指令的方法,其特征在于,所述方法包括:/n遍历待发送的渲染指令,所述待发送的渲染指令包括同步执行渲染指令和异步执行渲染指令;/n将遍历得到的所述异步执行渲染指令进行压缩,得到第一指令压缩包;/n发送所述第一指令压缩包;/n解压缩所述第一指令压缩包,执行解压缩得到的所述异步执行渲染指令。/n

【技术特征摘要】
1.一种在模拟器中处理渲染指令的方法,其特征在于,所述方法包括:
遍历待发送的渲染指令,所述待发送的渲染指令包括同步执行渲染指令和异步执行渲染指令;
将遍历得到的所述异步执行渲染指令进行压缩,得到第一指令压缩包;
发送所述第一指令压缩包;
解压缩所述第一指令压缩包,执行解压缩得到的所述异步执行渲染指令。


2.根据权利要求1所述的方法,其特征在于,所述遍历待发送的渲染指令,包括:
按照待发送的顺序逐一检测所述待发送的渲染指令。


3.根据权利要求1所述的方法,其特征在于,所述执行解压缩得到的所述异步执行渲染指令,包括:
将所述异步执行渲染指令发送给GPU,由所述GPU生成渲染画面。


4.根据权利要求1-3所述的方法,其特征在于,所述方法还包括:
发送遍历得到的所述同步执行渲染指令。


5.根据权利要求1-4所述的方法,其特征在于,在所述遍历待发送的渲染指令之前,所述方法还包括:
检测渲染指令的类型并进行标记。


6.根据权利要求5所述的方法,其特征在于,所述检测渲染指令的类型,包括:
对于返回值为void的渲染指令,标记为异步执行渲染指令;对于返回值为非void的渲染指令,标记为同步...

【专利技术属性】
技术研发人员:何书杰罗朴良李斌飞
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1