JNI之------JNINativeMethod

简介: JNI之------JNINativeMethod

1、JNINativeMethod 结构体的官方定义

typedef struct {  
    const char* name;  
    const char* signature;  
    void* fnPtr;  
} JNINativeMethod;

第一个变量name是Java中函数的名字。

第二个变量signature,用字符串是描述了Java中函数的参数和返回值

第三个变量fnPtr是函数指针,指向native函数。前面都要接 (void *)

第一个变量与第三个变量是对应的,一个是java层方法名,对应着第三个参数的native方法名字

示例:

static JNINativeMethod methods[] = {  
  { "printJNI", "()I",        (void*)printForTest},  
    
}; 

第二个参数比较复杂:

括号里面表示参数的类型,括号后面表示返回值。

"()" 中的字符表示参数,后面的则代表返回值。

例如"()V" 就表示void Fun();

"(II)V" 表示 void Fun(int a, int b);

2、第二个参数之基本类型

 

3、第二个参数之对象类型和数组类型

 

对象类型:以"L"开头,以";"结尾,中间用"/"隔开。如表第一行。

数组类型:以"["开头,如表第二行(n维数组的话,则前面就n个"[",如"[[[D"就表示double[ ][ ][ ])。

对象数组类型:就是上述两者结合,如表第三行。


目录
相关文章
|
7月前
|
存储 Java
JVM-------栈
JVM-------栈
|
7月前
|
存储 C语言
C语言-------函数栈帧的创建和销毁------剖析描骨
C语言-------函数栈帧的创建和销毁------剖析描骨
|
9月前
|
小程序 前端开发 定位技术
小程序----组件
小程序----组件
|
4天前
|
安全 Java
《深入理解java虚拟机》学习笔记-----郑雨迪
《深入理解java虚拟机》学习笔记-----郑雨迪
45 0
|
9月前
|
小程序 前端开发 程序员
小程序----网络数据请求
小程序----网络数据请求
|
算法
Java----------LeetCode----------46. 全排列
说起回溯算法,渊源颇深,我上次做过一道,本应该这次能拿下但是,又没拿下,不过这次有点理解它的思想了, 每次的回溯就是一个二叉树,简单的说,就是你执行的操作需要回溯时它会返回调用它的方法哪里的状态,进行下一步的执行。
1078 0