Jni作为C和Java交互的规范,其方法命名规则有自己独特的一套逻辑,对于习惯了正常命名规范的我们来说无疑会增加我们代码编写不必要的负担,对此其实JDK本身已经为开发者准备好了一键生成对应方法头文件.h的方法,具体实现如下。
在Android Studio项目工程下,使用命令行,定位到项目java目录下,注意一定要放在这个目录下,因为之后需要使用包名
+类名
的方式进行识别。然后执行相应命令如下:
javah xxx.xxx.xxx.xxxx
这里的结构是包名加类名,有一点需要注意,不能写上后缀名。执行完成之后会在该目录下生成对应的.h文件,文件名可以自行修改,打开该文件便能发现JDK已经根据类中生命的native方法生成了Jni语法规则的方法名,之后将该文件移到jniLibs下在对应c文件中include引入和实现就可以了。
如果JDK环境变量没有配置好可以尝试使用如下:
javah -classpath . -jni xxx.xxx.xxx.xxxx