检测应用程序耗电量的方法和装置制造方法

文档序号:6636947阅读:204来源:国知局
检测应用程序耗电量的方法和装置制造方法
【专利摘要】本发明实施例提供一种检测应用程序耗电量的方法和装置。该方法包括:判断被检测的应用程序是否启动;在被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值;将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。本方案利用系统电量视图所属类的对象实例,得到应用程序在不同运行时刻对应的系统电量值,从而得到不同时段对应的应用程序耗电量,实现了应用程序耗电量的自动化测检测,提高了检测效率;由于所述对象实例能够反映被检测的应用程序运行中系统电量的实时变化,因此提高了耗电量检测的准确率。
【专利说明】检测应用程序耗电量的方法和装置

【技术领域】
[0001]本发明实施例涉及应用程序性能测试【技术领域】,尤其涉及一种检测应用程序耗电量的方法和装置。

【背景技术】
[0002]对应用程序的性能测试包括对应用程序的耗电量检测。
[0003]现有的103(苹果公司开发的移动操作系统)应用程序的耗电量的检测技术,一般是基于103操作系统提供的应用程序编程接口(八卯11(^1: 1011 ?1~0取'咖“叩八?1)按照剩余电量每隔5%的递减顺序获取耗电量,也即只能获取到100%,95%,90%...5%这样的数据。例如,当剩余电量为98%时,基于八?I获取到的电量值为100%,又如,当剩余电量为93%时,基于八?I获取到的电量值为95%。
[0004]可以看出,只有当电量为5%的整数倍时,基于八?I获取的电量才正确,而且无法实时获取当前应用程序的耗电量。
[0005]因此,测试人员在进行103应用程序耗电量测试时,往往需要进行手工记录,在测试应用程序的同时每隔一段时间记录当前用电量,导致测试效率非常低下,增加了人力成本,同时,由于是人工记录,有可能引入错误数据,影响测试结果的准确性。


【发明内容】

[0006]本发明实施例提供一种检测应用程序耗电量的方法和装置,以实现应用程序耗电量的自动化测检测,并提高应用程序耗电量的检测效率及准确率。
[0007]第一方面,本发明实施例提供了一种检测应用程序耗电量的方法,包括:
[0008]判断被检测的应用程序是否启动;
[0009]在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值;
[0010]将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0011]第二方面,本发明实施例提供了一种检测应用程序耗电量的装置,包括:
[0012]启动判断模块,用于判断被检测的应用程序是否启动;
[0013]系统电量获取模块,用于在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值;
[0014]耗电量确定模块,用于将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0015]本发明实施例提供的检测应用程序耗电量的方法和装置,在判断到被检测的应用程序启动时,通过系统电量视图所属类的对象实例,得到被检测的应用程序运行时,在不同时刻对应的系统电量值,从而得到所述应用程序在不同时段内对应的耗电量值,实现了应用程序耗电量的自动化测检测,减少了人力成本,提高了应用程序耗电量的检测效率。并且,由于系统电量视图所属类的对象实例能够反映被检测的应用程序运行中系统电量的实时变化,因此提高了检测到的应用程序耗电量的准确率。

【专利附图】

【附图说明】
[0016]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明实施例一提供的一种检测应用程序耗电量的方法的流程图;
[0018]图2为本发明实施例二提供的一种检测应用程序耗电量的方法中获取系统电量视图所属类的对象实例的流程图;
[0019]图3为本发明实施例三提供的一种检测应用程序耗电量的装置的结构示意图。

【具体实施方式】
[0020]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0021]实施例一
[0022]请参阅图1,为本发明实施例一提供的一种检测应用程序耗电量的方法的流程图。本发明实施例的方法可以由配置以硬件和/或软件实现的检测应用程序耗电量的装置来执行,该实现装置典型的是配置于103操作系统中,用于对基于103的应用程序进行耗电量测试。
[0023]该方法包括:操作110?操作130。
[0024]操作110中,判断被检测的应用程序是否启动。
[0025]本操作中被检测的应用程序是否启动,是指被检测的应用程序是否开始运行,其中,基于103的被检测的应用程序是通过(?知语言(扩充的面向对象编程语言)运行的。
[0026]需要说明的是,如果判断结果为被检测的应用程序刚开始启动,则继续执行操作120;如果判断结果为被检测的应用程序已经启动一段时间,可中断被检测的应用程序,并在被检测的应用程序重新启动时,执行操作120 ;如果判断结果为被检测的应用程序未启动,则可启动被检测的应用程序,并继续执行操作120。
[0027]操作120中,在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值。
[0028]其中,被检测的应用程序启动后,是指被检测的应用程序刚启动。
[0029]103操作系统提供了很多类,类是面向对象的应用程序设计的核心,用类可以实现对数据的封装。不同的类描述了被检测的应用程序运行中不同对象对应的行为和属性,在被检测的应用程序运行时,产生系统电量视图所属类的对象实例,通过类的对象实例可以描述被检测的应用程序运行时该类对象的具体行为。
[0030]本操作中,系统电量视图所属类描述了对象为系统电量的行为和属性。系统电量视图所属类的对象实例,描述了被检测的应用程序运行中对象为系统电量的具体行为,也即被检测的应用程序运行时,在不同时刻对应的系统电量值。
[0031]其中,所述第一时刻和所述第二时刻之间的时间间隔可以预先设定,例如,设定为18。需要说明的是,所述第一时刻和所述第二时刻之间的时间间隔越小,检测到的在被检测的应用程序的不同运行时刻对应的系统电量值的实时性越好;反之,所述第一时刻和所述第二时刻之间的时间间隔越大,检测到的被检测的应用程序在不同时刻对应的系统电量值的实时性越差。
[0032]操作130中,将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0033]本实施例的技术方案,在判断到被检测的应用程序启动时,通过系统电量视图所属类的对象实例,得到被检测的应用程序运行时,在不同时刻对应的系统电量值,从而得到所述应用程序在不同时段内对应的耗电量值,实现了应用程序耗电量的自动化测检测,减少了人力成本,提高了应用程序耗电量的检测效率。并且,由于系统电量视图所属类的对象实例能够反映被检测的应用程序运行中系统电量的实时变化,因此提高了检测到的应用程序耗电量的准确率。
[0034]在本实施例的基础上,在操作130之后,所述方法还可以包括以下至少一个操作:
[0035]显示所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值;
[0036]记录所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0037]其中,可以以耗电量曲线图的形式进行显示,也可以显示测试时段与耗电量值的对应关系,还可以采用其他显示形式,本实施例对此不进行限制。
[0038]其中,既可以记录所述第一时刻的电量值,第二时刻的电量值,也可以记录在所述第一时刻至所述第二时刻时段内的耗电量值,可以将结果记录到设定的文件中。具体地,可以针对每次测试创建一个新的文件,对文件类型不进行限制。创建的文件和写入到文件的数据都是通过检测应用程序耗电量的装置自动生成和写入,无需手动创建和写入,进一步提高了应用程序耗电量的自动化测程度。
[0039]作为本实施例的一种优选的实施方式,在本实施例的基础上,在得到所述第二时刻的电量值之后,所述方法还可以包括:
[0040]通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第三时刻的电量值;
[0041]将所述第三时刻的电量值减去所述第二时刻的电量值,得到所述应用程序在所述第二时刻至所述第三时刻时段的耗电量值。
[0042]其中,获取第三时刻的电量值的操作与上述操作120类似,不再赘述,得到所述应用程序在所述第二时刻至所述第三时刻时段的耗电量值的操作与上述操作130类似,不再赘述。
[0043]需要说明的是,本实施方式以第一时刻、第二时刻和第三时刻为例进行说明,但是对被检测的应用程序的耗电量测试并不限于三个时刻,可以根据测试需要,在对被检测的应用程序的耗电量测试的整个过程中,选取多个时刻,本实施对时刻数量,以及时刻数量的选取方式不进行限制。
[0044]例如,各相邻时刻的时间间隔为18,测试一定时间后,可以实时得到被检测的应用程序在测试过程中的系统电量值£(0), £(1), £(2), £(3)……已⑷。其中,£(=)为从测试开始,第II秒时对应的系统电量值,£(0)表示测试前的系统电量值。其中,各相邻时刻的时间间隔设定为18,相对于以比18更小的时间间隔进行测试,可以降低测试功耗;实际中,在18内被检测的应用程序的耗电量通常不会减少2%,因此各相邻时刻的时间间隔设定为18,可以实现被检测应用程序的耗电量的实时获取,即被检测的应用程序在第1,2,3……,秒内所消耗的电量分别为2 (1) -2 (0),2 (2) -2 (1),2 (3) -2 (2)……2⑷-2 (=-1)。并且,根据这些数据可以得到该应用程序的耗电量随时间变化的曲线。
[0045]本实施方式,利用系统电量视图所属类的对象实例,能够得到在被检测的应用程序运行的过程中多个时刻对应的系统电量值,进而得到所述应用程序在整个运行过程中多个时段内对应的耗电量值,实现了应用程序耗电量的自动化测检测。
[0046]作为操作120的一种具体的实施方式,可以通过应用程序编程接口(八?1)及系统电量视图所属类的对象实例,获取系统在所述第一时刻和所述第二时刻的电量值。
[0047]103操作系统中,系统耗电量视图所属类为11131:211:1188211*8211:1:61*711^11^16界类,该类对应的对象为被检测的应用程序的用户界面的状态栏中的电池项,即系统电量,因此,本操作具体是调用应用程序编程接口,获取11131:211:1188;^8211:1:61~71丨611^161类的对象实例。
[0048]在类中,包含不同的成员变量,其中一个成员变量为用于表征被检测的应用程序的用户界面的状态栏中的电池项的电量,即系统电量。在被检测的应用程序运行的不同时亥I】,获取到的类的对象实例不同,具体地被检测的应用程序运行的不同时刻对应的11131:511:1188511*8511:1:61*711^611^16界类的对象实例中成员变量的数值不同,因此获取所述11131:211:1188211*8211:1:61~71丨611^161类的对象实例在所述第一时刻和第二时刻的成员变量的值,即可得到被检测的应用程序在运行过程中的第一时刻和第二时刻的系统电量值。
[0049]实施例二
[0050]请参阅图2,本实施例在上述实施例的基础上,提供了获取系统电量视图所属类的对象实例这一操作的优选方案,具体包括:操作210?操作230。
[0051]操作210中,获取用户界面视图类的所有子类。
[0052]在103操作系统中,类都是从其他的类继承而来的。当一个子类继承于一个父类,那么这个子类就具有父类的行为和属性。在103操作系统中,吧类为所有类的顶级父类类继承于吧类,来响应用户在用户界面的操作,例如各种手势;用户界面视图类继承于1110681)011(161'类,用于把视图对象展示在用户界面的显示区域,用户界面视图类包含多个子类,每个子类表征用户界面中与该子类对应的对象的行为和属性。
[0053]在本操作中,具体可以利用语言的动态性,在调用并运行八?I时,将所述用户界面视图类中的£11100方法替换为自定义的1117211100方法;在方法中获取所有继承于用户界面视图类的所有子类名称。
[0054]其中,81100方法用于分配内存并完成初始化。
[0055]事先不知道103操作系统中系统电量视图所属类是哪一个类,但是由于该类继承于口 1716?类,因此将£11100方法替换为1115^1100方法后,所有继承于类的对象生成时,都会执行1117211100方法,可以在自定义的1115^1100方法中查看IIIVI6?类的所有子类对应的类名。
[0056]操作220中,将所述所有子类与关键字相匹配,得到所述系统电量视图所属类。
[0057]在103操作系统中,由于用户界面视图⑴1716?)类包含多个子类,例如III 118081-881:1:61~711:6111^16^类和类等多个子类,其中系统电量视图所属类继承于用户界面视图类,将用户界面视图类的所有子类与关键字“8社〖60”匹配,从而可以得到所述系统电量视图所属类具体对应11131:211:1188211~8211:1:61~71丨611^161类。所述11181:81:118881-881:1:61-711:6111^16?类是一个私有类,对应的对象实例即为103操作系统上显示被检测的应用程序电量的视图。
[0058]操作230中,获取所述系统电量视图所属类的对象实例。
[0059]在本操作中,具体可以通过调用并运行实例获取应用程序,以实现获取所述系统电量视图所属类的对象实例。例如,在通过关键字“8社仏!'7”匹配,得到11131:211:1188211~8211:1:61~71丨611^161类作为系统电量视图所属类之后,将III118081-881:1:61~711:6111^16^ 类的 3110(3 方法替换为自定义的 11173110(3 方法;在 111731100方法中获取到11131^1:118831~8社1:61~711^611^161类的对象实例。
[0060]在11131^1:118831~8社1:61~711^6111^16界类中的其中一个成员变量为用于表征被检测的应用程序的用户界面的状态栏中的电池项的电量,即系统的电量。被检测的应用程序运行的不同时刻对应的11131:511:1188511~8511:1:61~711^611^16界类的对象实例中^£¢)81(311:7成员变量的数值不同,因此获取所述11131:211:1188211*8211:1:61~71丨611^161类的对象实例在所述第一时刻和第二时刻的3叩%10成员变量的值,即可得到被检测的应用程序在运行过程中的第一时刻和第二时刻的系统电量值。
[0061]本实施方式中,基于系统电量视图所属类与用户界面视图类的继承关系,并通过关键词匹配,能够得到所述系统电量视图所属类,由于被检测的应用程序运行时,操作系统将系统电量数据存储在系统电量视图所属类的对象实例中,因此在获取到了系统电量视图所属类的对象实例后,即可方便地通过与系统电量对应的成员变量,获取到被检测的应用程序在不同运行时刻对应的系统电量值,从而得到所述应用程序在不同时段内对应的耗电量值,实现了应用程序耗电量的自动化测检测。
[0062]实施例三
[0063]请参阅图3,为本发明实施例三提供的一种检测应用程序耗电量的装置的结构示意图。该装置包括:启动判断模块310、系统电量获取模块320和耗电量确定模块330。
[0064]其中,启动判断模块310用于判断被检测的应用程序是否启动;系统电量获取模块320用于在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值;耗电量确定模块330用于将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0065]本实施例的技术方案,在判断到被检测的应用程序启动时,通过系统电量视图所属类能够描述对象为系统电量的行为,利用系统电量视图所属类的对象实例,能够得到被检测的应用程序运行时,在不同时刻对应的系统电量值,从而得到所述应用程序在不同时段内对应的耗电量值,实现了应用程序耗电量的自动化测检测,减少了人力成本,提高了应用程序耗电量的检测效率。并且,由于系统电量视图所属类的对象实例能够反映被检测的应用程序运行中系统电量的实时变化,因此提高了检测到的应用程序耗电量的准确率。
[0066]在上述方案中,所述系统电量获取模块320具体可以用于:通过应用程序编程接口及所述系统电量视图所属类的对象实例,获取系统在所述第一时刻和所述第二时刻的电量值。
[0067]进一步地,所述系统电量视图所属类为11131:211:1188211~8211:1:61~71丨611^161类,所述系统电量获取模块320具体可以用于:获取所述11131:211:1188211~8211:1:61~71丨611^161类的对象实例在所述第一时刻和第二时刻的成员变量的值。
[0068]在上述方案中,所述系统电量获取模块320优选包括:类获取子模块、匹配子模块、对象实例获取子模块和电量获取子模块。
[0069]其中,类获取子模块用于在所述被检测的应用程序启动后,获取用户界面视图类的所有子类;匹配子模块用于将所述所有子类与关键字相匹配,得到所述系统电量视图所属类;对象实例获取子模块用于获取所述系统电量视图所属类的对象实例;电量获取子模块用于通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值。
[0070]在上述方案中,所述装置还可以包括以下至少一个模块:耗电量显示模块和耗电量记录模块。
[0071]其中,耗电量显示模块用于在得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值之后,显示所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值;耗电量记录模块用于在得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值之后,记录所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
[0072]在上述方案中,所述系统电量获取模块320还可以用于在得到所述第二时刻的电量值之后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第三时刻的电量值;所述耗电量确定模块330还可以用于将所述第三时刻的电量值减去所述第二时刻的电量值,得到所述应用程序在所述第二时刻至所述第三时刻时段的耗电量值。
[0073]本发明实施例提供的检测应用程序耗电量的装置可执行上述方法实施例所提供的检测应用程序耗电量的方法,具备执行方法中相应操作的功能模块,且能够产生相应的有益效果。
[0074]最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种检测应用程序耗电量的方法,其特征在于,包括: 判断被检测的应用程序是否启动; 在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值; 将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
2.根据权利要求1所述的方法,其特征在于,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值,包括: 通过应用程序编程接口及所述系统电量视图所属类的对象实例,获取系统在所述第一时刻和所述第二时刻的电量值。
3.根据权利要求1所述的方法,其特征在于,所述系统电量视图所属类为UlStatusBarBatteryItemView 类; 获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值,包括: 获取所述UlStatusBarBatteryItemView类的对象实例在所述第一时刻和第二时刻的_capacity成员变量的值。
4.根据权利要求1所述的方法,其特征在于,所述系统电量视图所属类的对象实例通过以下操作获得: 获取用户界面视图类的所有子类; 将所述所有子类与关键字相匹配,得到所述系统电量视图所属类; 获取所述系统电量视图所属类的对象实例。
5.根据权利要求1-4任一所述的方法,其特征在于,在得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值之后,所述方法还包括以下至少一个操作: 显示所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值; 记录所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
6.根据权利要求1-4任一所述的方法,其特征在于,在得到所述第二时刻的电量值之后,所述方法还包括: 通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第三时刻的电量值; 将所述第三时刻的电量值减去所述第二时刻的电量值,得到所述应用程序在所述第二时刻至所述第三时刻时段的耗电量值。
7.—种检测应用程序耗电量的装置,其特征在于,包括: 启动判断模块,用于判断被检测的应用程序是否启动; 系统电量获取模块,用于在所述被检测的应用程序启动后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值; 耗电量确定模块,用于将所述第二时刻的电量值减去所述第一时刻的电量值,得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
8.根据权利要求7所述的装置,其特征在于,所述系统电量获取模块具体用于: 通过应用程序编程接口及所述系统电量视图所属类的对象实例,获取系统在所述第一时刻和所述第二时刻的电量值。
9.根据权利要求7所述的装置,其特征在于,所述系统电量视图所属类为UlStatusBarBatteryItemView 类; 所述系统电量获取模块具体用于: 获取所述UlStatusBarBatteryItemView类的对象实例在所述第一时刻和第二时刻的_capacity成员变量的值。
10.根据权利要求7所述的装置,其特征在于,所述系统电量获取模块包括: 类获取子模块,用于在所述被检测的应用程序启动后,获取用户界面视图类的所有子类; 匹配子模块,用于将所述所有子类与关键字相匹配,得到所述系统电量视图所属类; 对象实例获取子模块,用于获取所述系统电量视图所属类的对象实例; 电量获取子模块,用于通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第一时刻和第二时刻的电量值。
11.根据权利要求7-10任一所述的装置,其特征在于,所述装置还包括以下至少一个模块: 耗电量显示模块,用于在得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值之后,显示所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值; 耗电量记录模块,用于在得到所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值之后,记录所述应用程序在所述第一时刻至所述第二时刻时段内的耗电量值。
12.根据权利要求7-10任一所述的装置,其特征在于,所述系统电量获取模块还用于在得到所述第二时刻的电量值之后,通过系统电量视图所属类的对象实例,获取系统在所述应用程序运行的过程中的第三时刻的电量值; 所述耗电量确定模块还用于将所述第三时刻的电量值减去所述第二时刻的电量值,得到所述应用程序在所述第二时刻至所述第三时刻时段的耗电量值。
【文档编号】G06F11/34GK104461846SQ201410720962
【公开日】2015年3月25日 申请日期:2014年12月2日 优先权日:2014年12月2日
【发明者】陈心涛 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1