JNI环境的支持
Android JNI编程从Java方法来调用native方法是比较容易的,
因为Java本身就提供了native关键字作为索引,只要正确的对应Java方法和native方法的包名,做到这一步并不难.
而从C/C++方法调用Java方法则稍复杂一点,因为C/C++没有提供跨语言调用的直接支持,所以需要由Java的JNI运行环境来提供帮助.
每一个JNI native方法的声明一般是这样的:
extern "C"
JNIEXPORT jstring JNICALL
Java_com_sliver_cx_android_1test_MainActivity_stringFromJNI(JNIEnv *env,jobject);
一个个关键字的作用是:
1. extern "C" C/C++的声明关键字 表明这个jni方法是按照C的语法进行编译的.
2. JNIEXPORT 在jni的固件代码中这样声明
#define JNIEXPORT __attribute__ ((visibility ("default"