- JNI函数中的JNIExport 和 JNICALL是windows平台的jni编译出来的,在Android手机上,其实可以不要这两个关键字的
- 在Android Studio中在src/main/cpp中自定义头文件时,该自定义的头文件中如果#include <jni.h>的话会发现jni.h找不到,其实不止是#include <jni.h>,#include <string.h>等所有系统头文件均找不到。解决办法是,这些头文件要被某个cpp文件导入才可以。
- JNI是负责转换Java和C/C++的工具,功能有2种:1、将Java与JNI相互转换;2、将C/C++与JNI相互转换。其中第1种功能由系统自动执行,无须我们操心,第2种功能则要调用JNIEnv的方法来实现,所以JNIEnv的方法都是为了将JNI语法转成C/C++语法或者将C/C++语法转成JNI语法。

- Java的基本类型和JNI的基本类型存在一一对应的关系。

而JNI的基本类型实际上都是由C/C++的数据类型定义的,所以JNI的基本类型可以直接用于C/C++编程。
typedef unsigned char jboolean;
typedef signed char jbyte;
typedef unsigned short jchar;
typedef short jshort;
typedef int jint;
typedef long long jlong;
typedef float jfloat;
typedef double jdouble;