2011-06-20 31 views

回答

4

对于大多数此类事情,Android是Linux,而在Linux上执行此操作的官方方式是读取/proc文件系统。这就是ps命令行程序所做的。下面是从Android's ps program一个片段,它生活在平台/系统/核心库:

d = opendir("/proc"); 

while((de = readdir(d)) != 0){ 
    if(isdigit(de->d_name[0])){ 
     int pid = atoi(de->d_name); 
     if(!pidfilter || (pidfilter == pid)) { 
      ps_line(pid, 0, namefilter); 
      if(threads) ps_threads(pid, namefilter); 
     } 
    } 
} 

ps_line功能是相当大的,但你想要的部分就是它读取/proc/<pid>/stat。从该文件中,您可以很容易地获得进程名称,格式为PID (process-name) other stuff - 只需查找第一个paren并解析,直到关闭即可。

相关问题