我希望测试我的应用程序对手机/平板电脑电池的影响。
有没有测试工具可以让我这样做呢?
例如,我想测试我的应用程序中哪些模块消耗了最多的电池电量等。
我希望测试我的应用程序对手机/平板电脑电池的影响。
有没有测试工具可以让我这样做呢?
例如,我想测试我的应用程序中哪些模块消耗了最多的电池电量等。
有一个随Android 5.0一起发布的新工具。
你可以运行
adb shell dumpsys batterystats > dump.txt
为了获取设备完整的电池转储信息,您还可以添加一些选项,例如--unplugged
(仅输出自上次拔下插头以来的数据)或--charged
(仅输出自上次充电以来的数据)。您还可以添加一个包名,仅获取此软件包/应用程序的信息。adb shell dumpsys batterystats --unplugged your.package.name > dump.txt
使用> dump.txt
命令可以将所有内容输出到一个文件中(这可能只在Windows上有效,但您可以将其省略,在控制台中会打印出dump的内容,您可以将其复制并放入文件中)。
这仅适用于Android 5.x及以上版本的设备。如果您的设备版本较低,可以尝试使用
adb shell bugreport > bugreport.txt
但是这个文件会非常非常大。(~8mb+)
创建完这个文件后,您可以使用Google Historian 工具。
要使用它,您必须安装Python 2.7.9并运行以下命令。
python /path/to/historian.py dump.txt > battery.html
这将创建一个battery.html文件,您可以在其中以更有用的格式查看数据。
最后一件事:如果您想重置电池转储的统计信息,请调用
adb shell dumpsys batterystats --reset
(仅适用于 Android 5.x)
实际上,我认为大多数存在电源问题的应用程序也存在“CPU”问题。也就是说,应用程序CPU使用率的配置文件可能很好地近似了您的电池消耗情况。如果您的应用程序正在使用GPU、无线网络、存储等执行昂贵操作,并且那些昂贵操作没有占用太多CPU时间,就存在一些注意事项和例外。
以下是一篇有关“Power Tutor”应用程序的有趣博客文章,它提供了比内置电池应用程序更精确的运行系统测量结果: http://gigaom.com/mobile/android-power-consumption-app/。我没有尝试过。
对于另一个层面的细节,这是一篇论文,分解了哪些手机组件消耗最多的能量(请注意,该论文来自2010年):http://www.usenix.org/event/usenix10/tech/full_papers/Carroll.pdf (只需跳到第5节阅读其结果)。他们说屏幕亮度是最大的罪魁祸首。
如果屏幕亮度是最大的罪魁祸首,请确保将其设置为固定水平,如果要测量您自己的应用程序使用情况。
如果您真的对测量电量消耗感兴趣,则可以遵循他们的方法(这涉及打开手机并物理附加测量设备)。
从Android 2.3.3开始,系统具有本地电池监视器。
设置 -> 关于手机 -> 电池使用
我们进行了类似的测试,以了解我的应用程序对Nexus5手机的电池消耗负责程度。
但不幸的是,我们无法从任何工具中获得帮助,而大多数都是基于手动测试。
我们确定了一些应用程序模块,这些模块被怀疑会消耗更多的电池。
使用GPS的位置感知模块。
使用网络连接运行长时间后台操作的上传模块。
视频创建模块也由于后台操作使CPU繁忙等等...
最终,在进行3-4轮测试后,我们在数据中发现了一些趋势,并且我们能够确定导致电池消耗的主要模块。
基本上,如果某些东西让CPU保持繁忙状态更长时间,则电池消耗将更多。因此,我们可以考虑具有后台操作、网络相关操作的模块。
目前我找不到任何工具可以告诉我们特定应用程序的上述测试结果。
希望我的经验对原始问题的需求陈述有所裨益。
我认为没有任何真正的工具可以测试电池寿命,因为它无法被精确地测量。如果你拿一台iPhone,你会看到电池电量从40%降至30%,然后停留一段时间,降至20%,再降至15%,上升至25%,回到20%等等。 你可以将手机充电数个小时,以确保其完全充电,然后使用你的应用程序直到手机关闭,并记录所需时间。然后再使用另一个版本进行同样的测试,并对比结果。 基本上,如果你想尽可能减少测试次数,就必须像玩猜数字游戏一样进行测试。 此外,如果变化不容易被察觉,那么它可能并不是很重要。