移动性能测试 Android 性能测试初探 (五)

卡斯 · 2014年02月22日 · 最后由 lee 回复于 2017年05月11日 · 4402 次阅读
本帖已被设为精华帖!

书接上文 Android 性能测试初探之 GPU(四)

前文说了的一些性能测试项大家可能都听说,接下来我们聊聊大家不常关注的测试项- 功耗

功耗测试主要从以下几个方面入手进行测试

  • 测试手机安装目标 APK 前后待机功耗无明显差异
  • 常见使用场景中能够正常进入待机,待机电流在正常范围内.
  • 长时间连续使用应用无异常耗电现象

功耗测试的方法分为两类,一类为软件测试,一类为硬件测试

我们先说说软件测试,这里我们会聊聊一些 DIY 的思路,软件测试一般分为 2 类,

  • 第一种采用市场上提供的第三方工具,如金山电池管家之类的。

  • 第二种就是自写工具进行,这里一般会使用 3 种方法

    • 第一种基于 android 提供的 PowerManager.WakeLock 来进行,
    • 第二种比较复杂一点,功耗的计算=CPU消耗+Wake lock消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗
    • 第三种通过 adb shell dumpsys battery 来获取

接着说硬件测试,在这里我们一般使用万用表或者功耗仪进行测试,使用功耗仪测试的时候,需要制作假电池来进行的,有些不能拔插电池的手机还需要焊接才能进行功耗测试

功耗测试大体就说到这里,大家应该对功耗测试有一些了解了,下文将讲解流量,尽请期待

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 15 条回复 时间 点赞

我想知道 自己写工具和使用别人工具的区别

自己写的相对靠谱一点 不过最靠谱的还是属于使用硬件

卡斯 #17 · 2014年02月22日 Author

自己要写一般都是采用第二种方法

Cool! 就是这个味儿↑↑↑↑↑↑

app 的耗电量测试研究过一段时间,如 lz 所讲,主要是做的情景对比测试,使用工具是安捷伦 66309D,一台数字稳压源,通过获取的电流量来反映手机的耗电情况。

如果使用 adb shell dumpsys battery ,需要连接 usb,这样会充电的,会不会不准啊?

#6 楼 @gaoxing200851 adb 有无线连接的方式

#7 楼 @sanlengjingvv 无线连接的话,会不会因为 wifi 耗电引起不准?

#8 楼 @gaoxing200851
保持策略相同,多版本对比。
不用 adb,监控程序本身也会耗电。
即使有方法排除所有干扰得到一个耗电量,比如 1 小时 10%,这算多算少?

#9 楼 @sanlengjingvv ok,明白了,谢谢。

关于第二种:功耗的计算=CPU 消耗 +Wake lock 消耗 + 数据传输消耗 +GPS 消耗 +Wi-Fi 连接消耗,能讲的再详细点吗?数据是怎么取到的?cpu 是/proc/pid/stat?

#1 楼 @lihuazhang 嘿嘿,这个我能回答你,自己写工具和使用别人的工具的区别,自己写的工具那叫定制,别人的工具那就是均码了。这样应该比较容易理解了吧

#6 楼 @gaoxing200851 使用该命令屏蔽 USB 充电 adb shell dumpsys battery set usb 0

恒温 [该话题已被删除] 中提及了此贴 07月18日 15:54
卡斯 [该话题已被删除] 中提及了此贴 07月18日 15:54
恒温 《Android 性能测试初探》合集 中提及了此贴 11月29日 15:15

近期研究了下 battery historian2.0,在使用 adb bugreport > bugreport.txt 获取到数据后打开查询到单个 app 耗电量数据如下:
Uid u0a511: 5.09 ( cpu=1.34 wifi=0.452 gps=3.19 sensor=0.105 )
这个 5.09 的数据是否可以被信任(作为耗电量测试结果数据)?也使用了开启服务进行 txt 转换为 html,页面展示信息为 Device estimated power use 0.17%
% 转换后的数据和 5.09 差不多。

卡斯 Android 性能测试初探 (六) 中提及了此贴 01月17日 19:09

最好是拿仪器仪表来进行功耗的验证,楼主说的电量脚本检测。只能是 android 平台自身反馈出来的电量计算值

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册