Android 蓝牙JNI层如何调用到navite层?---详解

同学,别退出呀,我可是全网最牛逼的 Android 蓝牙分析博主,我写了上百篇蓝牙文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。

一、注册native函数

当Java代码中执行Native的代码的时候,首先是通过一定的方法来找到这些native方法。JNI有如下两种注册native方法:

静态注册
根据函数名来找对应的JNI函数。这种方法需要Java的工具程序Javah参与:
编写Java代码编译成.class文件;
使用Javah,例(javah -o output packagename.classname),这样他会生成output.h的JNI层头文件。其中packagename.classname是Java代码编译后的.class文件,而在生成的output.h文件里,声明了对应JNI函数,只要实现里面的函数即可。一般头文件名字会使用packagename_class.h的样式,例如JNIEXPORT void JNICALL Java_android_media_MediaScanner_processFile
动态注册
通过JNI重载JNI_OnLoad()方法,调用registerNativeMethods函数来完成注册工作
下面主要讲一下动态注册,动态注册比较方便jni的移植,而静态注

猜你喜欢

转载自blog.csdn.net/weixin_45534242/article/details/124788336