声明
- 前阶段在项目中使用了Android的JNI技术,在此文中做些技术知识总结。
- 此篇参考一些博客和书籍,不方便逐一列出,仅供学习、知识分享,代码基于Android 7.1.1。
1 JNI函数中的关键参数:JNIEnv 指针
JNIEnv指针是Native世界中Java环境的代表,通过该指针Native世界就可以访问Java世界的代码进行操作,其具有以下主要特点及作用:
- JNIEnv *只对创建它的线程有效,不能跨线程传递,不同线程的JNIEnv是相互独立的;
- 通过JNIEnv *可调用Java的方法;
- 通过JNIEnv *可操作Java中的变量和对象;
进入到源码:libnativehelper/include/nativehelper/jni.h,查看JNIEnv结构体的声明:
#if defined(__cplusplus)