Pich Blog

关注移动开发,大数据,云计算,软件架构!

3.JNI开发流程

概述

现在java中声明native方法,然后用c/c++代码实现native方法,最后编译调用动态库。

声明native方法

cn/woblog/jni/TestMain.java

这里还加载了so。完整的名称为libjni-testmain.so。

编译Java文件,导出JNI头文件

编译java文件,通过class得到jni的头文件

在当前目录下就会生成一个cn_woblog_jni_TestMain.h的头文件:

函数名:

JNIEnv:指向JNI环境的指针,可以通过他来访问JNI提供的接口方法

jobject:表示java中的对象,this

JNIEXPORT,JNICALL:JNI中定义的宏,可以在jni.h中查看

extern “C”

这个宏是必须的,他指的是内部的代码采用c语言风格来编译,否则当c++。

实现JNI方法

c++

c

课题看到区别还是很小的,只是env。

c++:env->NewStringUTF(“Hello from JNI!”);

c:(*env)->NewStringUTF(env,”Hello from JNI!”);

编译

c

-I:指定include地址,后面那个是jni_md.h在的目录

c++

运行

输出:

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注