应用的心跳唤醒方法及终端设备与流程

文档序号:19836139发布日期:2020-02-04 13:02阅读:582来源:国知局
本申请实施例涉及计算机领域,尤其涉及一种应用的心跳唤醒方法及终端设备。
背景技术
::目前,终端设备(例如,手机)上安装的应用(application,app)的客户端越来越多。一些应用的客户端在与该应用的应用服务器建立长连接后,若应用的客户端与应用服务器在较长时间内不进行通信,该长连接可能会断开。为了避免上述长连接断开,终端设备可以周期性唤醒该应用的客户端,如图1a所示,使得该应用的客户端向应用服务器发送心跳包,用于提醒应用服务器保持与该应用的客户端的长连接。常规的方法中,终端设备通常是根据固定的心跳周期,周期性唤醒在终端设备后台运行的所有建立长连接的应用的客户端(如图1b中所示的应用客户端1~n,其中,n为正整数),以触发这些应用的客户端向对应的应用服务器发送心跳包,使得应用的客户端与应用服务器保持长连接。但是,对于用户不经常使用的应用,用户再次使用该应用的可能性较小,保持长连接不断开的需求则没有那么迫切。而上述根据固定的心跳周期周期性唤醒应用的客户端的方法,会使得不被经常使用的应用被不必要的经常唤醒,浪费终端设备电量。技术实现要素:本申请实施例提供一种应用的心跳唤醒方法,可以根据终端设备的实际使用情况和/或应用的实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。为达到上述目的,本申请实施例采用如下技术方案:第一方面,提供一种应用的心跳唤醒方法,该方法应用于终端设备,该终端设备中安装有多个应用的客户端,该方法包括:该终端设备在熄屏状态下,获取第一应用的应用指示信息和该终端设备的使用场景信息中的一个或多个信息;其中,第一应用与第一应用的应用服务器建立了长连接;上述应用指示信息用于指示第一应用的应用类型,和/或第一应用在预设时间内在该终端设备前台运行的时间信息或次数;上述使用场景信息包括:该终端设备的熄屏时间、网络状态信息和情景模式信息中的一项或多项;上述情景模式信息用于指示该终端设备处于运动模式、睡觉模式、口袋模式或桌面模式中的任一种模式;该终端设备根据上述应用指示信息和使用场景信息,确定第一应用的心跳周期,该第一应用的心跳周期用于周期性唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包。上述第一方面提供的技术方案,终端设备可以根据终端设备在熄屏状态下的熄屏时间、网络状态信息和情景模式信息、第一应用的应用类型和第一应用在预设时间内在终端设备前台运行的时间信息或次数等信息中的一种或多种,确定该第一应用的心跳周期。采用该方法,终端设备可以根据终端设备的实际使用情况和/或应用的实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,终端设备中包括一个或多个传感器,该一个或多个传感器包括:陀螺仪传感器、加速度传感器、磁传感器、环境光传感器、接近光传感器、距离传感器和心率传感器中的至少一个;该终端设备通过上述一个或多个传感器采集的参数,获取情景模式信息。本方案中,终端设备可以通过传感器采集的数据,确定终端设备的情景模式,以便终端设备可以根据该终端设备的情景模式,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述网络状态信息用于指示终端设备连接到网络或者未连接到网络;如果上述终端设备连接到网络,该网络状态信息还用于指示终端设备连接的网络类型,以及该终端设备的信号质量。本方案中,终端设备可以根据获取的终端设备的联网实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述使用场景信息至少包括:终端设备的熄屏时间;该终端设备进入熄屏状态后,周期性获取第一应用的应用指示信息和终端设备的使用场景信息中的一个或多个信息。本方案中,终端设备可以周期性获取终端设备的熄屏时间、网络状态信息和情景模式信息等使用场景信息中的一项或多项,以便终端设备可以根据该终端设备的使用场景信息,周期性调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述方法还包括:终端设备确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;终端设备从第一心跳时刻开始,按照第一应用的心跳周期,周期性唤醒第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包,直到该第一应用的客户端断开长连接或终端设备由熄屏状态转为亮屏状态。本方案中,终端设备可以根据确定的第一应用的心跳周期,周期性唤醒该第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包。保证第一应用与第一应用的应用服务器建立的长连接不断开的同时,可以保证第一应用由于发送心跳包消耗的电量最小化。在一种可能的实现方式中,上述方法还包括:终端设备确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;终端设备在当前时刻之后,距离第一心跳时刻最近的系统心跳时刻,唤醒第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包;在终端设备确定第一心跳时刻之后,终端设备循环执行以下步骤(1)和步骤(2),直到第一应用的客户端断开上述长连接或终端设备由熄屏状态转为亮屏状态:步骤(1):终端设备根据第一应用的心跳周期确定下一个心跳时刻;步骤(2):终端设备在距离下一个心跳时刻最近的系统心跳时刻,唤醒所述第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包;其中,系统心跳时刻是终端设备根据开机时启动的系统心跳时钟确定的。本方案中,终端设备可以将根据确定的第一应用的心跳周期确定的第一应用的心跳时刻,按照预设规则(如就近对齐原则)对其至系统心跳时刻,避免不同应用的心跳时刻分布不集中导致的功耗过大。第二方面,提供一种终端设备,该终端设备中安装有多个应用的客户端,该终端设备包括:信息获取单元,用于在终端设备处于熄屏状态下,获取第一应用的应用指示信息和该终端设备的使用场景信息中的一个或多个信息;其中,第一应用与第一应用的应用服务器建立了长连接;上述应用指示信息用于指示第一应用的应用类型,和/或第一应用在预设时间内在该终端设备前台运行的时间信息或次数;上述使用场景信息包括:该终端设备的熄屏时间、网络状态信息和情景模式信息中的一项或多项;上述情景模式信息用于指示该终端设备处于运动模式、睡觉模式、口袋模式或桌面模式中的任一种模式;分析单元,用于根据上述应用指示信息和使用场景信息,确定第一应用的心跳周期,该第一应用的心跳周期用于周期性唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包。上述第二方面提供的技术方案,终端设备可以根据终端设备在熄屏状态下的熄屏时间、网络状态信息和情景模式信息、第一应用的应用类型和第一应用在预设时间内在终端设备前台运行的时间信息或次数等信息中的一种或多种,确定该第一应用的心跳周期。采用该方法,终端设备可以根据终端设备的实际使用情况和/或应用的实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,终端设备中包括一个或多个传感器,该一个或多个传感器包括:陀螺仪传感器、加速度传感器、磁传感器、环境光传感器、接近光传感器、距离传感器和心率传感器中的至少一个;上述一个或多个传感器用于采集参数,使得信息获取单元根据所述参数确定所述情景模式信息。本方案中,终端设备可以通过传感器采集的数据,确定终端设备的情景模式,以便终端设备可以根据该终端设备的情景模式,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述网络状态信息用于指示终端设备连接到网络或者未连接到网络;如果上述终端设备连接到网络,该网络状态信息还用于指示终端设备连接的网络类型,以及该终端设备的信号质量。本方案中,终端设备可以根据获取的终端设备的联网实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述使用场景信息至少包括:终端设备的熄屏时间;上述信息获取单元用于,在该终端设备进入熄屏状态后,周期性获取第一应用的应用指示信息和终端设备的使用场景信息中的一个或多个信息。本方案中,终端设备可以周期性获取终端设备的熄屏时间、网络状态信息和情景模式信息等使用场景信息中的一项或多项,以便终端设备可以根据该终端设备的使用场景信息,周期性调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述分析单元还用于,确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;该终端设备还包括:应用唤醒单元,用于从第一心跳时刻开始,按照第一应用的心跳周期,周期性唤醒第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包,直到该第一应用的客户端断开长连接或终端设备由熄屏状态转为亮屏状态。本方案中,终端设备可以根据确定的第一应用的心跳周期,周期性唤醒该第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包。保证第一应用与第一应用的应用服务器建立的长连接不断开的同时,可以保证第一应用由于发送心跳包消耗的电量最小化。在一种可能的实现方式中,上述分析单元还用于,确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;终端设备还包括:应用唤醒单元,用于在上述当前时刻之后,距离第一心跳时刻最近的系统心跳时刻,唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包;在上述分析单元确定第一心跳时刻之后,该分析单元和应用唤醒单元还用于,循环执行以下步骤(1)和步骤(2),直到第一应用的客户端断开上述长连接或终端设备由熄屏状态转为亮屏状态:步骤(1):分析单元根据第一应用的心跳周期确定下一个心跳时刻;步骤(2):应用唤醒单元在距离下一个心跳时刻最近的系统心跳时刻,唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包;其中,系统心跳时刻是终端设备根据开机时启动的系统心跳时钟确定的。本方案中,终端设备可以将根据确定的第一应用的心跳周期确定的第一应用的心跳时刻,按照预设规则(如就近对齐原则)对其至系统心跳时刻,避免不同应用的心跳时刻分布不集中导致的功耗过大。第三方面,提供一种终端设备,该终端设备包括:存储器,用于存储一个或多个计算机程序;射频电路,用于进行无线电信号的发送和接收;处理器,用于执行存储器存储的一个或多个计算机程序,使得该终端设备在终端设备处于熄屏状态下,获取第一应用的应用指示信息和该终端设备的使用场景信息中的一个或多个信息;其中,第一应用与第一应用的应用服务器建立了长连接;上述应用指示信息用于指示第一应用的应用类型,和/或第一应用在预设时间内在该终端设备前台运行的时间信息或次数;上述使用场景信息包括:该终端设备的熄屏时间、网络状态信息和情景模式信息中的一项或多项;上述情景模式信息用于指示该终端设备处于运动模式、睡觉模式、口袋模式或桌面模式中的任一种模式;以及,根据上述应用指示信息和使用场景信息,确定第一应用的心跳周期,该第一应用的心跳周期用于周期性唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包。上述第三方面提供的技术方案,终端设备可以根据终端设备在熄屏状态下的熄屏时间、网络状态信息和情景模式信息、第一应用的应用类型和第一应用在预设时间内在终端设备前台运行的时间信息或次数等信息中的一种或多种,确定该第一应用的心跳周期。采用该方法,终端设备可以根据终端设备的实际使用情况和/或应用的实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,终端设备中包括一个或多个传感器,该一个或多个传感器包括:陀螺仪传感器、加速度传感器、磁传感器、环境光传感器、接近光传感器、距离传感器和心率传感器中的至少一个;上述一个或多个传感器用于采集参数,使得信息获取单元根据所述参数确定所述情景模式信息。本方案中,终端设备可以通过传感器采集的数据,确定终端设备的情景模式,以便终端设备可以根据该终端设备的情景模式,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述网络状态信息用于指示终端设备连接到网络或者未连接到网络;如果上述终端设备连接到网络,该网络状态信息还用于指示终端设备连接的网络类型,以及该终端设备的信号质量。本方案中,终端设备可以根据获取的终端设备的联网实际情况,动态调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述使用场景信息至少包括:终端设备的熄屏时间;上述处理器用于,执行存储器存储的一个或多个计算机程序,使得该终端设备在该终端设备进入熄屏状态后,周期性获取第一应用的应用指示信息和终端设备的使用场景信息中的一个或多个信息。本方案中,终端设备可以周期性获取终端设备的熄屏时间、网络状态信息和情景模式信息等使用场景信息中的一项或多项,以便终端设备可以根据该终端设备的使用场景信息,周期性调整终端设备唤醒应用的周期,提高用户体验。在一种可能的实现方式中,上述处理器还用于,执行存储器存储的一个或多个计算机程序,使得该终端设备确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;以及,从第一心跳时刻开始,按照第一应用的心跳周期,周期性唤醒第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包,直到该第一应用的客户端断开长连接或终端设备由熄屏状态转为亮屏状态。本方案中,终端设备可以根据确定的第一应用的心跳周期,周期性唤醒该第一应用,以触发该第一应用的客户端向第一应用的应用服务器发送心跳包。保证第一应用与第一应用的应用服务器建立的长连接不断开的同时,可以保证第一应用由于发送心跳包消耗的电量最小化。在一种可能的实现方式中,上述处理器还用于,执行存储器存储的一个或多个计算机程序,使得该终端设备确定第一心跳时刻,该第一心跳时刻是从当前时刻开始,经过第一时长的截止时刻,该第一时长等于第一应用的心跳周期;以及,在上述当前时刻之后,距离第一心跳时刻最近的系统心跳时刻,唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包;在终端设备确定第一心跳时刻之后,上述处理器还用于,执行存储器存储的一个或多个计算机程序,使得该终端设备循环执行以下步骤(1)和步骤(2),直到第一应用的客户端断开上述长连接或终端设备由熄屏状态转为亮屏状态:步骤(1):根据第一应用的心跳周期确定下一个心跳时刻;步骤(2):在距离下一个心跳时刻最近的系统心跳时刻,唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包;其中,系统心跳时刻是终端设备根据开机时启动的系统心跳时钟确定的。本方案中,终端设备可以将根据确定的第一应用的心跳周期确定的第一应用的心跳时刻,按照预设规则(如就近对齐原则)对其至系统心跳时刻,避免不同应用的心跳时刻分布不集中导致的功耗过大。第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机执行指令,该计算机执行指令被处理器执行时实现如第一方面任一种可能的实现方式中的应用的心跳唤醒方法。第五方面,提供一种芯片系统,该芯片系统可以包括存储介质,用于存储指令;处理电路,用于执行上述指令,实现如第一方面任一种可能的实现方式中的应用的心跳唤醒方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。第六方面,提供一种计算机程序产品,提供一种计算机程序产品,该计算机程序产品包括程序指令,当程序指令在计算机上运行时,以实现如第一方面任一种可能的实现方式中的应用的心跳唤醒方法。例如,该计算机可以是至少一个存储节点。附图说明图1a为本申请实施例提供的一种终端设备周期性唤醒应用的客户端的示意图;图1b为本申请实施例提供的一种常规的应用心跳技术示意图;图2a为本申请实施例提供的一种终端设备的硬件结构示意图;图2b为本申请实施例提供的一种系统心跳时钟示意图;图3为本申请实施例提供的一种应用的心跳唤醒方法流程图一;图4为本申请实施例提供的一种确定心跳周期的方法原理示意图;图5为本申请实施例提供的一种终端设备确定出的多个应用的心跳时钟示意图;图6为本申请实施例提供的一种应用的心跳唤醒方法流程图二;图7为本申请实施例提供的一种确定第一心跳时刻的示例图一;图8a为本申请实施例提供的一种确定第一心跳时刻的示例图二;图8b为本申请实施例提供的一种确定第一心跳时刻的示例图三;图9为本申请实施例提供的一种应用的心跳唤醒方法流程图三;图10为本申请实施例提供的一种应用心跳时钟示意图;图11为本申请实施例提供的一种心跳时刻对齐示例图;图12为本申请实施例提供的应用的心跳唤醒方法与常规心跳唤醒方法的功耗对比示例图;图13为本申请实施例提供的一种终端设备的姿态示意图;图14为本申请实施例提供的一种终端设备的结构示意图。具体实施方式本申请实施例提供一种应用的心跳唤醒方法,该方法应用于终端设备在熄屏状态下,周期性唤醒后台运行的应用的客户端的过程中。其中,终端设备周期性唤醒后台运行的应用的客户端,用于触发该应用的客户端向与其建立了长连接的应用服务器发送心跳包,使得该应用的客户端可以保持与应用服务器的长连接。在本申请实施例中,前台运行指的是应用当前在终端设备中运行,占用终端设备的系统资源,且当前在终端设备屏幕上显示该应用的窗口界面。后台运行指的是应用当前终端设备中运行,占用端设备的系统资源,但是当前在终端设备屏幕上不显示相关界面。在本申请实施例中,长连接是基于传输控制协议/网络通讯协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)的,又称tcp连接。可以理解的是,在tcp连接的连接建立阶段,应用的客户端需要与应用服务器进行三次握手(包括第一次握手、第二次握手和第三次握手)。用于与应用服务器的指定端口连接,建立tcp连接,以及同步tcp连接双方的序列号((sequencenumber,sn)、确认序号(acknowledgementnumber,an)和tcp窗口信息等。在tcp连接的连接拆除阶段,应用的客户端与应用服务器进行四次挥手(包括第一次挥手、第二次挥手、第三次挥手和第四次挥手)。用于解除应用的客户端与应用服务器之间的tcp连接。其中,该四次挥手可以由应用的客户端发起,也可以由应用服务器发起。在一些情况下,tcp连接是按需建立连接,若收发双方的数据或信令传输完成,则断开收发双方之间的tcp连接。待下一次有数据或信令传输需求时,再重新建立tcp连接,该连接称为短连接。但是,由于tcp连接的连接建立阶段和连接拆除阶段过程较为复杂,如果该tcp连接经常断开,那么在下次进行数据包传输时,便需要再次进行三次握手建立该tcp连接,这会浪费一定的时间以及系统开销。因此,为了节省时间以及系统开销,可以保持应用的客户端与应用服务器之间的长连接。即,即使收发双方之间结束数据或信令传输,该tcp连接也不会断开。这样,在下一次需要传输数据包时,便可以直接通过该长连接传输数据包。在一些情况下,在应用的客户端与应用服务器保持长连接时,若应用的客户端与应用服务器在较长的时间内未传输数据或者信令,出于节省网络资源的目的,应用服务器会断开与客户端之间的长连接,将更多的网络资源留给其他有传输需求的设备。示例性的,通常情况下,若应用的客户端与应用服务器在5分钟之内未传输数据或者信令,应用服务器会断开上述长连接。因此,为了使得应用的客户端与应用服务器之间长连接不断开,终端设备可以周期性唤醒应用,使得该应用的客户端周期性向应用服务器发送心跳包,以保证应用服务器始终认为上述长连接是活跃状态,从而避免上述长连接被拆链。在本申请实施例提供的应用的心跳唤醒方法中,终端设备可以是上网本、平板电脑、智能手表等。或者,终端设备还可以是其他具有无线电通信功能的桌面型设备、膝上型设备、手持型设备、可穿戴设备、智能家居设备和车载型设备等,例如超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、智能相机、上网本、个人数字助理(personaldigitalassistant,pda)、便携式多媒体播放器(portablemultimediaplayer,pmp)、ar(增强现实)/vr(虚拟现实)设备、飞行器、机器人等。本申请实施例对终端设备的具体类型和结构等不作限定。请参考图2a,如图2a所示,为本申请实施例提供的一种终端设备的硬件结构示意图。如图2a所示,终端设备100可以包括处理器210,存储器(包括外部存储器接口220和内部存储器221),通用串行总线(universalserialbus,usb)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriberidentificationmodule,sim)卡接口295等。其中,传感器模块280可以包括压力传感器280a,陀螺仪传感器280b,加速度传感器280c,磁传感器280d,环境光传感器280e,距离传感器280f,接近光传感器280g,心率传感器280h,气压传感器,指纹传感器,温度传感器,触摸传感器,骨传导传感器等。可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,i2c)接口,集成电路内置音频(inter-integratedcircuitsound,i2s)接口,脉冲编码调制(pulsecodemodulation,pcm)接口,通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口,移动产业处理器接口(mobileindustryprocessorinterface,mipi),通用输入输出(general-purposeinput/output,gpio)接口,用户标识模块(subscriberidentitymodule,sim)接口,和/或通用串行总线(universalserialbus,usb)接口等。可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。移动通信模块250可以提供应用在终端设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoiseamplifier,lna)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270a,受话器270b等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其他功能模块设置在同一个器件中。无线通信模块260可以提供应用在终端设备100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如wi-fi网络),蓝牙(bluetooth,bt),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。在一些实施例中,终端设备100的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(globalsystemformobilecommunications,gsm),通用分组无线服务(generalpacketradioservice,gprs),码分多址接入(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),时分码分多址(time-divisioncodedivisionmultipleaccess,td-scdma),长期演进(longtermevolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。终端设备100通过gpu,显示屏294,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏294和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。显示屏294用于显示图像,视频等。显示屏294包括显示面板。在一些实施例中,终端设备100可以包括1个或n个显示屏294,n为大于1的正整数。终端设备100可以通过isp,摄像头293,视频编解码器,gpu,显示屏294以及应用处理器等实现拍摄功能。isp用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。在一些实施例中,终端设备100可以包括1个或n个摄像头293,n为大于1的正整数。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。外部存储器接口220可以用于连接外部存储卡,例如microsd卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。终端设备100可以通过音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,以及应用处理器等实现音频功能。例如,音乐播放,录音等。压力传感器280a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280a可以设置于显示屏294。压力传感器280a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器280a,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏294,终端设备100根据压力传感器280a检测所述触摸操作强度。终端设备100也可以根据压力传感器280a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。陀螺仪传感器280b可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器280b确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。加速度传感器280c可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备100的姿态,应用于横竖屏切换,计步器等应用。磁传感器280d是把磁场、电流、应力应变、温度、光等外界因素引起敏感元件磁性能变化转换成电信号,以这种方式来检测相应物理量的器件。在一些实施例中,通过磁传感器280d可以测量出终端设备100与东南西北四个方向的夹角。环境光传感器280e用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏294亮度。环境光传感器280e也可用于拍照时自动调节白平衡。在一些实施例中,环境光传感器280e还可以与接近光传感器配合,检测终端设备100是否在口袋里,以防误触。距离传感器280f,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,距离传感器280f可以用于检测终端设备100周围是否有障碍物遮挡或者覆盖。接近光传感器280g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。心率传感器280h用于测量用户心率及其他生物计量指标。例如,心率传感器280h可以是光学心率传感器。在一些实施例中,心率传感器280h可以通过用户穿戴的手环等可穿戴设备测量用户心率及其他生物计量指标。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。马达291可以产生振动提示。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。sim卡接口295用于连接sim卡。sim卡可以通过插入sim卡接口295,或从sim卡接口295拔出,实现和终端设备100的接触和分离。如上文所述,常规的方法中,终端设备可以根据固定的心跳周期,周期性唤醒在终端设备后台运行的,与应用服务器建立长连接的所有应用的客户端。示例性的,终端设备可以根据系统心跳时钟指示的心跳时刻,周期性唤醒应用的客户端。其中,系统心跳时钟是在终端设备100开机时,终端设备100的操作系统设置并启动的,以固定时长作为周期的心跳时钟。该系统心跳时钟可以适用于终端设备100中安装的所有应用的客户端。例如,小米红米的操作系统以系统心跳周期8分钟来设置并启动系统心跳时钟,乐金lgg2的操作系统以系统心跳周期8分钟来设置系统心跳时钟,三星note3以系统心跳周期5分钟来设置并启动系统心跳时钟。如图2b所示,以终端设备100的系统心跳周期为5分钟,终端设备100在9:00am开机为例,介绍本申请实施例提供的一种系统心跳时钟示意图。但是,如上文中所述,上述常规的方法会导致不被经常使用的应用被不必要的经常唤醒,浪费终端设备电量。为了解决上述问题,本申请实施例提供一种应用的心跳唤醒方法,采用该方法,终端设备可以根据终端设备100中安装的至少一个应用的实际情况和终端设备的使用场景信息中的一个或多个信息,确定上述至少一个应用的心跳周期。本申请实施例提供的应用的心跳唤醒方法可以应用于具有如图2a所示硬件结构的终端设备或者具有类似结构的终端设备。或者还可以应用于其他结构的终端设备中,本申请实施例对此不作限定。以下结合图2a所示的终端设备100,具体介绍本申请实施例提供的应用的心跳唤醒方法。其中,该终端设备100中安装有多个应用的客户端。该终端设备100处于熄屏状态。如图3所示,本申请实施例提供的应用的心跳唤醒方法可以包括:s301、终端设备100获取第一应用的应用指示信息和终端设备100的使用场景信息中的一个或多个信息。其中,终端设备100中安装有多个应用的客户端。例如,“微信”、“foxmail邮箱”、“qq音乐”、“共享单车”、“支付宝”和百度地图”等应用的客户端。第一应用是上述多个应用中的一个应用。该第一应用在终端设备100后台运行,与第一应用的应用服务器建立长连接。在本申请实施例中,第一应用的应用指示信息用于指示:(a)第一应用的应用类型;和/或,(b)第一应用在预设时间内在终端设备前台运行的时间信息或次数。(a)、第一应用的应用类型。在一些实施例中,第一应用的应用类型可以是预先配置的。终端设备100可以通过分析第一应用的功能确定第一应用的应用类型。其中,应用的应用类型至少可以为即时消息类、社交类、影音类、办公类、新闻类、工具类、出行类、生活类和阅读类中的任一种。示例性的,社交类应用可以包括“微信”、“微博”和“腾讯qq”等。影音类应用可以包括“优酷”和“qq音乐”等。办公类应用可以包括“微软office”和“foxmail邮箱”等。新闻类应用可以包括“今日头条”和“央视新闻”等。工具类应用可以包括“闹钟”、“日历”和“天气”等。出行类应用可以包括“百度地图”和“12306”等。生活类应用可以包括“饿了么”、“支付宝”、“共享单车”和“淘宝”等。阅读类应用可以包括“豆瓣阅读”、“南方周末”、“三联生活周刊”和“世界文学名著”等。其中,应用的应用类型包括但不限于上述几种应用类型示例,本申请实施例对此不作限定。(b)、第一应用在预设时间内在终端设备100前台运行的时间信息或次数。在本申请实施例中,第一应用在预设时间内在终端设备100前台运行的时间信息用于表征第一应用在预设时间内在终端设备100前台运行的时间长短。在一些实施例中,第一应用在预设时间内在终端设备100前台运行的时间信息可以包括第一应用在预设时间内(如最近一周时间内),在终端设备100前台运行的详细运行时间信息。可以理解的是,终端设备100可以根据第一应用的上述详细运行时间信息,确定第一应用在预设时间内在终端设备100前台运行的时间长短。例如,“微信”在最近一周时间内在终端设备100前台运行的详细运行时间信息包括:2019/8/120:30~2019/8/121:30,2019/8/219:45~2019/8/221:00,2019/8/319:30~2019/8/321:45,2019/8/419:00~2019/8/420:30,2019/8/519:30~2019/8/521:45,2019/8/619:00~2019/8/620:30和2019/8/721:00~2019/8/722:12。终端设备100可以确定“微信”在预设时间内在终端设备100前台运行的时间为11小时。或者,终端设备100可以根据第一应用的上述详细运行时间信息,确定第一应用的运行时间规律和/或用户使用第一应用的习惯。例如,终端设备100可以根据上述“微信”的详细运行时间信息,确定“微信”在预设时间内,通常在晚上19:00~22:30之间运行。由此,终端设备100可以推断用户习惯在晚上19:00~22:30之间使用“微信”。在本申请实施例中,第一应用的使用场景信息可以包括:(a)终端设备100的熄屏时间;(b)终端设备100的网络状态信息;(c)终端设备100的情景模式信息中的至少一种:(a)、终端设备100的熄屏时间。在本申请实施例中,终端设备100的熄屏时间是指终端设备100进入熄屏状态的时刻;或者终端设备100从进入熄屏状态开始,到当前时刻的时长。例如,终端设备100的熄屏时间为“10分钟”,则表示该终端设备100从进入熄屏状态开始,到当前时刻的时长为10分钟(即终端设备100已持续熄屏状态10分钟)。又例如,终端设备100的熄屏时间为“11:30”,则表示该终端设备100在11:30进入熄屏状态。可以理解的是,若终端设备100已持续熄屏状态的时长越长,则表示终端设备100中安装的应用当前被使用的可能性越小。以及,终端设备100可以根据终端设备100进入熄屏状态的时刻,确定终端设备100被用户使用的规律和/或用户使用终端设备10的习惯。(b)、终端设备100的网络状态信息。其中,终端设备100的网络状态信息用于指示终端设备100连接到网络或者未连接到网络。如果终端设备100连接到网络,终端设备100的网络状态信息还用于指示终端设备100连接的网络类型,以及终端设备100连接至网络的信号质量。其中,终端设备100连接的网络类型可以包括但不限于2g网络、3g网络、4g网络、5g网络和无线保真(wirelessfidelity,wifi)中的至少一种。可以理解的是,若终端设备100未连接到网络,第一应用的客户端不可能保持与应用服务器之间的长连接。在这种情况下,终端设备100便没有必要周期性唤醒第一应用的客户端。另外,若终端设备100连接到网络,终端设备100连接到不同网络类型的网络时,第一应用被周期性唤醒的心跳周期不同,对用户造成的影响不同。例如,若终端设备100连接至2g网络,第一应用的客户端通过该2g网络向应用服务器发送心跳包。若该心跳周期设置过小,则会由于频繁发送心跳包,给用户造成额外的流量花费。若终端设备100连接至wifi,第一应用的客户端通过wifi向应用服务器发送心跳包。若该心跳周期设置过大,则可能由于周期过大,导致应用的客户端与应用服务器之间的长连接断开,影响用户体验。(c)、终端设备100的情景模式信息。在本申请实施例中,终端设备100的情景模式信息用于指示终端设备100处于运动模式、睡觉模式、口袋模式或桌面模式中的任一种模式。其中,终端设备100处于运动模式是指终端设备100处于运动状态,例如,终端设备100处于走路状态或跑步状态等。终端设备100处于睡觉模式是指终端设备100检测到用户正处于睡眠状态。终端设备100处于口袋模式是指终端设备100被置于口袋、包袋或抽屉等收纳物体当中。终端设备100处于桌面模式是指终端设备100被静置于桌面等固定位置。可以理解的是,终端设备100处于运动模式、睡觉模式、口袋模式或桌面模式,则终端设备100中安装的应用当前被使用的可能性越小。在这种情况下,终端设备100便没有必要太过频繁地性唤醒第一应用的客户端。在本申请一些实施例中,终端设备100可以通过分析终端设备100中设置的传感器采集的数据,确定终端设备100的情景模式信息。其中,该传感器至少可以是加速度传感器、陀螺仪传感器、磁传感器、环境光传感器、距离传感器和接近光传感器中的至少一种。对于终端设备100通过分析终端设备100中设置的传感器采集的数据,确定终端设备100的情景模式信息的方法和过程,将在下文中具体介绍。需要说明的是,第一应用的应用指示信息并不限于第一应用的应用类型或第一应用在预设时间内在终端设备前台运行的时间信息或次数。第一应用的使用场景信息也并不限于上述终端设备100的熄屏时间,终端设备100的网络状态信息或终端设备100的情景模式信息。第一应用的应用指示信息和第一应用的使用场景信息还可以包括其他信息,对此,本申请实施例不作限定。在一些实施例中,终端设备100可以在终端设备100进入熄屏状态后,周期性获取第一应用的应用指示信息和终端设备100的使用场景信息中的一个或多个信息。s302、终端设备100根据应用指示信息和使用场景信息,确定第一应用的心跳周期。其中,第一应用的心跳周期用于终端设备100周期性唤醒该第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包,从而保持第一应用的客户端与第一应用的应用服务器之间的长连接。在一些实施例中,终端设备100中可以预先设置有应用指示信息和/或使用场景信息与心跳周期的对应关系。终端设备100可以通过查找该对应关系,确定第一应用的心跳周期。如图4所示,为本申请实施例提供的一种确定应用心跳周期的方法的原理示意图。如图4所示,终端设备100可以综合考虑第一应用的应用类型、终端设备100在预设时间内在终端设备100前台运行第一应用的时间信息或次数、终端设备100的熄屏时间、终端设备100的网络状态信息和终端设备100的情景模式信息,确定第一应用的心跳周期。当然,图4仅作为一种示例。事实上,如上文所述,终端设备100可以根据上述(a)、(b)、(a)、(b)和(c)中的任意一种或多种,确定第一应用的心跳周期。其中,应用指示信息和/或使用场景信息与心跳周期的对应关系可以以表格形式预先设置在终端设备100中,也可以以其他形式预先设置在终端设备100中,本发明实施例不进行限定。例如,以下表1以一种表格形式进行说明,以终端设备100中预先设置有“应用类型”、“熄屏时间”和“情景模式”与“心跳周期”的对应关系为例,介绍预先设置在终端设备100中的应用指示信息和/或使用场景信息与心跳周期的对应关系。该表格也可以是其他形式,本发明实施例对表格的形式不进行限定。表1其中,tstep为心跳步长,例如,tstep=150秒(s)。如表1所示,若终端设备100持续熄屏状态的时长小于预设门限(例如10分钟),终端设备100可以不考虑终端设备100的情景模式,将社交类应用的心跳周期设置为1tstep,将生活类应用的心跳周期设置为2tstep,将工具类应用的心跳周期设置为1tstep。如表1所示,若终端设备100持续熄屏状态的时长大于或等于预设门限(例如10分钟),且终端设备100的情景模式信息指示终端设备100处于运动模式、睡觉模式、口袋模式或桌面模式中的任意一种,终端设备100可以将社交类应用的心跳周期设置为2tstep,将生活类应用的心跳周期设置为4tstep,将工具类应用的心跳周期设置为2tstep。而若终端设备100的情景模式信息指示终端设备100处于除运动模式、睡觉模式、口袋模式或桌面模式以外的其他情景模式,终端设备100可以将社交类应用的心跳周期设置为1tstep,将生活类应用的心跳周期设置为2tstep,将工具类应用的心跳周期设置为1tstep。可以理解的是,若终端设备100持续熄屏状态的时长大于或等于预设门限,且终端设备100的情景模式为运动模式、睡觉模式、口袋模式或桌面模式中的任意一种,终端设备100预测该终端设备100在较长的一段时间内不被用户关注或者使用的可能性比较大。在这种情况下,终端设备100可以以相对较大的心跳周期唤醒该应用。另外,若第一应用为即时消息类应用,鉴于用户使用终端设备进行即时沟通的使用较为广泛,终端设备100预测该第一应用相比于其他工具类应用或者生活类应用等,在较长的一段时间内被用户关注或者使用的可能性比较大。因此,可以以相对较小的心跳周期唤醒第一应用以及该类型的应用。需要说明的是,上述表1仅作为一种示例。在一些实施例中,为了避免心跳周期过大对一些工具类应用(如定时器)造成影响,终端设备100还可以不采用本申请实施例的应用的心跳唤醒方法唤醒该类型的应用,而是根据系统心跳时钟唤醒该应用。在一些实施例中,终端设备100中还可以预先设置有特殊应用的列表,对于该列表中的应用,可以根据系统心跳时钟唤醒该应用。另外,上述表1是以10分钟作为预设门限举例的,该预设熄屏时长门限还可以是其他值,本申请实施例对此不作限定。另外,若终端设备100持续熄屏状态的时长大于或等于预设门限,当终端设备100处于不同的情景模式时,同一应用类型的应用的心跳周期也可以不同。如表2所示,为终端设备100中预先设置的另一种“应用类型”、“熄屏时间”和“情景模式”与“心跳周期”的对应关系示例。表2或者,如表3所示,终端设备100中预先设置的对应关系还可以是“熄屏时间”、“情景模式”和“前台运行频繁程度”与“心跳周期”的对应关系。其中,“前台运行频繁程度”用于表征应用在预设时间内在终端设备100前台运行的频繁程度。表3在一些实施例中,终端设备100可以根据如下规则确定应用在预设时间内在终端设备100前台运行的频繁程度:若应用在预设时间内在终端设备100前台运行的次数大于第一阈值(如50次),则确定该应用高频运行;若应用在预设时间内在终端设备100前台运行的次数大于第二阈值(如10次)且小于或等于第一阈值(即50次),则确定该应用低频运行;若应用在预设时间内在终端设备100前台运行的次数大于0,且小于或等于第二阈值(即10次),则确定该应用偶尔运行;若应用在预设时间内在终端设备100前台运行的次数等于0,则确定该应用未运行。或者,还可以使用其他方法确定应用在预设时间内在终端设备100前台运行的频繁程度,本申请实施例对此不作限定。示例性的,假设终端设备100处于运动模式,该终端设备100当前处于熄屏状态,且持续该熄屏状态的时长为12分钟。另外,终端设备100确定“微信”、“今日头条”和“淘宝”在预设时间内在终端设备100前台运行的频繁程度为:“微信”高频运行,“今日头条”低频运行,“淘宝”未运行。通过查询表3,终端设备100可以确定“微信”的心跳周期为2tstep,“今日头条”的心跳周期为3tstep,“淘宝”的心跳周期为4tstep。假设tstep=150s,图5示出了本申请实施例中,终端设备100确定出的多个应用的心跳时钟示意图。在一些实施例中,上述表3中的“前台运行频繁程度”还可以用“前台运行次数排名”替换,如表4所示。表4其中,“前台运行次数排名”为1,表示应用在预设时间内在终端设备100前台运行的次数最多。由1到n表示应用在预设时间内在终端设备100前台运行的次数越来越少,其中,n>1,n为整数。可以理解的是,在同等条件下,应用的“前台运行次数排名”越高,则该应用被经常使用的可能性越高,终端设备100可以将其心跳周期设置的相对较小一点,可以更大概率的保证应用的客户端与应用服务器之间的长连接不断开。示例性的,假设终端设备100处于运动模式,该终端设备100当前处于熄屏状态,且持续该熄屏状态的时长为8分钟。另外,终端设备100确定“微信”、“今日头条”和“淘宝”在预设时间内在终端设备100前台运行的次数排名为:“微信”排名第3,“今日头条”排名第3,“淘宝”排名第4。通过查询表4,终端设备100可以确定“微信”的心跳周期为2tstep,“今日头条”的心跳周期为3tstep,“淘宝”的心跳周期为4tstep。或者,上述表3中的“前台运行频繁程度”还可以用“前台运行时长排名”替换。对于“前台运行时长排名”的具体解释和说明,可以参考上文中对“前台运行次数排名”的具体介绍,这里不再赘述。或者,如表5所示,终端设备100中预先设置的对应关系还可以是“网络类型”、“熄屏时间”、“情景模式”和“前台运行频繁程度”与“心跳周期”的对应关系。其中,“网络类型”用于表征终端设备100连接的网络的类型。表5在一些实施例中,若终端设备100的网络状态信息指示该终端设备100未连接到网络,终端设备100可以放弃执行s302,即终端设备100放弃确定第一应用的心跳周期。直至终端设备100连接到网络,终端设备100再重新获取应用指示信息和/或使用场景信息(即重新执行s301),进而根据重新确定的应用指示信息和/或使用场景信息确定该第一应用的心跳周期。需要说明的是,上述表1、表2、表3、表4和表5仅作为几种终端设备100中预先设置的应用指示信息和使用场景信息与心跳周期的对应关系示例。本申请实施例对该对应关系并不作具体限定,也就是说,该对应关系可以是“应用类型”、“熄屏时间长”、“情景模式”、“前台运行频繁程度”(或“前台运行时间排名”/“前台运行次数排名”)、“网络类型”与其他应用指示信息和使用场景信息中的任意一个或多个与“心跳周期”的对应关系。在一些实施例中,终端设备100还可以分析终端设备100在s301获取的第一应用的应用指示信息和终端设备100的使用场景信息,预测第一应用在预设时间段内的运行规律。示例性的,终端设备100可以根据终端设备100在s301获取的,在预设时间内在终端设备100前台运行第一应用的时间信息确定第一应用在该预设时间内的运行规律。例如,如上文所述,终端设备100可以根据“微信”在最近一周时间内在终端设备100前台运行的详细运行时间,确定“微信”在最近一周时间内在终端设备100前台运行的高频时间段。为晚上19:00~22:30之间。即终端设备100可以预测用户习惯在晚上19:00~22:30之间使用“微信”。在这种情况下,终端设备100可以将“微信”在每天晚上19:00~22:30之间的心跳周期设置得较小,可以更大概率的保证“微信”客户端与应用服务器之间的长连接不断开。又一示例性的,终端设备100可以根据第一应用的具体功能,预测第一应用在预设时间段内在前台运行的可能性。例如,第一应用主要用于订购外卖,终端设备100可以根据第一应用的该具体功能预测第一应用在午饭时间段(如11:00~13:00)和晚饭时间段(如18:00~20:00)内,在前台运行的可能性较大。在这种情况下,终端设备100可以将第一应用在午饭时间段和晚饭时间段内的心跳周期设置得较小,以更大概率的保证第一应用的客户端在上述时间段内与应用服务器之间的长连接不断开。进一步的,如图6所示,本申请实施例提供的应用的心跳唤醒方法还可以包括:s603、终端设备100确定第一心跳时刻。在一些实施例中,第一心跳时刻可以是从当前时刻t开始,经过第一时长的截止时刻t1。假设第一应用的心跳周期为t。请参考图7,如图7所示,当前时刻是t时刻。终端设备100确定第一心跳时刻t1为从时刻t开始,经过时长t的截止时刻t1。其中,t1=t+t。在另一些实施例中,若第一应用的心跳周期大于或等于前一次心跳时刻t00到当前时刻的时长,第一心跳时刻是从当前时刻t0的前一次心跳时刻t00开始,经过第一时长的截止时刻t1。其中,第一时长等于第一应用的心跳周期。在终端设备100熄屏后首次执行s601、s602和s603确定第一心跳时刻时,前一次心跳时刻t00是系统心跳时钟指示的心跳时刻。请参考图8a,如图8a所示,当前时刻是t时刻。在t时刻,终端设备100确定第一应用的心跳周期t大于或等于前一次心跳时刻t00到当前时刻t的时长,即t≥(t-t00)。终端设备100确定第一心跳时刻为从t时刻的前一次心跳时刻t00开始,经过时长t的截止时刻t1。其中,t1=t00+t。若第一应用的心跳周期t小于前一次心跳时刻t00到当前时刻t的时长,即t<(t-t00),第一心跳时刻是从当前时刻t0的下一次心跳时刻t11开始,经过第一时长t的截止时刻t1。请参考图8b,如图8b所示,当前时刻是t时刻。在t时刻,终端设备100确定第一应用的心跳周期t小于前一次心跳时刻t00到当前时刻t的时长,即t<(t-t00)。终端设备100确定第一心跳时刻为从t时刻的后一次心跳时刻t11开始,经过时长t的截止时刻t1。其中,t1=t11+t。在一些实施例中,如图6所示,在终端设备100执行完s603之后,本申请实施例提供的应用的心跳唤醒方法还可以包括:s604、终端设备100从第一心跳时刻开始,按照第一应用的心跳周期,周期性唤醒第一应用。其中,终端设备100周期性唤醒第一应用用于触发第一应用的客户端向第一应用的应用服务器发送心跳包。终端设备100可以不断周期性唤醒第一应用,直到第一应用的客户端断开长连接或终端设备100亮屏。如图7、图8a和图8b所示,终端设备100依次在t1、t2……等时刻唤醒第一应用。可以理解的是,如果第一应用的客户端断开长连接,即使终端设备100唤醒第一应用的客户端,第一应用的客户端向第一应用的应用服务器发送心跳包也是没有意义的。在第一应用需要与第一应用的应用服务器传输数据时,需要重新建立第一应用与第一应用的应用服务器之间的长连接。另外,在一些实施例中,在终端设备100处于亮屏状态时,终端设备100以系统心跳时钟作为应用心跳时机的参考。可以理解的是,在终端设备100处于亮屏状态时,为了保证所有应用的功能的最佳体现,终端设备100通常不过多的干涉应用的心跳周期。因此,如果终端设备100由熄屏状态转为亮屏状态,如图8所示,在终端设备100由熄屏状态转为亮屏状态后,终端设备100可以结束本申请实施例提供的应用的心跳唤醒方法。采用系统心跳时钟作为应用心跳时机的参考,周期性唤醒第一应用。s605、终端设备100判断第一应用的客户端是否断开长连接或终端设备100是否熄屏状态转为亮屏状态。若是,终端设备100执行s606。s606、终端设备100停止按照第一应用的心跳周期,周期性唤醒第一应用。在另一些实施例中,如图9所示,在终端设备100执行完s603之后,本申请实施例提供的应用的心跳唤醒方法还可以包括:s904、终端设备100将第一心跳时刻对齐至第二心跳时刻。其中,上述第二心跳时刻用于终端设备100在该第二心跳时刻唤醒第一应用,以触发第一应用的客户端向第一应用的应用服务器发送心跳包。可以理解的是,由于不同的应用的心跳周期可能不同,因此不同的应用的下一次应用心跳时刻可能不同。示例性的,如图10所示,“微信”、“今日头条”和“淘宝”的下一次应用心跳时刻t1、t2和t3均不相同。其中,t1=t0+300s,t2=t0+450s,t3=t0+600s。也就是说,在如图10所示的情况下,终端设备100需要在t1时刻唤醒“微信”,接着在t2时刻唤醒“今日头条”,以及在t3时刻唤醒“淘宝”。终端设备100需要频繁的作唤醒应用的操作,这显然是不利于终端设备100节省电量的。因此,为了平衡终端设备100的节省功耗和用户体验等,在本申请一些实施例中,终端设备100可以将第一应用的心跳时刻对齐至该心跳时刻的前一次心跳时刻或者后一次心跳时刻。在一些实施例中,终端设备100可以根据预设条件,将第一应用的心跳时刻对齐至该心跳时刻的前一次心跳时刻或者后一次心跳时刻。其中,该预设条件可以是预先设置的对齐方式。其中,预先设置的对齐方式至少可以包括向左对齐、向右对齐和就近对齐。或者,该预设条件还可以是其他条件或规则,本申请实施例对此不作限定。在一些实施例中,终端设备100可以根据预设条件,将第一应用的心跳时刻对齐至该心跳时刻的前一次系统心跳时刻或者后一次系统心跳时刻。示例性的,预先设置的对齐方式为就近对齐,终端设备100可以将第一应用的第一心跳时刻t1按照该就近对齐原则,对齐至距离该第一心跳时刻t1最近的系统心跳时刻。如图11中的(a)所示,距离该第一心跳时刻t1最近的系统心跳时刻为t22。终端设备100可以将第一应用的第一心跳时刻t1对齐至系统心跳时刻t22。即,终端设备100在t22时刻唤醒第一应用。若预先设置的对齐方式为向右对齐,终端设备100可以将第一应用的第一心跳时刻t1按照该向右对齐原则,对齐至第一心跳时刻t1之后的第一个系统心跳时刻。如图11中的(b)所示,第一心跳时刻t1之后的第一个系统心跳时刻为t22。终端设备100可以将第一应用的第一心跳时刻t1对齐至系统心跳时刻talarm(t22)。即,终端设备100在t22时刻唤醒第一应用。若对齐方式为向左对齐,终端设备100可以将第一应用的第一心跳时刻t1按照该向左对齐原则,对齐至第一心跳时刻t1之前的最近一个系统心跳时刻。如图11中的(c)所示,第一心跳时刻t1之前的最近一个系统心跳时刻为t11。终端设备100可以将第一应用的第一心跳时刻t1对齐至系统心跳时刻talarm(t11)。即,终端设备100在t11时刻唤醒第一应用。在一些实施例中,终端设备100可以对终端设备100周期性唤醒的所有应用的心跳时刻进行统计。结合终端设备100在第一心跳时刻t1计划唤醒的应用数量,以及t1前一次系统心跳时刻和后一次系统心跳时刻,终端设备100计划唤醒的应用数量,确定上述预设条件。或者,该预设条件还可以根据其他条件或规则确定,本申请实施例对此不作限定。示例性的,终端设备100计划在第一心跳时刻t1唤醒5个应用,在t1的前一次系统心跳时刻计划唤醒3个应用,在t1的后一次系统心跳时刻计划唤醒8个应用。在这种情况下,终端设备100可以设置第一心跳时刻t1的对齐方式为向右对齐。将所有计划在该时刻唤醒的应用,向右对齐至在t1的后一次系统心跳时刻唤醒。s905、终端设备100确定下一个心跳时刻。其中,终端设备100可以根据第一应用的心跳周期t确定下一个心跳时刻。示例性的,若上一个心跳时刻是第一心跳时刻t1,那么下一个心跳时刻在第一心跳时刻t1之后,与第一心跳时刻t1间隔第一应用的心跳周期t。s906、终端设备100采用s904同样的方法,将第一应用第一心跳时刻之后的下一个心跳时刻对齐至系统心跳时刻。其中,终端设备100将第一应用第一心跳时刻之后的下一个心跳时刻对齐至系统心跳时刻,用于在该系统心跳时刻唤醒第一应用,以触发所第一应用的客户端向第一应用的应用服务器发送心跳包。s907、终端设备100判断第一应用的客户端是否断开长连接或终端设备100是否熄屏状态转为亮屏状态。若是,终端设备100执行s908。若否,终端设备100重新执行s905、s906和s907。采用同样的方法,依次确定每一个心跳时刻。如图11中的(a)、图11中的(b)和图11中的(c)中的t2和t3等。s908、终端设备100停止按照第一应用的心跳周期,周期性唤醒第一应用。如上文所述,可以理解的是,在第一应用的客户端断开长连接时,第一应用的客户端无法向第一应用的应用服务器发送心跳包。因此,终端设备100可以停止周期性唤醒第一应用的客户端。而在终端设备100由熄屏状态转为亮屏状态时,为了保证第一应用功能的最佳体现,终端设备100可以结束本申请实施例提供的应用的心跳唤醒方法。采用系统心跳时钟作为应用心跳时机的参考,周期性唤醒第一应用。采用本申请实施例提供的应用的心跳唤醒方法,即可以满足根据应用的实际情况和终端设备的使用场景信息等实际情况中的一个或多个,动态调整应用的心跳周期。还可以减小终端设备在熄屏状态下的功耗。如图12所示,为采用本申请实施例提供的应用的心跳唤醒方法与常规心跳唤醒方法的功耗对比示例图。图12中的(a)示出了一定时间内常规心跳唤醒方法的输出电流统计结果。图12中的(b)示出了一定时间内采用本申请实施例提供的应用的心跳唤醒方法的输出电流统计结果。可以理解的是,一个终端设备的工作电压是固定的,输出电流的大小就可以反映出该终端设备的功耗。如图12中的(a)所示,采用常规的心跳唤醒方法,终端设备唤醒应用时杂乱无章的。而采用本申请实施例提供的应用的心跳唤醒方法,终端设备唤醒应用相对规律了很多。图12中的(c)示出了采用本申请实施例提供的应用的心跳唤醒方法与常规心跳唤醒方法的功耗对比结果。根据图12中的(a)、图12中的(b)和图12中的(c)可知,采用本申请实施例提供的应用的心跳唤醒方法,大大减小了终端设备在熄屏状态下的功耗。在本申请一些实施例中,终端设备100可以通过终端设备100中设置的传感器采集第一数据,对该第一数据进行分析,从而确定终端设备100的情景模式信息。其中,该传感器至少可以是加速度传感器、陀螺仪传感器、磁传感器、环境光传感器、距离传感器和接近光传感器中的至少一种。在一种实现方式中,终端设备100可以通过分析加速度传感器和/或磁传感器,以及陀螺仪传感器采集的数据确定终端设备100的姿态,进而根据终端设备100的姿态确定终端设备100的情景模式信息。其中,终端设备100的姿态至少包括终端设备100的运动方向、运动速度以及终端设备100相对于地面坐标系的偏航角(yaw),俯仰角(pitch)和横滚角(roll)。其中,加速度传感器包括质量块和敏感元件等组件。加速度传感器的工作原理是:敏感元件将质量块所受惯性力转换为电信号,从而根据质量块的受力情况转换成的电信号,判断终端设备100的平移方向和平移速度。其中,质量块的受力情况表现为:质量块的受力方向,和质量块在受力方向上的加速度大小。质量块的受力方向可以包括:沿着三维坐标系的xb轴、yb轴和zb轴三个轴上的六个方向,即+xb,-xb,+yb,-yb,+zb和-zb方向。因此,第一数据中,由加速度传感器采集的数据可以是终端设备的平移方向和终端设备沿着该平移方向运动的平移速度。陀螺仪传感器包括陀螺转子和驱动电机等组件组成。陀螺仪传感器的工作原理是驱动电机驱动陀螺转子绕着旋转轴旋转,通过测量得到的陀螺转子的旋转轴与终端设备100的三维坐标系(包括x轴,y轴,z轴)之间的夹角,以及陀螺转子的角速度,从而确定终端设备100相对于三维坐标系的旋转角度以及终端设备100的旋转角速度。磁传感器的原理跟指南针类似,可以测量出终端设备100与东南西北四个方向上的夹角。也就是说,加速度传感器可以测量到“终端设备100沿x轴走了多远”,陀螺仪传感器可以测量到“终端设备100转了个身”,磁传感器可以测量到“终端设备100向西运动”。请参考图13,如图3所示,为本申请实施例提供的一种终端设备100的姿态示意图。如图13所示,xb轴、yb轴、zb轴和原点o组成了终端设备100的坐标系。xg轴、yg轴、zg轴和原点o组成了地面坐标系。其中,o为终端设备100的质心,xb轴在终端设备100对称平面内并平行于终端设备100的机身轴线指向终端设备100头部。yb轴垂直于xb轴指向终端设备100右侧。zb轴垂直于xb轴,并指向终端设备100机身下方。xg轴在水平面内并指向某一方向。zg轴垂直于地面并指向地心。yg轴在水平面内垂直于xg轴,其指向按照右手定则确定。如图13所示,偏航角是指终端设备100对应的xb轴在水平面上的投影与地面坐标系xg轴之间的夹角以终端设备100前端部分向右偏转为正。俯仰角是指终端设备100对应的xb轴与地平面(或水平面)之间的夹角θ,以终端设备100前端部分向上偏转为正。横滚角是指终端设备100对应的zb轴与通过终端设备100xb轴的铅垂面间的夹角φ,以终端设备100右滚为正。示例性的,终端设备100通过分析加速度传感器、磁传感器和陀螺仪传感器采集的第一数据确定终端设备100的运动速度为0米/秒,且终端设备100的俯仰角θ为0,横滚角φ为0。则终端设备100可以确定其处于桌面模式。又一示例性的,在终端设备100通过分析加速度传感器采集的数据确定终端设备100的向西运动,运动速度为6米/秒。终端设备100可以确定其处于运动模式。在这种情况下,在一些实施例中,终端设备可以忽略终端设备100的偏航角俯仰角θ和横滚角φ。进一步的,终端设备100还可以根据终端设备100中预先设置的跑步模式对应的速度范围,进一步终端设备100处于跑步模式、走路模式还是骑行模式。例如,终端设备100中预先设置的跑步模式对应的速度范围为3米/秒-12米/秒,则终端设备100可以确定其处于跑步模式。在另一种实现方式中,终端设备100还可以通过分析环境光传感器、距离传感器或接近光传感器采集的数据确定终端设备100所处的环境信息,进而根据终端设备100的环境信息确定终端设备100的情景模式信息。例如,终端设备100通过环境光传感器确定终端设备100所处的环境光亮度非常暗,另外,结合距离传感器或者接近光传感器采集到的数据,确定终端设备屏幕被其他物体遮挡。综合上述结果,终端设备100可以确定其处于口袋模式。在另一些实施例中,终端设备100可以通过分析心率传感器采集的数据确定用户的心率信息,进而根据用户的心率信息确定终端设备100的情景模式信息。例如,终端设备100分析心率传感器采集到的用户的心率信息,确定该心率信息符合预设的人在睡眠状态下的心率。在这种情况下,终端设备100可以认为终端设备不被用户使用,终端设备100则可以确定终端设备100处于休眠模式。其中,终端设备100的心率传感器可以通过手环采集用户的心率信息。需要说明的是,本申请实施例中终端设备100的情景模式可以是通过综合分析多个传感器采集的数据确定的。例如,在终端设备100通过分析加速度传感器、磁传感器和陀螺仪传感器采集的第一数据确定终端设备100处于运动模式时,终端设备100还可以结合心率传感器检测到的用户心率等生物计量指标,进一步终端设备100处于跑步模式、走路模式还是骑行模式。例如,心率传感器检测到的用户心率等数据符合终端设备100中预先配置的常规的人在跑步时的生物计量指标范围,在这种情况下,则终端设备100可以确定其处于跑步模式。可以理解的是,终端设备为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以对终端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。比如,以采用集成的方式划分各个功能模块为例,如图14所示,为本申请实施例提供的一种终端设备的结构示意图。该终端设备100可以包括信息获取单元1410,分析单元1420和应用唤醒单元1430。其中,信息获取单元1410用于支持终端设备100执行s301,和/或用于本文所描述的技术的其他过程。分析单元1420用于支持终端设备100执行s302、s603、s605、s904、s905、s906和s907,和/或用于本文所描述的技术的其他过程。应用唤醒单元1430用于支持终端设备100执行s604和s908,和/或用于本文所描述的技术的其他过程。需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。在本申请所提供的几个实施例中,应该理解到,所揭露的用户设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1