jni
文章平均质量分 66
普通网友
这个作者很懒,什么都没留下…
展开
-
Jni实现与原生代码通信
(以Hello-jni为例) 1.原生方法声明 stringFromJNI方法声明中含有关键字native以通知java编译器,它用另一种语言提供该方法的具体实现。因为原生方法没有方法体,方法声明以语句终结符分号结尾。public native String stringFromJNI();尽管虚拟机知道该方法被原生实现,但是仍然不知道到哪去找方法的实现。2.加载共享库原生方法被编译成一转载 2017-11-30 16:09:47 · 170 阅读 · 0 评论 -
对引用数据类型的操作
引用类型以不透明的引用方式传递给原生代码,而不是以原生数据类型的形式呈现,因此引用类型不能直接使用和修改。JNI提供了与这些引用类型密切相关的一组API,这些API通过JNIEnv接口指针提供给原生函数。字符串数组NIO缓冲区字段方法1字符串操作字符串操作JNI把Java字符串当作引用类型来处理。这些引用类型并不像原生C字符串一样可以直接使用,JNI提供了Java字符串与C字符串之间相互转载 2017-11-30 20:45:25 · 236 阅读 · 0 评论 -
NIO操作
原生I/O在缓冲区、大规模网络和文件I/O及字符集支持方面的性能有所改进。JNI提供了在原生代码中使用NIO的函数。与数组操作相比,NIO缓冲区的数据传送性能较好,更适合在原生代码和java应用程序之间传送大量数据。1.创建直接字节缓冲区 原生代码可以创建java应用程序使用的直接字节缓冲区,该过程是以提供一个原生C字节组为基础。//基于给定C字节数组创建字节缓冲区unsigned char*转载 2017-11-30 21:56:56 · 209 阅读 · 0 评论 -
调用方法
与域一样,java中有两类方法:实例方法和静态方法。Jni提供访问两类方法的函数,含有一个静态方法和一个实例方法的Java类。public class JavaClass{ private String instanceMethod(){ return "Instance Method"; } private static String staticMetho转载 2017-11-30 22:41:58 · 382 阅读 · 0 评论 -
异常处理
异常处理是Java程序设计语言的重要功能,Jni中异常行为与Java中的有所不同。在Java中当抛出一个异常时,虚拟机停止执行代码块并进入调用栈反向检查能处理特定类型异常的异常处理程序代码块,这也叫作捕获异常。虚拟机清除异常并将控制权交给异常处理程序,相比之下JNI要求开发人员在异常发生后显式地实现异常处理流。1.捕获异常调用throwingMethod方法时,accessMethods原生方法需要转载 2017-11-30 23:34:07 · 152 阅读 · 0 评论