如何在 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);
此代码不起作用。
如何在 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);
此代码不起作用。
由于进程 ID 是操作系统级别的标识符,因此在 C 或 C++ 中,从操作系统中发现它比尝试通过“反向”JNI 从 Android 堆栈中获取它更有意义。
获取进程ID的posix函数是
pid_t getpid(void);
要使用它,您必须先
#include <sys/types.h>
#include <unistd.h>
由于它是一个 posix 函数,它不仅应该在 Linux 内核上运行,而且还应该在任何可能移植 Android 运行的东西上运行。如果存在可移植性问题,那就是想知道 PID / 假设这是有意义的。