安卓设备的功耗控制方法技术

技术编号:11418459 阅读:85 留言:0更新日期:2015-05-06 19:55
本发明专利技术提供了一种安卓设备的功耗控制方法,包括步骤:A、记录SurfaceFlinger服务的UI绘制在每个设定周期内的调用次数;B、采用下述公式计算依次相邻的n个设定周期的SurfaceFlinger服务的UI绘制的平均调用次数;所述n为设定的值;faw=(fw+fw-1+......+fw-n+1)/n;其中faw是当前计算的所述平均调用次数;n是计算所述平均调用次数所设定的周期数;w表示当前处于第w个设定周期,fw表示当前第w设定周期内的调用次数;C、根据当前计算出的所述平均调用次数faw的大小调节CPU的功耗大小;D、返回步骤A。使用本发明专利技术,可以实现避免出现安卓设备显示出现画面迟滞的条件下,进行较为灵活的对功耗进行控制。

【技术实现步骤摘要】

本专利技术涉及一种安卓设备,特别是指一种安卓设备的功耗控制方法
技术介绍
安卓(Android)系统设备(如安卓系统的手机)使用过程中,在某些情况下,显示的内容并不会被频繁的刷新,例如用户通过安卓手机进行文字性内容的阅读时,如电子书的阅读、新闻浏览、社交应用中页面阅读等,大部分时间除了响应用户一些触控操作进行的屏幕刷新、或接收到数据进行显示的屏幕刷新外,大部分屏幕所显示的内容都是出于静态显示,即处于屏幕内容没有被刷新的状态。这种情况下,一般需要比较低的CPU频率或者启用较少的CPU内核(针对多核CPU的情况)就可以完成。同时,由于用户使用手机情况的不确定性,也可能会随时切换到手机显示的内容会被频繁刷新的应用,例如用户在社交应用中输入信息时的即时输入的情况,或打开某动态(例如有flash动画存在)的新闻浏览页面,或切换到其他某应用(例如某游戏)的情况,而对于这些情况下,则需要提高CPU的频率,或者启用较多的内核,以使得安卓系统可以快速响应,不至于出现画面显示迟滞的问题。目前,市场上有一些针对安卓系统的省电应用,其通过设定一个固定的较低的CPU频率或较少的CPU内核的方式实现安卓设备功耗的降低,但是却会导致针对某些对CPU资源占用较大的应用的响应迟滞、画面显示迟滞的问题。因此,如何实现对安装设备功耗灵活的控制,是有待解决的技术问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种安卓设备的功耗控制方法,以实现对安卓设备较为灵活的对功耗进行控制。本专利技术提供的安卓设备的功耗控制方法,包括步骤:A、记录SurfaceFlinger服务的UI绘制在每个设定周期内的调用次数;B、采用下述公式计算依次相邻的n个设定周期的SurfaceFlinger服务的UI绘制的平均调用次数;所述n为设定的值;faw=(fw+fw-1+......+fw-n+1)/n;其中faw是当前计算的所述平均调用次数;n是计算所述平均调用次数所设定的周期数;w表示当前处于第w个设定周期,fw表示当前第w设定周期内的调用次数;C、根据当前计算出的所述平均调用次数faw的大小调节CPU的功耗大小;D、返回步骤A。由上,检测一定时间内SurfaceFlinger服务的UI绘制的调用次数,并据此去控制CPU的功耗,实现较为灵活的对功耗进行控制,并且避免出现安卓设备显示出现画面迟滞的问题。可选的,步骤C包括:判断所述平均调用次数faw低于第一设定值时,调整CPU处于一低功耗状态;判断所述平均调用次数faw高于第一设定值而低于第二设定值时,调整CPU处于一常规功耗状态;判断所述平均调用次数faw高于第二设定值时,调整CPU处于一高功耗状态。由上,可以采用区间函数进行相应的CPU的功耗控制。可选的,步骤C、D之间还包括:判断超过设定次连续的所述平均调用次数均小于所述第一设定值,使n=n+1,其中n设定有上限值。可选的,还包括:判断出现所述平均调用次数大于所述第一设定值时,使n恢复初始值。由上,通过上述的n增大的调整,若在Idle状态时,某下个周期出现记录SurfaceFlinger服务绘制UI的调用次数突然增多时,其下次计算的平均调用次数由于分母的增多,并不会反应平均次数的剧烈变化,这样,对于Idle状态下屏幕刷新情况偶然提高时,仍保持较低的CPU功耗。可选的,步骤C、D之间还包括:判断超过设定次连续的所述平均调用次数均大于所述第二设定值,使n=n-1,其中n设定有下限值。可选的,还包括:判断出现所述平均调用次数小于所述第二设定值时,使n恢复初始值。由上可以看出,通过上述的n减小的调整,若在Busy状态时,某下个周期出现记录SurfaceFlinger服务绘制UI的调用次数突然下降时,其下次计算的平均调用次数由于分母的减少,平均次数的反应也会较为灵敏,这样,对于Busy状态下屏幕刷新情况的突然降低时,能及时的降低CPU功耗。附图说明图1为安卓设备的功耗控制的流程图。具体实施方式在介绍本专利技术之前,首先介绍下安卓系统屏幕刷新的机制:安卓系统中运行有各个安卓应用,每个安卓应用程序会对应着一个或多个图形界面(UI),每个UI在屏幕上有他的位置、大小以及要显示的内容。而安卓系统的屏幕显示内容的绘制和刷新是依靠SurfaceFlinger服务实现的。安卓应用程序与SurfaceFlinger服务是运行在不同的进程中的,它们采用Binder进程间通信机制来进行通信。安卓应用程序在通知SurfaceFlinger服务来绘制自己的UI的时候,需要将UI元数据传递给SurfaceFlinger服务,例如,要绘制UI的位置、大小等信息,以及内容;然后,由SurfaceFlinger服务负责绘制、渲染安卓应用程序的UI,并将绘制的UI置入缓存队列中,然后依次将缓存的内容传输至视频设备内核驱动(FB/V4L2)处理进行屏幕显示,也就是进行屏幕显示内容的刷新。其中,当SurfaceFlinger服务被创建后,系统会启动一个监听线程,该监听线程监听是否有安卓应用通知SurfaceFlinger服务绘制UI的请求,并在监听到请求时,通知SurfaceFlinger服务响应该绘制UI的请求,由SurfaceFlinger执行UI的绘制以进行屏幕刷新的操作。其中,大部分安卓系统的所述监听线程所述默认的检测频率是60次/秒,或者说检测周期是1/60秒。由上可见,所有的屏幕刷新操作都会经过SurfaceFlinger服务执行UI的绘制的过程。基于此,本专利技术设置一线程去检测一定时间内SurfaceFlinger服务的UI绘制的调用次数,并据此去控制CPU的功耗,实现较为灵活的对功耗进行控制,并且避免出现安卓设备显示出现画面迟滞的问题。如图1示出了依据此原理的本专利技术的第一实施例的流程图,包括以下步骤:步骤110:在SurfaceFlinger服务中运行有一单独线程,该线程用来在每个周期内记录SurfaceFlinger服务绘制UI的调用次数。其中,所述的周期的时长可以被设定,例如可以配置为2秒,即各个周期T1=T2=T3=T4......=2秒。步骤120:计算依次相邻的设定数量周期的SurfaceFlinger服务绘制UI的平均调用次数。本例中,依次相邻的设定数量的周期数量本文档来自技高网...
安卓设备的功耗控制方法

【技术保护点】
一种安卓设备的功耗控制方法,其特征在于,包括步骤:A、记录SurfaceFlinger服务的UI绘制在每个设定周期内的调用次数;B、采用下述公式计算依次相邻的n个设定周期的SurfaceFlinger服务的UI绘制的平均调用次数;所述n为设定的值;faw=(fw+fw‑1+......+fw‑n+1)/n;其中faw是当前计算的所述平均调用次数;n是计算所述平均调用次数所设定的周期数;w表示当前处于第w个设定周期,fw表示当前第w设定周期内的调用次数;C、根据当前计算出的所述平均调用次数faw的大小调节CPU的功耗大小;D、返回步骤A。

【技术特征摘要】
1.一种安卓设备的功耗控制方法,其特征在于,包括步骤:
A、记录SurfaceFlinger服务的UI绘制在每个设定周期内的调用
次数;
B、采用下述公式计算依次相邻的n个设定周期的SurfaceFlinger
服务的UI绘制的平均调用次数;所述n为设定的值;
faw=(fw+fw-1+......+fw-n+1)/n;其中faw是当前计算的所述平均调用次
数;n是计算所述平均调用次数所设定的周期数;w表示当前处于第
w个设定周期,fw表示当前第w设定周期内的调用次数;
C、根据当前计算出的所述平均调用次数faw的大小调节CPU的功
耗大小;
D、返回步骤A。
2.根据权利要求1所述的方法,其特征在于,步骤C包括:
判断所述平均调用次数faw低于第一设定值时,调整CPU处于一
低功耗状态;
判断所述平均调用次数faw高...

【专利技术属性】
技术研发人员:李文栋杨莹莹
申请(专利权)人:中科创达软件股份有限公司
类型:发明
国别省市:北京;11

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

1