JNI编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cuizehui123/article/details/78334759

概述:

JNI  java 通往 c/c++  世界的桥梁

NDK 开发文件的工具包,android studio 2.2 以上提供了更加便捷的开发方式。

 JNI 基础知识:

函数声明:

java层 要 声明native 方法 和库文件的引用

函数注册:

要注册 函数,也就是让底层知道上层调用的是哪个函数。
两种方式:

静态注测:也就是JNI编程规范的注册方式, 根据方法的名字寻找, 包名类名方法名。 

如果不用ndk 工具的话, 首先要生成 class文件, 然后利用javah 工具 生成一个.h 头文件。再利用 要编写的C文件 一起通过工具生成so文件。最后将so文件打成lib 也就是声明中要引用的库文件,就完成了函数的调用

如果使用ndk 工具的话,那么  在cpp 文件夹下 extern"C" 然后编写jni函数的c++文件 即可,最后会自动帮我们生成so文件。

动态注册:android 系统采用的注册方式 不用超长包名

步骤: 先 在cpp 文件下定义方法数组,然后通过JNI_Onload()方法进行注册

JNI函数含义:

http://blog.csdn.net/fu_zk/article/details/19031483




传送门:

AndroidStudio2.2 新 NDK开发工具使用:
http://www.jianshu.com/p/e03028f826d7

静态注册 不用NDK Demo:
https://github.com/cuizehui/HelloNDK/tree/master/app

NDK 下两种注册方式的Demo:


个人理解: jni编程就是通过 jni 层函数 将java 类对象方法成员 传递给cpp文件,同样C也可以调java方法。 然后用c语言写代码。



猜你喜欢

转载自blog.csdn.net/cuizehui123/article/details/78334759