一种移动应用的功耗检测方法及系统与流程

文档序号:15981462发布日期:2018-11-17 00:23阅读:193来源:国知局

本发明涉及一种功耗检测方法,尤其涉及一种移动应用的功耗检测方法,并涉及采用了该移动应用的功耗检测方法的功耗检测系统。

背景技术

近十几年,移动设备的用户数量的增长是爆炸式的。在2014年初,智能移动设备以17亿台的市场占有量超过了台式和便携式电脑;到2017年,智能移动设备的市场占有量超过了19亿台。伴随着移动设备的市场占有量越来越高,人们对电子设备的使用习惯也发生了变化,即使移动设备并没有完全取代其他电子设备,但是用户花在移动设备上的时间越来越多,到2015年,移动设备的使用时间已经超过了其他设备的总和。

但是,移动设备的电池电量非常有限,低功耗已经是移动应用的最重要设计指标之一,在大部分情况下,正常使用的智能手机,续航时间却很难超过24小时。我们随机抽取了89个高质量移动应用,发现超过三分之一的应用存在严重的功耗问题;这些功耗问题可以在几小时内将电池消耗殆尽,很多用户甚至因此决定永久不再使用这些应用了。

目前大部分关于移动设备的功耗优化的研究都是专注于单个部件,其实,虽然各个硬件部件也在耗电,但移动应用通过软件控制硬件,因此,如果能够做到软件优化就可以节约50%到80%的整体电能,这是单个硬件优化难以达到的效果,所以,如果能很好地发现移动应用的功耗问题,其实是未来修复功耗问题的根本先决条件。



技术实现要素:

本发明所要解决的技术问题是需要提供一种能够更加有效地检测出移动应用是否存在功耗问题的功耗检测方法;并进一步提供采用了该移动应用的功耗检测方法的功耗检测系统。

对此,本发明提供一种移动应用的功耗检测方法,包括以下步骤:

步骤s1,生成测试输入和运行环境参数;

步骤s2,在所述测试输入和运行环境参数下运行移动应用,同时收集所述移动应用在所述测试输入和运行环境参数下的功耗信息;

步骤s3,分析功耗信息以识别是否存在功耗问题;

其中,所述步骤s1中,所述测试输入和运行环境参数为无线信号被屏蔽状态下的参数;所述无线信号被屏蔽的状态包括网络故障状态和飞行模式状态。

本发明的进一步改进在于,所述步骤s1中,通过随机或是问题触发模式生成测试输入和运行环境参数。

本发明的进一步改进在于,通过自动生成随机的用户输入序列来生成测试输入和运行环境参数,所述用户输入序列包括触屏和划屏所对应的输入序列。

本发明的进一步改进在于,所述问题触发模式包括旅行定位后台运行触发模式、浏览器后台运行触发模式和多媒体播放故障触发模式中的至少一种。

本发明的进一步改进在于,所述步骤s3包括以下子步骤:

步骤s301,分析所述移动应用在所述测试输入和运行环境参数下的功耗信息,并判断是否存在功耗问题,若否则返回步骤s1,若是则跳转至步骤s302;

步骤s302,记录所述功耗问题,并分析和判断所述功耗问题是否属于新的问题触发模式,若否则返回步骤s1,若是则跳转至步骤s303;

步骤s303,将所述功耗问题记录至所述问题触发模式中。

本发明的进一步改进在于,所述步骤s301中,分析所述移动应用在所述测试输入和运行环境参数下的功耗信息包括分析锁屏状态阶段、开启屏幕阶段、应用运行阶段、置于后台阶段以及息屏待机状态阶段共五个阶段的功耗信息,然后通过判断所述五个阶段的功耗信息是否分别满足预设功耗范围,进而判断是否存在功耗问题。

本发明的进一步改进在于,所述预设功耗范围设置为所述移动应用的测试用例的耗电正态分布,通过判断所述五个阶段的功耗信息是否与所述耗电正态分布相符合,若否则判断为存在前台运行的功耗问题。

本发明的进一步改进在于,通过分析所述开启屏幕阶段的平均功耗和所述置于后台阶段的平均功耗之间的关系来判断是否存在后台运行的功耗问题,若所述置于后台阶段的平均功耗比所述开启屏幕阶段的平均功耗高40%以上,则判定为存在后台运行的功耗问题。

本发明的进一步改进在于,通过分析所述息屏待机状态阶段的平均功耗和所述锁屏状态阶段的平均功耗之间的关系来判断是否存在后台运行的功耗问题,若所述息屏待机状态阶段的平均功耗比所述锁屏状态阶段的平均功耗高50%以上,则判定为所述移动应用存在无睡眠的功耗问题。

本发明还提供一种移动应用的功耗检测系统,采用了如上所述的移动应用的功耗检测方法。

与现有技术相比,本发明的有益效果在于:通过生成所述测试输入和运行环境参数进而模拟出网络部件出现故障等特殊的运行环境,进而在这种特殊的运行环境下运行和测试移动应用,能够发现更多的隐藏较深的功耗问题;经测试发现,本发明所检测出来的84%的功耗问题是现有技术所没有检测出来的,而修复这些功耗问题,可以将手机等智能终端的电池续航时间延长至大约为现有技术的两倍左右。

附图说明

图1是本发明一种实施例的工作流程示意图;

图2是本发明一种实施例分析移动应用共五个阶段的功耗信息的示意图。

具体实施方式

下面结合附图,对本发明的较优的实施例作进一步的详细说明。

如图1所示,本例提供一种移动应用的功耗检测方法,包括以下步骤:

步骤s1,生成测试输入和运行环境参数;

步骤s2,在所述测试输入和运行环境参数下运行移动应用,同时收集所述移动应用在所述测试输入和运行环境参数下的功耗信息;

步骤s3,分析功耗信息以识别是否存在功耗问题;

其中,所述步骤s1中,所述测试输入和运行环境参数为无线信号被屏蔽状态下的参数;所述无线信号被屏蔽的状态包括网络故障状态和飞行模式状态。

申请人通过在手机的应用市场随机选择了89个移动应用,并阅读了它们的开发文档,发现94.8%的功耗问题都是在特殊运行环境下引发的,比如网络部件出现故障的情况。即,在特殊环境下,能够更有效地检测出移动应用的功耗问题。本例所述步骤s1中,通过随机或是问题触发模式生成测试输入和运行环境参数。

本例在所述步骤s1和步骤s2的数据采集阶段,对移动应用施加压力测试,即通过大量的测试用例去测试目标的移动应用。对于每一个测试用例,其测试输入以及运行环境都是不同的。这些测试输入和运行环境,可以是随机产生的,或者是根据所述问题触发模式而生成的,具体如下所述。

本例使用了monkey来自动生成随机的用户输入序列,所述monkey是一个google公司自己开发的android应用测试工具。用户输入序列包括触屏和划屏所分别对应的序列。同时,本例还设计了两种的特殊运行环境,分别为网络故障状态(networkfail)和飞行模式状态(flightmode)。在网络故障状态(networkfail)运行环境中,无线网络信号都极弱,数据包的传输延迟451ms,下载速度21kb/s;而在正常运行环境中,数据包的传输延迟为36ms,下载速度为3.2mb/s。因此,本例通过将手机等智能移动终端放置在无线信号屏蔽室中实现测试,进而能够在网络故障状态(networkfail)和飞行模式状态(flightmode)的运行环境中运行和测试,网络部件在软件层被关闭。

也就是说,本例可以通过自动生成随机的用户输入序列来生成测试输入和运行环境参数,所述用户输入序列包括触屏和划屏所对应的输入序列。

本例所述问题触发模式包括旅行定位后台运行触发模式、浏览器后台运行触发模式和多媒体播放故障触发模式中的至少一种。其中,所述旅行定位后台运行触发模式的实现包括以下步骤:在移动应用中开启gps部件,将移动应用置于后台运行,然后使得屏幕自动熄灭。所述浏览器后台运行触发模式的实现包括以下步骤:打开有flashplug-in的网页,将浏览器置于后台运行;即网页要求是有flash插件程序的。所述多媒体播放故障触发模式的实现包括以下条件:在播放流媒体的时候,出现网络故障。

本例所述问题触发模式是指可以触发功耗问题的常见测试输入和运行环境参数。比如对于流媒体应用,在流媒体播放时,网络突然出现故障,这种情况(问题触发模式)就很容易触发功耗问题。

需要特别指出的是,本例所述运行环境参数,是指应用运行时的特殊运行环境,包括了wifi和蜂窝网络的信号极弱的情况、gps信号极弱的情况、移动设备里wifi和蜂窝网络部件出现故障以及gps部件出现故障等情况等等,即为无线信号被屏蔽状态下的参数。

如图1所示,本例所述步骤s3包括以下子步骤:

步骤s301,分析所述移动应用在所述测试输入和运行环境参数下的功耗信息,并判断是否存在功耗问题,若否则返回步骤s1,若是则跳转至步骤s302;

步骤s302,记录所述功耗问题,并分析和判断所述功耗问题是否属于新的问题触发模式,若否则返回步骤s1,若是则跳转至步骤s303;

步骤s303,将所述功耗问题记录至所述问题触发模式中。

本例所述问题触发模式是指,有可能触发功耗问题的过程,包括旅行定位后台运行触发模式、浏览器后台运行触发模式和多媒体播放故障触发模式中的至少一种。对于具体的移动应用,本例设计出具体的输入序列以施加相应的运行环境来实现相应的问题触发模式。

判断为问题触发模式的标准是:该问题触发模式在测试中已经触发过一个或者多个功耗问题。这一点保证了该问题触发模式比一般情况更容易触发功耗问题,因为它已经触发过一个或者多个功耗问题。而且该问题触发模式是可以在测试用例中实现的,因为测试用例是基于用户输入以及运行环境的,对于那些需要修改源代码才可以触发的功耗问题,本例的测试用例是覆盖不到的。

当确定了测试输入和运行环境之后,本例将在该运行环境下以该输入序列去运行应用软件。在测试过程中,全程使用功耗检测仪实时记录设备的功耗信息。

本例所述步骤s3为数据分析阶段的步骤,在该阶段,本例将通过分析功耗信息,确定该用例是不是存在功耗问题。如果存在功耗问题,就将该功耗问题记录下来,并分析该问题是不是由新的问题触发模式触发的;如果是由新的问题触发模式所触发的该功耗问题,就记录下该问题触发模式,记录的内容包括了触发该功耗问题所需的用户输入信息以及运行环境信息;如果没有识别出功耗问题或者不是由新的“问题触发模式”触发的问题,就重启整个检测流程。

如果在所述步骤s3中没有识别出功耗问题或者不是由新的问题触发模式所触发的问题,优选为自动重启整个检测流程,即返回步骤s1,便于实时监测移动应用的运行状态。

如图2所示,本例所述步骤s301中,分析所述移动应用在所述测试输入和运行环境参数下的功耗信息包括分析锁屏状态阶段(pre-off)、开启屏幕阶段(idle)、应用运行阶段(execution)、置于后台阶段(background)以及息屏待机状态阶段(screen-off)共五个阶段的功耗信息,然后通过判断所述五个阶段的功耗信息是否分别满足预设功耗范围,进而判断是否存在功耗问题。

本例所述锁屏状态阶段也称pre-off,是指手机处于锁屏状态的阶段。当用户开启屏幕时,手机进入idle阶段,即开启屏幕阶段。当用户打开目标应用并在相应的运行环境下以相应的用户输入运行该应用时,便进入execution阶段,即应用运行阶段。在execution阶段后,我们通过输入“home”键将应用置于后台,此时,测试用例进入了background阶段,即置于后台阶段。当屏幕经过一段待机状态,自动息屏,息屏后用例进入最后一个阶段,screen-off阶段,即息屏待机状态阶段。

本例把测试用例分为五个阶段是为了帮助我们识别出三类功耗问题:前台运行问题、后台运行问题和无睡眠问题。

为了识别出前台运行问题,本例把每个应用的所有测试用例的耗电量看作正态分布,将大于平均耗电量两个标准差的测试用例标注为可能存在功耗问题的用例。最后,本例通过分析这些测试用例,确定他们是否真的有功耗问题。

也就是说,所述预设功耗范围设置为所述移动应用的测试用例的耗电正态分布,通过判断所述五个阶段的功耗信息是否与所述耗电正态分布相符合,若否则判断为存在前台运行的功耗问题。

本例通过分析所述开启屏幕阶段的平均功耗和所述置于后台阶段的平均功耗之间的关系来判断是否存在后台运行的功耗问题,若所述置于后台阶段的平均功耗比所述开启屏幕阶段的平均功耗高40%以上,则判定为存在后台运行的功耗问题。在实际应用中,40%这个数值可以根据客户的需求进行适应性调整,比如调整为用户自定义设置的第一功耗阈值,当所述置于后台阶段的平均功耗比所述开启屏幕阶段的平均功耗高达第一功耗阈值,则判定为存在后台运行的功耗问题。

本例通过分析所述息屏待机状态阶段的平均功耗和所述锁屏状态阶段的平均功耗之间的关系来判断是否存在后台运行的功耗问题,若所述息屏待机状态阶段的平均功耗比所述锁屏状态阶段的平均功耗高50%以上,则判定为所述移动应用存在无睡眠的功耗问题。在实际应用中,50%这个数值可以根据客户的需求进行适应性调整,比如调整为用户自定义设置的第二功耗阈值,当所述息屏待机状态阶段的平均功耗比所述锁屏状态阶段的平均功耗高达第二功耗阈值,则判定为存在无睡眠的功耗问题。

本例还提供一种移动应用的功耗检测系统,采用了如上所述的移动应用的功耗检测方法。

综上,本例通过生成所述测试输入和运行环境参数进而模拟出网络部件出现故障等特殊的运行环境,进而在这种特殊的运行环境下运行和测试移动应用,能够发现更多的隐藏较深的功耗问题;经测试发现,本发明所检测出来的84%的功耗问题是现有技术所没有检测出来的,而修复这些功耗问题,可以将手机等智能终端的电池续航时间延长至大约为现有技术的两倍左右。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1