1.介绍:A
解读:
java是通过JDK编译的,但是java要通过JNI调用去实现。使得java语言可以与其他语言进行交互。
JNI_OnLoad主要用来返回版本号,
register_android_media_MediaPlayer可以编辑对应的函数表,对应java函数和c的函数。
如何让各个文件系统的工作,java如何找到对应额c函数???
设计目的
标准的java类库可能不支持你的程序所需的特性。
·或许你已经有了一个用其他语言写成的库或程序,而你希望在java程序中使用它。 你可能需要用底层语言实现一个小型的时间敏感代码,比如汇编,然后在你的java程序中调用这些功能。比如你需要调用摄像头,打印机等就要C/C++来实现了。
就是说我们要用java来调用摄像头,但是硬件是有c/C++来实现的,所以就需要有JNI这个接口去调用其他语言来访问硬件。
在开发的过程中,实际上不用自己来写太多的JNI,主要是要看懂系统代码的调用过程。
关于如何编写自己的jni,参考:Android: NDK编程入门笔记
4. 在android中,请简述jni的调用过程。
1)安装和下载Cygwin,下载 Android NDK
2)在ndk项目中JNI接口的设计
3)使用C/C++实现本地方法
4)JNI生成动态链接库.so文件
5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可