JNI一些基本概念
1.在开发JNI之前我们需明白什么是JNI,以及JNI的使用场景,下面回答这两个问题
第一个问题:什么是JNI呢?
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)
第二个问题:JNI的使用场景?
- java api 不能满足我们程序的需要的时候
- 算法计算,图像渲染 效率要求非常高
- 当需要访问一些已有的本地库
2.开发JNI就必须使用NDK,那么NDK又是什么呢?
NDK是工具的集合,帮助开放者快速开放C/C++ 动态库的工具。
3.JNI的数据类型与java之间的映射关系
3.1 基本数据类型
java | JNI |
---|---|
boolean | jboolean |
byte | jbyte |
char | jchar |
short | jshort |
int | jint |
long | jlong |
float | jfloat |
double | jdouble |
3.2 引用类型
java | JNI |
---|---|
String | jstring |
Object | jobject |
3.3 数组类型
java | JNI |
---|---|
Object[] | jobjectArray |
String[] | jobjectArray |