CN112988400A - 显存优化方法、装置、电子设备以及可读存储介质 - Google Patents

显存优化方法、装置、电子设备以及可读存储介质 Download PDF

Info

Publication number
CN112988400A
CN112988400A CN202110485305.6A CN202110485305A CN112988400A CN 112988400 A CN112988400 A CN 112988400A CN 202110485305 A CN202110485305 A CN 202110485305A CN 112988400 A CN112988400 A CN 112988400A
Authority
CN
China
Prior art keywords
cloud
application
video memory
component
operating system
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.)
Granted
Application number
CN202110485305.6A
Other languages
English (en)
Other versions
CN112988400B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110485305.6A priority Critical patent/CN112988400B/zh
Publication of CN112988400A publication Critical patent/CN112988400A/zh
Application granted granted Critical
Publication of CN112988400B publication Critical patent/CN112988400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/4401Bootstrapping
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/4401Bootstrapping
    • G06F9/442Shutdown
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种显存优化方法、装置、电子设备以及可读存储介质,涉及云技术、游戏及数据处理等技术领域。该方法由云应用服务器执行,包括:接收用户终端发送的针对第一云应用的应用启动请求;响应于应用启动请求,启动第一云应用对应的云端设备的操作系统,其中,操作系统的组件不包括系统级用户界面组件;向云端设备发送第一云应用的启动指令,以使云端设备根据启动指令启动第一云应用,并在第一云应用启动之后,关闭操作系统中的目标组件,其中,目标组件包括应用启动器组件或应用界面设置组件中的至少一项。基于本申请实施例提供的方案,可以有效提高设备的显存资源的利用率,能够有效优化设备的显存资源。

Description

显存优化方法、装置、电子设备以及可读存储介质
技术领域
本申请涉及云技术、游戏及数据处理等技术领域,尤其涉及一种显存优化方法、装置、电子设备以及可读存储介质。
背景技术
随着计算机技术的发展,电子设备中出现的应用种类越来越多,如何合理分配显存资源显得极为重要,尤其在显存资源少的情况下,如果显存资源分配不合理,极易造成设备卡顿,显存占用过大等情况。其中,随着云技术的发展,出现了越来越多的云应用,尤其是在云游戏的场景中,为了保证云游戏的流畅运行,云游戏的显存资源的合理分配显得尤为重要。
目前,现有技术中还没有较好的显存优化方式,为了改善设备的使用情况,一般采用设备管理软件对一些进程进行管理,但是,采用这种方式,每隔一段时间,用户就需要手动的使用管理软件进行设备优化,但是显存资源的优化效果并不理想,并不能够很好的满足实际需求。
发明内容
本申请实施例提供了一种显存优化方法、装置、电子设备以及可读存储介质,可以有效提高设备显存资源的利用率,能够有效优化设备的显存资源。
一方面,本申请实施例提供一种显存优化方法,该方法包括:
接收用户终端发送的针对第一云应用的应用启动请求;
响应于上述应用启动请求,启动上述第一云应用对应的云端设备的操作系统,其中,上述操作系统的组件不包括系统级用户界面组件;
向上述云端设备发送上述第一云应用的启动指令,以使上述云端设备根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,其中,上述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
在一种可选的实施例中,上述根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,包括:
响应于上述启动指令,调用上述操作系统的活动管理服务,通过上述活动管理服务启动上述第一云应用;
在上述第一云应用启动之后,通过上述活动管理服务关闭上述目标组件对应的进程,以关闭上述目标组件。
在一种可选的实施例中,上述方法还包括:
响应于上述用户终端的用户界面切换操作,向上述云端设备发送资源释放指令,以释放上述第一云应用所占用的显存资源,其中,上述用户界面切换操作用于触发将上述用户终端的用户界面由上述第一云应用的用户界面切换至其他用户界面。
在一种可选的实施例中,该方法还包括:
响应于上述第一云应用所占用的显存资源被释放的情况下,调低为上述云端设备分配的显存资源,并调高为其他云端设备分配的显存资源,其中,上述其他云端设备为第二云应用对应的云端设备。
在一种可选的实施例中,操作系统包括安卓Android系统,上述系统级用户界面组件为系统与用户交互界面systemUI组件,上述应用启动器组件为桌面启动器Launcher组件,上述应用界面设置组件为系统设置Settings组件。
在一种可选的实施例中,上述第一云应用包括云游戏应用,上述云端设备是上述用户终端对应的云端实例。
在一种可选的实施例中,上述目标组件是通过以下方式确定的:
在测试设备中分别运行每个上述测试应用,获取每个上述测试应用运行时上述测试设备的操作系统的多个组件的进程所占用的显存资源;
根据各上述测试应用运行时上述多个组件的进程所占用的显存资源,从上述多个组件中确定出至少一个候选组件;
对于每个上述候选组件,在上述测试设备分别运行每个上述测试应用,并在上述测试应用启动后关闭该候选组件,并获取在该候选组件处于关闭时每个上述测试应用的运行状态;
根据每个上述候选组件处于关闭时各上述测试应用的运行状态,从各候选组件中确定出上述目标组件。
一方面,本申请实施例提供了一种显存优化装置,该装置包括:
应用启动请求接收模块,用于接收用户终端发送的针对第一云应用的应用启动请求;
设备启动控制模块,用于响应于上述应用启动请求,启动上述第一云应用对应的云端设备的操作系统,其中,上述操作系统的组件不包括系统级用户界面组件;
应用启动控制模块,用于向上述云端设备发送上述第一云应用的启动指令,以使上述云端设备根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,其中,上述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
在一种可选的实施例中,上述云端设备在根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件时,用于:
响应于上述启动指令,调用上述操作系统的活动管理服务,通过上述活动管理服务启动上述第一云应用;
在上述第一云应用启动之后,通过上述活动管理服务关闭上述目标组件对应的进程,以关闭上述目标组件。
在一种可选的实施例中,上述装置还包括资源管理模块,该资源管理模块用于:
响应于上述用户终端的用户界面切换操作,向上述云端设备发送资源释放指令,以释放上述第一云应用所占用的显存资源,其中,上述用户界面切换操作用于触发将上述用户终端的用户界面由上述第一云应用的用户界面切换至其他用户界面。
在一种可选的实施例中,上述资源管理模块,还用于:
响应于上述第一云应用所占用的显存资源被释放的情况下,调低为上述云端设备分配的显存资源,并调高为其他云端设备分配的显存资源,其中,上述其他云端设备为第二云应用对应的云端设备。
在一种可选的实施例中,上述操作系统包括安卓Android系统,上述系统级用户界面组件为systemUI(system user interface,系统与用户交互界面)组件,上述应用启动器组件为安卓系统桌面启动器Launcher组件,上述应用界面设置组件为系统设置Settings组件。
在一种可选的实施例中,上述第一云应用包括云游戏应用,上述云端设备是上述用户终端对应的云端实例。
在一种可选的实施例中,上述目标组件是通过目标组件确定模块通过以下方式确定的:
获取多个测试应用;
在测试设备中分别运行每个上述测试应用,获取每个上述测试应用运行时上述测试设备的操作系统的多个组件的进程所占用的显存资源;
根据各上述测试应用运行时上述多个组件的进程所占用的显存资源,从上述多个组件中确定出至少一个候选组件;
对于每个上述候选组件,在上述测试设备分别运行每个上述测试应用,并在上述测试应用启动后关闭该候选组件,并获取在该候选组件处于关闭时每个上述测试应用的运行状态;
根据每个上述候选组件处于关闭时各上述测试应用的运行状态,从各候选组件中确定出上述目标组件。
一方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该处理器和存储器相互连接;该存储器用于存储计算机程序;该处理器被配置用于在调用上述计算机程序时,执行上述显存优化方法的任一种可能的实现方式提供的方法。
一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上显存优化方法的任一种可能的实现方式提供的方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述显存优化方法的任一种可能的实现方式提供的方法。
本申请提供的技术方案带来的有益效果是:
在本申请实施例中,本申请实施例所提供的显存优化方法、装置、电子设备以及可读存储介质,云应用服务器在接收到用户终端发送的针对于第一云应用的应用启动请求之后,响应于该应用启动请求,启动第一云应用对应的云端设备的操作系统,由于该操作系统中不包括系统级用户界面组件,那么,在运行该第一云应用的过程中,就无需向该系统级用户界面组件分配其原本所占用的显存资源,增大了第一云应用所能利用的显存资源,为了进一步优化显存资源,在第一云应用启动之后,通过关闭该操作系统中的应用启动器组件或应用界面设置组件中的至少一项,进一步增大了第一云应用可用的显存资源,通过这种从多个层面考虑,优化显存资源的方式,有效提升了显存资源的利用率,极大地增大了云应用在运行过程中所能利用的显存资源,使云应用的运行更加流畅,提升了用户对云应用的使用体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种显存优化系统在一种应用场景下的实施流程示意图;
图2是本申请实施例提供的一种显存优化方法的流程示意图;
图3是本申请实施例提供的一种Android系统中显存占用情况的示意图;
图4是本申请实施例提供的一种进程的显存占用情况的示意图;
图5是本申请实施例提供的一种systemUI的显存优化原理的示意图;
图6是本申请实施例提供的一种Launcher和Settings的显存优化原理的示意图;
图7是本申请实施例提供的另一种显存优化方法的流程示意图;
图8是本申请实施例提供的一种显存优化成效的效果示意图;
图9是本申请实施例提供的一种显存优化装置的结构示意图;
图10是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的显存优化方法适用于任何搭载操作系统的设备中,如搭载了安卓操作系统的设备,其中,该设备可以包括但不限于涉及云技术的云端设备,该云端设备可以涉及云技术的多种领域,如云技术(Cloud technology)中的云计算、云服务、云游戏、云视频等,以及大数据领域中的相关数据计算处理领域。例如,本申请实施例所提供的显存优化方法所适用的云端设备可以是云游戏对应的云端设备,如云游戏服务器,可选实施例中所涉及的应用可以是云应用,如云游戏。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。本申请实施例所提供的显存优化方法可基于云技术中的云计算(cloud computing)实现。
云计算是指通过网络以按需、易扩展的方式获得所需资源,是网格计算(GridComputing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。例如,在用户使用云游戏时,可以使用本申请实施例中的显存优化方案,在云游戏启动后,关闭该云游戏对应的云端设备的操作系统中的应用启动器组件或应用界面设置组件中的至少一项,并且,该云游戏对应的云端设备的操作系统中不包括系统级用户界面组件,通过多个层面提高了云游戏所能利用的显存资源,使云游戏的运行更加流畅。
云视频(Cloud video )是指基于云计算商业模式应用的视频网络平台服务。在云平台上,所有的视频供应商,代理商,策划服务商,制作商,行业协会,管理机构,行业媒体,法律结构等都集中云整合成资源池,各个资源相互展示和互动,按需交流,达成意向,从而降低成本,提高效率,这样的概念就是云视频概念。例如,在用户使用云视频时,可以使用本申请实施例中的显存优化方案,在云视频启动后,关闭该云视频对应的云端设备的操作系统中的应用启动器组件或应用界面设置组件中的至少一项,提高云视频所能利用的显存资源,使云视频的播放更加流畅。
其中,如本申请所公开的显存优化方法或装置,其中涉及到的用户终端、云应用服务器和云端设备可组成为一区块链,而用户终端、云应用服务器和云端设备为区块链上的节点,本申请实施例中显存优化方法或装置中涉及到的数据,如云应用对应的用户的用户信息等数据可保存于区块链上,例如,以云应用为云游戏为例,可以将该云游戏对应的玩家(即用户)的用户信息(如玩家的账户)等数据保存在区块链上。
本申请实施例所提供的显存优化方法中所涉及的操作系统的具体系统类型本申请不作限定,如可以是但不限于安卓Android系统,为了描述方便,后文的实施例描述中将以操作系统为Android系统为例进行描述。为了更好的理解本申请实施例提供的显存优化方法,下面首先结合一个具体的应用场景对本申请的一种可选实施方案进行说明。
作为一个示例,图1中示出了本申请实施例所适用的一种显存优化系统在一种应用场景下的实施流程示意图,可以理解的是,本申请实施例所提供的显存优化方法可以适用于但不限于应用于如图1所示的应用场景中。
显存用于存储图形处理器(Graphics Processing Unit,简称GPU)要处理的数据和处理完毕的数据。显存容量(还可以称为显存资源)的大小决定了GPU能够加载的数据量的大小。在云游戏运行过程中,需要大量的显存资源,因此,显存资源的合理分配显得尤为重要,以下结合图1对本申请实施例中的显存优化系统进行详细说明。
如图1所示,该示例中的显存优化系统可以包括但不限于用户终端101、网络102、服务器103和云端设备104。其中,服务器可以管理至少一个云端设备,图中示出了3个,即云端设备1、云端设备2和云端设备3,本申请实施例中,对云端设备的数量不作限定。用户终端101可以通过网络102与服务器103通信。服务器103可以通过网络102和云端设备104通信。如图1所示,以第一云应用为云游戏应用(Android云游戏,以下简称为云游戏)、第一云应用对应的云端设备的操作系统为Android系统,服务器103为云游戏服务器(即云应用服务器,可以简称为云服务器)为例进行说明,其中,该云游戏对应于图1中的一个云端设备,如云端设备1,该应用场景下的显存优化系统的具体交互过程可以包括步骤S1-S3:
步骤S1,用户终端101接收用户针对于云游戏的启动操作,响应于该启动操作,通过网络102向云服务器103发送相应的游戏启动请求(即应用启动请求)。可选的,用户可以在其用户终端上所显示的云游戏的网页web客户端或者小程序客户端或者云游戏客户端的用户界面上选择自己想玩的云游戏,然后点击游戏开始,该点击游戏开始的动作即为上述启动操作,用户选择的云游戏即为其想玩的目标云游戏,云游戏启动请求中可以携带有目标云游戏的游戏标识。
步骤S2,云服务器103在接收到该游戏启动请求之后,云服务器响应于该云游戏启动请求,会为该用户创建对应于上述目标云游戏的云端设备1(即云端实例),并启动该云端设备1的操作系统(也就是启动该云端设备)。其中,该云端设备1的操作系统中不包含系统级用户界面组件。
需要说明的是,该云端设备1(即云端实例)中的操作系统可以为Android系统,该Android系统中不包含系统级用户界面组件,该系统级用户界面组件为Android系统中的系统与用户交互界面systemUI组件。其中,systemUI是Android系统为用户提供的系统级别的信息显示与交互的一套用户界面设计(User Interface Design,简称UI)组件,其功能包罗万象。比如锁屏界面、状态栏信息显示(比如电池、Wi-Fi信号等)、底部导航栏、通知面板(比如系统消息、第三方应用消息等)、最近使用应用程序(Application,简称App)列表、截图服务、壁纸服务等,大部分功能相互独立,按需启动。
其中,云端实例是指在云端服务器上,每款云游戏对应的云端设备(也可以称为云端渲染设备)。该云端设备可以为搭载了Android系统的设备,每一用户每一次使用都会对应一个云端实例,是一个单独给一个用户的运行环境。对于Android云游戏,实例可以是一个搭载了Android系统模拟器、Android容器或者运行着Android系统的硬件。对于PC云游戏,实例可以是一个搭载了Android系统虚拟机,也可以是一个搭载了Android系统的游戏运行环境。
其中,Android系统模拟器是一个可以运行在实体计算机设备上的虚拟设备。Android系统模拟器可以不需使用物理设备即可预览、开发和测试Android系统的应用程序。例如,可以通过Android系统模拟器实现对云游戏的预览、开发和测试。虚拟机则是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机设备中能够完成的工作在虚拟机中都能够实现。在实体计算机设备中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,可以像使用实体机一样对虚拟机进行操作。Android系统虚拟机,则是运行安卓系统的虚拟机,可以根据需求安装任意版本的安卓系统,虚拟机可以独立安装和运行应用程序,如可以安装游戏应用并且运行游戏。
步骤S3,在云端设备1(即云端实例)启动操作系统之后,云服务器103会向云端设备1发送针对第一云应用的启动指令,云端设备1会响应于该启动指令,启动云游戏,当启动该云游戏后,关闭该云端设备1的操作系统中的目标组件,该目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
其中,应用启动器组件包括Launcher,Launcher是Android系统中的桌面启动器,Android系统的桌面UI统称为Launcher。Launcher是Android系统中的主要程序组件之一,Android系统中如果没有Launcher就无法启动Android桌面,可以由Launcher打开其他的App。
应用界面设置组件包括Settings,Settings是Android系统中的系统设置工具,用于设置App,系统中主要组件之一,系统中所有的自定义UI功能和信息都可以在Settings里定制。
基于本申请实施例提供的该方案,由于启动的云端实例的操作系统中并未包含系统级用户界面组件,并且在启动目标云游戏后,会关闭云端实例中的目标组件,使得云端实例并不会向系统级用户界面组件分配显存资源,并且极大地减少了目标组件对应的进程所占用的显存资源,能够从多个角度出发,降低除云游戏之外的其他进程对显存资源的占用,提高了显存资源的利用率,保证了云游戏有足够的显存资源可以使用,提高了用户的游戏体验。
可选的,云游戏对应的云端设备在按照上述方式优化显存资源后,云端设备可以接收用户通过用户终端发送的游戏操作指令,云端设备可以响应于该游戏操作指令,将与该游戏操作指令相匹配的游戏画面进行绘制,并将绘制好的与该游戏操作指令相匹配的游戏画面向用户终端发送,用户即可通过用户终端看到绘制好的游戏画面,以下介绍云端设备中的Android系统与GPU交互绘制图像的原理。
Android系统中每个图像画面都是由大大小小的View组成,其中,View是Android绘图里的视图,每个View都会经过measure(测量)、layout(布局)和draw(绘制)三个过程才最终将一个视图显示出来,其中,measure(测量)过程用于确定View的宽高、layout(布局)过程用于确定View的位置(layout)、draw(绘制)过程用于绘制出View的形状(draw)而成,然后就由主线程传给CPU进行计算纹理,再通过(OpenGL for Embedded Systems,简称OpenGL ES)图形程序接口调用GPU处理,处理后的数据传到图形界面系统服务SurfaceFlinger,通过它将处理后的数据交给硬件合成器合成后输出到屏幕。
图像的绘制任务由应用程序(如云游戏应用)发起,最终通过系统层绘制到屏幕上,也就是说应用进程绘制后,通过跨进程通信机制把需要显示的数据传到系统层,由系统层的SurfaceFlinger绘制到屏幕上。然后,将通过系统层的SurfaceFlinger绘制好的游戏画面向用户终端进行发送,当用户终端接收到游戏画面后,用户即可在游戏用户终端界面上看到绘制好的游戏画面。
本申请实施例中,通过在云端设备中运行的是去掉了系统级用户界面组件的操作系统,从而减少了现有操作系统中该组件对于显存资源的占用,使云端设备具有更多的显存资源可以用于云游戏画面的显示,进一步的,在在云游戏启动后,可以通过杀掉即关闭操作系统的应用启动器组件对应的进程和/或应用界面设置组件对应的进程,从而进一步减少了对当前云游戏运行没有影响的进程对于显存资源的占用,从多个方面提升了游戏运行过程中所能够使用的显存资源,保证了游戏的运行效果,提高了用户的游戏体验。
可理解,上述示例中,以第一云应用为云游戏为例,通过使云游戏对应的云端设备中的操作系统中不包括系统级用户界面组件,以及在云游戏启动后通过杀掉应用启动器组件或应用界面设置组件中的至少一项进程,以达到释放对应的显存资源的应用场景进行了说明,在实际应用中,本申请实施例提供的该显存优化方法所适用的云应用可以包括但不限于云游戏应用,例如,第一云应用可以为各种应用场景下的云应用,如在线办公软件、云存储、电子邮件、地图导航、云音乐、云视频、减肥健身、理财软件、电子商务和搜索引擎等等,使用上述设备的显存优化系统,用户可以在用户终端的打开想要使用的云应用。具体地,云应用还可以为云视频,如用户可以用户终端观看云视频。云应用还可以为云音乐,如用户可以在用户终端播放云音乐,等等,本申请实施例对于具体的使用场景不作任何限定。
在一可选示例中,本方案还可以适用于非云端设备的其他电子设备,该电子设备可以为用户终端或设备模拟器(如Android系统模拟器),如手机、电脑等。该电子设备中可以运行一个或多个应用,该应用为非云应用,对于该应用来说,当在该电子设备中启动该应用后,可以按照本申请实施例中的显存优化方法,将该电子设备的操作系统中的应用启动器组件或应用界面设置组件中的至少一项对应的进程关闭,以释放掉应用启动器组件或应用界面设置组件中的至少一项所占用的显存资源,提高了该电子设备在运行过程中所能利用的显存资源,提高了显存资源的利用率。
在该电子设备中,可以运行至少两个应用,为了进一步优化该电子设备的显存资源,在一可选示例下,假设电子设备中运行有游戏A和游戏B,假设用户正在通过该电子设备玩游戏A,如在游戏A聊天界面与其他玩家聊天,在游戏A运行的过程中,接收到了来自游戏B的短消息提示,当用户查看来自游戏B的短消息时,会切换至游戏B的界面,此时,游戏A处于后台运行,可以将游戏A所占用的显存资源释放掉,并增加游戏B显存资源,当用户再次打开游戏A时,向游戏A分配相应的显存资源。其中,实际应用中,并不限定于游戏应用,还可以为其他应用,如即使通讯应用,视频应用等。通过这种方式,可以在应用处于后台运行时,释放掉其所占用的显示资源,进一步优化电子设备的显存资源,提高了显存资源的利用率。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、Wi-Fi及其他实现无线通信的网络。用户终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile InternetDevices,移动互联网设备)、PDA(个人数字助理)、台式计算机、车载终端(例如车载导航终端)、智能音箱、智能手表等,用户终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。具体也可基于实际应用场景需求确定,在此不作限定。
参见图2,图2是本申请实施例提供的一种显存优化方法的流程示意图,该方法可以由任一电子设备执行,如可以是服务器,也可以是用户终端和服务器交互完成,可选的,可以由云应用服务器执行,如图2所示,本申请实施例提供的显存优化方法包括如下步骤:
步骤S201,接收用户终端发送的针对第一云应用的应用启动请求。
步骤S202,响应于上述应用启动请求,启动上述第一云应用对应的云端设备的操作系统,其中,上述操作系统的组件不包括系统级用户界面组件;
步骤S203;向上述云端设备发送上述第一云应用的启动指令,以使上述云端设备根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,其中,上述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
可选的,在上述用户终端中可以运行上述第一云应用的客户端,该客户端可以为该第一云应用对应的网页web客户端或者小程序客户端或者云应用客户端,以云游戏为例,该客户端可以为云游戏的网页web客户端或者小程序客户端或者云游戏客户端,在此不作限定。
用户可以通过该用户终端打开其感兴趣的第一云应用,此时该用户终端所在的用户终端会向该第一云应用对应的云应用服务器发送针对第一云应用的应用启动请求,云应用服务器在接收到该应用启动请求后,会创建该第一云应用对应的云端设备,并启动该云端设备的操作系统,其中,为了达到显存优化的目的,该云端设备为搭载了不包含系统级用户界面组件的操作系统的云端设备。在一示例中,该云端设备可以是搭载了不包含系统级用户界面组件的Android系统的云端设备。
为了进一步优化显存资源,在该云端设备的操作系统启动后,云应用服务器会向该云端设备发送针对第一云应用的启动指令,云端设备会响应于该启动指令,启动该第一云应用,并在该第一云应用启动之后,将该云端设备的操作系统中的目标组件对应的进程关闭,该目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
通过本申请实施例,通过从多个层面考虑,优化显存资源的方式,有效提升了显存资源的利用率,极大地增大了云应用在运行过程中所能利用的显存资源,使云应用的运行更加流畅,提升了用户对云应用的使用体验。
在一种可选的实施例中,上述操作系统包括安卓Android系统,上述系统级用户界面组件为系统与用户交互界面systemUI组件,上述应用启动器组件为桌面启动器Launcher组件,上述应用界面设置组件为系统设置Settings组件。
可选的,云端设备的操作系统可以包括Android系统,系统级用户界面组件可以为系统与用户交互界面systemUI组件,应用启动器组件可以为桌面启动器Launcher组件,应用界面设置组件可以为系统设置Settings组件。
那么,云应用服务器所创建并启动的云端设备的Android系统中并未包含系统级用户界面组件(即systemUI)。
需要说明的是,由于Android系统中并未包含系统级用户界面组件(即systemUI),那么,该systemUI原先所占用的GPU显存资源就会被充分利用,增大了显存利用率。
当云端设备获取到云应用服务器针对于该第一云应用的启动指令时,该云端设备会响应于该启动指令,启动该第一云应用,当启动该第一云应用后,将Android系统中的应用启动器组件(即Launcher组件)或者应用界面设置组件(即Settings组件)中的至少一项关闭,关闭可以理解为将该应用启动器组件或者应用界面设置组件分别对应的进程杀掉,以释放掉应用启动器组件或者应用界面设置组件分别对应的显存资源。
通过本申请实施例,对于云应用为搭载了Android系统的云端设备,一方面,可以通过使该Android系统中不包含系统级用户界面组件systemUI,提高第一云应用在运行过程中的显存资源,另一方面,在第一云应用启动后,通过关闭应用启动器组件Launcher组件或应用界面设置组件Settings组件,可以进一步释放掉应用启动器组件Launcher组件或应用界面设置组件Settings组件对应的显存资源,且并不会影响第一云应用的运行,这种通过考虑多个层面的因素,来优化显存资源的方式,极大地提高了显存利用率。
在一种可选的实施例中,根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,包括:
响应于上述启动指令,调用上述操作系统的活动管理服务,通过上述活动管理服务启动上述第一云应用;
在上述第一云应用启动之后,通过上述活动管理服务关闭上述目标组件对应的进程,以关闭上述目标组件。
可选的,以云端设备的操作系统为Android系统为例,云端设备在接收到云应用服务器发送的启动指令后,可以响应于该启动指令,通过Launcher组件打开该第一云应用,并通过调用Android系统中的活动管理服务ActivityManagerService的启动活动方法(即startActivity方法)启动该第一云应用,当该第一云应用启动(即进入该第一云应用)后,通过调用该活动管理服务ActivityManagerService的启动活动方法(即startActivity方法)来杀掉launcher组件和Settings组件的相应的进程。
其中,ActivityManagerService是Android系统中最重要的系统服务之一,简称为AMS。其主要负责系统中四大组件的启动、切换、调度以及应用程序的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似。该服务负责Android四大组件的启动、切换、调度以及应用程序的管理和调度等工作。
以第一云应用为云游戏为例,当云端设备接收到针对于该云游戏的启动指令后,会通过Launcher组件自动打开该云游戏对应的图标,并通过调用Android系统中的活动管理服务ActivityManagerService的启动活动方法(即startActivity方法)启动云游戏,当该云游戏启动后,可以调用ActivityManagerService的启动活动方法(即startActivity方法),将Launcher组件和和Settings组件对应的进程杀掉。这种通过系统杀掉launcher组件和Settings组件对应的进程,会彻杀死对应的进程,显存释放更彻底。
通过本申请实施例,可以使用活动管理服务关闭目标组件,以释放目标组件对应的显存资源,方式简单灵活,提高了资源利用率。
在一种可选的实施例中,该方法还包括:
响应于上述用户终端的用户界面切换操作,向上述云端设备发送资源释放指令,以释放上述第一云应用所占用的显存资源,其中,上述用户界面切换操作用于触发将上述用户终端的用户界面由上述第一云应用的用户界面切换至其他用户界面。
可选的,为了进一步释放显存资源,当云应用服务器在接收到了来自用户终端针对该第一云应用的用户界面切换操作,该用户界面切换操作用于触发将上述用户终端的用户界面由第一云应用的用户界面切换至其他用户界面,对于用户而言,该用户界面切换操作可以为关闭该第一云应用,并打开该用户终端中的其他用户界面,或者,该用户界面切换操作也可以为不关闭该第一云应用,并打开该用户终端中的其他用户界面,举例来说,打开的其他用户界面可以为打开即时通讯应用的用户界面等,在此不作限定。此时,云应用服务器会响应于该用户界面切换操作,向云端设备发送资源释放指令,云端设备会响应于该资源释放指令将第一云应用所占用的显示资源释放掉,当再次进入第一云应用时,向第一云应用分配相应的显存资源。
若上述用户界面切换操作为不关闭该第一云应用时,可以记录该第一云应用处于在退出之前的最后一帧显示画面的画面数据,当用户再次打开第一云应用时,可以基于该第一云应用的最后一帧显示画面的画面数据显示最后一帧显示画面。
在释放掉该第一云应用的显存资源后,可以将第一云应用之前所占用的显存资源分配给其他云应用的云端设备,实现过程如下:
在一种可选的实施例中,该方法还包括:
响应于上述第一云应用所占用的显存资源被释放的情况下,调低为上述云端设备分配的显存资源,并调高为其他云端设备分配的显存资源,其中,上述其他云端设备为上述第二云应用对应的云端设备。
可选的,由于云应用服务器可以对应于至少两个云端设备,在第一云应用所对应的云端设备所占用的显示资源被释放掉的情况下,云应用服务器可以调低为该第一云应用所对应的云端设备分配的显存资源,并增加(即调高)为第二云应用所对应的云端设备分配的显存资源。
通过本申请实施例,云应用服务器可以通过动态调整至少两个云端设备的显存资源,实现显存资源的合理分配。
在一种可选的实施例中,上述目标组件是通过以下方式确定的:
获取多个测试应用;
在测试设备中分别运行每个上述测试应用,获取每个上述测试应用运行时上述测试设备的操作系统的多个组件的进程所占用的显存资源;
根据各上述测试应用运行时上述多个组件的进程所占用的显存资源,从上述多个组件中确定出至少一个候选组件;
对于每个上述候选组件,在上述测试设备分别运行每个上述测试应用,并在上述测试应用启动后关闭该候选组件,并获取在该候选组件处于关闭时每个上述测试应用的运行状态;
根据每个上述候选组件处于关闭时各上述测试应用的运行状态,从各候选组件中确定出上述目标组件。
可选的,可以通过以下方式确定目标组件:
获取多个测试应用,如测试应用1、测试应用2和测试应用3。获取在测试应用1运行时,测试设备的操作系统中的多个组件的进程所占用的显存资源1,同理,获取在测试应用2运行时,测试设备的操作系统中的多个组件的进程所占用的显存资源2,获取在测试应用3运行时,测试设备的操作系统中的多个组件的进程所占用的显存资源3。根据该多个组件对应的占用的显存资源1、占用的显存资源2和占用的显存资源3,从该多个组件中确定出至少一个候选组件(如候选组件1、候选组件2和候选组件3),候选组件可以为占用显存资源比较多的组件。
然后,以候选组件1为例,在测试设备运行测试应用1时,关闭候选组件1,获取该测试应用1的运行状态1,在测试设备运行测试应用2时,关闭候选组件1,获取该测试应用2的运行状态2,在测试设备运行测试应用3时,关闭候选组件1,获取该测试应用3的运行状态3。根据运行状态1、运行状态2和运行状态3,确定候选组件1是否为目标组件,例如,若运行状态1、运行状态2和运行状态3均为非异常状态,即测试应用1、测试应用2和测试应用3均没有出现异常的运行情况,那么,可以将候选组件1确定为一个目标组件。同理,对于候选组件2和候选组件3是否为目标组件,可参考对候选组件1的确定方式,在此不再赘述。
可选的,在确定目标组件时,还可以通过组合测试的方式,例如,在测试设备运行测试应用1时,关闭候选组件1、候选组件2或者候选组价3中的至少两个,并获取运行状态信息,通过这种关闭至少两个组件的方式对应的运行状态信息确定目标组件。
通过本申请实施例,可以通过测试的方式,确定出目标组件,以便后续在启动云应用后,将目标组件对应的进程关闭,为是否关闭目标组件对应的进程奠定了基础,保证了云应用的正常运行,提高了显存资源优化的合理性。
以下结合一具体实施例,对本申请实施例中的显存优化方法进行详细说明。
对于搭载了Android系统和不同种类的GPU的云端设备,有些场景下,硬件资源和系统资源较少,这个时候如果需要显示更精细的内容或者对延时要求、流畅性有要求的场景下就需要非常合理的使用GPU资源。
如图3所示,为一示例中Android系统中显存资源使用情况的示意图,包括App占用资源01、App共享资源02、系统预留资源03和系统占用资源04。其中,App占用资源指的是各个App所占用的显存资源的总和,App共享资源指的是各个App之间共享的显存资源,系统预留资源指的是操作系统预留的一部分显存资源,系统占用资源指的是操作系统中的系统级应用所占用的显存资源。
为了优化Android系统的GPU显存资源,本申请的发明人通过研究现有技术中的显存优化方案,发现现有技术中的显存优化方案仍然存在很多不足,下面以操作系统为Android系统、第一云应用为云游戏为例,对本申请实施例中的显存优化方法的原理进行详细说明。
下面基于云游戏的应用场景,采用本申请实施例中的显存优化方法,实现了Android系统GPU显存优化的方案。为了提高对GPU的利用率,需要从Android系统层面入手,深入研究Android系统与GPU硬件交互的过程,找到哪些因素可以降低GPU的显存占用,从而最大程度对GPU显存进行优化。以下详述如何确定哪些因素是占用GPU显存的“元凶”。
在云游戏平台(即云游戏服务器)上,搭配相应的GPU,该云游戏平台可以包含至少一路容器(一路容器即为一个云游戏对应的一个云端实例),如包含32路容器,每一路容器对应于一个云游戏,并为每一路容器分配512M的显存峰值,即每个云游戏对应的每一路容器的显存的最大值为512M。在分配好每一路容器的显存资源后,可以在某一路容器中开启云游戏,例如,当开启某个云游戏(如云游戏A)后,该云游戏A对应的显存占用接近于峰值,为511M,而该云游戏对应的单路容器的显存峰值为512M,也就是说,在开启云游戏后,几乎占用了全部的显存资源,为了优化云游戏的显存资源,需要查找会占用显存资源的影响因素。
可选的,在云游戏运行过程中,获取与该云游戏对应的单路容器中的进程信息,该进程信息中包含了各进程分别对应的GPU显存的占用信息(即进程所占用的显存资源),通过各进程对应的多个组件的GPU显存的占用信息,从占用显存比较大的设定数量的多个组件或者占用显存超过一定阈值的多个组件作为初步候选组件,然后从这些初步候选组件中确定出在云游戏运行过程中,哪些组件对应的进程对云游戏的显存资源会有影响,如图4所示,图4是本申请实施例提供的一种进程的显存占用情况的示意图,图中主要包含两种信息,进程名称(即Process-name),包括进程systemui(即systemUI组件对应的进程)、launcher3(即Launcher组件对应的进程)、settings(即Settings组件对应的进程)和packageinstaller(安装包程序),即以及各个进程分别对应的显存占用情况,从图中可以看出,其中显存资源占用最多的系统组件是systemUI,Launcher,Settings这三个组件,其中,systemUI占用136M、Launcher占用90M,Settings占用30M。
也就是说,通过各进程对应的GPU显存的占用信息,确定了三种对云游戏的运行时显存资源有影响的三种因素,即系统组件systemUI,Launcher,Settings。以下通过几种示例确定这三种因素对云游戏运行的影响。
示例1,开启云游戏,在云游戏开启后,将systemUI组件、Launcher组件和Settings组件分别对应的进程杀掉,对云游戏的运行情况进行测试,获取该云游戏的运行状态信息,根据该运行状态信息,在这种情形下,云游戏可以正常运行,并不会受到影响。
示例2,通过将systemUI组件从Android系统的源代码中去除掉,并在Android系统的源代码中保留Launcher组件和Settings组件的方式,开启云游戏,对云游戏的运行情况进行测试,在这种情形下,云游戏可以正常运行,并不会受到影响。
示例3,通过将systemUI组件从Android系统的源代码中去除掉,并在Android系统的源代码中保留Launcher组件和Settings组件的方式,开启云游戏,并在云游戏开启后,杀掉Launcher组件和Settings组件分别对应的进程,对云游戏的运行情况进行测试,在这种情形下,云游戏可以正常运行,并不会受到影响,并且运行速度相比示例1和示例2有所提高。
综合考虑以上几种示例,可以针对性的对这三个组件制定相应的显存优化方案,以下详述针对这三个不同的系统组件进行优化的方案。
对于systemUI的显存优化方案,如图5所示,可以在Android开放源代码项目(Android Open-Source Project,简称AOSP)的源码中,直接从安卓构建系统build/make将systemUI组件对应的源代码去除,即从安卓构建系统中的两个文件generic_no_telephony.mk和sdk_base.mk中分别去除systemUI对应的源代码。也就是说,上线后的云游戏对应的Android系统中并不包含systemUI组件,换言之,本申请实施例中,修改了Android系统的源代码,将该Android系统的源代码中关于systemUI组件的功能进行了删除。
对于Launcher的显存优化方案,由于没有Launcher,系统永远无法就绪,故无法采用去除组件的方式进行显存优化。Launcher只在系统启动后短暂的显示桌面,消耗一定的显存,当打开云游戏后,Launcher就在后台运行,并不会有显示工作,故不会占用显存,为了进一步释放Launcher的显存资源,可以采用系统自动杀掉launcher进程的方式,在杀掉launcher进程的同时,系统会自动释放掉launcher之前的已经占用的显存。在杀掉launcher对应的进程后,由于launcher是系统应用,所以会重启,但是重启后的launcher是处于后台运行的,并不会有显示工作,系统并不会向launcher分配显存资源,也就是说,即使launcher重启也不会再占用额外的显存资源。
可选的,对于launcher组件对应的Android系统代码,在Android系统的源代码中修改了Launcher组件对应的代码,当启动游戏后,会调用Android系统中的活动管理服务ActivityManagerService的startActivity方法,通过Android系统中的该活动管理服务ActivityManagerService来杀掉launcher组件相应的进程。换言之,通过修改后的Launcher组件对应的代码,能够从系统层面在云游戏启动后,将该Launcher组件对应的进程杀掉。其中,ActivityManagerService是Android系统中最重要的系统服务之一,简称为AMS。其主要负责系统中四大组件的启动、切换、调度以及应用程序的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似。
对于Settings,其原理与Launcher相同,在此不再赘述,Settings的显存优化方案与launcher的显存优化方案一致。如图6所示,为对launcher和Settings进行显存优化的原理示意图,如图6所示,主要步骤如下:
步骤S601,通过启动应用器组件launcher打开云游戏;
步骤S602,当打开云游戏后,通过活动管理服务AMS通知launcher休眠;
步骤S603,通过调用活动管理服务AMS的启动活动startActivity方法,启动云游戏,即进入云游戏;
步骤S604,当进入云游戏后,通过调用活动管理服务AMS的启动活动startActivity方法,将launcher组件和Settings组件分别对应的进程杀掉,释放掉进程launcher和进程Settings对应的显存。
当按照上述方式确定好对云游戏的显存优化方案之后,以下结合一具体示例,如图7所示,说明对云游戏的显存优化方案,其中,该示例中主要包括用户终端71、云服务器72和Android容器,用户终端71和云服务器72之间可以通过网络通信,云服务器72和Android容器73之间可以通过网络通信,主要过程如下:
S701,玩家在用户终端打开云游戏A,此时用户终端会向该云游戏A对应的云服务器发送游戏启动请求(即应用启动请求);
S702,云服务器接收用户终端发送的游戏启动请求,响应于该游戏启动请求,在云服务器中创建该云游戏A对应的Android容器(即云端设备),在Android容器创建完成后,启动该Android容器,相应地,启动该Android容器即启动了该Android容器的操作系统。
其中,该Android容器对应的操作系统中并未包含系统级用户界面组件systemUI。
S703,云服务器向该Android容器发送云游戏安装指令,该Android容器会响应于该云游戏安装指令,在该Android容器中安装该云游戏A。
S704,在该Android容器中安装完该云游戏A后,云服务器向该Android容器发送针对于该云游戏A的启动指令,该Android容器接收并响应于该启动指令,通过启动应用器组件launcher打开该云游戏A,当打开云游戏A后,通过活动管理服务AMS通知launcher休眠,并通过调用活动管理服务AMS的启动活动startActivity方法,启动云游戏A,即进入云游戏A。
S705,在该云游戏A启动后,Android容器通过调用活动管理服务AMS的启动活动startActivity,将launcher组件和Settings组件分别对应的进程杀掉,释放掉进程launcher和进程Settings对应的显存;
采用上述将systemUI从系统去除,以及在云游戏启动后,将进程launcher和Settings杀掉的显存优化方式,总GPU显存占用下降了200M左右,如图8所示,可以使GPU的显存相对增加原先systemUI所占用的100~140M、原先launcher所占用的80~90M以及原先Settings所占用的20-30M。可以看出,采用这种方式,减少了除云游戏之外的其他系统组件对显存资源的占用,大大提高了显存资源的利用率。
S706,进入云游戏A后,Android容器绘制云游戏A相关的渲染画面,并向云服务器发送云游戏A相关的渲染画面,并由云服务器向用户终端发送该云游戏A相关的渲染画面。
S707,用户终端接收云游戏A相关的渲染画面,此时,用户可以在用户终端看到云游戏A相关的渲染画面,并且,可以在用户终端玩该云游戏A。
通过本申请实施例,从系统入手,找到Android系统层面影响显存占用的因素,减少了显存占用,从而提高了云游戏单路容器的并发性。
参见图9,图9是本申请实施例提供的一种显存装置的结构示意图。本申请实施例提供的显存优化装置1包括:
应用启动请求接收模块11,用于接收用户终端发送的针对第一云应用的应用启动请求;
设备启动控制模块12,用于响应于上述应用启动请求,启动上述第一云应用对应的云端设备的操作系统,其中,上述操作系统的组件不包括系统级用户界面组件;
应用启动控制模块13,用于向上述云端设备发送上述第一云应用的启动指令,以使上述云端设备根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件,其中,上述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
在一种可选的实施例中,上述云端设备在根据上述启动指令启动上述第一云应用,并在上述第一云应用启动之后,关闭上述操作系统中的目标组件时,用于:
响应于上述启动指令,调用上述操作系统的活动管理服务,通过上述活动管理服务启动上述第一云应用;
在上述第一云应用启动之后,通过上述活动管理服务关闭上述目标组件对应的进程,以关闭上述目标组件。
在一种可选的实施例中,上述装置还包括资源管理模块,该资源管理模块用于:
响应于上述用户终端的用户界面切换操作,向上述云端设备发送资源释放指令,以释放上述第一云应用所占用的显存资源,其中,上述用户界面切换操作用于触发将上述用户终端的用户界面由上述第一云应用的用户界面切换至其他用户界面。
在一种可选的实施例中,上述资源管理模块,还用于:
响应于上述第一云应用所占用的显存资源被释放的情况下,调低为上述云端设备分配的显存资源,并调高为其他云端设备分配的显存资源,其中,上述其他云端设备为第二云应用对应的云端设备。
在一种可选的实施例中,上述操作系统包括安卓Android系统,上述系统级用户界面组件为systemUI(system user interface,系统与用户交互界面)组件,上述应用启动器组件为安卓系统桌面启动器Launcher组件,上述应用界面设置组件为系统设置Settings组件。
在一种可选的实施例中,上述第一云应用包括云游戏应用,上述云端设备是上述用户终端对应的云端实例。
在一种可选的实施例中,上述目标组件是通过目标组件确定模块通过以下方式确定的:
获取多个测试应用;
在测试设备中分别运行每个上述测试应用,获取每个上述测试应用运行时上述测试设备的操作系统的多个组件的进程所占用的显存资源;
根据各上述测试应用运行时上述多个组件的进程所占用的显存资源,从上述多个组件中确定出至少一个候选组件;
对于每个上述候选组件,在上述测试设备分别运行每个上述测试应用,并在上述测试应用启动后关闭该候选组件,并获取在该候选组件处于关闭时每个上述测试应用的运行状态;
根据每个上述候选组件处于关闭时各上述测试应用的运行状态,从各候选组件中确定出上述目标组件。
在本申请实施例中,云应用服务器在接收到用户终端发送的针对于第一云应用的应用启动请求之后,响应于该应用启动请求,启动第一云应用对应的云端设备的操作系统,由于该操作系统中不包括系统级用户界面组件,那么,在运行该第一云应用的过程中,就无需向该系统级用户界面组件分配其原本所占用的显存资源,增大了第一云应用所能利用的显存资源,为了进一步优化显存资源,在第一云应用启动之后,通过关闭该操作系统中的应用启动器组件或应用界面设置组件中的至少一项,进一步增大了第一云应用可用的显存资源,通过这种从多个层面考虑,优化显存资源的方式,有效提升了显存资源的利用率,极大地增大了云应用在运行过程中所能利用的显存资源,使云应用的运行更加流畅,提升了用户对云应用的使用体验。
具体实现中,上述显存优化装置可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上文主要介绍说明了执行主体为硬件,来实施本申请中的显存优化方法,但是本申请的显存优化方法的执行主体并不仅限于硬件,本申请中的显存优化方法的执行主体还可以为软件,上述显存优化装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该显存优化装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。
在一些实施例中,本申请实施例提供的显存优化装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的显存优化装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的显存优化方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在另一些实施例中,本申请实施例提供的显存优化装置可以采用软件方式实现,显存优化装置可以是程序和插件等形式的软件,并包括一系列的模块,包括应用启动请求接收模块11、设备启动控制模块12和应用启动控制模块13,用于实现本申请实施例提供的显存优化方法。
参见图10,图10是本申请实施例提供的一种电子设备的结构示意图。如图10所示,本实施例中的电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的计算机程序。
应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的显存优化装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card, SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2中任一种可能的实施方式所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种显存优化方法,其特征在于,所述方法由云应用服务器执行,所述方法包括:
接收用户终端发送的针对第一云应用的应用启动请求;
响应于所述应用启动请求,启动所述第一云应用对应的云端设备的操作系统,其中,所述操作系统的组件不包括系统级用户界面组件;
向所述云端设备发送所述第一云应用的启动指令,以使所述云端设备根据所述启动指令启动所述第一云应用,并在所述第一云应用启动之后,关闭所述操作系统中的目标组件,其中,所述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
2.根据权利要求1所述的方法,其特征在于,所述根据所述启动指令启动所述第一云应用,并在所述第一云应用启动之后,关闭所述操作系统中的目标组件,包括:
响应于所述启动指令,调用所述操作系统的活动管理服务,通过所述活动管理服务启动所述第一云应用;
在所述第一云应用启动之后,通过所述活动管理服务关闭所述目标组件对应的进程,以关闭所述目标组件。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述用户终端的用户界面切换操作,向所述云端设备发送资源释放指令,以释放所述第一云应用所占用的显存资源,其中,所述用户界面切换操作用于触发将所述用户终端的用户界面由所述第一云应用的用户界面切换至其他用户界面。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述第一云应用所占用的显存资源被释放的情况下,调低为所述云端设备分配的显存资源,并调高为其他云端设备分配的显存资源,其中,所述其他云端设备为第二云应用对应的云端设备。
5.根据权利要求1所述的方法,其特征在于,所述操作系统包括安卓Android系统,所述系统级用户界面组件为系统与用户交互界面systemUI组件,所述应用启动器组件为桌面启动器Launcher组件,所述应用界面设置组件为系统设置Settings组件。
6.根据权利要求1所述的方法,其特征在于,所述第一云应用包括云游戏应用,所述云端设备是所述用户终端对应的云端实例。
7.根据权利要求1所述的方法,其特征在于,所述目标组件是通过以下方式确定的:
获取多个测试应用;
在测试设备中分别运行每个所述测试应用,获取每个所述测试应用运行时所述测试设备的操作系统的多个组件的进程所占用的显存资源;
根据各所述测试应用运行时所述多个组件的进程所占用的显存资源,从所述多个组件中确定出至少一个候选组件;
对于每个所述候选组件,在所述测试设备分别运行每个所述测试应用,并在所述测试应用启动后关闭该候选组件,并获取在该候选组件处于关闭时每个所述测试应用的运行状态;
根据每个所述候选组件处于关闭时各所述测试应用的运行状态,从各候选组件中确定出所述目标组件。
8.一种显存优化装置,其特征在于,包括:
应用启动请求接收模块,用于接收用户终端发送的针对第一云应用的应用启动请求;
设备启动控制模块,用于响应于所述应用启动请求,启动所述第一云应用对应的云端设备的操作系统,其中,所述操作系统的组件不包括系统级用户界面组件;
应用启动控制模块,用于向所述云端设备发送所述第一云应用的启动指令,以使所述云端设备根据所述启动指令启动所述第一云应用,并在所述第一云应用启动之后,关闭所述操作系统中的目标组件,其中,所述目标组件包括应用启动器组件或应用界面设置组件中的至少一项。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至7任一项中所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项中所述的方法。
CN202110485305.6A 2021-04-30 2021-04-30 显存优化方法、装置、电子设备以及可读存储介质 Active CN112988400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110485305.6A CN112988400B (zh) 2021-04-30 2021-04-30 显存优化方法、装置、电子设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110485305.6A CN112988400B (zh) 2021-04-30 2021-04-30 显存优化方法、装置、电子设备以及可读存储介质

Publications (2)

Publication Number Publication Date
CN112988400A true CN112988400A (zh) 2021-06-18
CN112988400B CN112988400B (zh) 2021-08-06

Family

ID=76336932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110485305.6A Active CN112988400B (zh) 2021-04-30 2021-04-30 显存优化方法、装置、电子设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN112988400B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407364A (zh) * 2021-06-25 2021-09-17 青岛海信移动通信技术股份有限公司 应用程序的调用服务方法、装置、电子设备及存储介质
CN113467958A (zh) * 2021-09-02 2021-10-01 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及可读存储介质
CN113722105A (zh) * 2021-09-14 2021-11-30 百度在线网络技术(北京)有限公司 云应用操作方法、装置、设备、介质及产品
CN114022344A (zh) * 2022-01-10 2022-02-08 北京蔚领时代科技有限公司 基于Linux服务器的Android容器渲染资源共享方法和装置
CN114265655A (zh) * 2021-12-21 2022-04-01 奇安信科技集团股份有限公司 云应用数据处理方法及装置、系统和存储介质
CN114675976A (zh) * 2022-05-26 2022-06-28 深圳前海环融联易信息科技服务有限公司 基于kubernetes的GPU共享方法、装置、设备及介质
CN116521260A (zh) * 2023-04-21 2023-08-01 启朔(深圳)科技有限公司 应用启动方法、应用运行方法、移动端、云端和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116768B1 (en) * 2014-11-20 2015-08-25 Symantec Corporation Systems and methods for deploying applications included in application containers
US20180069847A1 (en) * 2016-09-02 2018-03-08 Ca, Inc. Distinguishing human-generated input from programmatically-generated input
CN108241527A (zh) * 2016-12-26 2018-07-03 成都理想境界科技有限公司 一种任务调度方法及电子设备
CN111450528A (zh) * 2020-03-31 2020-07-28 网易(杭州)网络有限公司 一种云游戏的渲染服务系统、方法及装置
CN111729293A (zh) * 2020-08-28 2020-10-02 腾讯科技(深圳)有限公司 一种数据处理方法、装置及存储介质
CN111966311A (zh) * 2020-07-15 2020-11-20 北京视博云信息技术有限公司 云游戏的显示设置方法、装置、可读存储介质及设备
CN112035172A (zh) * 2020-09-03 2020-12-04 腾讯科技(深圳)有限公司 操作系统启动方法、装置、服务器及存储介质
CN112035115A (zh) * 2020-06-17 2020-12-04 厦门盈趣科技股份有限公司 一种基于Android系统平台调用的系统API设置及调用方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116768B1 (en) * 2014-11-20 2015-08-25 Symantec Corporation Systems and methods for deploying applications included in application containers
US20180069847A1 (en) * 2016-09-02 2018-03-08 Ca, Inc. Distinguishing human-generated input from programmatically-generated input
CN108241527A (zh) * 2016-12-26 2018-07-03 成都理想境界科技有限公司 一种任务调度方法及电子设备
CN111450528A (zh) * 2020-03-31 2020-07-28 网易(杭州)网络有限公司 一种云游戏的渲染服务系统、方法及装置
CN112035115A (zh) * 2020-06-17 2020-12-04 厦门盈趣科技股份有限公司 一种基于Android系统平台调用的系统API设置及调用方法及系统
CN111966311A (zh) * 2020-07-15 2020-11-20 北京视博云信息技术有限公司 云游戏的显示设置方法、装置、可读存储介质及设备
CN111729293A (zh) * 2020-08-28 2020-10-02 腾讯科技(深圳)有限公司 一种数据处理方法、装置及存储介质
CN112035172A (zh) * 2020-09-03 2020-12-04 腾讯科技(深圳)有限公司 操作系统启动方法、装置、服务器及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407364A (zh) * 2021-06-25 2021-09-17 青岛海信移动通信技术股份有限公司 应用程序的调用服务方法、装置、电子设备及存储介质
CN113467958A (zh) * 2021-09-02 2021-10-01 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及可读存储介质
CN113467958B (zh) * 2021-09-02 2021-12-14 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及可读存储介质
CN113722105A (zh) * 2021-09-14 2021-11-30 百度在线网络技术(北京)有限公司 云应用操作方法、装置、设备、介质及产品
CN114265655A (zh) * 2021-12-21 2022-04-01 奇安信科技集团股份有限公司 云应用数据处理方法及装置、系统和存储介质
CN114022344A (zh) * 2022-01-10 2022-02-08 北京蔚领时代科技有限公司 基于Linux服务器的Android容器渲染资源共享方法和装置
CN114675976A (zh) * 2022-05-26 2022-06-28 深圳前海环融联易信息科技服务有限公司 基于kubernetes的GPU共享方法、装置、设备及介质
CN116521260A (zh) * 2023-04-21 2023-08-01 启朔(深圳)科技有限公司 应用启动方法、应用运行方法、移动端、云端和存储介质

Also Published As

Publication number Publication date
CN112988400B (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN112988400B (zh) 显存优化方法、装置、电子设备以及可读存储介质
JP6996005B2 (ja) リソース構成方法、装置、端末、および記憶媒体
WO2020108085A1 (zh) 资源配置方法、装置、终端及存储介质
US9455931B2 (en) Load balancing between processors
CN109032793B (zh) 资源配置的方法、装置、终端及存储介质
US9722869B2 (en) Sharing an application configuration among social networks
US11782756B2 (en) Method and apparatus for scheduling processor core, and storage medium
CN110955499B (zh) 处理器核心配置方法、装置、终端及存储介质
CN112767133B (zh) 业务决策方法及装置、存储介质、计算机设备
US9680894B2 (en) Multiple virtual machine memory usage reduction system and method
CN112767135B (zh) 规则引擎的配置方法及装置、存储介质、计算机设备
CN109067890A (zh) 一种基于docker容器的CDN节点边缘计算系统
CN105378661A (zh) 资源包索引
JP2022525880A (ja) サーバーの負荷予測及び高度なパフォーマンス測定
CN111078325A (zh) 应用程序运行方法、装置、电子设备及存储介质
CN112295234A (zh) 获取游戏道具的方法和装置
CN112256354A (zh) 应用启动方法、装置、存储介质及电子设备
CN111104183A (zh) 应用程序运行方法、装置、电子设备及存储介质
CN113144606B (zh) 虚拟对象的技能触发方法及相关设备
CN116601602A (zh) 对用户透明地预加载应用
CN115040866A (zh) 云游戏图像处理方法、装置、设备及计算机可读存储介质
KR20160084215A (ko) 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치
CN114100143B (zh) 一种云服务控制方法及相关装置
CN118093083A (zh) 页面处理方法、装置、计算机设备及计算机可读存储介质
CN113457138A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047255

Country of ref document: HK