本发明涉及数字通信领域,特别是涉及一种心跳报文的发送方法和装置。
背景技术:
在移动通信网络中,移动终端的无线资源控制(英文:radioresourcecontrol,缩写:rrc)模块主要负责处理移动终端与陆地无线接入网(英文:umtsterrestrialradioaccessnetwork,缩写:utran)之间控制平面的第三层信息。
为了较好地管理移动网络资源,rrc连接状态会维护至少三种主要的连接状态,包括专用通道(英文:dedicatedchannel,缩写:dch)状态、前向接入通道(英文:forwardaccesschannel,缩写:fach)状态和空闲状态(英文:idle)。当移动终端的rrc连接状态处于dch状态时,所述移动终端占用dch,可以进行话音或大量的数据业务的处理,需要较大的电量维护dch状态。当移动终端的rrc连接状态处于fach状态时,所述移动终端占用fach,所述移动终端可以进行少量的数据业务处理,需要比较少的电量开销维护fach状态。当移动终端的rrc连接状态处于idle状态时,所述移动终端无法进行网络交互,电量消耗很小。
当移动终端的rrc连接状态为dch状态时,若一段空闲时间内没有数据传输,所述移动终端的rrc连接状态会从dch状态改变为fach状态,这段没有数据传输的空闲时间可以称为dch状态空闲时的保活时间(英文:dchtail)。当移动终端的rrc连接状态为fach状态时,若一段空闲时间内没有数据传输,所述移动终端的rrc连接状态会从fach状态改变为idle状态,这段没有数据传输的空闲时间可以称为fach状态空闲时的保活时间(英文:fachtail)。在fach状态或idle状态下,若移动终端发生了数据传输,所述移动终端的rrc连接状态将改变为dch状态。所述移动终端的rrc连接状态从fach状态改变为dch状态或从idle状态改变为dch状态时,会对所述移动终端产生一定的延迟。
可以看出,不同的rrc连接状态耗电量不同。以移动终端中安装的新闻阅读型的应用(英文:application,缩写:app)为例,用户在移动终端上使用这类app时不会频繁地对移动终端进行操作(即移动终端不会有持续的网络数据交互),而rrc各个连接状态的tailtime(空闲时的状态保活时间)又较为短暂。上述这类场景意味着用户移动终端的rrc连接状态需要频繁地在dch状态、fach状态、idle状态三种连接状态间进行迁移。状态迁移引入的系统延时将大幅地增大app网络交互延迟,影响用户的真实体验。
技术实现要素:
为了解决上述技术问题,本发明提供了一种心跳报文的发送方法和装置,在所述app处于活跃状态下,通过心跳报文保活rrc连接状态,使得不会在用户操作时出现能量状态切换的情况,从而不会给用户体现出因切换能量状态所带来的系统延迟,提高了用户体验。
本发明实施例公开了如下技术方案:
一种心跳报文的发送方法,应用于移动终端,所述方法包括:
从存储单元中调取app所对应的设定心跳间隔,所述app安装在所述移动终端中;
根据预设最小间隔,对所述设定心跳间隔进行评估,以便根据评估结果调整所述设定心跳间隔,并将调整结果作为对应所述app的设定心跳间隔更新到所述存储单元中,所述预设最小间隔为保持所述移动终端处于完整能量状态的心跳报文发送间隔;
若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中不会触发所述移动终端能量状态的切换条件,从而所述移动终端的能量状态保持在所述完整能量状态不变。
可选的,所述根据预设最小间隔,对所述设定心跳间隔进行评估,具体包括:
根据所述设定心跳间隔发送心跳报文;
根据对应心跳报文返回的响应报文,确定出第一响应时间;
依据所述预设最小间隔发送心跳报文;
根据对应心跳报文返回的响应报文,确定出第二响应时间;
比对所述第一响应时间和第二响应时间之间的差值是否大于预设阈值;
若所述差值大于所述预设阈值,确定评估结果为不好,若所述差值小于所述预设阈值,确定评估结果为好。
可选的,所述根据评估结果调整所述设定心跳间隔,包括:
若相邻的两次评估过程的评估结果均为不好,对所述设定心跳间隔进行调整,将所述设定心跳间隔调小第一时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果均为好,对所述设定心跳间隔进行调整,将所述设定心跳间隔调大第二时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果从好变为不好,将这两次评估过程中评估结果为好的评估过程确定为目标评估过程,将所述目标评估过程中所评估的设定心跳间隔作为目标间隔,并暂停对所述设定心跳间隔进行评估;
将所述目标间隔更新到所述存储单元中,作为所述app对应的设定心跳间隔。
可选的,所述根据所述设定心跳间隔发送心跳报文,包括:
根据所述设定心跳间隔连续发送多次心跳报文;
根据对应心跳报文返回的响应报文,确定出第一响应时间,包括:
根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第一响应时间;
依据预设最小间隔发送心跳报文,包括:
依据预设最小间隔连续发送多次心跳报文;
根据对应心跳报文返回的响应报文,确定出第二响应时间,包括:
根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第二响应时间。
可选的,若识别所述app处于活跃状态,所述以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,包括:
在发送一次心跳报文后,在所述设定心跳间隔指示的时间长度内检测所 述移动终端是否发送业务数据;
若是,停止发送心跳报文;
从所述移动终端发送业务数据的时间点开始,在所述设定心跳间隔指示的时间长度内继续检测所述移动终端是否发送业务数据,直到在所述设定心跳间隔指示的时间长度内未检测到所述移动终端发送业务数据;
继续以所述设定心跳间隔发送心跳报文。
可选的,在所述从存储单元中调取app所对应的设定心跳间隔之前,还包括:
检测所述app的状态,若所述app处于后台状态,执行所述从存储单元中调取app所对应的设定心跳间隔。
可选的,所述识别所述app处于活跃状态,包括:
当所述app处于前台状态时,判断预设时间内所述app是否发生业务数据交互,若是,识别所述app处于活跃状态。
一种心跳报文的发送装置,应用于移动终端,所述装置包括:
调取单元,用于从存储单元中调取app所对应的设定心跳间隔,所述app安装在所述移动终端中;
评估单元,用于根据预设最小间隔,对所述设定心跳间隔进行评估,以便根据评估结果调整所述设定心跳间隔,并将调整结果作为对应所述app的设定心跳间隔更新到所述存储单元中,所述预设最小间隔为保持所述移动终端处于完整能量状态的心跳报文发送间隔;若识别所述app处于活跃状态,触发心跳发送单元;
心跳发送单元,用于以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中不会触发所述移动终端能量状态的切换条件,从而所述移动终端的能量状态保持在所述完整能量状态不变。
可选的,所述评估单元包括:
第一发送子单元,用于根据所述设定心跳间隔发送心跳报文;
第一确定子单元,用于根据对应心跳报文返回的响应报文,确定出第一响应时间;
第二发送子单元,用于依据所述预设最小间隔发送心跳报文;
第二确定子单元,用于根据对应心跳报文返回的响应报文,确定出第二响应时间;
比对子单元,用于比对所述第一响应时间和第二响应时间之间的差值是否大于预设阈值;
评估子单元,用于若所述差值大于所述预设阈值,确定评估结果为不好,若所述差值小于所述预设阈值,确定评估结果为好。
可选的,还包括调整单元:
若相邻的两次评估过程的评估结果均为不好,所述调整单元,用于对所述设定心跳间隔进行调整,将所述设定心跳间隔调小第一时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果均为好,所述调整单元还用于对所述设定心跳间隔进行调整,将所述设定心跳间隔调大第二时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果从好变为不好,所述调整单元还用于将这两次评估过程中评估结果为好的评估过程确定为目标评估过程,将所述目标评估过程中所评估的设定心跳间隔作为目标间隔,并暂停对所述设定心跳间隔进行评估;
所述调整单元还用于将所述目标间隔更新到所述存储单元中,作为所述app对应的设定心跳间隔。
可选的,
所述第一发送子单元还用于根据所述设定心跳间隔连续发送多次心跳报文;
所述第一确定子单元还用于根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第一响应时间;
所述第二发送子单元还用于依据预设最小间隔连续发送多次心跳报文;
所述第二确定子单元还用于根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第二响应时间。
可选的,还包括检测单元:
所述检测单元,用于在所述心跳发送单元发送一次心跳报文后,在所述设定心跳间隔指示的时间长度内检测所述移动终端是否发送业务数据;
若是,触发所述心跳发送单元停止发送心跳报文;
所述检测单元还用于从所述移动终端发送业务数据的时间点开始,在所述设定心跳间隔指示的时间长度内继续检测所述移动终端是否发送业务数据,直到在所述设定心跳间隔指示的时间长度内未检测到所述移动终端发送业务数据时,触发所述心跳发送单元继续以所述设定心跳间隔发送心跳报文。
可选的,还包括状态判断单元:
所述状态判断单元,用于在触发所述调取单元之前检测所述app的状态,若所述app处于后台状态,触发所述调取单元。
可选的,所述评估单元还用于当所述app处于前台状态时,判断预设时间内所述app是否发生业务数据交互,若是,识别所述app处于活跃状态。
由上述技术方案可以看出,根据保持所述移动终端处于完整能量状态的预设最小间隔,对所述设定心跳间隔进行评估,从而根据评估结果调整所述设定心跳间隔,并将调整结果作为对应app的设定心跳间隔更新到所述存储单元中,若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中,将传统的发送心跳报文作为一种形成数据传输的形式,按照经过调整后的设定心跳间隔发送的心跳报文,以确保所述移动终端在满足切换能量状态的时间条件之前,会出现一定的数据传输,从而在所述app处于活跃状态下,所述移动终端的能量状态可以一直保持在所述完整能量状态不变,不会在用户操作时出现能量状态切换的情况,从而不会给用户体现出因切换能量状态所带来的系统延迟,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种心跳报文的发送方法的方法流程图;
图2为本发明实施例提供的一种判断是否发送心跳报文方法的方法流程图;
图3为本发明实施例提供的一种心跳间隔评估方法的方法流程图;
图4为本发明实施例提供的一种心跳报文的发送装置的装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
鉴于移动终端的rrc连接状态的耗电特点和tailtime较为短暂的特点,为了简化rrc连接状态变迁对移动终端能耗与网络通讯效率造成的影响,发明人建立一个移动终端的能量模型来描述这种rrc连接状态的变化,即:发明人将移动终端的能量状态分为空闲状态(idle)、半能量状态(fach)、完整能量状态(dch)三种能量状态,分别对应相应的rrc连接状态。rrc连接状态处于idle状态时,移动终端可以认为处于能量状态中的空闲状态,此时由于移动终端无网络交互,移动终端仅需少量的电能即可维持该空闲状态;当rrc连接状态处于fach状态时,移动终端可以认为处于半能量状态下。在半能量状态下,由于移动终端仅能够使用共享信道,且数据传输速率很低,移动终端维持这个状态所消耗的电量大约是维持完整能量状态时的一半;当rrc连接状态处于dch状态时,移动终端可以认为处于完整能量状态下,由于移动终端此时占用专有信道,可以获取最大的带宽传输能力,同时也会消耗更多的电量。
能量状态的切换条件一般是移动终端没有数据传输的时间长度,可以和rrc连接状态改变的tailtime相同。能量状态的切换可以起到高效的电量使用,有效降低了移动终端的充电频率。然而能量状态切换时,尤其是从低耗电量的能量状态切换到高耗电量的能量状态时,同样会造成通信链路的额外延迟(这种延迟来源于rrc状态切换带来的系统延迟)。而且,从越低耗电 量的能量状态切换到高耗电量的能量状态的过程所造成的系统延迟就越长。例如,从半能量状态切换到完整能量状态会对系统造成1.5秒左右的延迟,从空闲状态切换到完整能量状态会对系统造成2秒左右的延迟。这些延迟会对用户带来不好的体验。
而且,能量状态的切换条件中,持续无数据传输的时间是比较短的,很有可能造成用户正在使用移动终端时,例如进行看新闻、看小说等长时间不需要移动终端进行数据交互的功能时,移动终端就已经根据切换条件将能量状态切换到耗电量低的能量状态。切换后,若用户开始操作移动终端,例如翻页、评论等需要移动终端出现数据交互的操作时,会导致所述移动终端将能量状态切换回耗电量高的能量状态。能量状态的切换会直接导致明显的系统延迟,并直接将系统延迟体现给正在对所述移动终端进行操作的用户,例如对操作反应的迟钝等,对用户带来不好的体验。
为了解决这个问题,发明人对传统的心跳报文进行研究。心跳报文主要是用于数据链路的保活,例如,移动终端与通讯基站建立数据连接后,可以实现与其他通信设备之间的远程数据传输、通话等。移动终端在建立了与其他设备的数据连接后,连接链路上并不一定保持时刻都有数据的传输,当长时间没有数据传输时,这条连接链路将处于空闲链路。为了保证空闲链路的有效性、可用性,一般通过持续发送心跳报文进行链路保活。发明人发现,心跳报文对系统资源消耗很少,而且可以形成一定的数据传输,具有将所述心跳报文应用于移动终端,使用心跳报文保活rrc连接状态,也就是相当于使用心跳报文保活移动终端的能量状态。尤其是适用于当移动终端有app处于活跃状态时,对移动终端的能量状态的保活。
但是,传统的心跳报文的发送间隔一般较长,并不适合用于保活能量状态,需要有针对心跳报文保活能量状态的策略。为此,本发明实施例提供了一种心跳报文的发送方法和装置,根据保持所述移动终端处于完整能量状态的预设最小间隔,对所述设定心跳间隔进行评估,从而根据评估结果调整所述设定心跳间隔,并将调整结果作为对应app的设定心跳间隔更新到所述存储单元中,若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的 过程中,将传统的发送心跳报文作为一种形成数据传输的形式,按照经过调整后的设定心跳间隔发送的心跳报文,以确保所述移动终端在满足切换能量状态的时间条件之前,会出现一定的数据传输,从而在所述app处于活跃状态下,所述移动终端的能量状态可以一直保持在所述完整能量状态不变,不会在用户操作时出现能量状态切换的情况,从而不会给用户体现出因切换能量状态所带来的系统延迟,提高了用户体验。
需要注意的是,由于按照所述设定心跳间隔发送心跳报文是在所述app处于活跃状态时,故发送心跳报文的过程中应该时常会出现其他数据传输,例如移动终端发送业务数据。为了节约移动终端的系统资源,在发送心跳报文的过程中,当检测到出现一次发送业务数据的行为时,由于发生业务数据相当于重置了记录无数据传输时间的定时器所记录的时间,和发送心跳报文的功能一样,都起到了对所述移动终端保活能量状态的作用。故可以认为这次业务数据的发送相当于发送了一次心跳报文。从这次业务数据的发送时间开始重新以所述预设发送间隔发送心跳报文,从而减少了所述app处于活跃状态时心跳报文的发送次数,节约了系统资源,降低了发送心跳报文的耗电量。
实施例一
图1本发明实施例提供的一种心跳报文的发送方法的方法流程图,应用于移动终端,所述方法包括:
s101:从存储单元中调取应用app所对应的设定心跳间隔,所述app安装在所述移动终端中。
举例说明,所述存储单元可以为所述移动终端自身的持久存储器中划分出来专用于存储设定心跳间隔的存储区域,也可以是移动终端缓存中用于存储所述设定心跳间隔的专门存储区域。
实施本发明实施例提供的心跳报文保活能量状态策略的执行主体可以是所述移动终端的操作系统或者是所述移动终端中运行的一个应用程序,具体的,所述策略可以由软件承载,或者录入在一段代码或程序中。通过在后台运行该软件、代码或程序来实施所述策略。所述app为与所述策略相关联的app。本发明并不限定这个app的具体类型,例如,可以是用户常用的app 之一。在实施本发明实施例提供的所述策略的过程中,可以根据需求更改与所述策略相关联的app,或者,当与所述策略相关联的app不能运行或从移动终端中移除时,也可以更换其他app与所述策略相关联。但是,一般情况下,在同一时间窗内,所述策略同时只与一个app建立关联关系。在所述策略与不同app关联时,所对应的设定心跳间隔有可能不同,也有可能相同。
需要注意的是,由于所述app在处于前台状态时,可能会有较多的数据交互,若在所述app处于前台状态对所述设定心跳间隔进行评估,可能会受到来自数据传输的干扰,影响到评估的准确性。故在从存储单元中调取app所对应的设定心跳间隔进行评估之前,可以先确定出所述app的状态。
可选的,在s101之前,还包括:
检测所述app的状态,若所述app处于后台状态,执行s101。
这里所述的后台状态可以理解为至少包括两种情况。
第一种情况,所述app处于所述移动终端的后台,且前台没有处于活跃状态的其他app。第二种情况,所述移动终端处于锁屏状态。在所述移动终端进入锁屏状态之前,不论所述app具体是处于前台状态还是后台状态,当所述移动终端进入锁屏状态后,所述app都会进入后台状态。
当所述app处于后台状态时,所述移动终端基本上不会出现什么数据传输,对评估所带来的干扰相对较少,可以得到更为准确的评估结果,从而获取更为准确的调整结果。
需要注意的是,本发明实施例中所述的后台状态,不论是上述的第一种情况还是第二种情况,都需要满足在所述app处于后台状态时,所述app不会保持持续的数据下载。或者说,所述后台状态可以理解为所述移动终端没有数据交互的一种状态。
s102:根据预设最小间隔,对所述设定心跳间隔进行评估,以便根据评估结果调整所述设定心跳间隔,并将调整结果作为对应所述app的设定心跳间隔更新到所述存储单元中,所述预设最小间隔为保持所述移动终端处于完整能量状态的心跳报文发送间隔。
举例说明,所述完整能量状态可以理解为所述移动终端可以稳定保持的一种能量状态,不会因为出现了数据传输等情况而发生能量状态切换的能量 状态。所述完整能量状态可以为本发明实施例中,希望在所述app处于活跃状态时,通过心跳报文保活的能量状态。一般来说,所述完整能量状态是所述移动终端占用dch时所对应的能量状态,即耗电量较大的能量状态。在完整能量状态下,所述移动终端的rrc连接状态处于dch状态。需要注意的是,由于针对不同的运行商或者不同的服务提供商,移动终端的rrc连接状态从dch状态改变到下一级状态(例如fach状态)的时间条件可能有所不同,故所述预设最小间隔可以设置的相对较小(一般小于导致改变rrc连接状态的无数据传输持续时间,或者说tailtime),以使得可以保证在现有所了解的rrc连接状态从dch状态改变到fach状态的各种时间条件下,以所述预设最小间隔发送心跳报文时,所述移动终端可以保持占用dch,所述移动终端的rrc连接状态可以保持dch状态,所述移动终端可以保持所述完整能量状态。
例如,若触发所述移动终端的rrc连接状态从dch状态改变为fach状态的无数据传输持续时间具体为没有数据传输持续5秒,所述预设最小间隔可小于5秒的时间间隔。
通过评估,可以对所述设定心跳间隔进行调整,调整后的设定心跳间隔小于触发所述移动终端的rrc连接状态从dch状态改变为fach状态的无数据传输持续时间。而且通过评估的调整,使得调整后的设定心跳间隔既可以保证以此间隔发送心跳报文不会触发所述rrc连接状态的改变,从而导致移动终端的能量状态发生改变,也可以不过于频繁的发送心态报文,尽量少的消耗系统资源,避免在发送心跳报文上造成额外的耗电。在评估过程中,还可以根据不同的网络质量、通信效果等进行调整,从而达到智能调整设定心跳间隔的能力。将评估完成后的调整结果,或者说对原设定心跳间隔的调整结果更新到所述存储单元中,这样当需要进行心跳报文保活能量状态(或者说保活rrc连接状态)时,可以使用s102得到的评估后的调整结果作为发送心跳报文的间隔。
s103:若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中不会触发所述移动终端能量状态的切换条件,从而所述移动终端的能 量状态保持在所述完整能量状态不变。
举例说明,本发明实施例中所述的心跳报文,可以理解为用于在所述app处于活跃状态时,对所述移动终端能量状态进行保活的心跳报文。
所述活跃状态可以理解为所述app处于前台状态,或者,所述活跃状态也可以理解为所述app处于前台时的一种子状态。在所述活跃状态为所述app处于前台时的一种子状态的情况下,本发明实施例提供一种识别app状态的方式,可选的,所述识别所述app处于活跃状态,包括:
当所述app处于前台状态时,判断预设时间内所述app是否发生业务数据交互,若是,识别所述app处于活跃状态。
也就是说,所述app处于后台,可以明确为处于非活跃状态,所述app处于前台时,若预设时间内所述app未发生业务数据交互,也可以认为所述app处于非活跃状态。若所述app处于前台,且预设时间内所述app发生了业务数据交互,可以认为所述app处于活跃状态。
通过图1所对应实施例可以看出,根据所述保持所述移动终端处于完整能量状态的预设最小间隔对所述设定心跳间隔进行评估,从而根据评估结果调整所述设定心跳间隔,并将调整结果作为对应app的设定心跳间隔更新到所述存储单元中,若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中,将传统的发送心跳报文作为一种形成数据传输的形式,按照经过调整后的设定心跳间隔发送的心跳报文,以确保所述移动终端在满足切换能量状态的时间条件之前,会出现一定的数据传输,从而在所述app处于活跃状态下,所述移动终端的能量状态可以一直保持在所述完整能量状态不变,不会在用户操作时出现能量状态切换的情况,也就是说不会给用户体现出因切换能量状态所带来的系统延迟,提高了用户体验。
需要注意的是,由于按照所述设定心跳间隔发送心跳报文是在所述app处于活跃状态时,故发送心跳报文的过程中应该时常会出现其他数据传输,例如移动终端发送业务数据。为了节约移动终端的系统资源,在发送心跳报文的过程中,当检测到出现一次发送业务数据的行为时,由于发生业务数据相当于重置了能量状态切换的时间,和发送心跳报文的功能一样,都对所述 移动终端起到了保活能量状态的作用。
在图1所对应实施例的基础上,可选的,若识别所述app处于活跃状态,所述以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,如图2所示,包括:
s201:在发送一次心跳报文后,在所述设定心跳间隔指示的时间长度内检测所述移动终端是否发送业务数据;若是,执行s202,若否,执行s203。
s202:停止发送心跳报文;从所述移动终端发送业务数据的时间点开始,在所述设定心跳间隔指示的时间长度内继续检测所述移动终端是否发送业务数据,直到在所述设定心跳间隔指示的时间长度内未检测到所述移动终端发送业务数据。
s203:继续以所述设定心跳间隔发送心跳报文。
举例说明,若所述设定心跳间隔为4秒,发送一次心跳报文后,检测在4秒之内是否有发送业务报文,如果其间出现了一次业务数据的发送,那么从这次发送的时间点开始,继续检测4秒内是否有发送业务报文。例如,在第10秒时发送一次心跳报文1,开始检测4秒内是否有发送业务报文。发现在第12秒时发送了一次业务报文1,发送心跳报文1和业务报文1之间间隔为12-10=2秒,未超过所述设定心跳间隔(4秒),继续从第12秒开始检测4秒。若直到第16秒都未出现发送业务数据,则在第16秒发送一次心跳报文2。若在第15秒又发送了一次业务报文2,发送业务数据1和业务数据2之间间隔为15-12=3秒,未超过所述设定心跳间隔,继续从第15秒开始检测4秒。若直到第19秒都未出现发送业务数据,则在第19秒发送一次心跳报文2。然后,继续从第19秒开始检测4秒内是否有发送业务报文。以此类推。
可见,由于业务数据的发送这一动作,在对移动终端能量状态的保活上的效果,和发送了一次心跳报文相似,故可以将发送业务数据的动作相当于发送心跳报文的动作。可以从这次业务数据的发送时间开始重新以所述预设发送间隔发送心跳报文,从而减少了所述app处于活跃状态时心跳报文的发送次数,节约了系统资源,降低了发送心跳报文的耗电量。
实施例二
在图1所对应实施例的基础上,为了达到如s102中所描述的评估效果,可选的,针对s102的对所述设定心跳间隔的评估,本发明实施例提供了一种评估方式。图3为本发明实施例提供的一种心跳间隔评估方法的方法流程图,如图3所示,包括:
s301:根据所述设定心跳间隔发送心跳报文。
举例说明,这里的所述设定心跳间隔为从所述存储单元中调取的设定心跳间隔。
s302:根据对应心跳报文返回的响应报文,确定出第一响应时间。
举例说明,这里可以只发送一次心跳报文,根据发送心跳报文的时间以及接收到响应报文的时间,确定出第一响应时间。不过考虑到网络质量的波动,为了尽可能确定出能够真实反映网络质量的响应时间,还可以通过以所述设定心跳间隔发送多次心跳报文。
故可选的,s301还可以为:根据所述设定心跳间隔连续发送多次心跳报文。
相应的,s302还可以为:根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第一响应时间。
s303:依据所述预设最小间隔发送心跳报文。
s304:根据对应心跳报文返回的响应报文,确定出第二响应时间。
举例说明,通过所述预设最小间隔发送心跳报文,可以使得所述移动终端的rrc连接状态的连接状态改变为dch状态,在这个连接状态下,网络质量、数据传输速度等相对较好,故从发送心跳报文到接收到返回的响应报文的时间应该相对较短。也就是说,所述第二响应时间可以为所述移动终端占用dch时,发送心跳报文到接收响应报文应该达到的时间。
依据预设最小间隔发送心跳报文s303,可以在执行s301之前执行完成,也可以在执行完s301后再执行。不过,在本发明提供的一种可选的实施例中,在执行根据所述设定心跳间隔发送心跳报文之前,执行依据预设最小间隔发送心跳报文。
需要注意的是,考虑到网络质量的波动,为了尽可能确定出能够真实反映网络质量的响应时间,还可以通过以所述预设最小间隔发送多次心跳报文。
故可选的,所述依据预设最小间隔发送心跳报文,包括:
依据预设最小间隔连续发送多次心跳报文;
根据对应心跳报文返回的响应报文,确定出第二响应时间,包括:
根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第二响应时间。
s305:比对所述第一响应时间和第二响应时间之间的差值是否大于预设阈值,所述预设阈值根据所述切换条件确定。
若所述差值大于所述预设阈值,确定评估结果为不好。
若所述差值小于所述预设阈值,确定评估结果为好。
举例说明,当所述第一响应时间与所述第二响应时间差距较大时(一般情况下是所述第一响应时间大于或远大于所述第二响应时间),可以确定在使用所述设定心跳间隔发送心跳报文时,所述设定心跳间隔较大,未能将所述移动终端的rrc连接状态保持在dch状态,而有可能使得所述rrc连接状态改变为fach状态等。也就是说,在用所述设定心跳间隔发送心跳报文时,所述移动终端未能占用dch,而是占用其他低级别的通道,例如fach,这类低级别的通道的网络质量或网络响应速度相对较慢,另一方面所述心跳报文有可能触发所述移动终端的rrc连接状态由fach升级为dch状态,从而引入额外的系统延迟,导致发送心跳报文到接收到返回的响应报文的时间(即所述第一响应时间)较大。故,当所述第一响应时间越接近所述第二响应时间,可以认为,以所述设定心跳间隔发送心跳报文越可能将所述移动终端的rrc连接状态保活在dch状态,也就是说越有可能保活所述移动终端的完整能量状态。
通过s305,可以准确的根据所述第二响应时间,确定出针对所述设定心跳间隔的评估结果。由此可以准确的根据评估结果调整所述设定心跳间隔。
可选的,本发明实施例还给出了一种详细的根据评估结果调整所述设定心跳间隔的过程,如图3所示:
s306:根据所述切换条件,评估所述第一响应时间。若相邻的两次评估过程的评估结果均为不好,执行s307;若相邻的两次评估过程的评估结果均为好,执行s308;若相邻的两次评估过程的评估结果从好变为不好,执行s309。
如s305中所描述的,所述预设阈值根据所述移动终端占用dch发送心跳报文的响应时间和占用非dch发送心跳报文的响应时间之差确定,若第一响应时间和第二响应时间的所述差值超过了这个预设阈值,可以认为使用所述设定心跳间隔发送心跳报文时,无法保持完整能量状态不改变,难以起到保活移动终端能量状态的功能,故需要调小发送心跳报文的发送间隔。若所述差值未超过这个预设阈值,可以认为使用所述设定心跳间隔发送心跳报文时,能够保持完整能量状态不改变,可以有效起到保活移动终端能量状态的功能,这时可以考虑到节能的需求,尝试增大发送心跳报文的间隔。
s307:对所述设定心跳间隔进行调整,将所述设定心跳间隔调小第一时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估。
s308:对所述设定心跳间隔进行调整,将所述设定心跳间隔调大第二时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估。
举例说明,s307和s308属于并列的调整步骤,不限定执行的先后关系,仅根据相邻的两次评估过程的评估结果作为触发执行的条件。
若相邻的两次评估过程的评估结果均为不好,可以确定在目前的网络质量下,设定心跳间隔将很难实现对移动终端能量状态的保活,需要缩短发送心跳报文的间隔,以确保实现保活移动终端能量状态的能力。
若相邻的两次评估过程的评估结果均为好,证明这时的设定心跳间隔可以有效的满足保活移动终端能量状态的需求,可以考虑发送间隔是否可以再大一点,进一步节约发送心跳报文带来的耗电量。
其中,所述第一时长和第二时长可以相同,也可以依据不同的具体精度要求,将所述第一时长和第二时长设置为不同。
s309:将这两次评估过程中评估结果为好的评估过程确定为目标评估过程,将所述目标评估过程中所评估的设定心跳间隔作为目标间隔,并暂停对所述设定心跳间隔进行评估。
举例说明,通过评估结果调整设定心跳间隔,可以根据评估结果确定出设定心跳间隔的边界,这里所述的设定心跳间隔的边界可以理解为既可以实 现保活移动终端能量状态的功能,又能最大程度上的减少发送心跳报文耗电的心跳发送间隔。
例如,未评估前的设定心跳间隔为4秒。第一次、第二次的评估,评估结果均为好。将设定心跳间隔调大第二时长,假设是0.4秒,调整后的设定心跳间隔为4.4秒。对调整为4.4秒的设定系统间隔进行第三次评估,结果第三次评估过程的评估结果依然为好,由于相邻的两次评估过程(第二次和第三次)的评估结果相同且均为好,再一次将设定心跳间隔调大第二时长,从4.4秒调整到4.8秒。对调整为4.8秒的设定系统间隔进行第四次评估,结果第四次评估过程的评估结果为不好,且相邻的两次评估过程(第三次和第四次)的评估结果是从好变为不好,故将第三次评估过程确定为目标评估过程,将第三次评估过程中所评估的设定心跳间隔(4.4秒)作为目标间隔。
s310:将所述目标间隔更新到所述存储单元中,作为所述app对应的设定心跳间隔。
确定出目标间隔后,可以更新原来保存在所述存储单元中的设定心跳间隔(对应于所述app的)。以上述的例子,原先在所述存储单元中存储的对应于所述app的设定心跳间隔为4秒,更新后,所述存储单元中存储的对应于所述app的设定心跳间隔为4.4秒。
由上述实施例可以看出,通过对设定心跳间隔进行评估,可以根据评估结果将设定心跳间隔调整到相对于网络状态为最优的目标间隔,将所述目标间隔作为设定心跳间隔发送心跳报文时,既可以实现在所述app处于活跃状态时保活移动终端能量状态的功能,又能最大程度上的减少发送心跳报文耗电,提高了用户体验。
实施例三
图4为本发明实施例提供的一种心跳报文的发送装置的装置结构图,应用于移动终端,所述装置包括:
调取单元401,用于从存储单元中调取app所对应的设定心跳间隔,所述app安装在所述移动终端中;
评估单元402,用于根据预设最小间隔,对所述设定心跳间隔进行评估, 以便根据评估结果调整所述设定心跳间隔,并将调整结果作为对应所述app的设定心跳间隔更新到所述存储单元中,所述预设最小间隔为保持所述移动终端处于完整能量状态的心跳报文发送间隔;若识别所述app处于活跃状态,触发心跳发送单元403;
心跳发送单元403,用于以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中不会触发所述移动终端能量状态的切换条件,从而所述移动终端的能量状态保持在所述完整能量状态不变。
可见,根据保持所述移动终端处于完整能量状态的预设最小间隔,对所述设定心跳间隔进行评估,从而根据评估结果调整所述设定心跳间隔,并将调整结果作为对应app的设定心跳间隔更新到所述存储单元中,若识别所述app处于活跃状态,以从所述存储单元中获取的所述设定心跳间隔发送心跳报文,使得所述移动终端在所述app处于活跃状态的过程中,将传统的发送心跳报文作为一种形成数据传输的形式,按照经过调整后的设定心跳间隔发送的心跳报文,以确保所述移动终端在满足切换能量状态的时间条件之前,会出现一定的数据传输,从而在所述app处于活跃状态下,所述移动终端的能量状态可以一直保持在所述完整能量状态不变,不会在用户操作时出现能量状态切换的情况,从而不会给用户体现出因切换能量状态所带来的系统延迟,提高了用户体验。
可选的,所述评估单元包括:
第一发送子单元,用于根据所述设定心跳间隔发送心跳报文;
第一确定子单元,用于根据对应心跳报文返回的响应报文,确定出第一响应时间;
第二发送子单元,用于依据所述预设最小间隔发送心跳报文;
第二确定子单元,用于根据对应心跳报文返回的响应报文,确定出第二响应时间;
比对子单元,用于比对所述第一响应时间和第二响应时间之间的差值是否大于预设阈值;
评估子单元,用于若所述差值大于所述预设阈值,确定评估结果为不好, 若所述差值小于所述预设阈值,确定评估结果为好。
可选的,还包括调整单元:
若相邻的两次评估过程的评估结果均为不好,所述调整单元,用于对所述设定心跳间隔进行调整,将所述设定心跳间隔调小第一时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果均为好,所述调整单元还用于对所述设定心跳间隔进行调整,将所述设定心跳间隔调大第二时长;将调整后的设定心跳间隔作为所述设定心跳间隔,重新执行对所述设定心跳间隔进行评估;
若相邻的两次评估过程的评估结果从好变为不好,所述调整单元还用于将这两次评估过程中评估结果为好的评估过程确定为目标评估过程,将所述目标评估过程中所评估的设定心跳间隔作为目标间隔,并暂停对所述设定心跳间隔进行评估;
所述调整单元还用于将所述目标间隔更新到所述存储单元中,作为所述app对应的设定心跳间隔。
可选的,
所述第一发送子单元还用于根据所述设定心跳间隔连续发送多次心跳报文;
所述第一确定子单元还用于根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第一响应时间;
所述第二发送子单元还用于依据预设最小间隔连续发送多次心跳报文;
所述第二确定子单元还用于根据对应心跳报文返回的每一次响应报文,确定出一个响应时间;计算多个响应时间的均值,得到所述第二响应时间。
可选的,还包括检测单元:
所述检测单元,用于在所述心跳发送单元发送一次心跳报文后,在所述设定心跳间隔指示的时间长度内检测所述移动终端是否发送业务数据;
若是,触发所述心跳发送单元停止发送心跳报文;
所述检测单元还用于从所述移动终端发送业务数据的时间点开始,在所述设定心跳间隔指示的时间长度内继续检测所述移动终端是否发送业务数 据,直到在所述设定心跳间隔指示的时间长度内未检测到所述移动终端发送业务数据时,触发所述心跳发送单元继续以所述设定心跳间隔发送心跳报文。
可选的,还包括状态判断单元:
所述状态判断单元,用于在触发所述调取单元之前检测所述app的状态,若所述app处于后台状态,触发所述调取单元。
可选的,所述评估单元还用于当所述app处于前台状态时,判断预设时间内所述app是否发生业务数据交互,若是,识别所述app处于活跃状态。
由上述实施例可以看出,通过对设定心跳间隔进行评估,可以根据评估结果将设定心跳间隔调整到相对于网络状态为最优的目标间隔,将所述目标间隔作为设定心跳间隔发送心跳报文时,既可以实现在所述app处于活跃状态时保活移动终端能量状态的功能,又能最大程度上的减少发送心跳报文耗电,提高了用户体验。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。