Android Ndk-为C++;线

Android Ndk-为C++;线,android,c++,android-studio,android-ndk,android-profiler,Android,C++,Android Studio,Android Ndk,Android Profiler,我正在尝试使用Android Profiler分析我的代码。 问题是我的C++线程命名,我尝试使用: pthread_setname_np(pthread_self(),“MyThread”) 但它不显示指定的名称。如何在Android上命名我的C++线程?< /P> 获取对JavaVM的引用: JavaVM*jvm; env->GetJavaVM(&jvm); 将线程附加到JVM时设置名称: std::线程myThread([jvm](){ JNIEnv*myNewEnv; JavaVMAt

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

pthread_setname_np(pthread_self(),“MyThread”)

但它不显示指定的名称。如何在Android上命名我的C++线程?< /P>
  • 获取对JavaVM的引用:
  • JavaVM*jvm;
    env->GetJavaVM(&jvm);
    
  • 将线程附加到JVM时设置名称:
  • std::线程myThread([jvm](){
    JNIEnv*myNewEnv;
    JavaVMAttachArgs args;
    args.version=JNI_version_1_6;
    args.name=“花式线”;
    args.group=NULL;
    jvm->AttachCurrentThread((JNIEnv**)和myNewEnv,&args);
    而(1){
    // ....
    }
    });
    
  • 现在,您将在Android Studio调试器中看到正确的线程名称

  • 检查从
    pthread\u setname\u np
    返回的值。例如,名称的长度可能有限制。返回值为0,因此调用成功