概述:
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: