NDK如何获取所有正在运行的进程的列表?

McB*_*Bob 3 android android-ndk

无论如何,是否有使用NDK使用纯C / C ++代码获取设备上当前正在运行的所有进程的信息?

ric*_*chq 5

在大多数情况下,Android是Linux,在Linux上执行此操作的官方方法是读取/proc文件系统。那是什么ps命令行程序一样。这是Android ps程序的摘录,该摘录位于platform / system / core存储库中:

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ps_line函数非常大,但是所需的部分是它的读取位置/proc/<pid>/stat。从该文件中,您可以很容易地获得进程名称,格式如下PID (process-name) other stuff-只需查找第一个括号,然后解析直到结尾。