jni 学习笔记

来源:互联网 发布:vwap算法模型解析 编辑:程序博客网 时间:2024/05/22 15:20

理论:

1.JNI :Java Native Interface。就是说JNI是一个java执行Native code的一个接口。 

问:为什要称为“Native”。

答:java code 编译成 class 有JVM解释执行,所谓“解释执行”就是将*.class解释成 cpu相关的code 在真正执行。所以将非java code 称为:Native(原生)code 就很有道理了。


2.关于变量 javaMV 和 javaEnv 的区别和联系。

javaMV:代表java MV本身,所以一个虚拟机只有一个javaMV 变量。一个javaMV可能对应多个进程。

javaEnv :代表java MV的一个状态,对应一个线程。

通过javaMV 可以得到javaEnv 。

javaEnv 和javaMV是通向java世界的桥梁。


实践:

1.android jni 开发需要 NDK开发包,这个可以在官网下载。下载后你面有非常好的使用范例,依葫芦画瓢非常简单。

2.关于javah 的使用格式为:$ javah -classpath . -jni com.ozing.dataset.SynDirDataSet 

需要注意的是javah 的格式:

lasspath 后面是装入类的路径,即包涵 com.xxx.xxx 的那个路径例如:

网上有种说法是javah必须在bin目录下运行是不对的。