本发明涉及计算机技术领域,尤其涉及一种终端应用资源的处理方法及装置。
背景技术:
随着网络技术的发展,游戏已经成为人们生活娱乐的一个重要部分。游戏应用需要在特定的硬件性能下,表现出各种优美的游戏效果,这对于设备的硬件要求越来越高。
现有技术中,在游戏应用的启动及运行过程中,仅依赖于芯片的内存资源调度方案进行内存管理。芯片的内存资源调度方案是一套通用的、适用于各类应用的方案,并没有针对游戏应用进行特殊的优化,不利于发挥硬件性能,这造成了应用运行不流畅的问题。
技术实现要素:
本发明提供一种终端应用资源的处理方法及装置,以解决现有技术中应用运行不流畅的问题。
第一方面,本发明提供一种终端应用资源的处理方法,包括:
s1:获取第一应用的资源使用量;
s2:若所述资源使用量大于或等于预设阈值,或当所述资源使用量降低至小于或等于所述预设阈值时,根据预设策略释放资源。
在一种可选的实施方式中,在所述s1步骤之前,还包括:
s3:接收所述第一应用的启动指令;
s4:根据所述第一应用的启动指令,根据预设规则释放至少一个除所述第一应用以外的应用所占用的资源,并启动所述第一应用。
在一种可选的实施方式中,所述预设规则包括:应用所占用资源大小、应用是否处于后台、应用优先级中的至少一个。
在一种可选的实施方式中,在所述s3步骤之前,还包括:
s5:获取所述第一应用的历史启动数据;
s6:根据所述第一应用的历史启动数据,确定所述第一应用的预开启时间;
s7:在所述预开启时间加载所述第一应用的资源,和/或为所述第一应用预留资源。
在一种可选的实施方式中,所述资源为显卡内存、运行内存、缓存、存储空间、cpu、gpu、npu中的至少一种;和/或,
所述资源使用量是实际占用量、预估占用量、最大占用量、最小占用量中的至少一种。第二方面,本发明提供一种一种终端应用资源的处理装置,包括:
第一获取模块,用于获取第一应用的资源使用量;
第一调节模块,用于若所述资源使用量大于或等于预设阈值,或当所述资源使用量降低至小于或等于所述预设阈值时,根据预设策略释放资源。
在一种可选的实施方式中,所述终端应用资源的处理装置还包括:
接收模块,用于接收所述第一应用的启动指令;
启动模块,根据所述第一应用的启动指令,根据预设规则释放至少一个除所述第一应用以外的应用所占用的资源,并启动所述第一应用。
在一种可选的实施方式中,所述终端应用资源的处理装置还包括:
第二获取模块,用于获取所述第一应用的历史启动数据;
确定模块,用于根据所述第一应用的历史启动数据,确定所述第一应用的预开启时间;
预启动模块,在所述预开启时间加载所述第一应用的资源,和/或为所述第一应用预留资源。
在一种可选的实施方式中,所述资源为显卡内存、运行内存、缓存、存储空间、cpu、gpu、npu中的至少一种;和/或,
所述资源使用量是实际占用量、预估占用量、最大占用量、最小占用量中的至少一种。
本发明的第三个方面提供一种终端,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行第一方面所述的应用内存的管理方法步骤。
本发明的第四个方面提供一种存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行第一方面任一项所述的方法。
本发明提供的一种终端应用资源的处理方法及装置,通过获取第一应用的资源使用量,若所述资源使用量大于或等于预设阈值,或当所述资源使用量降低至小于或等于所述预设阈值时,根据预设策略释放资源。通过该方式,可以根据第一应用的资源使用量根据预设策略释放资源从而避免了因资源不足造成的画面卡顿,保证了应用的流程运行。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种终端的系统架构图;
图2为本申请实施例提供的一种终端应用资源的处理方法的流程示意图;
图3为本申请实施例提供的另一种终端应用资源的处理方法的流程示意图;
图4为本申请实施例提供的再一种终端应用资源的处理方法的流程示意图;
图5为本申请实施例提供的一种终端应用资源的处理装置的结构示意图;
图6为本申请实施例提供的另一种终端应用资源的处理装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应当理解,在本申请中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在游戏应用的启动及运行过程中,仅依赖于芯片的内存资源调度方案进行内存管理。芯片的内存资源调度方案是一套通用的、适用于各类应用的方案,并没有针对游戏应用进行特殊的优化,不利于发挥硬件性能,这造成了应用运行不流畅的问题。
为解决上述问题,本申请实施例提供一种终端应用资源的处理方法。
本申请实施例提供的终端应用资源的处理方法,可以应用于任意终端应用中。该应用不仅仅可以为游戏应用,还可以为视频应用、购物应用等。上述终端,可以是但不限于手机、计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等用户设备。
图1为本申请实施例提供的一种终端的系统架构图。如图1所示,终端可以包括:处理器11、显卡12、内存13。可选的,该终端还可以包括通信模块15、射频(radiofrequency,rf)电路16、电源17、存储器18、和显示单元19。
其中,处理器11是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器18内的软件程序和/或模块,以及调用存储在存储器18内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。显卡12,又称图像处理器(graphicsprocessingunit,gpu),用于通过数学和几何计算完成图像渲染。可选的,处理器11可以根据应用的内存使用量,释放至少一功能程序占用的部分内存13,以及控制显卡12的运行。
rf电路16与通讯模块15连接,可用于收发信息或通话过程中,信号的接收和发送,例如,将基站的下行信息接收后,给处理器11处理;另外,将上行的数据发送给基站。
存储器18可用于存储软件程序以及模块,处理器18通过运行存储在存储器18的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。显示单元19可用于显示由用户输入的信息或提供给用户的信息以及终端的各种菜单。显示单元19可包括显示面板,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板19。
终端还包括给各个部件供电的电源17(比如电池),可选的,电源可以通过电源管理系统与处理器11逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
可以理解,本申请实施例提供的终端应用资源的处理方法可以通过应用内存的处理装置实现,应用内存的处理装置可以是某个设备的部分或全部,例如可以是终端上的处理器。
下面以集成或安装有相关执行代码的处理器为例,以具体地实施例对本申请实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种终端应用资源的处理方法的流程示意图。本申请实施例涉及的是处理器如何处理应用的资源使用量不足的过程,如图2所示,本申请实施例提供的方法可以包括:
s1、获取第一应用的资源使用量。
其中,上述资源可以为显卡内存、运行内存、缓存、存储空间、cpu、gpu、npu中的至少一种;和/或,资源使用量是实际占用量、预估占用量、最大占用量、最小占用量中的至少一种。
在一些实施例中,上述资源使用量可以为运行第一应用的画面所占用的内存。示例性的,运行第一应用的过程中,显卡会对第一应用的画面进行渲染的过程。在渲染过程中,显卡存储进而提取的渲染数据会占用部分内存。当显卡需要渲染的应用的画面清晰度过高,或者需要渲染的应用的画面刷新频率过高时,占用的内存使用量可以会过高。因此,在第一应用运行时,处理器可以提取第一应用的内存使用量,以判断第一应用的可用内存是否不足。
其中,显卡,又称图像处理器(graphicsprocessingunit,gpu),用于通过数学和几何计算完成图像渲染。第一应用,可以为游戏应用,也可以为视频播放器应用、浏览器应用等。本申请实施例对于应用的类型不做限制。
本申请实施例对于何时获取第一应用的资源使用量不做限制,在一种可选的实施方式中,当应用启动后,处理器每隔预设的时间间隔提取一次第一应用的资源使用量。示例性的,若第一应用为游戏应用,当游戏应用启动后,处理器通过每隔十秒钟获取一次游戏应用的资源使用量,从而实时监控游戏应用的资源使用情况。
在另一种可选的实施方式中,处理器可以通过画面的使用情况来确定是否需要获取第一应用的资源使用量,当画面第一次出现卡顿时,处理器立即获取第一应用的资源使用量,从而判断应用的可用内存是否不足。
示例性的,若第一应用为游戏应用,在游戏过程中,若游戏帧率的波动范围超过预设的范围阈值,则处理器获取该游戏应用的内存使用量。
s2、若资源使用量大于或等于预设阈值,或当资源使用量降低至小于或等于预设阈值时,根据预设策略释放资源。
在本步骤中,当处理器获取第一应用的资源使用量后,可以将资源使用量和预设阈值进行比较。若资源使用量大于或等于预设阈值,则说明第一应用的资源可能不足。或者,当资源使用量降低至小于或等于预设阈值时,则说明第一应用的资源过多。相应的,处理器可以根据预设策略释放其他应用的资源或者第一应用的资源。
上述根据预设策略释放资源可以包括释放终端处第一应用以外其他至少一应用的资源,或者释放第一应用所占用的其他至少一应用的资源,或者,释放后台应用的资源。
在一些实施例中,预设策略可以为,若资源使用量大于或等于预设阈值,则释放出第一应用以外的应用所占用的资源。
示例性的,若第一应用的内存使用量大于或等于预设的阈值,则说明运行第一应用所占用的内存可能即将不足,从而造成画面卡顿。此时,处理器需要对内存进行调控。相应的,处理器可以将终端其他至少一功能程序的运行内存释放,从而使第一应用可以占用终端其他至少一功能程序的运行内存来扩充内存,以保证画面流程。
在一些实施例中,预设策略可以为,当资源使用量降低至小于或等于预设阈值时,则控制第一应用释放终端其他至少一功能程序的运行内存。
示例性的,若第一应用内存长期占有其他功能程序的运行内存,会造成终端的功耗过大以及发热过大的问题,基于此,当第一应用流畅运行后,处理器可以控制第一应用释放终端其他至少一功能程序的运行内存,以供其他功能程序使用。当内存使用量降低至小于或等于内存阈值时,处理器可以控制第一应用释放终端其他至少一功能程序的运行内存。
本申请实施例提供的应用内存的处理方法,当内存使用量小于或等于内存阈值时,控制第一应用释放终端其他至少一功能程序的运行内存,从而在保证应用流程运行的前提下,降低终端的发热和运行功耗。
在一些实施例中,预设策略还可以为应用是否处于后台。当资源使用量大于或等于预设阈值时,则说明第一应用的资源不足,可以关闭后台的应用,以给第一应用提供更多的运行资源。
示例性的,当终端在运行游戏应用时,游戏应用的资源使用量低于阈值,相应的,终端的后台在运行音乐应用和聊天应用,此时根据预设策略,处理器可以关闭在后台运行的音乐应用和聊天应用。
本申请实施例提供的一种终端应用资源的处理方法,通过获取第一应用的资源使用量,若资源使用量大于或等于预设阈值,或当资源使用量降低至小于或等于预设阈值时,根据预设策略释放资源。通过该方式,可以根据第一应用的资源使用量根据预设策略释放资源从而避免了因资源不足造成的画面卡顿,保证了应用的流程运行。
上述实施例通过对应用的资源进行调节从而保证了应用的流程运行,然而,当终端开启第一应用的过程中,其他应用所占用的资源会对第一应用的启动速度以及运行流程性造成影响。基于此,下面对如何快速开启第一应用进行说明。图3为本申请实施例提供的再一种应用内存的处理方法的流程示意图,如图3所示,本申请实施例提供的方法可以包括:
s3、接收第一应用的启动指令。
s4、根据第一应用的启动指令,根据预设规则释放至少一个除第一应用以外的应用所占用的资源,并启动第一应用。
在步骤s301和s302中,当处理器接收到用户输入的第一应用的启动指令后,可以快速释放第一应用以外的应用所占用的资源,从而调用所以处理器资源,全力加速第一应用的启动。
其中,本申请实施例对于如何输入的第一应用的启动指令不做限制,一种可选的实施方式中,可以通过点击终端的显示界面上第一应用对应的图标输入第一应用的启动指令;在另一种可选的实施方式中,可以通过语音输入第一应用的启动指令。
示例性的,若第一应用为游戏应用,当用户输出该游戏应用的启动指令时,若终端的后台还在运行社交应用和音频播放应用。相应的,处理器可以释放社交应用和音频播放应用所占用的运行内存,并启动该游戏应用。
其中,预设规则可以包括应用所占用资源大小、应用是否处于后台、应用优先级中的至少一个。
在一些实施例中,当第一应用启动时,处理器可以识别终端此时运行的应用所占用资源大小,并将占用资源最大的n个应用关闭,从而使第一应用具有足够大的资源启动。
在一些实施例中,当第一应用启动时,处理器可以直接关闭处于后台的应用,从而使第一应用具有足够大的资源启动。
在另一些实施例中,处理器可以识别终端此时运行的应用的优先级,并将优先级最低的n个应用关闭,从而使第一应用具有足够大的资源启动。
示例性的,若终端设备同时在运行游戏应用、音乐应用和聊天应用。其中,游戏应用的优先级高于音乐应用,音乐应用的优先级高于聊天应用。相应的,处理器可以优先关闭聊天应用释放部分资源,若关闭游戏应用后,资源使用量仍然大于或等于阈值,则相应的,可以继续关闭音乐应用。
s1、获取第一应用的资源使用量;
s2、若资源使用量大于或等于预设阈值,或当资源使用量降低至小于或等于预设阈值时,根据预设策略释放资源。
本申请实施例提供的终端应用资源的处理方法,在接收第一应用的启动指令后,根据第一应用的启动指令,根据预设规则释放至少一个除第一应用以外的应用所占用的资源,并启动第一应用。通过上述方法,在应用启动时,可以避免其他应用在后台占用资源,从而提高了应用的启动和运行速度,保证应用的流畅运行。
上述实施例中,虽然通过释放出第一应用以外的应用所占用的资源来加速应用的启动,然而在应用启动过程中,还需要加载应用所需的资源,加载资源的过程相应的降低了应用的启动速度。
图4为本申请实施例提供的又一种应用内存的处理方法的流程示意图,本实施例涉及的是如何加快应用的启动速度的具体过程。如图4所示,本申请实施例提供的方法可以包括:
s5、获取第一应用的历史启动数据。
其中,历史启动数据可以为应用在启动时的数据,可例如应用的启动时间、启动位置以及启动习惯。
在一些实施例中,当第一应用每次启动时,处理器可以记录下第一应用的启动时间、启动位置和启动习惯,并将每次第一应用的启动时间、启动位置和启动习惯汇总为历史启动数据。当处理器接收到第一应用的预开启指令后,可以获取第一应用的历史启动数据。
示例性的,历史启动数据可以包括多次启动时的数据。以启动时间为例,第一应用在第一天的7点启动,在第二天的7点30分启动,在第三天的7点15分,相应的,可以把7点、7点30和7点15分作为历史启动时间。
s6、根据第一应用的历史启动数据,确定第一应用的预开启时间。
在本步骤中,当处理器获取到第一应用的历史启动数据后,可以根据历史启动时间确定第一应用的预开启时间。
在本步骤中,处理器可以根据第一应用的历史启动数据,确定第一应用的预开启时间。在一些实施例中,可以根据历史启动时间确定下一次第一应用的预开启时间;或者,在位置a用户习惯打开第一应用,相应的,当终端移动到位置a后,可以确定第一应用的预开启时间;或者,用户习惯在关闭第二应用后开启其一应用,相应的,当第二应用关闭后,可以确定第一应用的预开启时间
在一些实施例中,以历史启动时间为例,当获取到历史启动时间后,可以求出历史启动时间的均值,再在历史启动时间的均值上提前预设的时间段,进而确定第一应用的预开启时间。
示例性的,历史启动时间包括7点、7点30分和7点15分,处理器可以计算出历史启动时间的均值7点15分,随后,在7点15分的基础上提早5分钟,确定预开启时间为7点10分。
在另一种可实施方式中,可以从历史启动时间中确定出前一天的启动时间,再在前一天的启动时间上提前预设的时间段,进而确定第一应用的预开启时间。
示例性的,第一应用在第一天的7点启动,在第二天的7点30分启动,在第三天的7点15分。相应的,第四天时,可以先确定第三天的启动时间在第三天的7点15分,随后,在7点15分的基础上提早5分钟,确定预开启时间为7点10分。
s7、在预开启时间加载第一应用的资源,和/或为第一应用预留资源。
本步骤中,当处理器确定预开启时间后,可以在预开启时间加载第一应用的资源,和/或为第一应用预留资源,从而使得用户在启动第一应用时终端具体足够的资源,并且已经加载过第一应用的资源,从而大大提高应用的启动速度。
第一应用的资源,可以是应用启动时需要从服务器中下载的数据。示例性的,若第一应用为游戏应用时,第一应用的资源可以为游戏数据资源、游戏的更新资源等,若第一应用为视频应用,第一应用的资源可以为待更新的视频资源,当日推荐的视频资源等。
本申请实施例对于预留的内存的大小不做限制,可以根据第一应用具体设置。
s3、接收用第一应用的启动指令。
s4、根据第一应用的启动指令,根据预设规则释放至少一个除第一应用以外的应用所占用的资源,并启动第一应用。
s1、获取第一应用的资源使用量。
s2、若资源使用量大于或等于预设阈值,或当资源使用量降低至小于或等于预设阈值时,根据预设策略释放资源。
本申请实施例提供的终端应用资源的处理方法,通过获取第一应用的历史启动数据;根据第一应用的历史启动数据,确定第一应用的预开启时间;在预开启时间在后台加载第一应用的资源,和/或为第一应用预留资源,从而在用户启动应用时,大幅度提高应用的启动速度,提高用户体验。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本申请实施例提供的一种终端应用资源的处理装置的结构示意图。该终端应用资源的处理装置可以通过软件、硬件或者两者的结合实现,可以为前述所说的处理器。如图5所示,该终端应用资源的处理装置包括:
第一获取模块501,用于获取第一应用的资源使用量;
第一调节模块502,用于若资源使用量大于或等于预设阈值,或当资源使用量降低至小于或等于预设阈值时,根据预设策略释放资源。
其中,资源为显卡内存、运行内存、缓存、存储空间、cpu、gpu、npu中的至少一种;和/或,
资源使用量是实际占用量、预估占用量、最大占用量、最小占用量中的至少一种。
本申请实施例提供的终端应用资源的处理装置,可以执行上述方法实施例中的动作,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的另一种终端应用资源的处理装置的结构示意图。该终端应用资源的处理装置可以通过软件、硬件或者两者的结合实现,可以为前述所说的处理器。如图6所示,在上述实施例的基础上,该终端应用资源的处理装置还包括:
接收模块503,用于接收第一应用的启动指令;
启动模块504,根据第一应用的启动指令,根据预设规则释放至少一个除第一应用以外的应用所占用的资源,并启动第一应用。
第二获取模块505,用于获取第一应用的历史启动数据;
确定模块506,用于根据第一应用的历史启动数据,确定第一应用的预开启时间;
预启动模块507,在预开启时间加载第一应用的资源,和/或为第一应用预留资源。
其中,预设规则包括:应用所占用资源大小、应用是否处于后台、应用优先级中的至少一个。
本申请实施例提供的终端应用资源的处理装置,可以执行上述方法实施例中的动作,其实现原理和技术效果类似,在此不再赘述。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,该电子装置可以包括:至少一个处理器61和存储器62。图7示出的是以一个处理器为例的电子设备。
存储器62,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器62可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器61用于执行存储器62存储的计算机执行指令,以实现上述终端应用资源的处理方法。
其中,处理器61可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器62和处理器61独立实现,则通信接口、存储器62和处理器61可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器62和处理器61集成在一块芯片上实现,则通信接口、存储器62和处理器61可以通过内部接口完成通信。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述终端应用资源的处理方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。