是否有使用NDK使用纯C / C ++代码在设备上运行当前所有进程?
答案 0 :(得分:5)
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并解析,直到结束时。