睡眠管理方法及相关装置的制造方法

文档序号:10724675阅读:258来源:国知局
睡眠管理方法及相关装置的制造方法
【专利摘要】本发明实施例提供睡眠管理方法及相关装置,以减少浅睡眠以及状态切换。上述睡眠管理方法应用于一终端,包括:在本帧绘图完成后,准备用于下一帧绘图的绘图缓冲区;在所述绘图缓冲区准备完毕后,预测睡眠延时时间D;在等待所述睡眠延时时间D后,发送结束通知以唤醒处于睡眠状态的所述应用。与现有技术相比,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间D后,再发送结束通知。这样可将睡眠由浅睡眠推至深睡眠,深睡眠可以使操作系统获得更多的资源与负载释放。同时,减少了睡眠次数,进而可减少状态切换,从而减轻了因频繁状态切换而带来的负担。
【专利说明】
睡眠管理方法及相关装置
技术领域
[0001]本发明涉及控制技术领域,具体涉及睡眠管理方法及相关装置,尤其涉及图形绘制中进行睡眠管理的方法和装置。
【背景技术】
[0002]很多便携式装置(例如手机、平板电脑等)都有需要进行重画或作帧间切换的场景。以安装有美国谷歌公司(Google Inc.)推出的安卓(Android)操作系统的手机为例,其上的应用(例如游戏)绘制下一帧画面,都叫做重画(invalidate or redraw)。而帧间切换,指的是两次绘图中间的绘图缓冲区切换。
[0003]在两次绘图中间会产生许多短暂的睡眠,可称为浅睡眠,浅睡眠耗时在数十微秒(micro-second)左右。
[0004]以游戏应用为例,请参见图1a和图lb,游戏应用先进行第一帧绘图(也即执行第一帧绘图缓冲区的绘制任务),完成后,游戏应用会等待下一帧的绘图缓冲区,以进行第二帧绘图的绘制。在等待操作系统(例如Android、Windows、Mac0S等)准备下一个绘图缓冲区的过程中,游戏应用会进入第一次浅睡眠(即图1中的睡眠A)挂起;在准备好下一个绘图缓冲区后,操作系统会发送结束通知,接收到结束通知后,游戏应用从睡眠状态切换到工作状态,进行缓冲区切换(也即正式切换所有的绘制指令到新的缓冲区上,或者称为进行真正的绘制指令目标地切换);
[0005]在Android操作系统上,一般应用的帧率恒定维持在60fps,游戏应用则会针对场景需求来控制帧率。以恒定帧率60fps为例子,帧与帧之间的时间间隔是(1000/60 =16.67ms)。当游戏应用进行缓冲区切换后,所用时间(绘图用时X+睡眠A+缓冲区切换用时E)可能还未达到16.67ms,为了维持帧率,游戏需要进行第二次浅睡眠(即图1中的睡眠B)。
[0006]在睡眠B结束后,才开始进行第二帧绘图。同理,在第二帧绘图的绘图过程中,也可能会出现两次浅睡眠。
[0007]因此在现有技术中,每一次绘图过程中至少可能出现两次浅睡眠,经历绘图->第一次浅睡眠_>缓冲区切换_>第二次浅睡眠,共3次状态切换。
[0008]假设操作系统忙碌状态不固定,往往会产生许多更小更短暂的浅睡眠,从而会有更多的状态切换。而多次的工作状态/睡眠状态切换会造成操作系统忙碌,并给操作系统带来不必要的负担。这是因为:状态切换意味着操作系统须对应用做特别处理,例如应用进入睡眠,操作系统必须把应用状态做保存以方便下次唤醒可以从睡眠处继续往下执行,操作系统必须整理应用使用的资源例如内存,进行重整或者释放。

【发明内容】

[0009]有鉴于此,本发明实施例提供睡眠管理方法及相关装置,以减少浅睡眠以及状态切换。
[0010]为实现上述目的,本发明实施例提供如下技术方案:[0011 ] 一种睡眠管理方法,所述方法应用于一终端,所述方法包括:
[0012]在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
[0013]在所述用于下一帧绘图的绘图缓冲区准备完毕后,预测睡眠延时时间;
[0014]在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。
[0015]可选的,所述预测睡眠延时时间包括:根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;其中,η为正整数。
[0016]可选的,所述根据所述前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
[0017]可选的,所述根据所述前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
[0018]可选的,所述根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
[0019]可选的,所述根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间包括:判断所述χ、Ε、Η和AO之和是否等于Τ;在判断出所述χ、Ε、Η和AO之和不等于T时,调整H的取值,令χ、Ε、Η和AO之和等于Τ,调整后的H为所述睡眠延时时间;其中,所述T表示相邻两帧绘图之间的时间间隔,所述AO表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
[0020]一种睡眠管理装置,所述睡眠管理装置应用于一终端,所述睡眠管理装置包括:
[0021]准备单元,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
[0022]预测单元,用于在所述准备单元准备完毕后,预测睡眠延时时间;
[0023]触发单元,用于在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。
[0024]可选的,在预测睡眠延时时间的方面,所述预测单元用于:根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;η为正整数。
[0025]可选的,在所述根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
[0026]可选的,在所述根据所述前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
[0027]可选的,在根据本帧绘图用时X和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间的方面,所述预测单元用于:判断所述x、E、H和AO之和是否等于T;在判断出所述x、E、H和AO之和不等于T时,调整H的取值,令x、E、H和AO的和等于T,调整后的H为所述睡眠延时时间;其中,所述T表示相邻两帧绘图之间的时间间隔,所述AO表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
[0028]一种终端,包括上述的睡眠管理装置。
[0029]与现有技术不同的是,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间D后,再发送结束通知。
[0030]从应用的角度而言,从本帧绘图完成时刻到下一帧绘图的绘图缓冲区准备完毕时刻之间,其一直处于睡眠状态,假定其睡眠时长为A’。之后,从下一帧绘图的绘图缓冲区准备完毕时刻到接收到结束通知时刻之间,应用仍处于睡眠状态(睡眠时长为D)。也即,应用连续睡眠时间为A’+D,从而实现了将短暂睡眠进行合并。
[0031 ] 因此,本发明实施例增加了睡眠时间,可将睡眠由浅睡眠推至深睡眠,而深睡眠可以使操作系统获得更多的资源与负载释放。同时,由于睡眠时间增加则睡眠次数相应减少,进而可减少状态切换,减轻了因频繁状态切换而带来的操作系统忙碍和负担。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图la、Ib为现有技术绘图过程示例性流程图;
[0034]图2a、2b、3a、3b、4和5为本发明实施例提供的睡眠管理方法示例性流程图;
[0035]图6为本发明实施例提供的睡眠管理装置的示例性结构图;
[0036]图7为本发明实施例提供的终端的示例性结构图。
【具体实施方式】
[0037]前述提及,在两次绘图中间会产生许多浅睡眠,比如前述为了达到固定帧率所产生的睡眠B、等待操作系统准备下一个绘图缓冲区的睡眠A,还有其他等待作业所产生的睡眠等等,这会导致多次状态切换,不利于资源与负载释放。
[0038]而本发明提供一种睡眠管理方法、睡眠管理装置及终端,以解决上述问题。
[0039]上述睡眠管理方法和装置可应用于便携式装置(例如手机、平板电脑、游戏机等)。
[0040]睡眠管理装置可作为操作系统的一个模块或组件(例如,An dr ο i d系统的Surfaceflinger组件、Windows系统的GWES组件),执行上述睡眠管理方法。或者,对于应用而言,也可认为是操作系统执行了上述睡眠管理方法。
[0041]下面以绘制两帧绘图(下称第一帧绘图和第二帧绘图)为例,对上述睡眠管理方法进行介绍。
[0042]图2a和2b示出了上述睡眠管理方法的一种示例性流程,其至少可包括如下步骤:
[0043]步骤200:应用绘制本帧绘图(此时为第一帧绘图)。
[0044I应用(例如运行在Android系统中的应用程序)如何绘图请参考现有技术,在此不作赘述。
[0045]本帧绘图完成后,应用通知操作系统进行缓冲区切换,并把绘制后的缓冲区结果提交到操作系统,并最终输出至屏幕。
[0046]步骤201:睡眠管理装置(操作系统)准备下一帧绘图的绘图缓冲区;
[0047 ] 在步骤201中,应用进入睡眠状态。
[0048]步骤202:在下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)预测睡眠延时时间。
[0049]在一个示例中,可获取历史浅睡眠时间,然后,根据历史浅睡眠时间估算睡眠延时时间。
[0050]但在本实施例中,由于步骤202发生于第一帧绘图过程中,因此,无法获取到历史浅睡眠时间。此时,可直接将睡眠延时时间置为O。当然,也可采用出厂设置值或默认值作为睡眠延时时间。
[0051]步骤203:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知以唤醒处于睡眠状态的前述应用。
[0052]上述结束通知用于唤醒处于睡眠状态的前述应用。
[0053]需要说明的是,与现有技术不同的是,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间后,再发送结束通知。
[0054]假定在步骤202预测出的睡眠延时时间为0,则步骤203中,在下一帧绘图的绘图缓冲区准备完毕后,将立即发送结束通知。
[0055]更具体的,对于Android系统而言,应用在绘图过程中主要与Android系统的Surfaceflinger系统组件进行交互,由Surfaceflinger系统组件发结束通知以唤醒应用;对于Windows系统而言,应用是与Windows系统的GWES系统组件交互,由GWES系统组件发结束通知以唤醒应用。
[0056]步骤204:接收到结束通知的应用进行缓冲区切换,也即将绘制指令切换到新的缓冲区,以便于继续进行下一帧绘制。
[0057]需要说明的是,缓冲区切换、绘图都需要占用一定的时间。
[0058]还需要说明的是,在实际场景中,应用(例如游戏应用)与系统组件(如surfacef linger for Android)或是图形处理器(GPU)之间,都是一来一回(一个提要求并等待,一个执行对应操作并响应)交互的。
[0059]以Android系统为例,步骤200或206中的绘制本帧绘图,是由应用与GPU之间来回交互完成的(绘制到应用单独向surfacef linger申请到的缓冲区里面)。
[0000]Surfacef linger负责将所有应用提交的缓冲区进行清染叠加输出到屏幕,并切换到下一个绘制缓冲区,并在等待睡眠延时时间后唤醒应用。接着应用游戏就可以进行下一祯绘图了。
[0061]步骤205:为了维持帧率,应用进入浅睡眠(睡眠B)。
[0062]需要说明的是,在第一次绘图过程中,睡眠延时时间的预测可能不够准确,有可能在进行缓冲区切换后,还要再进行一次浅睡眠。
[0063]以恒定帧率60fps为例子,帧与帧之间的时间间隔是(1000/60 = 16.67ms)。当应用完成缓冲切换后,所用时间(绘图用时X+睡眠A+缓冲区切换用时E)可能还未达到16.67ms,为了维持帧率,应用需要进入睡眠B。
[0064]步骤206:应用绘制本帧绘图(此时为第二帧绘图)。
[0065]步骤207:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区;
[0066]在步骤207中,应用进入睡眠状态。
[0067]步骤208:在下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)预测睡眠延时时间。
[0068]在一个示例中,可获取历史浅睡眠时间,然后,根据历史浅睡眠时间估算睡眠延时时间。更具体的,历史浅睡眠时间可具体指缓冲区切换后出现的浅睡眠时间。
[0069]由于是第二帧绘图,所以可参考第一帧绘图中出现的浅睡眠时间(即睡眠B)来预测睡眠延时时间。
[0070]步骤209:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。上述结束通知用于唤醒处于睡眠状态的应用。
[0071]步骤210:应用进行缓冲区切换。
[0072]收到结束通知的应用结束睡眠,进行缓冲区切换。
[0073]假定在第二帧绘图过程中预测出的睡眠延时时间的长度为D,从应用的角度而言,从第二帧绘图完成时刻到下一帧绘图的绘图缓冲区准备完毕时刻之间,其一直处于睡眠状态,假定其睡眠时长为A’。之后,从下一帧绘图的绘图缓冲区准备完毕时刻到接收到结束通知时刻之间,应用仍处于睡眠状态(睡眠时长为D)。也即,应用连续的睡眠时间为A’+D,与现有技术及第一帧绘图过程相比,其在一定程度上合并了短暂睡眠(A’和D),将应用为等待操作系统准备下一个缓冲区所进行的睡眠拉长了。这样,应用进行缓冲区切换后,可能不用再进入短暂睡眠,从而起到将睡眠由浅睡眠推至深睡眠的作用。
[0074]而深睡眠可以使操作系统获得更多的资源与负载释放。同时,由于睡眠时间被拉长,则睡眠次数可相应减少,进而可减少状态切换,减轻因频繁状态切换而带来的负担,达到操作系统优化与省电的目的。
[0075]由于前期可参考的历史浅睡眠时间数据并不多,上述睡眠管理方法在前期预测睡眠延时时间上可能并不太准确,随着完成的绘图帧数的增加,可参考的历史浅睡眠时间数据也会逐渐增多,则对睡眠延时时间的预测随之会越来越准确,进而本发明实施例要求保护的睡眠管理方法在睡眠时间优化上的优势也会越来越明显。
[0076]下面,将以第N帧绘图过程(N不小于4)为例,对上述睡眠管理方法进行更为详细的介绍。请参见图3a和图3b,其至少可包括如下步骤:
[0077]步骤300:应用绘制本帧绘图(此时为第N帧绘图)。
[0078]本帧绘图完成后,应用通知操作系统进行缓冲区切换,并把绘制后的缓冲区结果提交回操作系统,并最终输出至屏幕。
[0079]步骤300与前述的步骤200或206相类似,在此不作赘述。
[0080]步骤301:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区。
[0081 ]步骤301与前述的步骤201或207相类似,在此不作赘述。
[0082]步骤302:在用于下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)根据前η帧绘图过程中的浅睡眠时间(η为正整数)估算睡眠延时时间D’。
[0083]在一个示例中,可对前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为睡眠延时时间。
[0084]更具体的,历史浅睡眠时间可具体指缓冲区切换后出现的浅睡眠时间。
[0085]在本实施例中,η的取值可为3。当然,本领域技术人员可根据实际需要对η的取值进行设计,在此不作赘述。
[0086]假设前三帧的浅睡眠时间分别是cl、c2、c3,其中,Cl为最近一帧(也即第N-1帧)的浅睡眠时间,c3为第N-3帧的浅睡眠时间。
[0087]则睡眠延时时间D’可使用公式D’ =wl*Dl+w2*D2+w3*D3求得。
[0088]更具体的,wl+w2+w3 = I且wl>w2>w3 ;wl>w2>w3代表时间越接近的帧,其浅睡眠时间的参考价值越高。
[0089]步骤303:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
[0090]步骤304:接收到结束通知的应用进行缓冲区切换(也即将绘制指令切换到新的缓冲区,以便于继续进行下一帧绘制)。
[0091]步骤303和304分别与前述的步骤209、210相类似,在此不作赘述。
[0092]在本实施例中,根据前η帧绘图过程中的浅睡眠时间(η为正整数)估算睡眠延时时间,可以使得睡眠处时时间的预测更加合理。
[0093]图4示出了上述睡眠管理方法的又一种示例性流程,其至少可包括如下步骤:
[0094]步骤400:应用绘制第N帧绘图;
[0095]步骤400与前述的步骤300、200、206相类似,在此不作赘述。
[0096]步骤401:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区。
[0097]步骤401与前述的步骤201、207或301相类似,在此不作赘述。
[0098]步骤402:在用于下一帧绘图的绘图缓冲区准备完毕后,对前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H ;
[0099]在本实施例中,η的取值可为3。当然,本领域技术人员可根据实际需要对η的取值进行设计,在此不作赘述。
[0100]假设前三帧的浅睡眠时间分别是cl、c2、c3,其中,Cl为最近一帧(也即第N-1帧)的浅睡眠时间,c3为第N-3帧的浅睡眠时间。
[0101]则H 可使用公式 H=wl*Dl+w2*D2+w3*D3 求得。
[0102]更具体的,wl+w2+w3 = I且wl>w2>w3 ;wl>w2>w3代表时间越接近的帧,其浅睡眠时间的参考价值越高。
[0103]步骤403:根据本帧绘图用时X和上一帧缓冲区切换用时E,对加权求和结果H进行调整,得到睡眠延时时间D’。
[0104]由于每一帧的绘图花费时间可能不尽相同,而每一帧的缓冲区切换花费时间也可能不尽相同。因此,本实施例引入本帧绘图用时X和上一帧缓冲区切换用时E来对加权求和结果H进行调整,以使得到的睡眠延时时间更为合理。
[0105]步骤404:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
[0106]步骤404与前述的步骤209、303相类似,在此不作赘述。
[0107]步骤405:接收到结束通知的应用进行缓冲区切换。
[0108]步骤405与前述的步骤209、210、304相类似,在此不作赘述。
[0109]下面将以更详细的实施例,来介绍如何调整加权求和结果。请参见图5,其示出了上述睡眠管理方法的又一种示例性流程,其至少可包括如下步骤:
[0110]步骤500至502请参考图4所示的步骤400至402,在此不作赘述。
[0111]步骤503:判断本帧绘图用时X、上一帧缓冲区切换用时E、加权求和结果H和AO之和是否等于T;若是,进入步骤505,否则进入步骤504;
[0112]其中,T表示相邻两帧绘图之间的时间间隔;以恒定帧率60fps为例子,T=16.67ms0
[0113]AO表示从应用完成本帧绘图时刻至下一帧绘图的绘图缓冲区准备完毕时刻之间的睡眠的时间,也即,在执行步骤501所花费的时间。
[0114]步骤504:调整H的取值,令x、E、H和AO之和等于T,调整后的H为睡眠延时时间;
[0115]步骤505:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
[0116]步骤505与前述的步骤209、303、404相类似,在此不作赘述。
[0117]步骤506:接收到结束通知的应用进行缓冲区切换。
[0118]步骤506与前述的步骤209、210、304和405相类似,在此不作赘述。
[0119]在本实施例中,通过调整H,使H满足x、E、H和AO的和等于T,这样可尽量维持帧率。
[0120]图6示出了上述睡眠管理装置的一种示例性结构,其可包括:
[0121]准备单元I,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
[0122]准备单元I可执行图2a和图2b所示的步骤201、207,图3a和图3b所示的步骤301、图4所示的步骤401、图5所示的步骤501。
[0123]预测单元2,用于在准备单元I准备完毕后,预测睡眠延时时间:
[0124]预测单元2可执行图2a和图2b所示的步骤202、208,图3a和图3b所示的步骤302、图4所示的步骤402和403、图5所示的步骤502-504。
[0125]触发单元3,用于在等待睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的应用。
[0126]触发单元3可执行图2a和图2b所示的步骤203、209,图3a和图3b所示的步骤303、图4所示的步骤404、图5所示的步骤505。
[0127]本发明实施例还要求保护终端,其可包括上述的睡眠管理装置。
[0128]图7示出了上述终端的一种通用计算机系统结构。
[0129]上述计算机系统可包括总线、处理器701、内存702、通信接口703、输入设备704和输出设备705。处理器701、内存702、通信接口 703、输入设备704和输出设备705通过总线相互连接。其中:
[0130]总线可包括一通路,在计算机系统各个部件之间传送信息。
[0131]处理器701可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(applicat1n-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可程序设计门阵列(FPGA)或者其他可程序设计逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0132]处理器701至少可包括主处理器和GPU(图形处理器)。
[0133]内存702中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,内存702可以包括只读存储器(read-only memory,R0M)、可存储静态信息和指令的其他类型的静态存储设备、随机存取内存(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
[0134]输入设备704可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入设备、触摸屏、计步器或重力传感器等。
[0135]输出设备705可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
[0136]通信接口703可包括使用任何收发器一类的装置,以便与其他设备或通信网路通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
[0137]处理器701执行内存702中所存放的程序,以及调用其他设备,可用于实现本发明前述实施例所提供的睡眠管理方法中的各个步骤。
[0138]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0139]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0140]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机内存(RAM)、内存、只读存储器(R0M)、电可程序设计R0M、电可擦除可程序设计R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0141]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种睡眠管理方法,所述方法应用于一终端,其特征在于,所述方法包括: 在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区; 在所述用于下一帧绘图的绘图缓冲区准备完毕后,预测睡眠延时时间; 在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。2.如权利要求1所述的方法,其特征在于,所述预测睡眠延时时间包括: 根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;其中,η为正整数。3.如权利要求2所述的方法,其特征在于,所述根据所述前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括: 对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。4.如权利要求2所述的方法,其特征在于,所述根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括: 对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H; 根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间。5.如权利要求4所述的方法,其特征在于,所述根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间包括: 判断所述x、E、H和AO之和是否等于T ; 在判断出所述x、E、H和AO之和不等于T时,调整H的取值,令x、E、H和AO之和等于T,调整后的H为所述睡眠延时时间; 其中,所述T表示相邻两帧绘图之间的时间间隔,所述AO表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。6.—种睡眠管理装置,所述睡眠管理装置应用于一终端,其特征在于,所述睡眠管理装置包括: 准备单元,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区; 预测单元,用于在所述准备单元准备完毕后,预测睡眠延时时间; 触发单元,用于在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。7.如权利要求6所述的装置,其特征在于,在预测睡眠延时时间的方面,所述预测单元用于:根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;η为正整数。8.如权利要求7所述的装置,其特征在于,在所述根据前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于: 对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。9.如权利要求7所述的装置,其特征在于,在所述根据所述前η帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于: 对所述前η帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H; 根据本帧绘图用时X和上一帧缓冲区切换用时Ε,对所述加权求和结果H进行调整,得到所述睡眠延时时间。10.如权利要求9所述的装置,其特征在于,在根据本帧绘图用时X和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间的方面,所述预测单元用于: 判断所述x、E、H和AO之和是否等于T ; 在判断出所述x、E、H和AO之和不等于T时,调整H的取值,令x、E、H和AO的和等于T,调整后的H为所述睡眠延时时间; 其中,所述T表示相邻两帧绘图之间的时间间隔,所述AO表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。11.一种终端,其特征在于,包括如权利要求6-10中任意一项所述的睡眠管理装置。
【文档编号】G06F9/48GK106095541SQ201610377374
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】张文彦, 白宗正
【申请人】深圳市万普拉斯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1