我的应用程序是一个带有一些本机代码的 Android 应用程序。
Java 代码通过 new Thread(new Runnable) 启动一个线程,在本机代码中,我通过 AttachCurrentThread 将该线程附加到 JVM。
在该线程中调用的本机函数是一个无限循环,它将侦听简单事件(布尔变量)并调用另一个本机函数,该函数通过使用正确的 JNIEnv 指针和 jobject 将填充 Java 端的 2 个 Java 变量并调用 void方法来显示数据。该循环的原因是正常调用函数的开销(有很多分配和销毁要做)很可能是巨大的。
唯一的问题是,虽然我可以更新 JNIEnv 指针,但我不知道如何为作业对象执行此操作。
通过jobject,我的意思是通过函数调用传递给本机代码的jobject,如下所示
jint Java_com_example_example_MainActivity_NativeFunc( JNIEnv* env,
jobject obj)
{
return;
}