CN110633003B - 降低功耗的方法、装置、终端及存储介质 - Google Patents
降低功耗的方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110633003B CN110633003B CN201910888554.2A CN201910888554A CN110633003B CN 110633003 B CN110633003 B CN 110633003B CN 201910888554 A CN201910888554 A CN 201910888554A CN 110633003 B CN110633003 B CN 110633003B
- Authority
- CN
- China
- Prior art keywords
- terminal
- frame rate
- application
- target
- load
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3218—Monitoring of peripheral devices of display devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例公开了一种稳定帧率的方法、装置、终端及存储介质,属于计算机技术领域,本申请能够通过在目标应用启动时,监听目标应用的第一负载,当第一负载大于负载阈值的累积时长超过时长阈值时,获取第一负载对应的目标帧率,将目标帧率设置为终端显示时的帧率上限。通过在目标应用的负载较重时,获取此时负载对应的目标帧率,并将目标帧率设置为终端显示时的帧率上限,由于设置了帧率上限,使得目标应用在显示时的帧率较为平稳,避免了由于帧率上下波动带来的高功耗,降低了终端的负载,延长了终端的待机时长。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种降低功耗的方法、装置、终端及存储介质。
背景技术
随着软件技术和显示屏技术的发展,移动终端中搭载的应用的显示效果越来越好。其中,显示效果中的清晰度和流畅度是影响应用显示效果的重要因素。
在一些应用方式中,当应用使用资源不均衡的情况下,应用可能在使用资源较少时保持较高的帧率,在使用资源较多时保持较低的帧率。
发明内容
本申请实施例提供了一种降低功耗的方法、装置、终端及存储介质。所述技术方案如下:
根据本申请的一方面内容,提供了一种降低功耗的方法,应用于终端中,所述方法包括:
当目标应用启动时,监听所述目标应用的第一负载;
当所述第一负载大于负载阈值的累积时长超过时长阈值时,获取所述第一负载对应的目标帧率;
将所述目标帧率设置为所述终端显示时的帧率上限。
根据本申请的另一方面内容,提供了一种降低功耗的装置,应用于终端中,所述装置包括:
负载监听单元,用于当目标应用启动时,监听所述目标应用的第一负载;
帧率获取单元,用于当所述第一负载大于负载阈值的累积时长超过时长阈值时,获取所述第一负载对应的目标帧率;
帧率设置单元,用于将所述目标帧率设置为所述终端显示时的帧率上限。
根据本申请的另一方面内容,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请实施提供的降低功耗的方法。
根据本申请的另一方面内容,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请实施提供的降低功耗的方法。
本申请实施例提供的技术方案带来的有益效果可以包括:
本申请实施例能能够应用在终端中,能够通过在目标应用启动时,监听目标应用的第一负载,当第一负载大于负载阈值的累积时长超过时长阈值时,获取第一负载对应的目标帧率,将目标帧率设置为终端显示时的帧率上限。通过在目标应用的负载较重时,获取此时负载对应的目标帧率,并将目标帧率设置为终端显示时的帧率上限,由于设置了帧率上限,使得目标应用在显示时的帧率较为平稳,避免了由于帧率上下波动带来的高功耗,降低了终端的负载,延长了终端的待机时长。
附图说明
为了更清楚地介绍本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的终端的结构框图;
图2是本申请一个示例性实施例提供的稳定帧率的方法的流程图;
图3是本申请一个示例性实施例提供的降低功耗的方法的流程图;
图4是本申请一个示例性实施例提供的处理卡顿的方法的流程图;
图5是本申请一个示例性实施例提供的控制终端电流的方法的流程图;
图6是本申请另一个示例性实施例提供的稳定帧率的方法流程图;
图7是基于图6所示实施例提供的一种帧率的统计图;
图8是本申请实施例提供的一种限制最高帧率后的帧率统计图;
图9是本申请一个实施例提供的一种降低功耗的方法的流程图;
图10是本申请另一个示例性实施例提供的处理卡顿的方法流程图;
图11是本申请另一个示例性实施例提供的控制终端电流的方法流程图;
图12是本申请实施例提供的一种限制帧率的流程图;
图13示出了本申请一个示例性实施例提供的稳定帧率的装置的结构框图;
图14示出了本申请一个示例性实施例提供的降低功耗的装置的结构框图;
图15示出了本申请一个示例性实施例提供的处理卡顿的装置的结构框图;
图16示出了本申请一个示例性实施例提供的控制终端电流的装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了本申请实施例所示方案易于理解,下面对本申请实施例中出现的若干名词进行介绍。
目标应用:可以是运行在终端中的应用。该目标应用既可以是终端安装的第三方应用,也可以是终端中搭载的操作系统中自带的系统应用。
在本申请实施例中,目标应用可以是处于预设列表中的应用。也即,目标应用可以是白名单中的应用。终端中可以预先设置白名单,处于白名单中的应用即可设置为目标应用。
在一种可能的实施方式中,目标应用可以是沉浸式应用。例如,目标应用可以是游戏类应用、视频类应用或拍摄类应用中至少一种。可选地,当目标应用是游戏类应用时,该游戏类应用可以是重负载应用。需要说明的是,目标应用所在白名单可以是编程人员在云端实时更新的,通过云端服务器推送至终端的名单。或者,白名单也可以是终端出厂后预置在终端中的名单。
在另一种可能的实施方式中,目标应用也可以是终端自主确定的应用。例如,白名单在初始状态时是空白的。在终端的使用过程中,终端将使用频率最高的前n个应用作为目标应用。或者,终端将使用累计时长最长的前m个应用作为目标应用。或者,终端将硬件使用权重最高的前q个应用作为目标应用。需要说明的是,硬件使用权重可以是指应用综合使用处理器、磁盘和基带芯片等硬件的评分。其中,m、n或q均是正整数。
在另一种可能的实施方式中,目标应用可以是具有不同运行场景的应用。例如,当目标应用是游戏类应用时,该游戏类应用能够包括的运行场景可以有主界面运行场景、商城运行场景、内置浏览器运行场景、游戏运行场景或加载运行场景中至少一种运行场景。需要说明的是,不同的运行场景对于终端的硬件组件的需求不同,导致目标应用在不同的运行状态下对硬件组件的需求的波动较大。因此,本申请在一种可能的实现方式中,将针对目标应用中不同的运行场景,对目标应用的帧率进行限制。
可选地,在一种可能的分类方式中,目标应用还可以是游戏类应用、沉浸式视频类应用、远程控制类应用、导航类应用、资金交易类应用或电子购物类应用中的至少一种。
当目标应用是游戏类应用时,由于游戏类应用对于画面显示效果和卡顿情况要求都较高。因此,游戏类应用需要对显示时的帧率进行限制,以实现稳定帧率、减少卡顿、稳定终端的电流并降低终端的功耗的效果。
可选地,当目标应用是沉浸式视频类应用时,该目标应用可以是通过VR(英文:Virtual Reality,中文:虚拟现实)视频类应用,还可以是AR(英文:Augmented Reality,中文:增强现实)视频类应用,也可以是MR(英文:Mixed Reality,中文:混合现实)视频类应用。
需要说明的是,VR视频类应用能够通过虚拟世界营造部分现实感觉,让用户身临其境,令用户从视觉感官上感觉身处视频中提供的现实场景,最终达到突破时空的限制,令用户随时随地体验视频中提供的现实场景。AR视频类应用能够通过现实世界叠加部分虚拟内容,丰富现实世界,最终达到创造一个现实内容和虚拟内容叠加,共同显示的虚拟世界。MR视频类应用能够通过融合现实世界和虚拟世界,在该融合世界中,虚拟内容和显示内容能够产生互相交互的行为。
可选地,当目标应用是远程控制类应用时,用户能够通过该远程控制类应用控制摄像头、无人飞行器、遥控车辆、智能家电、医疗设备或工业设备中的至少一种。当用户使用该远程控制类应用时,由于应用场景的需求,用户需要极低的时延甚至接近零时延,并需要获取到被控制的设备反馈的详细信息。在该场景中,终端需要较为稳定的帧率、避免卡顿、低功耗且稳定电流的工作需求。
可选地,当目标应用是导航类应用时,用户需要较低的时延获取实时的导航信息。在一种可能的方式中,当目标应用进行导航模式时,本申请可以开始执行获取目标帧率,并最终将目标帧率设置为终端显示时的帧率上限的流程。
可选地,当目标应用是资金交易类应用或电子购物类应用时,用户需要实时观察金融市场的资金变化,或者,热销商品的剩余库存。在该场景中,终端需要提供稳定帧率且不卡顿的用户界面。在一种可能的实现方式中,当资金交易类应用显示实时行情信息时,或者,当电子购物类应用显示热销商品的销售界面时,终端执行本申请提供的将目标帧率设置为终端显示时的帧率上限的流程。
可选地,目标应用的标识可以是目标应用在安装时的包名,也可以是目标应用在终端中的UID(英文:User Identification,中文:用户身份证明)。本申请对此不作限制,其它能够在终端中唯一标识目标应用的数据均可作为目标应用的标识。
实时硬件配置:指目标应用当前对终端的硬件的配置需求。需要说明的是,该实时硬件配置可以是处理器大核、处理小核、处理器占用频率或内存占用量中的至少一种。可选地,终端操作系统将按照实时硬件配置向终端分配硬件资源。例如,实时硬件资源指示目标应用占用处理器大核的数目是3个。
预设配置阈值:用于指示目标应用占用实时硬件配置的阈值。在一种可能的方式中,预设配置阈值与目标应用相关联,不同的目标应用对应相应的预设配置阈值。请参见表一。
表一
目标应用 | 游戏类应用A | 视频类应用B | 购物类应用C |
预设配置阈值 | 内存使用800MB | 内存使用500MB | 内存使用200MB |
在表一中,目标应用分为三种,分别是游戏类应用A、视频类应用B和购物类应用C。本申请能够针对不同的目标应用,提前标定对应的预设配置阈值。
在另一种可能的实现方式中,预设配置阈值与目标应用以及终端的型号相匹配。例如,请参见表二。
表二
目标应用 | 游戏类应用A | 游戏类应用A | 游戏类应用A |
终端的型号 | 型号x1 | 型号x2 | 型号x3 |
预设配置阈值 | 内存使用900MB | 内存使用800MB | 内存使用500MB |
在表二所示的实施方式中,终端能够按照终端的型号为相同的目标应用配置相应的预设配置阈值。在一种终端的预设配置阈值的推送方法中,云端服务器向指定的终端的型号,推送相应的预设配置阈值。或者,在收到终端发送的预设配置阈值获取请求时,获取该终端的型号,并根据终端的型号向终端返回对应的预设配置阈值。例如,云端服务器能够向型号x2的终端发送游戏类应用A的预设配置阈值为内存使用800MB。
帧率上限:该帧率上限为终端显示时的参数限制。当终端的帧率上限确定之后,通过终端显示画面的目标应用都将按照该帧率上限进行画面的渲染和刷新。
第一负载:用于指示目标应用当前的负载的参数。在一种可能的场景中,第一负载用于指示由目标应用造成的系统负载。作为一种可能的测量方式,操作系统可以在接收到查询指令时,返回一分钟内的平均负载、五分钟内的平均负载以及十五分钟内的平均负载中的至少一种。在本申请实施例中,上述任意一种负载均能够作为本申请中的第一负载。
负载阈值:预先设置在终端中的常数值,用于指示负载的临界值。在一种可能的场景中,该负载阈值可以是0.4、0.6、0.7或0.8等常数值,本申请实施例对此不作限定。
时长阈值:预先设置在终端中的时间长度常数值。例如,该时长阈值可以是50毫秒、80毫秒或100毫秒等数值,本申请实施例对此不作限定。
卡顿参数:用于指示终端在单位时间内发生卡顿的情况。在一种可能的方式中,卡顿参数能够从时间和次数两个维度上体现终端在单位时间内发生卡顿的情况。
预设卡顿条件:用于指示终端发生较为严重的卡顿现象的条件,当卡顿参数满足预设卡顿条件时,说明目标应用处于较为严重的卡顿状态。
输出电流:用于指示终端从自身的供能组件中获取的电流数值。在一种可能的实现方式中,终端是具备供能组件的设备。可选地,该供能设备可以是电能设备,例如电池。在另一种可能的实现方式中,终端中安装有该供能组件,终端中的用电组件通过与供能组件的供电线路连接,获取电能。在本申请实施例中,输出电流可以是终端中的电池向用电组件输出的总电流。
电流上限值:是预先设置在终端中的参数值,用于限制终端的输出电流,防止终端因电流过大而导致终端整体温度过高,触发终端的温度控制事件,从而导致CPU或者GPU的频率被限定,影响终端运行目标应用的性能。
目标帧率:又称刷新率,是目标应用的实时硬件配置对应的帧率。需要说明的是,目标帧率可以与不同的实时硬件配置相关联。终端在获取实时硬件配置后,能够按照预设的对应关系获取该实时硬件配置对应的目标帧率。在一种可能的对应方式中,终端为实时硬件配置建立与目标帧率的对应表格。其中,实时硬件配置可以是一个区间,当终端实际的实时硬件配置落入到上述区间中时,终端将获取到该区间对应的目标帧率。在另一种可能的对应方式中,终端将实时硬件配置输入到判别模型中,该判别模型是根据标定了目标阈值和实时硬件配置的训练样本,训练得到的模型。终端将实时硬件配置输入到判别模型中后,能够得到该判别模型输出的目标帧率。
在一种可能的方式中,目标帧率能够与实时硬件配置相对应。在终端获取到实时硬件配置时,终端也能够获取到该实时硬件配置对应的目标帧率。
在另一种可能的方式中,目标帧率能够与第一负载相对应。在终端获取到第一负载时,终端也能够获取到该第一负载对应的目标帧率。
在另一种可能的方式中,目标帧率能够与卡顿参数相对应。在终端获取到卡顿参数时,终端也能够获取到卡顿参数对应的目标帧率。
在另一种可能的方式中,目标帧率能够与输出电流相对应。在终端获取到输出电流时,终端也能够获取到输出电流对应的目标帧率。
示例性地,本申请实施例所示的稳定帧率的方法,可以应用在终端中,该终端具备显示屏且具备稳定帧率的功能。终端可以包括手机、平板电脑、膝上型电脑、智能眼镜、智能手表、数码相机、MP4播放终端、MP5播放终端、学习机、点读机、电纸书、电子词典、车载终端、虚拟现实(Virtual Reality,VR)播放终端或增强现实(Augmented Reality,AR)播放终端等。
图1是本申请一个示例性实施例提供的终端的结构框图,如图1所示,该终端包括处理器120、存储器140和显示组件160,所述存储器140中存储有至少一条指令,所述指令由所述处理器120加载并执行以实现如本申请各个方法实施例所述的稳定帧率的方法。显示组件160用于满足帧率不大于目标帧率的显示需求。
在本申请中,终端100是具备稳定帧率功能的电子设备。当终端100启动目标应用时,终端100能够监听目标应用的实时硬件配置,该实时硬件配置是目标应用当前对终端的硬件的配置需求,当实时硬件配置不小于预设配置阈值时,终端获取实时硬件配置对应的目标帧率,能将目标帧率设置为终端显示时的帧率上限。
在另一种可能的实现方式中,终端100是具备降低功耗功能的电子设备。当终端100启动目标应用时,终端能够监听目标应用的第一负载,当第一负载大于负载阈值的累积时长超过时长阈值时,终端获取第一负载对应的目标帧率,将该目标帧率设置为终端显示时的帧率上限。
在另一种可能的实现方式中,终端100是具备处理卡顿功能的电子设备。当终端100启动目标应用时,终端能够监听目标应用的卡顿参数,该卡顿参数用于指示终端在单位时间内发生卡顿的情况;当卡顿参数符合预设卡顿条件时,获取卡顿参数对应的目标帧率,并将该目标帧率设置为终端显示时的帧率上限。
在另一种可能的实现方式中,终端100是具备控制终端电流的功能的电子设备。当终端100启动目标应用时,终端能够监听终端的输出电流,该输出电流用于指示终端从功能组件中获取的电流数值,当输出电流在采样时长内持续大于电流上限值时,终端将获取输出电流对应的目标帧率,将目标帧率设置为终端显示时的帧率上限。
处理器120可以包括一个或者多个处理核心。处理器120利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行终端100的各种功能和处理数据。可选的,处理器120可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器120可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。
存储器140可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
请参考图2,图2是本申请一个示例性实施例提供的稳定帧率的方法的流程图。该稳定帧率的方法可以应用在上述图1所示的终端中。在图2中,稳定帧率的方法包括:
步骤210,当目标应用启动时,监听目标应用的实时硬件配置,实时硬件配置是目标应用当前对终端的硬件的配置需求。
在本申请实施例中,终端能够实时地监控各个应用的运行情况。当终端中的目标应用启动时,终端能够监听目标应用的实时硬件配置。
需要说明的是,目标应用的启动可以有多种场景。可选地,当目标应用中的逻辑线程被调用时,终端可以认为目标应用启动。可选地,当目标应用中的指定功能线程被调用时,终端也可以认为目标应用启动。
例如,目标应用中包括逻辑线程A、渲染线程B、功能线程C和功能线程D。当目标应用的主界面显示时,目标应用中的逻辑线程A和渲染线程B在运行。此时,由于终端识别到目标应用中的逻辑线程A处于运行状态,因此,终端确认目标应用启动。
再例如,目标应用的指定功能被其它应用调用时,目标应用中的功能线程C被调用。当终端识别到功能线程C被调用时,确定目标应用启动。需要说明的是,上述终端确定目标应用启动的方式仅为示例性说明,并不对本申请实施例形成限定。
基于上述终端确定目标应用启动的方式,终端还能够启用专用的系统级服务或者应用监听目标应用的实时硬件配置。可选地,该实时硬件配置可以是一个硬件参数或者多个硬件参数的集合。
步骤220,当实时硬件配置不小于预设配置阈值时,获取实时硬件配置对应的目标帧率。
在本申请实施例中,终端在获取实时硬件配置后,能够将该实时硬件配置与预设配置阈值进行比较。
在本步骤中,若实时硬件配置和预设配置阈值均为一个变量时,则上述两者之间能够进行比较。例如,实时硬件配置是内存占用量500MB,预设配置阈值是内存占用量400MB,则实时硬件配置不小于预设配置阈值,终端将获取实时硬件配置对应的目标帧率。
在本步骤中,若实时硬件配置和预设配置阈值均为多个变量时,则终端可以在实时硬件配置中的多个变量都大于预设配置阈值中的多个变量时,获取实时硬件配置对应的目标帧率。
在本步骤中,若实时硬件配置和预设配置阈值均为多个变量时,则终端可以在实时硬件配置中的主要变量大于预设配置阈值中的相应的主要变量时,获取实时硬件配置对应的目标帧率。
例如,若实时硬件配置包括内存占用量、处理器核心数目和读写资源调用频率三个变量,且预设配置阈值也包括内存占用量、处理器核心数目和读写资源调用频率三个变量。其中,实时硬件配置为内存占用量A1、处理器核心数目B1和读写资源调用频率C1;预设配置阈值为内存占用量A2、处理器核心数目B2和读写资源调用频率C2。在一种可能的方式中,终端需要在A1大于A2、B1大于B2,且C1高于C2时,终端获取实时硬件配置对应的目标帧率。在另一种可能的方式中,处理器核心数目是主要变量,当B1大于B2时,终端获取实时硬件配置对应的目标帧率。
步骤230,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,终端能够将获取到的目标帧率设置为终端显示时的帧率上限。在一种可能的方式中,终端能够通过指定的模块设置该帧率上限。例如,终端能够向surfacefligner模块发送帧率限制消息,以通知surfacefligner模块按照目标帧率限制终端显示目标应用时的帧率,使得终端能够将目标帧率设置为终端显示目标应用中的图像时的帧率上限。
综上所述,本实施例提供的稳定帧率的方法,能够在目标应用启动之后,监听目标应用的实时硬件配置,该实时硬件配置是目标应用当前对终端的硬件的配置需求,当实时硬件配置不小于预设配置阈值时,终端将获取实时硬件配置对应的目标帧率,并将该目标帧率甚至为终端显示时的帧率上限。由于终端对目标应用运行时终端显示的帧率上限进行了限制,使得目标应用在所需硬件资源较少时,帧率被限定在目标帧率,减少了目标应用在运行过程中帧率的波动性,提高了目标应用运行时的帧率稳定性,从而增强了目标应用运行时的画面的平稳性。
请参考图3,图3是本申请一个示例性实施例提供的降低功耗的方法的流程图。该降低功耗的方法可以应用在上述图1所示的终端中。在图3中,降低功耗的方法包括:
步骤310,当目标应用启动时,监听目标应用的第一负载。
在本申请实施例中,终端能够在目标应用启动时,监听目标应用的第一负载。需要说明的是,该第一负载用于指示目标应用在运行状态下的实时负载。
在一种可能的方式中,终端还可以将目标应用在最近指定时间段内的平均负载作为第一负载。例如,终端能够将距离当前的系统时刻一分钟内的平均负载、五分钟内的平均负载或十五分钟内的平均负载作为第一负载。
步骤320,当第一负载大于负载阈值的累积时长超过时长阈值时,获取第一负载对应的目标帧率。
在本申请实施例中,终端还能够当第一负载大于负载阈值的累积时长超过时长阈值时,获取第一负载对应的目标帧率。需要说明的是,本申请实施例需要监听第一负载大于负载阈值,以及,第一负载大于负载阈值的累积时长。例如,终端每100毫秒获取一次第一负载,负载阈值为0.8,累积时长为5秒。若终端在第一负载大于0.8的累积时长超过5秒时,终端将获取第一负载对应的目标帧率。
在一种可能的实现方式中,终端将在第一负载大于负载阈值的连续时长超过时长阈值时,获取第一负载对应的目标帧率。
步骤330,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,终端能够将目标帧率设置为终端显示时的帧率上限。在一种可能的方式中,终端能够通过指定的模块设置该帧率上限。例如,终端能够向surfacefligner模块发送帧率限制消息,以通知surfacefligner模块按照目标帧率限制终端显示目标应用时的帧率,使得终端能够将目标帧率设置为终端显示目标应用中的图像时的帧率上限。
综上所述,本申请所示的降低功耗的方法,能够通过在目标应用启动时,监听目标应用的第一负载,当第一负载大于负载阈值的累积时长超过时长阈值时,获取第一负载对应的目标帧率,将目标帧率设置为终端显示时的帧率上限。通过在目标应用的负载较重时,获取此时负载对应的目标帧率,并将目标帧率设置为终端显示时的帧率上限,由于设置了帧率上限,使得目标应用在显示时的帧率较为平稳,避免了由于帧率上下波动带来的高功耗,降低了终端的负载,延长了终端的待机时长。
请参考图4,图4是本申请一个示例性实施例提供的处理卡顿的方法的流程图。该处理卡顿的方法可以应用在上述图1所示的终端中。在图4中,处理卡顿的方法包括:
步骤410,当目标应用启动时,监听目标应用的卡顿参数,卡顿参数用于指示终端在单位时间内发生卡顿的情况。
在本申请实施例中,终端能够在目标应用启动时,监听目标应用的卡顿参数。在一种可能实现的方式中,卡顿参数用于指示终端在档位时间内发生卡顿的情况。可选地,卡顿参数可以是一个数值,也可以是多个数值,本申请对此不作限定。
可选地,终端还能够启用一个指定系统服务或者系统应用用于监听目标应用的卡顿参数。
步骤420,当卡顿参数符合预设卡顿条件时,获取卡顿参数对应的目标帧率。
在本申请实施例中,终端还能够将卡顿参数进行分析,当卡顿参数符合预设卡顿条件时,终端将获取卡顿参数对应的目标帧率。需要说明的是,预设卡顿条件是开发人员预设的条件,例如单位时间内的累积卡顿时长和卡顿次数。
需要说明的是,卡顿参数和目标帧率的对应关系可以是预先标定在终端中的,当终端确定卡顿参数后,终端将能够确定卡顿参数对应的目标帧率。
步骤430,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,终端能够将目标帧率设置为终端显示时的帧率上限。在一种可能的方式中,终端能够通过指定的模块设置该帧率上限。例如,终端能够向surfacefligner模块发送帧率限制消息,以通知surfacefligner模块按照目标帧率限制终端显示目标应用时的帧率,使得终端能够将目标帧率设置为终端显示目标应用中的图像时的帧率上限。
综上所述,本申请所示的处理卡顿的方法,能够通过在目标应用启动时,监听目标应用的卡顿参数,当目标应用的卡顿参数符合卡顿条件时,获取卡顿参数对应的目标帧率,并将该目标帧率设置为终端显示时的帧率上限。由于本申请能够在终端的卡顿较为严重时,获取终端的卡顿情况对应的目标帧率,并把目标帧率设置为终端显示时的帧率上限,使得终端避免突发的高帧率带来的高负载,使得目标应用使用终端的资源较为平稳,减少了终端提供资源较少的情况的发生,减少了终端的卡顿发生的次数。
请参考图5,图5是本申请一个示例性实施例提供的控制终端电流的方法的流程图。该控制终端电流的方法可以应用在上述图1所示的终端中。在图5中,控制终端电流的方法包括:
步骤510,当目标应用启动时,监听终端的输出电流,输出电流用于指示终端从供能组件中获取的电流数值。
在本申请实施例中,终端在目标应用启动时,能够监听终端的输出电流,该输出电流用于指示终端从供能组件中获取的电流数值。需要说明的是,由于终端能够安装供能组件,并从供能组件中获取到能量,以使终端能够成为移动终端,便于用户使用。其中,终端的输出电流是指终端中的用电组件从供能组件中获取的总电流。
可选地,在另一种可能的方式中,终端能够监听目标应用使用的电流,并将目标应用使用的电流作为终端的输出电流。
步骤520,当输出电流在采样时长内持续大于电流上限值时,获取输出电流对应的目标帧率。
在本申请实施例中,终端具备监听终端的输出电流的数值的能力。当该输出电流在采样时长内持续大于电流上限值时,终端将获取输出电流对应的目标帧率。
在一种可能的实现方式中,采样时长是指终端从输出电流大于电流上限值时,开始持续监控终端的输出电流。例如,若采样时长是30秒且电流上限值是1安,则当终端的输出电流在30秒内持续大于1安时,获取输出电流对应的目标帧率。
需要说明的是,终端能够预先标定输出电流与目标帧率之间的对应关系。终端能够在确定输出电流的场景中,确定输出电流对应的目标帧率。
步骤530,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,终端能够将目标帧率设置为终端显示时的帧率上限。在一种可能的方式中,终端能够通过指定的模块设置该帧率上限。例如,终端能够向surfacefligner模块发送帧率限制消息,以通知surfacefligner模块按照目标帧率限制终端显示目标应用时的帧率,使得终端能够将目标帧率设置为终端显示目标应用中的图像时的帧率上限。
综上所述,本申请所示的控制终端电流的方法,能够在目标应用启动时,监听终端的输出电流,该输出电流用以指示终端从供能组件中获取的电流数值。在输出电流在采样时长内持续大于电流上限值时,获取输出电流对应的目标帧率,并将该目标帧率设置为终端显示时的帧率上限,使得终端在输出帧率稳定的画面时,避免了突发的高帧率带来的高电流,使得终端的输出电流较为平稳,降低了高电流带来的发热情况,并令终端避免因高温导致的处理器强行降频的情况发生,保证了终端维持较高性能的能力。
请参见图6,图6是本申请另一个示例性实施例提供的稳定帧率的方法流程图。该稳定帧率的方法可以应用在上述图1所示的终端中。在图6中,该稳定帧率的方法包括:
步骤611,获取目标应用的历史运行数据,历史运行数据用于指示目标应用历史上使用的活跃程度。
在本申请实施例中,终端能够获取目标应用的历史运行数据,该历史运行数据用于指示目标应用历史上使用的活跃程度。从另一个角度看,历史运行数据能够反映目标应用是否是热门应用。
在本申请实施例中,历史运行数据包括如下至少一种:目标应用在终端中的运行次数、目标应用在终端中运行的累积时长、目标应用在终端中各次运行的时间段和目标应用的累积输入次数。
可选地,当历史运行数据是目标应用在终端中的运行次数时,历史运行数据能够反映目标应用被累积使用的情况。例如,目标应用A在终端中累积运行500次、800次或15000次的次数。
可选地,当历史运行数据是目标应用在终端中运行的累积时长时,历史运行数据能够反映目标应用为用户提供的服务的常用程度。例如,目标应用B在终端中累积运行时长1068个小时。
可选地,当历史运行数据是目标应用在终端中各次运行的时间段时,终端可以将一天的24小时划分为0:00至8:00,8:00至16:00和16:00至次日0:00一共三个时段,针对其中一个目标应用,统计其各次运行的时间所在的时间段,最终能够获知目标应用在哪一个时段最常被使用。
可选地,当历史运行数据是目标应用的累积输入次数时,终端可以统计目标应用累积接受用户的控制次数。例如,终端可以将用户对目标应用的用户界面的触摸数据统计为一次控制输入,也可以将终端按压目标应用的按钮的操作统计为一次控制输入。
步骤612,向云端服务器发送历史运行数据和终端的标识。
在本申请实施例中,终端能够向云端服务器发送历史运行数据和终端的标识。在一种可能的场景中,由于历史运行数据涉及到用户使用应用的习惯,牵扯到用户的隐私。因此,本申请实施例在执行该步骤前,会明确地向用户申请权限,在得到许可的情况下,才会向云端服务器发送历史运行数据和终端的标识。
步骤613,接收云端服务器返回的限帧配置文件。
在本申请实施例中,终端能够接收云端服务器返回的限帧配置文件。需要说明的是,由于云端服务器接收到了历史运行数据。因此,云端服务器能够分析历史运行数据,获得目标应用是否属于活跃应用。在一种可能的方式中,当云端服务器分析历史运行数据后,得到目标应用的活跃程度超过活跃阈值时,会生成限帧配置文件。
在本申请实施例中,限帧配置文件是云端服务器在历史运行数据指示,目标应用的活跃程度超过活跃阈值时生成的,限帧配置文件中包括目标应用的标识、第一参数区间和与第一参数区间对应的帧率。
在另一种可能的方式中,当目标应用的活跃程度没有超过活跃阈值时,云端服务器将向终端返回空值。也即终端无法获取目标应用对应的限帧配置文件。若终端需要对该目标应用进行帧率限制时,终端可以使用缺省的帧率限制方案。
步骤621,当目标应用启动时,启动应用配置检测模块,应用配置检测模块是嵌入在操作系统中的系统级服务。
在本申请实施例中,当目标应用启动时,终端能够启动应用配置检测模块,该模块是嵌入在操作系统中的系统级服务。在一种可能的实现方式中,应用配置检测模块在目标应用未启动时不进行工作,该应用配置检测模块在目标应用启动时同时启动。
步骤622,通过应用配置检测模块监听目标应用的实时硬件配置。
在本申请实施例中,终端通过应用配置检测模块监听目标应用的实时硬件配置。在一种可能的方式中,该实时硬件配置可能是一种单独的硬件参数,在另一种可能的方式中,该实时硬件配置是多种硬件参数。终端能够通过应用配置检测模块完成相应的监听工作。
在一种可能的实现方式中,应用配置检测模块可以通过预先指定的周期监听实时硬件配置。
步骤631,当实时硬件配置不小于预设配置阈值时,通过应用配置检测模块确定实时硬件配置所在的第一参数区间。
在本申请实施例中,当实时硬件配置不小于预设配置阈值时,终端能够通过应用配置检测模块确定实时硬件配置所在的第一参数区间。其中,当实时硬件配置包括多种硬件参数时,终端能够根据其中的一种主要的硬件参数,确定该硬件参数所在的第一参数区间。
在本申请实施例中,第一参数区间中的最小值大于预设配置阈值。需要说明的是,当目标应用的实时硬件配置不小于预设配置阈值时,说明目标应用占用的硬件资源较多。也即,实时硬件配置所在的第一参数区间中的最小值也大于预设配置阈值。
步骤632,获取第一参数区间对应的帧率。
在本申请实施例中,终端能够获取第一参数区间对应的帧率。在一种可能的方式中,第一参数区间对应的帧率是预先标定的帧率,当终端确定第一参数区间时,该第一参数区间对应的帧率已将相应地确定。
步骤633,将第一参数区间对应的帧率确定为目标帧率。
在本申请实施例中,终端能够将第一参数区间对应的帧率确定为目标帧率。
步骤641,指示应用配置检测模块将目标帧率发送至帧率限制模块。
在本申请实施例中,终端将指示应用配置检测模块,将目标帧率发送至帧率限制模块。在本实施例的一种可能的实现方式中,终端能够通过一条指示消息发送目标帧率。可选地,在该指示消息中,应用配置检测模块还能够注明目标帧率是用于限制哪一个目标应用的。也即,在该指示消息中可以携带目标应用的标识。
步骤642,指示帧率限制模块根据目标帧率,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,终端能够指示帧率限制模块根据目标帧率,将目标帧率设置为终端显示时的帧率上限。需要说明的是,在一种可能的实现方式中,终端将目标应用显示时的帧率上限设置为目标帧率。
步骤651,获取帧率抖动参数。
在本申请实施例中,帧率抖动参数用于指示最近时段中最高帧率和最低帧率之间的差值,最近时段是当前系统时刻之前的指定长度的时间段。在一种可能的方式中,最近时段是5分钟、10分钟或15分钟等具体长度的数值。终端能够在指定的时段内,获取最高帧率和最低帧率之间的差值。
例如,当最近时段是5分钟,在5分钟内最高帧率是64fps且最低帧率是54fps时,帧率抖动参数是10。
步骤652,当帧率抖动参数大于预设抖动阈值时,从限帧配置文件获取第二参数区间。
在本申请实施例中,第二参数区间中的最小值大于第一参数区间中的最大值。例如,以预设抖动阈值是8为例,若帧率抖动参数超过8,则从限帧配置文件中获取第二参数区间,该第二参数区间中的最小值大于第一参数区间中的最大值。在一种可能的方式中,目标参数和参数区间之间是正相关关系,第二参数区间对应的帧率将小于第一参数区间对应的帧率。
步骤653,将目标应用运行时的最高帧率设置为第二参数区间对应的帧率。
在本申请实施例中,终端能够将目标应用运行时的最高帧率设置为第二参数区间对应的帧率,使得目标应用运行时的最高帧率进一步降低,用于限制目标应用的帧率。
请参见图7,图7是基于图6所示实施例提供的一种帧率的统计图。在图7中,目标应用在最近时段中的帧率抖动参数较大。横轴是时间轴,单位是秒。纵轴是帧率,单位是fps。在图7所示的帧率的统计图中,最低的帧率为31fps,最高的帧率为62fps。基于图7所示的示例,帧率抖动参数为31。若预设抖动阈值是10,则目标应用在场景下需要进行帧率限制。
请参见表三,表三示出了一种参数区间和帧率的对应关系。在一种可能的方式中,表三所示数据可以保存在限帧配置文件中。
表三
在表三中,以实时硬件配置是内存占用量为例进行说明。预设配置阈值为200MB,当目标应用的内存占用量(也即实时硬件配置)是240MB时,终端获取240MB所在的第一参数区间,并获取该第一参数区间对应的帧率为65fps。随后,终端继续监听获取帧率抖动参数,若目标应用在目标帧率65fps被设置为终端显示时的帧率上限时,目标应用的帧率情况为图7所示的样式。在图7所示的帧率统计中,终端能够获取帧率抖动参数,该帧率抖动参数可以是图7统计的219秒的最近时段中,最高帧率与最低帧率之间的差值为31,若预设抖动阈值为10时,则目标应用需要从限帧配置文件中获取第二参数区间,该第二参数区间中的最小值大于第一参数区间中的最大值。此时,终端将获取第二参数区间对应的帧率50fps,将50fps作为目标应用在终端中显示时的帧率上限。
请参考图8,图8是本申请实施例提供的一种限制最高帧率后的帧率统计图。在图8中,目标应用在最近时段中的帧率抖动参数较小。横轴是时间轴,单位是秒。纵轴是帧率,单位是fps。在图8中,目标应用在终端中显示是的帧率上限被限定为50fps。
在本申请实施例中,终端能够统计目标应用A在进行帧率限制前后所示的帧率数据,得到表四所示的数据。
表四
由表四所示的数据可知,终端能够在目标帧率被限制到50fps时,显著降低帧率抖动情况。并且,平均帧率也从原本的49.86fps提升至50.12fps。
综上所述,本实施例提供的稳定帧率的方法,能够根据目标应用的热门程度从云端服务器下载相应的限帧配置文件,当目标应用较为热门时,终端能够获取到目标应用的限帧配置文件,并在终端的实时硬件配置不小于预设配置阈值时,根据限帧配置文件获取当前的实时硬件配置对应的帧率,并将该帧率设置为终端显示时的帧率上限,使得终端能够根据不同的目标应用选择相应的限帧配置文件,提高了本方案限制帧率的针对性,提高了稳定帧率的效果。
本实施例提供的稳定帧率的方法,还能够获取帧率抖动参数,该帧率抖动参数用于指示最近时段中最高帧率和最低帧率之间的差值,当帧率抖动参数大于预设抖动阈值时,终端从限帧配置文件中获取第二参数区间,该第二参数区间中的最小值大于第一参数区间中的最大值,终端将目标应用运行时的最高帧率设置为第二参数区间对应的帧率。由此可见,本申请能够在帧率波动较大的情况下对目标应用进行帧率限制,从而提高了帧率的稳定性。
在本申请实施例中,还提供一种通过限频来降低功耗的方法,能够通过设置终端显示时的帧率上限,来实现降低终端的功耗的效果,详情请参考图9所示的实施例。
请参考图9,图9是本申请一个实施例提供的一种降低功耗的方法的流程图,可以应用在上述图1所示的终端中。在图9中,该降低功耗的方法包括:
步骤911,当目标应用启动时,监听目标应用的运行场景。
在本申请实施例中,目标应用在启动时,终端能够获取该目标应用的启动消息,监听目标应用的运行场景。
在一种可能实现的方式中,终端中能够设置指定的系统服务或者系统应用监听目标应用调用硬件资源的情况或者调用接口的情况,根据预设的规则,确定目标应用当前所处的运行场景,也即通过该方式监听目标应用的运行场景。
在另一种可能的实现方式中,目标应用在开发时也可以预留运行场景标识,当目标应用运行时,该目标应用能够向终端的操作系统提供当前的运行场景标识。终端的操作系统在接收到运行场景标识后,确定目标应用当前所处的运行场景。
通过上述介绍,本申请实施例对于事先与操作系统约定好的目标应用,能够通过运行场景标识快速准确地确定目标应用所在场景。对于事先未约定好的目标应用,能够通过目标应用调用硬件资源和/或接口的情况,来确定目标应用的运行场景。
在本申请实施例中,运行场景用于指示目标应用显示指定用户界面和/或提供指定的功能。
在一种可能的方式中,运行场景用于指示目标应用显示指定用户界面。可选地,目标应用能够以显示不同的用户界面为标准,划分运行场景。例如,一个游戏类应用在显示主界面时处于主界面运行场景,在显示商城界面时处于商城运行场景,在显示游戏画面时处于游戏运行场景,在显示加载画面时处于资源加载运行场景。
在另一种可能的方式中,运行场景用于指示目标应用提供指定的功能。例如,当目标应用是游戏类应用时,终端能够在团战运行场景、驾驶运行场景、瞄准运行场景或决赛运行场景等特殊运行场景给出具体的场景指示,上述不同的场景是游戏提供的不同功能的具体表现,运行场景用于指示目标应用具体所处提供的场景状态。
步骤912,当目标应用处于目标应用场景时,监听目标应用的第一负载。
在本申请实施例中,终端能够在目标应用处于目标应用场景时,监听目标应用的第一负载。需要说明的是,该第一负载是目标应用对终端造成的负荷。在一种可能的方式中,第一负载可以是0.6、0.7或0.8等数值,本申请实施例对此不作限定。
在本申请实施例中,终端能够通过执行步骤(a1)和步骤(a2)以替代步骤912,从而实现终端在目标应用处于目标应用场景时,监听目标应用的第一负载的功能。
步骤(a1),监听目标应用调用的线程。
在本申请实施例中,终端可以监听目标应用所调用的线程,终端可以通过读取线程的标识确定目标应用调用的线程。
步骤(a2),当目标应用调用目标线程时,监听目标应用的第一负载。
在本申请实施例中,终端能够在目标应用调用目标线程时,监听目标应用的第一负载。需要说明的是,在本申请实施例中,目标线程用于处于目标应用中负载较重的任务。当目标应用调用目标线程时,终端能够确认目标应用即将进入重负载状态,此时,终端需要及时开始监控目标应用的第一负载。
步骤921,当目标应用启动时,启动负载检测模块,负载检测模块是嵌入在操作系统中的系统级服务。
在本申请实施例中,终端在目标应用启动时,启动负载检测模块。需要说明的是,该负载检测模块是操作系统在设计时,预先嵌入在操作系统中的系统级服务,该服务能够独立启动并运行。
步骤922,通过负载检测模块监听目标应用的第一负载。
在本申请实施例中,终端通过负载检测模块监听目标应用的第一负载。负载检测模块具备访问负载数据,并根据目标应用的标识获取目标应用的第一负载的功能。
在本申请实施例中,在执行步骤931之前,终端既可以执行步骤911和步骤912,也可以执行步骤921和步骤922。
步骤931,获取终端的型号。
在本申请实施例中,终端能够获取终端的型号。需要说明的是,不同的终端的型号,用于指示不同的硬件资源。例如,终端的处理器核心的数目、处理器的主频、内存容量或存储容量中至少一种硬件资源的不同,都将导致终端具有不同的型号。
步骤932,根据终端的型号,确定限帧配置文件。
在本申请实施例中,终端能够根据自身的型号,确定限帧配置文件。需要说明的是,该限帧配置文件可以是终端在出厂的时候写入在终端的存储设备中的文件。该限帧配置文件也可以是终端从云端服务器中获取到的文件,本申请实施例对此不作限定。
在本申请的一种可能的实现方式中,终端还能够通过执行步骤(b1)和步骤(b2)来实现确定限帧配置文件的结果。
步骤941,获取限帧配置文件。
在本申请实施例中,限帧配置文件用于指示第一负载、目标应用场景和目标帧率之间的对应关系。
在一种可能的实现方式中,终端能够获取到限帧配置文件,限帧配置文件可以存储第一负载、目标应用场景和目标帧率三者之间的对应关系。例如,请参照表五。
表五
步骤942,当第一负载大于负载阈值的累积时长超过时长阈值时,根据限帧配置文件、目标应用场景和第一负载,获取对应的目标帧率。
在本申请实施例中,终端能够在第一负载大于负载阈值,且该大于负载阈值的累积时长超过时长阈值时,根据限帧配置文件、目标应用场景和第一负载,获取对应的目标帧率。由于本申请对于第一负载大于负载阈值的累积时长有限制。因此,本申请将不会在第一负载大于负载阈值的瞬间执行获取目标帧率的操作,有效地防止了负载的突发增高导致本申请提供的降低功耗的方案被执行,使得终端在真正需要降低功耗时执行本方案。
在一种可能实现的方式中,累积时长可能是3秒、5秒或10秒等具体的数值,本申请实施例对此不作限定。
以在表五所示的限帧配置文件为例,终端能够获知第一负载的数值和目标应用场景的具体场景时,获取相对应的目标帧率。例如,当终端获知的目标应用的第一负载是0.8且所处的目标应用场景是团战运行场景时,终端能够确认相对饮的目标帧率是50fps。
步骤950,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,步骤950的执行过程和步骤330的执行过程相同,此处不再赘述。
综上所述,本申请所示的降低功耗的方法,能够通过监听目标应用的运行场景,在目标应用处于指定的目标运行场景时,监听目标应用的第一负载,并通过终端的型号确定对应的限制配置文件,在第一负载大于负载阈值的累积时长超过时长阈值时,获取对应的目标帧率,并将该目标帧率设置为终端显示时的帧率上限。由此可知,终端能够在指定的目标场景中监听目标应用的第一负载,使得目标应用在运行负载较重的场景时,能够更容易被提前监控,提高了终端监听目标应用的负载的精准性,提高了终端监控目标应用的负载的效率,从而降低了用于监控目标应用本身的能耗,在降低目标应用的负载的基础上,降低了监控操作带来的开销。
可选地,本申请还能够在目标应用启动时,启动负载检测模块,通过专用的系统服务实现本申请提供的降低功耗的方法,从而实现了目标应用能够较为方便地在终端显示时的帧率被限制为目标帧率。
请参见图10,图10是本申请另一个示例性实施例提供的处理卡顿的方法流程图。该处理卡顿的方法可以应用在上述图1所示的终端中。在图10中,该处理卡顿的方法包括:
步骤1011,当目标应用启动时,监听目标应用发生卡顿时的累计时长并记录发生卡顿的时刻。
在本申请实施例中,终端能够当目标应用启动时,监听目标应用发生卡顿时的累计时长,并记录发生卡顿的时刻。需要说明的是,当目标应用运行时,目标应用可能因为画面渲染不及时而发生多次卡顿。在本步骤中,终端能够记录每一次发生卡顿的时刻,并统计每一次发生卡顿持续的时长。终端将每一次发生卡顿持续的时长进行累加,得到目标应用发生卡顿时的累积时长。
请参考表六,表六示出了一种目标应用发生卡顿情况的统计表。
表六
第一次卡顿 | 第二次卡顿 | 第三次卡顿 | 第四次卡顿 | 总计 | |
卡顿时刻 | 6:35:30.210 | 6:35:34.450 | 6:35:37.440 | 6:35:40.150 | 4次 |
卡顿时长 | 1.1秒 | 1.4秒 | 1.6秒 | 2.4秒 | 6.5秒 |
在表六所示的数据中,终端统计了目标应用发生的4次卡顿。表六中所示的卡顿时刻是卡顿发生的时刻,卡顿时长是从卡顿时刻开始计算,本次卡顿持续的时长。
在一种可能的方式中,终端将统计各次卡顿发生的卡顿时刻,以及各次卡顿时长之和。
作为一种可能的方式,目标应用是以下应用中的至少一种:游戏类应用、沉浸式视频类应用、远程控制类应用、导航类应用、资金交易类应用或电子购物类应用。
需要说明的是,当终端运行目标应用时,由于目标应用对于画面显示的实时性较高,产生卡顿会对用户及时获取信息造成较大影响。例如,当目标应用是游戏类应用、远程控制类应用、导航类应用、资金交易类应用或电子购物类应用时,用户均需要获取实时的信息,根据信息即时做成相应的操作。因此,本申请针对上述目标应用设计了该处理卡顿的方案。
步骤1012,当在单位时长内的发生卡顿时的累积时长大于时长阈值且发生卡顿的次数大于第一次数阈值时,获取卡顿参数对应的目标帧率。
在本申请实施例中,终端能够在单位时长内的发生卡顿时的累积时长大于时长阈值并且发生卡顿的次数大于第一次数阈值时,获取卡顿参数对应的目标帧率。由于本申请能够发生卡顿的累积时长和次数均大于指定的参量时,采取获取卡顿参数对应的目标帧率,因此终端能够避免由于偶发的卡顿直接导致获取卡顿参数对应的目标帧率。
例如,以单位时间是一分钟,终端能够统计在一分钟内发生卡顿时的累积时长和发生卡顿的次数。以时长阈值是100毫秒,第一次数阈值是10次为例进行说明。终端能够在目标应用运行的每一分钟中,对发生的卡顿进行统计。若在统计的一分钟中,发生卡顿的累积时长超过100毫秒,并且发生卡顿的次数超过10次时,获取卡顿参数对应的目标帧率。
在本申请实施例中,终端还可以通过执行步骤(c1)和步骤(c2)来实现步骤1012中获取卡顿参数对应的目标帧率的步骤。
步骤(c1),当在单位时长内的发生卡顿时的累积时长大于时长阈值且发生卡顿的次数大于第一次数阈值时,获取限帧配置文件,限帧配置文件用于指示卡顿参数和目标帧率的对应关系。
在本申请实施例中,终端中还设置有限帧配置文件,该限帧配置文件用于指示卡顿参数和目标参数之间的对应关系。
在一种可能的方式中,终端获取终端的型号和目标应用的标识,根据终端的型号和目标应用的标识,确定限帧配置文件。
需要说明的是,终端的型号用于指示不同的硬件资源。例如,终端的处理器核心的数目、处理器的主频、内存容量或存储容量中至少一种硬件资源的不同,都将导致终端具有不同的型号。
步骤(c2),根据限帧配置文件,获取卡顿参数对应的目标帧率。
步骤1020,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,步骤1020的执行过程和步骤430的执行过程相同,此处不再赘述。
步骤1031,当在单位时长内发生卡顿的次数大于第二次数阈值且不大于第一次数阈值时,获取第一帧率,第一帧率大于目标帧率。
在本申请实施例中,终端能够在单位时长内发生卡顿的次数大于第二次数阈值且不大于第一次数阈值时,获取第一帧率,该第一帧率大于目标帧率。需要说明的是,第二次数阈值小于第一次数阈值。
根据本步骤的处理,终端能够在卡顿次数尚不足以采用目标帧率来限制终端显示时的帧率时,通过第一帧率对终端显示时的帧率进行限制,达到阶梯式限制帧率的效果。
步骤1032,将第一帧率设置为终端显示时的帧率上限。
步骤1033,当在单位时长内发生卡顿的次数不大于第三次数阈值且大于第一次数阈值时,获取第二帧率,第二帧率小于目标帧率。
在本申请实施例中,终端能够在单位时长内发生卡顿的次数不大于第三次数阈值且大于第一次数阈值时,获取第二帧率,该第二帧率小于目标帧率。
在一种可能的实现方式中,第一帧率、第二帧率和目标帧率的大小可以是表七所示的数据。
步骤1034,将第二帧率设置为终端显示时的帧率上限。
需要说明的是,步骤1031和步骤1032所示的流程,与步骤1033和步骤1034所示的流程互为并列步骤,终端既可以择其之一执行,也可以两者都予以执行。
表七
帧率 | 第二帧率 | 目标帧率 | 第一帧率 |
数值 | 50fps | 55fps | 60fps |
在一种可能的实现方式中,第一次数阈值、第二次数阈值和第三次数阈值的大小可以是表八所示的数据。
表八
次数阈值 | 第二次数阈值 | 第一次数阈值 | 第三次数阈值 |
数值 | 7 | 10 | 15 |
步骤1040,当目标应用切出前台运行状态时,恢复终端显示时的帧率上限至默认数值。
在本申请实施例中,终端能够在目标应用切出前台运行状态时,恢复终端显示时的帧率上限至默认数值。
综上所示,本申请实施例提供的一种处理卡顿的方法,能够在目标应用启动时,监听目标应用发生卡顿时的累计时长毕竟记录发生卡顿的时刻,当上述累计时长大于时长阈值且发生卡顿的次数大于第一次数阈值时,终端将获取卡顿参数对应的目标帧率。在限制完成目标帧率时,终端还能够通过后续发生卡顿的情况,调整目标帧率。当卡顿次数减少时,终端能够将目标帧率向较高的帧率调整,当卡顿次数增加时,终端能够将目标帧率向较低的帧率调整。由此可见,终端能够通过当前的卡顿情况设置对应的目标帧率,在保证目标应用分辨率不变的情况下,适当降低帧率,减少了终端的卡顿情况,在清晰度、卡顿和帧率上实现了较好的平衡,在保证目标应用的显示清晰度的同时兼顾了流畅度。
请参见图11,图11是本申请另一个示例性实施例提供的控制终端电流的方法流程图。该控制终端电流的方法可以应用在上述图1所示的终端中。在图11中,该控制终端电流的方法包括:
步骤1111,读取温度传感器检测到的温度值,温度值用于指示终端所处的环境的温度。
在本申请实施例中,终端中可以设置有温度传感器。终端可以读取该温度传感器检测到的温度值,该温度值用于指示终端所处的环境的温度。需要说明的是,该温度传感器可以设置在终端的表面,以令终端能够通过该温度传感器获取终端所处的环境的温度。
可选地,该温度传感器可以贴靠终端的后面板或中框设置,后面板和中框可以采用导热良好的材料。
步骤1112,当温度值大于温度阈值,且目标应用启动时,监听终端的输出电流。
在本申请实施例中,终端能够在温度值大于温度阈值,且目标应用启动时,监听终端的输出电流。在一种可能的应用方式中,终端能够在温度值大于温度阈值时,启动指定系统服务,该指定系统服务能够在目标应用启动时,监听终端的输出电流。需要说明的是,系统服务可以用于监听温度值和目标应用的启动情况,在适当的时候监听终端的输出电流。
在本申请实施例中,终端还能够通过如下方法确定目标应用:终端能够显示请求信息,该请求信息用于申请日志读取权限,日志读取权限用于读取记录终端中的应用被使用的情况的日志。当终端获取了日志读取权限时,终端将用户使用应用的日志中使用次数最多的前r个应用确定为高频应用,r为正整数,将终端中默认的s个应用和高频应用确定为目标应用。
需要说明的是,由于应用被使用的情况的日志中可能涉及用户的隐私信息,因此,本申请在确定目标应用前申请使用该日志读取权限时,需要请求用户的许可。在保证用户的隐私不受影响或者在用户知晓的情况下,使用涉及用户隐私的信息。在获取到日志读取权限后,终端能够将使用次数最多的前r个应用确定为高频应用,其中,r为正整数。此外,本申请还能够预先设定默认的s个应用为目标应用。因此,终端最终将默认的s个应用和高频应用确定为目标应用。
步骤1121,当终端中没有安装温度传感器时,获取当前终端所在的地理位置和系统时间。
在本申请实施例中,当终端中没有安装温度传感器时,终端将获取终端所在的地理位置和系统时间。需要说明的是,由于地理位置涉及用户的隐私。因此,本申请在获取终端的地理位置之前会向用户请求权限,以保证用户知晓终端为了优化系统性能需要获取地理位置。在一种可能的方式中,终端能够在开启优化系统性能的功能时,请求获取地理位置的权限。在另一种可能的方式中,终端能够在每一次获取地理位置时,请求获取地理位置的权限。
在一种可能的方式中,系统时间是终端的时间参数文件中提供的时间,该时间可以在终端开机时或者设置的自动对时的时刻访问云端的授时服务器,来得到。
步骤1122,根据地理位置和系统时间,从云端获取对应的天气信息。
在本申请实施例中,终端能够根据地理位置和系统时间,从云端获取对应的天气信息。需要说明的是,本申请实施例可以在云端保存当前实时的天气信息,该云端可以是天气信息服务器。在另一种可能的方式中,终端还能够预先缓存最近一段时间的天气信息,当系统时间落入到该最近一段时间内时,终端可以从缓存的天气信息中,获取地理位置和系统时间对应的天气信息。
步骤1123,从天气信息中获取气温。
在本申请实施例中,天气信息中包括气温。终端能够获取该天气信息中包括的气温。在一种可能的方式中,地理位置可以是精确到某城市某个区县,也可以仅精确到某城市。
在另一种可能的方式中,若终端处于智慧城市网络中,终端也可以通过访问附近的分布式气温传感器获取当前的气温。在该智慧城市网络中,城市中设置有温度传感器、光照传感器、湿度传感器、风力传感器、噪声传感器和摄像头等传感器设备,向终端提供获取参数的权限,并具备自主控制喷水、转动太阳能电池板朝向或收放风力叶片的功能。
步骤1124,当气温大于温度阈值,且目标应用启动时,监听终端的输出电流。
在本申请实施例中,终端能够在气温大于温度阈值,且目标应用启动时,监听终端的输出电流。其中,温度阈值可以是终端设置的一个常数值,该常数值能够令终端处于较高环境温度时开始执行本方案,避免终端进一步由于输出电流较高触发终端自带的温度控制机制。
在一种可能的方式中,温度阈值可能是25℃、28℃或30℃等具体的数值,本申请实施例对此不作限定。
在本申请实施例中,终端既可以在执行完成步骤1111和步骤1112后执行步骤1131,也可以在执行完成步骤1121、步骤1122、步骤1123和步骤1124后执行步骤1131。
步骤1131,当输出电流在采样时长内持续大于电流上限值时,从限帧配置文件中获取输出电流和目标帧率的对应关系,输出电流和目标帧率之间呈负相关关系。
在本申请的一种可能的实现方式中,终端能够通过执行步骤(d1)、步骤(d2)和步骤(d3)来实现从限帧配置文件中获取输出电流和目标帧率的对应关系的操作。
步骤(d1),获取目标应用的标识。
在本申请实施例中,终端可以获取目标应用的标识,该目标应用的标识可以是目标应用在安装时的包名,也可以是目标应用在终端中的UID。本申请对此不作限制,其它能够在终端中唯一标识目标应用的数据均可作为目标应用的标识。
步骤(d2),根据目标应用的标识,获取对应的限帧配置文件。
在本申请实施例中,终端能够根据目标应用的标识,获取对应的限帧配置文件。在一种可能的方式中,本申请能够为不同的目标应用配置对应的限帧配置文件。
在本申请的一种可能的实现方式中,终端能够通过获取终端的型号,根据终端的型号和目标应用的标识,获取对应的限帧配置文件。
需要说明的是,不同型号的终端的运行性能不同,在运行相同的目标应用时,限制的帧率也不同。例如,性能较高的终端能够在运行目标应用且条件相同的情况下,将帧率限制的较高。而同等外部情况下,性能较低的终端需要将帧率限制的较低。请参见表九的内容,表九提供了一种不同型号的终端的运行性能的情况。
表九
目标应用 | 游戏类应用A | 游戏类应用A | 游戏类应用A |
终端的型号 | 型号x1 | 型号x2 | 型号x3 |
限帧配置文件 | 文件d1 | 文件d2 | 文件d3 |
根据表九所示的内容,不同型号的终端在运行相同的目标应用时,对应的限帧配置文件不同。
步骤(d3),从限帧配置文件中,获取输出电流和目标帧率的对应关系。
在一种可能的实现方式中,终端能够从限帧配置文件中,获取输出电流和目标帧率的对应关系。不同的限帧配置文件中,存储着不同的输出电流和目标帧率的对应关系。
步骤1132,根据对应关系,获取输出电流所在的电流区间。
步骤1133,根据电流区间,确定对应的目标帧率。
在本申请实施例中,终端的输出电流属于一个电流区间,该电流区间是预设在限帧配置文件中的数据,不同的电流区间对应有不同的目标帧率。
在一种可能的实现方式中,请参照表十所示的内容。表十示出了一种限帧配置文件给出的对应关系。在表十中,示出了一种目标帧率和电流区间的对应关系,当终端的输出电流在采样时长内属于电流区间时,获取电流区间对应的目标帧率。
表十
电流区间 | (1A,1.1A] | (1.1A,1.2A] | (1.2A,+∞) |
采样时长 | 10秒 | 10秒 | 10秒 |
目标帧率 | 50帧 | 48帧 | 46帧 |
从表十所示的数据可知,当终端的输出电流在10秒内持续处于(1A,1.1A]时,终端将目标帧率获取为50帧。当终端的输出电流在10秒内持续处于(1.1A,1.2A]时,终端将目标帧率获取为48帧。当终端的输出电流在10秒内持续处于(1.2A,+∞)时,终端将目标帧率获取为46帧。
步骤1140,将目标帧率设置为终端显示时的帧率上限。
在本申请实施例中,步骤1140的执行过程和步骤530的执行过程相同,此处不再赘述。
综上所述,本申请所示的方法能够提供通过终端当前所处的环境温度,决定是否执行监听输出电流的方案。在输出电流在采样时长内持续大于电流上限值时,能够从限帧配置文件中获取对应的目标帧率,进而使得终端能够在温度较高容易触发处理器的温度控制机制而强行降频的情况下,进行监控输出电流的方案,提高了终端适应较高环境温度的能力。
请参考图12,图12是本申请实施例提供的一种限制帧率的流程图。在图12中,由游戏配置检测模块(英文:Oiface)12A和SurfaceFligner模块12B来实现功能。图12包括的限制帧率的方法如下:
步骤1201,启动游戏类应用。
步骤1202,游戏配置检测模块根据游戏类应用的各种配置参数,判断是否需要改变刷新率。
需要说明的是,在本申请实施例中,当游戏类应用请求改变刷新率时,确认终端需要相应地改变目标帧率,以使终端的硬件功能和软件功能相适应。
步骤1203,当游戏类应用需要改变刷新率时,游戏配置检测模块请求SurfaceFligner模块将帧率改变至目标帧率。
步骤1204,游戏配置检测模块发送改变帧率请求到SurfaceFligner模块。
在一种可能的方式中,该改变帧率请求中携带有目标帧率。例如,该改变帧率请求可以是com.acompany.tmgp.sgame:50,在该改变帧率请求中,目标帧率是50fps。
步骤1205,SurfaceFligner模块监听悬浮框状态、切换后台情况、游戏类应用退出操作或Oiface配置参数中至少一种数据。
步骤1206,当SurfaceFligner模块确认前台运行的是Oiface模块设置的包名的目标应用时,按照改变帧率请求的指示改变帧率。
步骤1207,当目标应用切换到前台运行时,按照改变帧率请求的指示改变帧率。
步骤1208,当满足第一条件时,恢复到默认的帧率。
其中,第一条件包括终端发送活动(英文:Activity)的切换且目标应用从前台切出、显示悬浮窗或者Oiface模块奔溃(英文:crash)等。当终端不再前台运行目标应用时,终端将恢复原本默认的帧率。
在本申请实施例中,需要说明的是,通过改变帧率来实现稳定帧率的方法、降低功耗的方法、处理卡顿的方法和控制终端电流的方法中,各个方法可以结合执行,以达到限制帧率的目的。在终端实现限制帧率的操作之后,终端能够实现相应的稳定帧率、降低功耗、减少卡顿并稳定终端的电流的效果。由此可见,上述图2至图6、图9至图12中各个方案可以结合,本申请实施例不作展开介绍。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图13,图13示出了本申请一个示例性实施例提供的稳定帧率的装置的结构框图。该稳定帧率的装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
监听单元1310,用于当目标应用启动时,监听所述目标应用的实时硬件配置,所述实时硬件配置是所述目标应用当前对所述终端的硬件的配置需求。
获取单元1320,用于当所述实时硬件配置不小于预设配置阈值时,获取所述实时硬件配置对应的目标帧率。
设置单元1330,用于将所述目标帧率设置为所述终端显示时的帧率上限。
在一个可选的实施例中,所述监听单元1310,用于当所述目标应用启动时,启动应用配置检测模块,所述应用配置检测模块是嵌入在操作系统中的系统级服务;通过所述应用配置检测模块监听所述目标应用的所述实时硬件配置。
在一个可选的实施例中,所述获取单元1320,用于当所述实时硬件配置不小于预设配置阈值时,通过所述应用配置检测模块确定所述实时硬件配置所在的第一参数区间,所述第一参数区间中的最小值大于所述预设配置阈值;获取所述第一参数区间对应的帧率;将所述第一参数区间对应的帧率确定为所述目标帧率。
在一个可选的实施例中,所述装置还包括历史数据获取单元、标识发送单元和文件接收单元,历史数据获取单元,用于获取所述目标应用的历史运行数据,所述历史运行数据用于指示所述目标应用历史上使用的活跃程度;标识发送单元,用于向所述云端服务器发送所述历史运行数据和所述终端的标识;文件接收单元,用于接收所述云端服务器返回的限帧配置文件,所述限帧配置文件是所述云端服务器在所述历史运行数据指示,所述目标应用的活跃程度超过活跃阈值时生成的,所述限帧配置文件中包括所述目标应用的标识、所述第一参数区间和与所述第一参数区间对应的帧率。
在一个可选的实施例中,所述装置还包括抖动参数获取单元和区间获取单元,抖动参数获取单元,用于获取帧率抖动参数,所述帧率抖动参数用于指示最近时段中最高帧率和最低帧率之间的差值,所述最近时段是当前系统时刻之前的指定长度的时间段;区间获取单元,用于当所述帧率抖动参数大于预设抖动阈值时,从所述限帧配置文件获取第二参数区间,所述第二参数区间中的最小值大于所述第一参数区间中的最大值;设置单元1330,用于将所述目标应用运行时的最高帧率设置为所述第二参数区间对应的帧率。
在一个可选的实施例中,所述装置涉及的历史运行数据包括以下至少一种:所述目标应用在所述终端中的运行次数;所述目标应用在所述终端中运行的累积时长;所述目标应用在所述终端中各次运行的时间段;所述目标应用的累积输入次数。
在一个可选的实施例中,所述设置单元1330,用于指示所述应用配置检测模块将所述目标帧率发送至帧率限制模块;指示所述帧率限制模块根据所述目标帧率,将所述目标帧率设置为所述终端显示时的帧率上限。
请参考图14,图14示出了本申请一个示例性实施例提供的降低功耗的装置的结构框图。该降低功耗的装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
负载监听单元1410,用于当目标应用启动时,监听所述目标应用的第一负载;
帧率获取单元1420,用于当所述第一负载大于负载阈值的累积时长超过时长阈值时,获取所述第一负载对应的目标帧率;
帧率设置单元1430,用于将所述目标帧率设置为所述终端显示时的帧率上限。
在一个可选的实施例中,所述负载监听单元1410,用于当所述目标应用启动时,监听所述目标应用的运行场景,所述运行场景用于指示所述目标应用显示指定用户界面和/或提供指定的功能;当所述目标应用处于目标应用场景时,监听所述目标应用的所述第一负载。
在一个可选的实施例中,所述帧率获取单元1420,用于获取限帧配置文件,所述限帧配置文件用于指示所述第一负载、所述目标应用场景和所述目标帧率之间的对应关系;当所述第一负载大于负载阈值的累积时长超过时长阈值时,根据所述目标应用场景和所述第一负载,获取对应的所述目标帧率。
在一个可选的实施例中,所述负载监听单元1410,用于监听所述目标应用调用的线程;当所述目标应用调用目标线程时,监听所述目标应用的所述第一负载。
在一个可选的实施例中,所述负载监听单元1410,用于当所述目标应用启动时,启动负载检测模块,所述负载检测模块是嵌入在操作系统中的系统级服务;通过所述负载检测模块监听所述目标应用的所述第一负载。
在一个可选的实施例中,所述装置还包括型号获取单元和文件确定单元,所述型号获取单元,用于获取所述终端的型号;所述文件确定单元,用于根据所述终端的型号,确定所述限帧配置文件。
在一个可选的实施例中,所述文件确定单元,用于获取所述目标应用的标识;根据所述目标应用的标识和所述终端的型号,确定限帧配置文件。
请参考图15,图15示出了本申请一个示例性实施例提供的处理卡顿的装置的结构框图。该处理卡顿的装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
卡顿监听单元1510,用于当目标应用启动时,监听所述目标应用的卡顿参数,所述卡顿参数用于指示所述终端在单位时间内发生卡顿的情况。
帧率获取单元1520,用于当所述卡顿参数符合预设卡顿条件时,获取所述卡顿参数对应的目标帧率。
帧率设置单元1530,用于将所述目标帧率设置为所述终端显示时的帧率上限。
在一个可选的实施例中,所述卡顿监听单元1510,用于当所述目标应用启动时,监听所述目标应用发生卡顿时的累计时长并记录所述发生卡顿的时刻;帧率获取单元1520,用于当在单位时长内的所述发生卡顿时的累积时长大于时长阈值且发生卡顿的次数大于第一次数阈值时,获取所述卡顿参数对应的目标帧率。
在一个可选的实施例中,所述帧率获取单元1520,用于当在单位时长内的所述发生卡顿时的累积时长大于时长阈值且发生卡顿的次数大于第一次数阈值时,获取限帧配置文件,所述限帧配置文件用于指示所述卡顿参数和所述目标帧率的对应关系;根据所述限帧配置文件,获取所述卡顿参数对应的所述目标帧率。
在一个可选的实施例中,所述装置还包括第一帧率获取单元和第二帧率获取单元。第一帧率获取单元,用于当在所述单位时长内发生卡顿的次数大于第二次数阈值且不大于所述第一次数阈值时,获取第一帧率,所述第一帧率大于所述目标帧率。第二帧率获取单元,用于当在所述单位时长内发生卡顿的次数不大于第三次数阈值且大于所述第一次数阈值时,获取第二帧率,所述第二帧率小于所述目标帧率。
在一个可选的实施例中,所述装置还包括帧率恢复单元,帧率恢复单元,用于当所述目标应用切出前台运行状态时,恢复所述终端显示时的帧率上限至默认数值;其中,所述切出前台运行状态包括切换至后台运行、出现浮窗或结束运行中的至少一种。
在一个可选的实施例中,所述装置还包括标识获取单元和配置文件确定单元,标识获取单元,用于获取所述终端的型号和所述目标应用的标识;配置文件确定单元,用于根据所述终端的型号和所述目标应用的标识,确定所述限帧配置文件。
在一个可选的实施例中,所述目标应用是以下应用中的至少一种:游戏类应用、沉浸式视频类应用、远程控制类应用、导航类应用、资金交易类应用或电子购物类应用。
请参考图16,图16示出了本申请一个示例性实施例提供的控制终端电流的装置的结构框图。该控制终端电流的装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
电流监听单元1610,用于当目标应用启动时,监听所述终端的输出电流,所述输出电流用于指示所述终端从供能组件中获取的电流数值;
帧率获取单元1620,用于当所述输出电流在采样时长内持续大于电流上限值时,获取所述输出电流对应的目标帧率;
帧率设置单元1630,用于将所述目标帧率设置为所述终端显示时的帧率上限。
在一个可选的实施例中,帧率获取单元1620,用于从限帧配置文件中获取所述输出电流和所述目标帧率的对应关系,所述输出电流和所述目标帧率之间呈负相关关系;根据所述对应关系,获取所述输出电流所在的电流区间;根据所述电流区间,确定对应的所述目标帧率。
在一个可选的实施例中,帧率获取单元1620,用于获取所述目标应用的标识;根据所述目标应用的标识,获取对应的所述限帧配置文件;从所述限帧配置文件中,获取所述输出电流和所述目标帧率的对应关系。
在一个可选的实施例中,所述帧率获取单元1620,用于获取所述终端的型号;根据所述终端的型号和所述目标应用的标识,获取对应的所述限帧配置文件。
在一个可选的实施例中,所述装置还包括温度读取单元,温度读取单元,用于读取温度传感器检测到的温度值,所述温度值用于指示所述终端所处的环境的温度,终端中设置有温度传感器;电流监听单元1610,用于当所述温度值大于温度阈值,且目标应用启动时,监听所述终端的输出电流。
在一个可选的实施例中,所述装置还包括:时空参数获取单元、天气获取单元和气温获取单元,时空参数获取单元,用于当所述终端中没有安装温度传感器时,获取当前终端所在的地理位置和系统时间。天气获取单元,用于根据所述地理位置和所述系统时间,从云端获取对应的天气信息。气温获取单元,用于从所述天气信息中获取气温。电流监听单元1610,用于当所述气温大于温度阈值,且目标应用启动时,监听所述终端的输出电流。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的稳定帧率的方法。
需要说明的是:上述实施例提供的稳定帧率的装置在执行稳定帧率的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的稳定帧率的装置与稳定帧率的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的能够实现的示例性的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种降低功耗的方法,其特征在于,应用于终端中,所述方法包括:
当游戏类应用启动时,监听所述游戏类应用的运行场景,所述运行场景用于指示所述游戏类应用显示指定用户界面和/或提供指定的功能,所述游戏类应用的运行场景包括主界面运行场景、商城运行场景、内置浏览器运行场景、游戏运行场景或加载运行场景中至少一种运行场景;
当所述游戏类应用处于目标应用场景时,启动负载检测模块,所述负载检测模块是嵌入在操作系统中的系统级服务;
通过所述负载检测模块监听所述游戏类应用的第一负载,所述第一负载是通过周期采集的实时负载,所述周期内的负载等于所述第一负载;
获取限帧配置文件,所述限帧配置文件用于指示所述第一负载、所述目标应用场景和目标帧率之间的对应关系;当所述第一负载大于负载阈值的累积时长超过时长阈值时,根据所述目标应用场景和所述第一负载,获取对应的所述目标帧率,所述第一负载与所述目标帧率成反相关关系;
将所述目标帧率设置为所述终端显示时的帧率上限。
2.根据权利要求1所述的方法,其特征在于,所述当所述游戏类应用处于目标应用场景时,监听所述游戏类应用的所述第一负载,包括:
监听所述游戏类应用调用的线程;
当所述游戏类应用调用目标线程时,监听所述游戏类应用的所述第一负载。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述终端的型号;
根据所述终端的型号,确定所述限帧配置文件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述终端的型号,确定所述限帧配置文件,包括:
获取所述游戏类应用的标识;
根据所述游戏类应用的标识和所述终端的型号,确定所述限帧配置文件。
5.一种降低功耗的装置,其特征在于,应用于终端中,所述装置包括:
负载监听单元,用于当游戏类应用启动时,监听所述游戏类应用的运行场景,所述运行场景用于指示所述游戏类应用显示指定用户界面和/或提供指定的功能,所述游戏类应用的运行场景包括主界面运行场景、商城运行场景、内置浏览器运行场景、游戏运行场景或加载运行场景中至少一种运行场景;当所述游戏类应用处于目标应用场景时,启动负载检测模块,所述负载检测模块是嵌入在操作系统中的系统级服务;通过所述负载检测模块监听所述游戏类应用的第一负载,所述第一负载是通过周期采集的实时负载,所述周期内的负载等于所述第一负载;
帧率获取单元,用于获取限帧配置文件,所述限帧配置文件用于指示所述第一负载、所述目标应用场景和目标帧率之间的对应关系;当所述第一负载大于负载阈值的累积时长超过时长阈值时,根据所述目标应用场景和所述第一负载,获取对应的所述目标帧率,所述第一负载与所述目标帧率成反相关关系;
帧率设置单元,用于将所述目标帧率设置为所述终端显示时的帧率上限。
6.一种终端,其特征在于,所述终端包括处理器、和与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至4任一所述的降低功耗的方法。
7.一种计算机可读存储介质,所述存储介质中存储有程序指令,其特征在于,所述程序指令被处理器执行时实现如权利要求1至4任一所述的降低功耗的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910888554.2A CN110633003B (zh) | 2019-09-19 | 2019-09-19 | 降低功耗的方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910888554.2A CN110633003B (zh) | 2019-09-19 | 2019-09-19 | 降低功耗的方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110633003A CN110633003A (zh) | 2019-12-31 |
CN110633003B true CN110633003B (zh) | 2022-02-11 |
Family
ID=68971949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888554.2A Active CN110633003B (zh) | 2019-09-19 | 2019-09-19 | 降低功耗的方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633003B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230758B (zh) | 2020-11-09 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 帧率调整方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8363044B2 (en) * | 2003-09-30 | 2013-01-29 | Intel Corporation | Switching display update properties upon detecting a power management event |
CN103151019A (zh) * | 2013-01-28 | 2013-06-12 | 广东欧珀移动通信有限公司 | 一种移动终端的显示刷新率的控制方法及控制装置 |
CN105094272A (zh) * | 2014-05-14 | 2015-11-25 | 中兴通讯股份有限公司 | 一种终端的硬件刷新率的调节方法及装置 |
CN106791212A (zh) * | 2017-03-10 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种移动终端刷新率的控制方法、装置及移动终端 |
CN109189543A (zh) * | 2018-10-16 | 2019-01-11 | Oppo广东移动通信有限公司 | 终端控制方法、装置、存储介质及智能终端 |
CN109445941A (zh) * | 2018-10-19 | 2019-03-08 | Oppo广东移动通信有限公司 | 配置处理器性能的方法、装置、终端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104638B (zh) * | 2018-08-03 | 2021-05-25 | Oppo广东移动通信有限公司 | 帧率优化方法、装置、终端及存储介质 |
-
2019
- 2019-09-19 CN CN201910888554.2A patent/CN110633003B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8363044B2 (en) * | 2003-09-30 | 2013-01-29 | Intel Corporation | Switching display update properties upon detecting a power management event |
CN103151019A (zh) * | 2013-01-28 | 2013-06-12 | 广东欧珀移动通信有限公司 | 一种移动终端的显示刷新率的控制方法及控制装置 |
CN105094272A (zh) * | 2014-05-14 | 2015-11-25 | 中兴通讯股份有限公司 | 一种终端的硬件刷新率的调节方法及装置 |
CN106791212A (zh) * | 2017-03-10 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种移动终端刷新率的控制方法、装置及移动终端 |
CN109189543A (zh) * | 2018-10-16 | 2019-01-11 | Oppo广东移动通信有限公司 | 终端控制方法、装置、存储介质及智能终端 |
CN109445941A (zh) * | 2018-10-19 | 2019-03-08 | Oppo广东移动通信有限公司 | 配置处理器性能的方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110633003A (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647366B (zh) | 处理卡顿的方法、装置、终端及存储介质 | |
US20200394051A1 (en) | Method for Resource Allocation, Terminal, and Computer-Readable Storage Medium | |
US10824470B2 (en) | Method for resource allocation and terminal device | |
CN109240576B (zh) | 游戏中的图像处理方法及装置、电子设备、存储介质 | |
US9390447B1 (en) | Insertion of media recommendations | |
US20160328463A1 (en) | Management of application state data | |
CN110795056B (zh) | 调节显示参数的方法、装置、终端及存储介质 | |
CN108721898B (zh) | 帧率的确定方法和装置、存储介质、电子装置 | |
WO2019205172A1 (zh) | 一种图像处理器的功率分配的方法、装置及系统 | |
CN110659136B (zh) | 限制帧率的方法、装置、终端及存储介质 | |
CN111708642B (zh) | Vr系统中处理器性能优化方法、装置及vr设备 | |
US20210136432A1 (en) | Method for recharging live streaming account, terminal, and storage medium | |
CN103605647A (zh) | 用于测试设备参数的系统、方法和计算机程序产品 | |
CN110658904A (zh) | 控制终端电流的方法、装置、终端及存储介质 | |
CN108635851B (zh) | 一种游戏画面的处理方法和装置 | |
CN110633003B (zh) | 降低功耗的方法、装置、终端及存储介质 | |
CN108966005B (zh) | 一种视频分辨率的调节方法、装置、存储介质及终端 | |
CN112672405A (zh) | 功耗计算方法、装置、存储介质、电子设备以及服务器 | |
CN110515736B (zh) | 限制后台对象的方法、装置、终端及存储介质 | |
US11442606B2 (en) | User interface interaction method and system | |
CN112911390B (zh) | 一种视频数据的播放方法及终端设备 | |
CN108803857A (zh) | 应用软件能耗监控方法、移动终端及可读存储介质 | |
CN113923485A (zh) | 一种调整码率的方法、装置、及计算机可读存储介质 | |
CN111079023B (zh) | 目标帐户的识别方法、装置、终端及存储介质 | |
CN113439252B (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 |