如何在Android NDK中获取我的进程'id(PID)?

时间:2013-09-13 17:12:27

标签: android android-ndk

如何在Android NDK中获取我的进程'id(PID)?

jclass proc_Cls = env->FindClass("android/os/Process");
jmethodID proc_id = env->GetMethodID(proc_Cls, "myPid", "()I");
jint prcId = env->CallIntMethod(proc_Cls, proc_id);

此代码不起作用。

1 个答案:

答案 0 :(得分:4)

由于进程ID是操作系统级别标识符,因此在C或C ++中从操作系统发现它比尝试通过“反向”JNI从Android堆栈获取它更有意义。

用于获取进程ID的posix函数是

pid_t getpid(void);

要使用它,您必须先

#include <sys/types.h>
#include <unistd.h>

由于它是一个posix函数,它不仅可以在Linux内核上运行,而且还可以在Android可能被移植到的任何东西上运行。如果存在可移植性问题,那就是想要知道PID /假设这是有意义的。