什么软件测试功耗准,功耗测试思路-软件篇

年前最后一篇干货~以下示例调用的方法均来源于https://github.com/pdhxxj/HATT

功耗测试需要分3步

获取powerprofile数据

android系统中将一些系统设定关于电池计算用到的参数均放置于power_profile.xml文件中,但是这个文件是存贮在framework-res.apk中,这样我们无法直接从外部读取到这个xml文件来着,不过可以用如下方式来获取

a)pull文件出来

import tempfile

from Core.Action.app import LocalAction

la=LocalAction()

apkpath=tempfile.gettempdir()

la.pullFile(“/system/framework/framework-res.apk”,apkpath )

b).解压缩指定文件

from _winreg import *

import os

key=OpenKey(HKEY_CLASSES_ROOT,r"Applications\WinRAR.exe\shell\open")

value=QueryValue(key,"command")

winpath= str(value)[1:len(str(value))-6]

apk=apkpath+"\framework-res.apk"

command=winpath+" e "+apk+" res\xml\power_profile.xml"

os.popen(command)

c).解析文件

xmlpath=winpath[0:len(winpath)-10]+"power_profile.xml"

f=open(xmlpath,'rb')

ff=f.read()

f.close()

print ff

获取应用各个指数的时间消耗

这里需要获取的时间较多,我只列举2个比较重要的时间获取方法

a)获取cpu时间(只列出来使用到的命令,结果需自行过滤):

from Core.Utils.adb_interface import AdbInterface

shell=AdbInterface()

shell.SendShellCommand("dumpsys batterystats "+packagename)

b)获取wakelock时间(只列出来使用到的命令,结果需自行过滤):

shell.SendShellCommand("dumpsys alarm ^|grep "+packagename)

计算应用的功耗

这里我就提供链接(https://github.com/BaiduQA/Cafe/blob/master/testservice/src/com/baidu/cafe/remote/SystemLib.java)

计算公式在processAppBatteryUsage方法中包含

总结

说明:手机通过此配置文件统计出来的功耗数据和比例,仅能作为手机功耗比例的一个参数,会和实际的数据有一定的差异,原因如下:

1、手机实际的功耗的动态变化,不同场景消耗电流是变化的,而这种方法是采用平均电流的方式,统计方式有差别

2、对于涉及到无线(蓝牙、WiFi、3G)部分的功耗,实际环境的功耗统计是很复杂的,而我们配置的数据是在特定条件下测试数据

3、CPU的功耗是一个大的开销,但是从我们的配置方法来看,测试的数据和实际的消耗也存在差异。

4、另外,不同的手机硬件差异,即使是完全相同的测试环境,消耗电流也会存在差异

所以,这个功耗统计仅是作为对最终用户的一个功耗参考,用来了解哪些模块消耗了较多的电量。

PS:android 5.0给出来了一个很好的辅助工具Battery Historian Tool 能够获取各个指数的时间消耗,结合指数的消耗,可以得到最终功耗数值,工具地址:https://github.com/google/battery-historian/blob/master/historian.py

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值