在学习和测量手机上发生的事情时,我们了解了大量关于功耗的知识。因此,我们希望分享一些学习成果,以及这些成果如何转化为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"
]
}
构建电池线束
您需要以下物品
- 一个数字 USB 电流表,例如 Yocto-Amp 或 自己构建一个
- 一个电池线束。它是一个开源硬件设计,由一个 3D 打印部件和一个用于插入电流表的小电路板组成。您还可以使用 3D 打印机和所需的电路板文件自己构建线束。目前,我们有以下设备的设计:
- Alcatel OneTouch Fire
- Samsung Nexus S
- LG Nexus 4 – 组装线束的特殊说明
- Geeksphone Keon
- Huawei Ascend Y3000II
- ZTE Open
- 构建酷炫东西的强烈意愿
接下来,您需要设置硬件
1. 从您的 FxOS 设备中取出电池并将其放入电池线束中
2. 将电池线束放入您的设备中
3. 插入电流表
运行 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 应该启动,并且您的第一个测试的标题将显示在应用程序的标题栏中
为了控制数据收集并在测试之间导航,FxOS Powertool!使用键盘快捷键。在 GUI 打开的情况下,您可以通过按空格键开始/停止收集当前选定测试的数据。第一次按下空格键,数据收集开始;要停止数据收集,只需再次按下空格键即可。每次数据收集运行都将作为输出文件中的一行数据记录。
您可以根据需要重复给定测试的数据运行,导航到另一个测试或测试,对这些测试进行数据运行,然后返回到之前的测试并继续进行这些数据运行。FxOS Powertool!不会丢失任何数据,它将为每个测试将数据运行聚合到正确的数据文件中。使用键盘上的“L”和“H”键在测试之间导航。“L”移动到列表中的下一个测试,“H”移动到上一个测试。
收集完所有测试数据后,退出应用程序时数据文件将写入磁盘:可以通过点击标题栏中的关闭窗口按钮或按键盘上的“Q”按钮来退出。在此示例中,通过将其指定为“mytests.csv”作为 –out 参数值,数据以 CSV 格式写入。应用程序将创建一个“mytests”目录,然后为每个测试写入一个 CSV 文件,其中包含为该测试收集的所有数据。
正如我们在本文中所介绍的,FxOS Powertool!将为您执行一些非常基本的统计计算。除了原始数据之外,它还计算为测试收集的所有数据的最小值和最大值、平均值和标准差。
关于 Jonathan Hylands
我是一名软件开发/制造人员,在 Mozilla 的 FirefoxOS 性能团队工作。我设计和构建硬件和软件,使 FirefoxOS 开发人员能够测量手机的功耗。我将机器人作为爱好。
关于 Robert Nyman [荣誉编辑]
技术布道师和 Mozilla Hacks 编辑。发表关于 HTML5、JavaScript 和开放网络的演讲和博客。Robert 是 HTML5 和开放网络的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在http://robertnyman.com上发表博客,并喜欢旅行和结识新朋友。
一条评论