如何在一段时间内获得每个应用程序的CPU或电池使用量

时间:2015-11-15 11:20:08

标签: android cpu-usage battery

在一天的时间里,我有什么方法可以查看每个应用程序使用多少CPU(或电池)?以下是BatteryDoctor应用程序的示例:

enter image description here

我认为他们以编程方式完成了一些工作:

  • 获取应用的CPU时间
  • 获取应用的网络数据使用

由此,他们可以“计算”每个应用的电池使用量(百分比)。

我知道有一些方法可以完成第二项工作(数据使用)。但对于第一个,似乎很难得到。

我找到了一些方法,但它们似乎不起作用

无论如何,它只能返回应用正在使用的CPU的百分比。但是我想要一段时间内使用的CPU的时间(例如24小时)。

那么有没有人知道如何以编程方式获得每个应用程序的CPU时间? 或者它可能只是应用程序的前景/运行时间?

1 个答案:

答案 0 :(得分:3)

这是你的问题的答案,但我不确定它是否真的是你想要的。

如果top计算应用程序的%CPU,让我们称之为%CPU_APP,在500ms的窗口上,那么应用程序执行的总时间是500ms *%CPU_APP超过该时间间隔。如果你总结所有这些间隔,例如24小时,那么你得到应用程序在那段时间内使用处理器的总时间。

例如,假设窗口为500毫秒且%CPU_APP为20%,则应用程序使用100毫秒的时间。如果%CPU_APP在24小时内保持不变,则应用程序运行的总时间为24小时* 60分钟/小时* 60秒/分钟* .5 *%CPU_APP。 (我将数学留给读者; - )> )

困难的部分是找到窗户的大小。如果没有在任何文档中给出,您可以通过观察绘图的颗粒度来测量这一点。并且%CPU_APP不太可能是常数,因此您必须收集这些统计信息并随着时间的推移进行集成。

如果这不是您想要的答案,请澄清您的问题并重新提交到堆栈溢出。