Android上如何获取CPU使用率统计信息?
我想获得 Android 上的总体 CPU 使用情况,类似于 Windows 的任务管理器。我可以解析 Android 中包含的 top
程序的输出,但如果有一个 API 调用可以执行相同的操作,那就更好了。
有什么指点吗?
I want to get the overall CPU usage on Android, similar to what Windows' Task Manager does. I can parse the output of the top
program included in Android, but if there is a API call that does the same thing, it would be better.
Any pointers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
注意:此答案已过时,并且由于增强的安全机制,不适用于较新版本的 Android。
对于完整的 CPU 使用情况(不是每个进程),您可以使用:
享受乐趣:)
ATTENTION: This answer is old and does NOT work on newer versions of Android due to enhanced security mechanisms.
For complete CPU usage (not for each process) you can use:
Have fun with it :)
您可以读取
/proc/stat
并解析文件内容。第一行是这样的:CPU 79242 0 74306 842486413 756859 6140 67701 0
从左到右各列的含义如下:
平均空闲百分比:
X % = (空闲* 100)/(用户+nice+系统+空闲+iowait+irq+softirq)
您可以计算时间增量之间的空闲差异,并计算 CPU 使用率。
You can read
/proc/stat
and parse the file contents. The first line is like:cpu 79242 0 74306 842486413 756859 6140 67701 0
The meanings of the columns are as follows, from left to right:
Average idle percentage :
X % = ( idle * 100 ) / ( user + nice + system + idle + iowait + irq + softirq )
You can compute the difference in idle between time deltas, and figure CPU usage.
您可以参考“DevTools”项目。
使用 ActivityManager 您可以获得很多信息,例如 ActivityManager.RunningAppProcessInfo、ActivityManager.RunningTaskInfo,...
但我不确定结果是否与“top”命令相同。
看
ActivityManager
You can reference the "DevTools" project.
Using ActivityManager you can get lots information, such as ActivityManager.RunningAppProcessInfo, ActivityManager.RunningTaskInfo, ...
But I am not sure the result will same as 'top' command.
see
ActivityManager