手机功耗测量

在学习和测量手机上发生的事情时,我们了解了大量关于功耗的知识。因此,我们希望分享一些学习成果,以及这些成果如何转化为FxOS Powertool!

介绍 FxOS Powertool!

使用 FxOS Powertool!,我们可以优化应用的功耗,还可以验证和修复相关的错误。它是一个带有许多选项的命令行实用程序。

usage: powertool [-h] -d {yocto,mozilla} [-p PATH] -u {tk,cli} [-f FILE]
                 [-o OUT] [-s SHOW]

Mozilla Powertool

optional arguments:
  -h, --help            show this help message and exit
  -d {yocto,mozilla}, --device {yocto,mozilla}
                        specify ammeter device to use
  -p PATH, --path PATH  specify path to ammeter device (e.g. /dev/ttyACM0)
  -u {tk,cli}, --ui {tk,cli}
                        specify which UI to use
  -f FILE, --file FILE  test run config file
  -o OUT, --out OUT     output data file
  -s SHOW, --show SHOW  name of the sample source to display

克隆存储库获取代码

$ git clone git://github.com/JonHylands/fxos-powertool

FxOS Powertool!是用 Python 编写的,并使用 Tkinter UI 包,应该可以跨平台使用。然后安装应用程序和依赖项。

$ cd fxos-powertool
$ sudo python ./setup.py install

下一步是创建一个测试套件描述文件。FxOS Powertool!使用描述文件来了解您计划运行的测试,并组织每个测试下收集的数据。测试套件描述文件看起来像这样

{
  "title": "My Tests",
  "tests": [
    "My first test",
    "My second test",
    "My third test"
  ]
}

构建电池线束

您需要以下物品

接下来,您需要设置硬件

1. 从您的 FxOS 设备中取出电池并将其放入电池线束中

2. 将电池线束放入您的设备中

3. 插入电流表

Yocto Ammeter

运行 FxOS Powertool!

现在,您已准备好启动 FxOS Powertool!并开始收集数据。

使用 FxOS Powertool!,您可以将收集到的数据保存为两种不同的格式:JSON 和逗号分隔值。格式由--out选项中指定的文件的扩展名确定。例如

  • 我的测试套件描述文件名为mytests.json
  • 我使用的是 Yoctopuce 电流表
  • 我希望 Tk GUI 显示当前功耗图表
  • 我希望收集到的数据保存在.csv文件中

那么我的命令行将如下所示

$ powertool -d yocto -p /dev/ttyUSB0 -u tk -s current -f mytests.json -o mytests.csv

如果我使用 Mozilla 电流表,使用相同的测试参数

$ powertool -d mozilla -p /dev/ttyACM0 -u tk -s current -f mytests.json -o mytests.csv

Tk GUI 应该启动,并且您的第一个测试的标题将显示在应用程序的标题栏中

Powertool Launch

为了控制数据收集并在测试之间导航,FxOS Powertool!使用键盘快捷键。在 GUI 打开的情况下,您可以通过按空格键开始/停止收集当前选定测试的数据。第一次按下空格键,数据收集开始;要停止数据收集,只需再次按下空格键即可。每次数据收集运行都将作为输出文件中的一行数据记录。

Powertool Test One Data Run

您可以根据需要重复给定测试的数据运行,导航到另一个测试或测试,对这些测试进行数据运行,然后返回到之前的测试并继续进行这些数据运行。FxOS Powertool!不会丢失任何数据,它将为每个测试将数据运行聚合到正确的数据文件中。使用键盘上的“L”和“H”键在测试之间导航。“L”移动到列表中的下一个测试,“H”移动到上一个测试。

Powertool Test Two Data Run

收集完所有测试数据后,退出应用程序时数据文件将写入磁盘:可以通过点击标题栏中的关闭窗口按钮或按键盘上的“Q”按钮来退出。在此示例中,通过将其指定为“mytests.csv”作为 –out 参数值,数据以 CSV 格式写入。应用程序将创建一个“mytests”目录,然后为每个测试写入一个 CSV 文件,其中包含为该测试收集的所有数据。

CSV File Open in a Spreadsheet Application

正如我们在本文中所介绍的,FxOS Powertool!将为您执行一些非常基本的统计计算。除了原始数据之外,它还计算为测试收集的所有数据的最小值和最大值、平均值和标准差。

关于 Jonathan Hylands

我是一名软件开发/制造人员,在 Mozilla 的 FirefoxOS 性能团队工作。我设计和构建硬件和软件,使 FirefoxOS 开发人员能够测量手机的功耗。我将机器人作为爱好。

更多 Jonathan Hylands 的文章…

关于 Robert Nyman [荣誉编辑]

技术布道师和 Mozilla Hacks 编辑。发表关于 HTML5、JavaScript 和开放网络的演讲和博客。Robert 是 HTML5 和开放网络的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在http://robertnyman.com上发表博客,并喜欢旅行和结识新朋友。

更多 Robert Nyman [荣誉编辑] 的文章…


一条评论

  1. faramarz

    太棒了!感谢所有这些出色的工作!

    2014年4月8日 10:40

本文评论已关闭。