Android应用程序(CPU,GPS,网络,WiFi)的总耗电量。

时间:2015-09-14 13:31:28

标签: android performance gps adb battery

我正在开发一个使用GPS和网络位置信息跟踪用户移动的应用程序。我使用服务,活动识别,不同的采样率和gps /网络超时来提高电池效率。

问题是我如何测量我的应用消耗的功率的确切数量(mV,mA /小时或总消耗的百分比)?不仅基于 CPU 使用,还通过调用 GPS,网络,WiFi 。所以我可以对应用电池效率做出结论。

我按Mobile network: 10.61KB received, 7.41KB sent (packets 26 received, 34 sent) Mobile radio active: 18s 180ms (0.7%) 8x @ 303 mspp Wifi Running: 0ms (0.0%) Full Wifi Lock: 2m 8s 907ms (3.9%) **Wifi Scan: 3m 20s 904ms (6.1%)** Wake lock NlpCollectorWakeLock: 1m 23s 525ms partial (100 times) realtime Wake lock *alarm*: 269ms partial (97 times) realtime Wake lock NlpWakeLock: 264ms partial (83 times) realtime Wake lock LocationManagerService: 64ms partial (19 times) realtime TOTAL wake: 1m 24s 122ms partial realtime **Sensor GPS: 5m 15s 109ms realtime (185 times)** Foreground activities: 2m 40s 107ms realtime (10 times) Foreground for: 51m 51s 176ms Active for: 55m 1s 142ms Proc xxxxxxxxxxx: **CPU: 30s 670ms usr + 6s 800ms krn ; 7s 810ms fg** Proc *wakelock*: **CPU: 12s 660ms usr + 15s 40ms krn ; 0ms fg** Apk xxxxxxxxxxx: 122 wakeup alarms Service xxxxxxxxxxx.ActivityRecognitionIntentService: Created for: 6s 652ms uptime Starts: 356, launches: 356 Apk com.google.android.gms: (nothing executed) 获取电池统计信息。

这是我在步行和乘火车旅行中看到的1小时使用情况:

{{1}}

我认为最耗电的是传感器GPS呼叫,CPU使用率和Wifi。

问题:

1)我怎样才能解释这个数字?是否有可能找出每个GPS通话(或实时)功耗多少?

2)是否有更好的方法可以找出应用程序的总功耗?

1 个答案:

答案 0 :(得分:3)

正如在Battery Performance 101Understanding Battery Drain中所谈到的,Android不会暴露低级计数器关于每个芯片的电池消耗。跟踪该数据的开销对于日志记录和硬件级别都很重要。

获取此信息的唯一真正方法是将您的机器人连接到MONSOON device,但即使这样,您的结果也会随着设备和功能之间的功耗变化而出现偏差。形状因素。

中间地带是Battery Historian工具,可以告诉您哪些重要系统处于活动状态,然后您可以找到这些事件与硬件负责之间的关联。值得注意的是,Battery Historian只是BatteryStats工具的UI转换(您已经在使用它)。它完成了将这些数据整理成可视化形式的所有工作。

虽然这不是100%的接触点;正如您在Battery Drain and Networking中看到的那样,优化电池使用情况是为了寻找Battery Historian中的模式,这些模式已知有问题,并且尝试更改代码以影响它们。因此,在诊断某些事情时,会有一点挥手。

此时,建议您查找有关电池使用情况的准确信息。