JNI
归去来9527
这个作者很懒,什么都没留下…
展开
-
JNI异常处理
JNI异常处理JNI函数在执行过程中会出现异常,其异常处理机制与Java和C++都不一样。JNI提供了两种检查异常的方法:方法1 检查上一次 JNI函数调用的返回值是否为NULL。方法2 通过调用JNI函数ExceptionOccurred()来判断是否发生异常。检查到异常后必须予以处理。处理异常的方法也有两种:Native方法可选择立即返回,这样异常就会在转载 2014-11-27 18:02:52 · 572 阅读 · 0 评论 -
JNI之helloworld
JNI其实是Java Native Interface的简称,也就是java本地接口。它提供了若干的API实现了和Java和其他语言的通信(主要是C&C++)。也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢?你的Java原创 2014-11-27 10:21:09 · 420 阅读 · 0 评论 -
JNI方法签名规则
JNI方法签名规则有了数据类型之间的对应关系,JNI就可以正确识别并转换Java类型。那JNI又是如何识别Java的方法呢?Java支持方法重载,仅靠函数名是无法唯一确定一个方法的。于是JNI提供了一套签名规则,用一个字符串来唯一确定一个方法。其规则如下:(参数1类型签名参数2类型签名……参数n类型签名)返回值类型签名以上签名字符串之间均没有空格。类型签名又转载 2014-11-27 17:53:55 · 611 阅读 · 0 评论 -
Java数据类型与JNI数据类型转换
2.4 在Java中调用JNI实现方法本节介绍如何在Java中调用JNI实现方法、JNI数据类型转换、JNI方法命名规则,以及JNI方法签名规则。2.4.1 Java数据类型与JNI数据类型转换Java中调用Native方法传递的参数是Java类型的,这些参数需要经过Dalvik虚拟机转化为JNI类型才能被JNI层识别。下面分基本类型和引用类型介绍这种转化关系。1.转载 2014-11-27 17:55:09 · 567 阅读 · 0 评论 -
JNI总管:JNIEnv
2.3 JNI总管:JNIEnv在Log系统的实例中,JNI层实现方法和注册方法中都使用了JNIEnv这个指针,通过它调用JNI函数,访问Java虚拟机,进而操作Java对象。JNIEnv是JNI编程中最重要的概念,本节将详细介绍它。首先看JNIEnv的体系结构,如图2-2所示。在图2-2中可以看到,JNIEnv首先指向一个线程相关的结构,该结构又指向一个指针数组,转载 2014-11-27 17:58:39 · 2335 阅读 · 0 评论