JNI编程学习(一)
来源:互联网 发布:java中getresource方法 编辑:程序博客网 时间:2024/05/17 06:40
什么是JNI
JNI就是java native interface
在编写APP的时候,遇到了图像处理方面的问题,比如FFMPEG来进行视频解码,而java在这个方面是不擅长的,或者说这个东西需要花很长时间去做,而java暂时还没有人做出来相关的类库来调用。但是c&c++方面,已经有人写出很完备的库可以供调用了。这时候java为了支持和c&c++等其他语言的交互有了JNI。java需要.class文件运行在JVM上,这样才使得java是一个跨平台的语言。但是这样在执行的过程中,会导致效率比较低下。c&c++,通过直接在编译的时候就针对特定的平台编译成二进制文件,直接就运行在特定平台上,不需要经过一次转换,这样效率就会高很多。但是代价是:不能跨平台了,因为在编译的时候,就确定了我这个c&c++文件是要在哪个平台下运行的。所以有时候我们选择让c&c++来解决效率问题,然后用java来处理返回的结果就可以。
JNI的主要功能主要是以下两点:
1、调用c&c++等语言已经存在的优秀类库,避免重复“造轮子”。
2、利用c&c++在运行中的高效率去解决效率问题(这往往发生在我这个东西就是用java编写的,但是现在需要加入一个快速处理的功能,然而用java来实现这个功能会比较慢)
那么什么是NDK呢
ndk叫做native develop kit,本地开发套件,是google提供的在android上开发jni的工具集,也就是说NDK实际上是JNI在安卓上的一种具体实现方式。
NDK环境搭建:
windows下需要环境:
1、jdk
2、sdk
3、ndk
具体的搭建过程参考博文:
ndk环境搭建方式
网上比较老的教程说ndk需要linux环境,其实从ndk-r10之后,就有了一个ndk-build.cmd可以直接进行构建了。
参考博文
:http://blog.csdn.net/allen315410/article/details/41800955
- JNI编程学习(一)
- JNI学习(一)
- JNI编程小结(一)
- JNI编程基础(一)
- JNI接口学习(一)JNI数据类型
- JNI学习系列(一)
- Java JNI学习(一)
- 一步一步学习JNI(一)
- JNI学习(一)hellojni
- JNI和NDK编程(一)JNI的开发流程
- Android Studio JNI NDK编程(一)
- JNI编程<一>
- Jni学习一:了解Jni
- JNI学习(一)、JNI简介和HelloWorld示例
- (2)jni编程学习笔记
- Android JNI编程学习
- jni入门学习笔记(一)
- jni入门学习笔记(一)
- iOS渐隐渐现效果跳转
- CodeForces 379A Valera and Plates
- 远离国产!电脑垃圾清理工具:ccleaner和CleanMyMac
- C++命名空间
- 随机数,and()、random()、arc4random()
- JNI编程学习(一)
- Google Hacking
- makefile同名目标处理
- Android Studio 圆形头像
- Windows10开启热点
- 小小银联卡系统(控制台)
- 七大排序问题之归并排序(PHP版)
- 2016-01-02
- 对Integer的再认识