JNI全称为Java Native Interface(JAVA本地调用)。从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&C++)进行交互。并非从Android发布才引入JNI的概念的。
java语言是一个上层的高级语言,他只能进行一些上层的调用,如果要访问底层或者访问硬件。java就无法操作。
设计java的时候,很多人认为c++太复杂了。简化c++ --》java语言。
java能力不够。
扩展出来了一个新的技术jni .
java native interface ...java本地接口
NDK开发大至步骤:
NDK:native develop kit 只是一个交叉编译的工具 .so NDK可用于: 实时性要求高,游戏,图形渲染, opencv (人脸识别) ,ffmpeg , rmvb mp5 avi 高清解码. ffmpeg, opencore.
1.在java类里面写native方法
2.执行javah命令生成c头文件
3.写c/c++代码去实现c头文件
4.配置make文件
5.在linx环境下执行NDK命令ndk-build命令生成so库
6.在java类static静态代码块导入so库