3

我正在尝试使用 Android Profiler 分析我的代码。问题是命名我的 C++ 线程,我尝试使用:

pthread_setname_np(pthread_self(), "MyThread");

但它不显示指定的名称。如何在 Android 上命名我的 C++ 线程?

4

1 回答 1

0
  1. 获取对您的 JavaVM 的引用:
JavaVM* jvm;
env->GetJavaVM(&jvm);
  1. 在将线程附加到 JVM 时设置名称:
std::thread myThread([jvm](){
  JNIEnv* myNewEnv;
  JavaVMAttachArgs args;
  args.version = JNI_VERSION_1_6;
  args.name = "Fancy Thread";
  args.group = NULL;
  jvm->AttachCurrentThread((JNIEnv**)&myNewEnv, &args);

  while(1){
   // ....
  }

});
  1. 您现在将在 Android Studio 调试器中看到正确的线程名称。
于 2019-12-26T15:33:07.613 回答