- 5
- 0
- 约4.82千字
- 约 6页
- 2026-04-14 发布于北京
- 举报
一、谈谈你对JNI和NDK的理解
JNI:
JNI是JavaNativeInterface的缩写,即Java的本地接口。
目的是使得Java与本地其他语言(如C/C++)进行交互。
JNI是属于Java的,与Android无直接关系。
NDK:
NDK是的缩写,是Android的工具开发包。
作用是更方便和快速开发C/C++的动态库,并自动将动态库与应用一起打包到apk。
NDK是属于Android的,与Java无直接关系。
总结:
JNI是实现的目的,NDK是Android中实现JNI的。
二、谈谈你对JNIEnv和JavaVM理解
JavaVM
JavaVM是虚拟机在JNI层的代表。
一个进程只有一个JavaVM。(重要!)
所有的线程共用一个JavaVM。(重要!)
JNIEnv
JNIEnv表示Java调用native语言的环境,封装了几乎全部JNI方法的指针。
JNIEnv只在创建它的线程生效,不能跨线程传递,不同线程的JNIEnv彼此独立。(重要!)
注意:
在native环境下创建的线程,要想和java通信,即需要获取一个JNIEnv对象。我们通过
AtthC
原创力文档

文档评论(0)