手机应用耗电量检测方法及装置与流程

文档序号:14179247阅读:302来源:国知局
本发明涉及耗电量检测
技术领域
:,特别涉及一种手机应用耗电量检测方法及装置。
背景技术
::随着智能手机的普及,手机硬件处理能力越来越强,支持的软件应用越来越多,而为手机供电的电池优化技术相对飞速发展的通讯科技而言稍显落后,智能手机的待机时间已经成为手机发展的短板,手机显示屏、多核处理器、多样化的无线连接技术等已不可避免的消耗了手机电量,移动应用如果能在耗电量上做出优化,无疑极大的提高了市场竞争力。为了优化和改善移动应用对手机的电量消耗,需要先准确地获取应用的耗电量。在对手机应用耗电量检测方法的研究和实践过程中,不论是app开发者还是专业的app测试机构,目前对app耗电量的测试通常局限于百分比的值,精确度比较低,精确度高的app耗电量测试目前还是通过外接支流电压计完成,效率较低,无法完成批量处理。有些测试平台通过电池温度的值推导耗电量,可信度不高。下面对上述这三种app耗电量检测的方法进行详细介绍。第一,百分比的值法:通过调用手机操作系统api接口获取电池电量状态,以android操作系统为例,精确度相对高的app的耗电量测试方法如下:从batterystats类中获取该app调用手机各部件的运行时间,包括cpu耗电量、wakelock耗电量、移动数据耗电量、wifi耗电量及各种传感器耗电量,从power_profile.xml中获取app运行期间访问各部件的电流数值,然后取一固定的手机电池供电电压值,比如4.2v(电池充满电时),app运行期间访问某一部件的耗电量=电压*各部件的电流*访问该部件的时间,最后将app运行期间访问各部件的耗电量做累加。该方法存在如下缺陷:1、操作复杂:耗电量测试需要编写复杂的测试脚本,对测试工程师的要求较高,需要熟悉手机操作系统内部函数和接口调用;2、维护成本高:由于android系统的开放性,内置函数和接口功能可能会发生变化,脚本维护成本较高;3、复用性低:该方案受制于手机硬件环境,即使android版本相同,如果集成到不同厂商的手机上,也会导致app访问手机硬件的情况发生变化,通常需要针对不同的手机版本定制不同的测试脚本,复用性不高。第二,通过硬件方法实现,方法如下:卸掉手机电池,通过外部电源供电,在外部电源与手机之间连接功耗仪,测量app运行后功耗仪的功耗增量。该方法存在如下缺陷:1、费用高:单一app的耗电量比较小,因此需要使用精度高的功耗仪进行测试,费用较高;2、效率低:使用硬件方式测量app耗电量,每次需要手动调试、记录测量值,无法进行批量测试,效率较低。第三,有些大型自动化测试平台还会借助电池温度的值推导耗电量,该方法为:在手机电池附近放置一个红外温度感应仪,运行app的过程中实时获取电池温度,根据热能与功耗的一定关系,推导出app耗电量。该方法存在如下缺陷:1、准确度低:无法精确确定温度与电池耗电量的关联值,因此通过温度确定的耗电量可信度不高;2、依赖性强:对环境温度、温度测量仪的精确度都有很大的依赖性。技术实现要素:本发明实施例提供了一种手机应用耗电量检测方法,用以提高手机应用耗电量检测的精确度和效率,降低耗电量检测成本,该方法包括:通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑;根据所述第一电量值和第二电量值,确定所述待测应用的耗电量。本发明实施例还提供了一种手机应用耗电量检测装置,用以提高手机应用耗电量检测的精确度和效率,该装置包括:通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑;根据所述第一电量值和第二电量值,确定所述待测应用的耗电量。本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述手机应用耗电量检测方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述手机应用耗电量检测方法的计算机程序。与现有手机耗电量检测方案相比较,本发明实施例提供的技术方案:首先,与现有借助电池温度的值推导耗电量进行手机应用耗电量检测的方案相比较,本发明实施例提供的技术方案通过usb连接满电量的手机与电脑,在取消充电模式下,精确地确定手机未安装待测应用前,运行第一预设时间段后的第一电量值,以及获取手机安装待测应用后,运行第二预设时间段后的第二电量值,进而根据精确的第一电量值和第二电量值,确定的待测应用的耗电量的精确度高。其次,与现有百分比的值法和硬件方法进行手机应用耗电量检测的方案相比较,本发明实施例提供的技术方案无需如百分比的值法编写复杂的测试脚本,无需如硬件方法进行手动调试、记录测量值,仅仅通过usb连接满电量的手机与电脑获取第一电量值和第二电量值即可,提高了耗电量检测的效率,同时也降低了检测成本。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:图1是本发明实施例中手机应用耗电量检测的流程示意图;图2是本发明实施例中手机应用耗电量检测装置的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。由于发明人发现了现有技术存在的技术问题,提出了一种app耗电量测试方法,该方法可实现全程自动化处理,适用于android和ios平台,扩展性强,能够精确的实现app耗电量的测试,并且可以批量完成,精确度和自动化程度都远远高于现有的测试方法。下面对该app耗电量检测方法详细介绍如下。图1是本发明实施例中手机应用耗电量检测的流程示意图,如图1所示,该方法包括如下步骤:步骤101:通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;步骤102:通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑;步骤103:根据所述第一电量值和第二电量值,确定所述待测应用的耗电量。在一个实施例中,通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑,可以包括:通过usb连接满电量、恢复出厂设置的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑,包括:通过usb连接满电量、恢复出厂设置的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑。具体实施时,第一电量值与第二电量值获取之前对手机做恢复出厂设置,可以有效地去除手机中其它应用程序对待测应用程序的耗电量干扰,有效地提高耗电量测试精度。下面举一例进行说明单机app耗电量获取方法,以便于理解本发明如何实施:以下所指“手机”均为待测试手机,包括android和苹果手机。(1)对手机做恢复出厂设置并充至满电状态。(2)通过usb连接手机与pc(苹果手机连接mac机),取消充电模式。(3)取消充电模式后保持手机待机运行一段时间,设为t1(第一预设时间段)。(4)通过手机模拟器访问手机设置中的电池电量,读取当前电量值,记为e1i(第一电量值),并将该值存储到pc中(苹果手机的电量值存储至与其相连的mac机中)。(5)对手机做恢复出厂设置,安装待测app软件到该手机上,并再次将该手机充满电(为后期实现自动化批处理,将通过usb完成充电至满电状态,具体方法为:将usb连接模式改为充电模式,待充满电后,再将连接模式改回之前的状态)。(6)启动待测app,同样使其运转时间t2(第二预设时间段)。(7)记录手机电池电量(方法同步骤4)至与其相连的电脑中,记为e2i(第二电量值)。(8)通过电脑自动计算e1i-e2i,该差值即为该app在该款手机上的运转的耗电量值。在一个实施例中,上述手机应用耗电量检测方法还可以包括:所述电脑同时存储多个手机的不同待测应用的耗电量检测结果;定时将电脑同时存储的多个手机的不同待测应用的耗电量检测结果上传至服务器端。具体实施时,可以同时连接多个手机至电脑,就可以集群式进行手机应用的耗电量检测,并定时将电脑同时存储的多个手机的不同待测应用的耗电量检测结果上传至服务器端,服务端数据库实现对数据的整合处理,如,对比分析不同型号app耗电量,同款手机不同android版本下app的耗电量等。在对此方法的研究和实践过程中,发明人还发现:由于手机平台的差异性,android和ios上app耗电量测试很难集成到一起完成,实现跨平台集群式手机应用的耗电量检测。由于发明人考虑到此技术问题,提出如下技术方案:在一个实施例中,所述电脑可以包括pc机和mac机;所述pc机可以存储多个android手机的不同待测应用的耗电量检测结果;所述mac机可以存储多个ios手机的不同待测应用的耗电量检测结果;所述手机应用耗电量检测方法还可以包括:定时将pc机上存储的多个android手机的不同待测应用的耗电量检测结果和mac机存储的多个ios手机的不同待测应用的耗电量检测结果上传至服务器端。在一个实施例中,通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑,可以包括:多次通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的多个第一电量值,并存储至电脑;通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑,包括:多次通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的多个第二电量值,并存储至电脑;根据所述第一电量值和第二电量值,确定所述待测应用的耗电量,可以包括:根据所述多个第一电量值的平均值和多个第二电量值的平均值,确定所述待测应用的耗电量。具体实施时,为了提高耗电量检测的精确度,采取了如上多次测试获取多个第一电量值和多个第二电量值,根据所述多个第一电量值的平均值和多个第二电量值的平均值,确定所述待测应用的耗电量的方案,并且为减少服务器端的数据处理压力,需要多次测量取平均值的,要在本地计算得出平均值后,作为等待上传的最终数据。由于iosapp自成体系,其开发语言(objective-c)与androidapp开发语言(python,java,c/c++)无法实现直接互通,要集成完成两种app的耗电量测试需要尽可能的避免代码的直接交互。本专利给出的跨平台的耗电量测试方法仅需在mac或pc端访问远程服务器端,定时上传耗电量数值到指定数据库中,整合工作由服务器端完成,避免了mac与pc的数据直接交互。实现跨平台的数据交互后,通过优化数据采集、存取方式等实现集群式的移动应用耗电量检测。具体方法如下:(1)对所有测试样机(手机)执行单机app耗电量获取方法的步骤(1)-(4),得到不同型号手机下app耗电量值,存储到本地数据库中,其中每个厂商建一个库,比如华为手机db_huawei,每个型号的手机创建两个表table_huawei_mate9_0、table_huawei_mate9_1,一个表中记录基准值e1i,另一个表中记录实时测得的app耗电量e2i,多次测量值以记录(行)形式往表中添加。基准值一旦确定,通常短时间内不用更改,如果出现电池相关问题需要重新获取基准值(可以为第一电量值)时,也可以选择在测试任务之外执行,即提高了数据处理的时效性,又大大降低了操作的复杂度。此外,为减少服务器端的数据处理压力,需要多次测量取平均值的,要在本地计算得出平均值后,作为等待上传的最终数据。(2)将mac机和pc上存储的耗电量数据(本地数据库)定时自动上传至服务器的指定数据库,当测试量较大时,建议选择性能高的服务器,测试量较小时,可以指定一台测试pc作服务器以减少开销。(3)服务器端数据库实现对数据的整合处理,如,对比分析不同型号app耗电量,同款手机不同android版本下app的耗电量等。基于同一发明构思,本发明实施例中还提供了一种手机应用耗电量检测装置,如下面的实施例。由于手机应用耗电量检测装置解决问题的原理与手机应用耗电量检测方法相似,因此手机应用耗电量检测装置的实施可以参考手机应用耗电量检测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是本发明实施例中手机应用耗电量检测的结构示意图,如图2所示,该装置包括:第一电量值获取单元02,用于通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;第二电量值获取单元04,通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑;耗电量确定单元06,用于根据所述第一电量值和第二电量值,确定所述待测应用的耗电量。在一个实施例中,所述电脑可以包括pc机和mac机;所述pc机可以存储多个android手机的不同待测应用的耗电量检测结果;所述mac机可以存储多个ios手机的不同待测应用的耗电量检测结果;所述手机应用耗电量检测装置还可以包括:定时上报单元,用于定时将pc机上存储的多个android手机的不同待测应用的耗电量检测结果和mac机存储的多个ios手机的不同待测应用的耗电量检测结果上传至服务器端。在一个实施例中,所述第一电量值获取单元具体可以用于:多次通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的多个第一电量值,并存储至电脑;所述第二电量值获取单元具体用于:多次通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的多个第二电量值,并存储至电脑;所述耗电量确定单元具体用于:根据所述多个第一电量值的平均值和多个第二电量值的平均值,确定所述待测应用的耗电量。本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述手机应用耗电量检测方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述手机应用耗电量检测方法的计算机程序。上述技术方案的可扩展性主要体现在:(1)部署方式:该方案涉及的技术主要是数据库的相关操作,既可以部署在本地,又可以扩展部署在云平台的不同服务节点上,也就是测试机可以分布在不同的地域,有效地提高了测试地点选择的灵活性;(2)测试时间:数据采集和上传时间可以灵活分离,有效地避免数据拥堵,提高测试效率。本发明实施提供的技术方案的有益技术效果为:首先,本发明实施例提供的技术方案通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机未安装待测应用前,运行第一预设时间段后的第一电量值,并存储至电脑;通过usb连接满电量的手机与电脑,在取消充电模式下,获取手机安装待测应用后,运行第二预设时间段后的第二电量值,并存储至电脑;根据第一电量值和第二电量值,确定待测应用的耗电量,实现了快速检测手机应用耗电量检测,提高了测试的精确度。其次,本发明实施例提供的技术方案通过本专利给出的跨平台的耗电量测试方法仅需在mac或pc端访问远程服务器端,定时上传耗电量数值到指定数据库中,整合工作由服务器端完成,避免了mac与pc的数据直接交互。实现跨平台的数据交互后,通过优化数据采集、存取方式等实现集群式的移动应用耗电量检测。显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1