testing电池使用情况

我想testing我的应用程序如何影响电话/平板电脑的电池。

有没有任何testing工具可以让我这样做?

例如,我想testing我的应用程序的哪些模块消耗最多的电量等

在实践中,我相信大多数有电力问题的应用程序也有“CPU”问题。 也就是说,应用程序的CPU使用情况简介可能是您的电池消耗的一个很好的近似值。 有一些警告和例外,例如,如果你的应用在GPU,无线networking,存储等方面正在做一些昂贵的事情,而且昂贵的操作不会花费太多的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 5.0附带了一个新的工具。

你可以跑

adb shell dumpsys batterystats > dump.txt 

获取设备的完整电池转储。 您还可以添加一些选项,如--unplugged (仅自上次拔出后输出数据)或--charged (仅限自上次充电以来的输出数据)。 您也可以添加一个包名来获取这个包/应用程序的信息:

 adb shell dumpsys batterystats --unplugged your.package.name > dump.txt 

部分> dump.txt将所有东西放到一个文件中(也许只是在Windows上工作,不知道,但是你可以把它丢弃,转储将被打印在控制台中,你可以把它复制到一个文件中) 。

这只适用于Android 5.x的设备。 如果你有一个较低级别的设备,你可以尝试使用

 adb shell bugreport > bugreport.txt 

但是这个文件会非常大。 (〜8MB +)

创build此文件后,您可以使用Google的Historian工具

要使用它,你必须安装Python 2.7.9并运行下面的命令

 python /path/to/historian.py dump.txt > battery.html 

这将创build一个battery.html文件,您可以在更有用的格式中查看数据。

最后一件事:如果你想重置电池转储的统计数据,只需打电话

 adb shell dumpsys batterystats --reset 

(只适用于Android 5.x)

你问的问题现在是一个研究课题。 目前正在进行一些关于追踪细粒度用电量的研究,即在线程或子程序的基础上追踪用电量。

eprof是一些大学gradle生开发的工具。

你可以在这里find这个主题的一些论文: http : //web.ics.purdue.edu/~pathaka/pubs.html

我正在做同样的事情,我一定会通知你,如果有什么可用的普通用户。

从Android 2.3.3开始,系统具有本地电池监视器。

设置 – >关于手机 – >电池使用

我会说,没有真正的工具来testing它,因为它不能精确测量。 如果你拿一个iPhone,你会看到电池数量从40%到30%,然后呆在那里一段时间,下降到20%,下降到15%,上升到25%,回到20%ECT 。 您可以做的是长时间充电,确保充满电,然后使用您的应用程序直到电话closures,然后记下所用的时间。 现在用另一个版本来做这个,看看结果。 基本上,如果你想尽可能less的testing,你必须用它来玩MasterMind游戏。 另外,如果变化不容易看出来,这可能不是很重要。

我们进行了类似的testing,以了解我的应用程序如何负责Nexus5手机的电池消耗。

但不幸的是,我们无法从任何工具获得帮助,但主要基于手动testing。

我们在应用程序中确定了一些疑似更多电池消耗的模块。

  1. 使用GPS的位置感知模块。

  2. 使用networking连接的上传模块长时间运行后台操作。

  3. video创build模块,由于后台操作也使CPU忙碌。 等等…

最后经过3-4轮的testing,我们有了一些数据的趋势,我们能够确定这个模块是电池消耗的罪魁祸首。

如果有更多的时间让CPU忙碌,基本上会有更多的电池消耗。 所以我们可以考虑具有后台操作,networking相关操作的模块。

截至目前,我找不到任何工具,可以告诉上面的testing结果在一个特定的应用程序。

希望我的经验对原始问题的要求陈述有利。