1.C++层调用Java:
使用jni文件夹下面JniHelper类的getStaticMethodInfo、getMethodInfo获取java层的函数。(具体实现函数实现可知)
JNI函数中的关键参数:JNIEnv 指针
JNIEnv指针是Native世界中Java环境的代表,通过该指针Native世界就可以访问Java世界的代码进行操作了,其具有以下主要特点及作用:
a.JNIEnv *只对创建它的线程有效,不能跨线程传递;
b.通过JNIEnv *可调用Java的方法;
c.通过JNIEnv *可操作Java中的变量和对象;
2.java层调用C++层:
java层声明native函数,这个函数由Jni(C++)层实现,java层是如何通过native函数找到C++层的函数的?
需要把C++这些函数要注册到jni中,jni方法注册分为静态注册和动态注册:
https://blog.csdn.net/Xiaoma_Pedro/article/details/103892682
这篇文章讲的好
————————————————
版权声明:本文为CSDN博主「麻木了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012861978/article/details/105905900