内存和每个进程的CPU ANDROID进程、内存、ANDROID、CPU

2023-09-08 08:49:18 作者:晗笑

我开发一个Android应用程序在哪里,我想获得正在运行的进程或应用程序列表。我有点找到了一种方法使用activitymanager做。但我不知道的是如何让每个这一过程中使用的处理器和内存。没有任何一个知道我可以实现这个目标。

在code,以获得正在运行的进程是,

我得到的所有从上面code中的正在运行的应用程序。请帮助我获得列表中的每一个的每一个过程中的值。

感谢您。

解决方案

CPU负载 - 你需要阅读的/ proc / [PID] / STAT(参考的http:// linux.die.net/man/5/proc )。寻找UTIME&安培; STIME,它们是该流程的用户模式和内核模式中花费的时间。一个很好的例子,看看它是如何工作的,你可以找到顶级的实用程序的源代码code(检查出top.c的read_stat功能)。

内存使用情况 - 传统上,人们再次读取的/ proc / [PID] / STAT的RSS领域。现在是比较流行的使用PSS。 (参见http://developer.android.com/reference/android/os/Debug.html#getPss%28%29).您可以维基的定义和RSS和PSS的差别 - 这是是与全球份额库的大小

I'm developing an android application where in it, I want to get the running process or app list. I kinda found a way to do using activitymanager. but what I don't know is on how to get the processor and memory used per that process. does any one know how I can achieve this goal.

进程 里什么不能 结束进程 我的进程数是36 CPU只用2 19 内存478M 2153M

the code to get the running processes is,

I get all the running app processes from the above code. please help me to get the values for each an every process in the list.

thank you.

解决方案

CPU load - you need to read the /proc/[pid]/stat (ref http://linux.die.net/man/5/proc). Looking for utime & stime, they are the times the process spends on user mode and kernel mode. A good example to see how it works, you can find the source code of the top utility (check out the read_stat function in top.c).

Memory usage - traditionally, people read /proc/[pid]/stat again for the rss field. Now it is more popular to use the PSS. (ref http://developer.android.com/reference/android/os/Debug.html#getPss%28%29). You can wiki the definition and difference of RSS and PSS - it is something to do with the size of global share library.