/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* http://blog.csdn.net/conowen
* 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。
********************************************************************************************/
1、JNINativeMethod 结构体的官方定义
第一个变量name是Java中函数的名字。
第二个变量signature,用字符串是描述了Java中函数的参数和返回值
第三个变量fnPtr是函数指针,指向native函数。前面都要接
(void *)
第一个变量与第三个变量是对应的,一个是java层方法名,对应着第三个参数的native方法名字
更多内容请查看之前博文:http://blog.csdn.net/conowen/article/details/7521340
示例:
主要是第二个参数比较复杂:
括号里面表示参数的类型,括号后面表示返回值。
"()" 中的字符表示参数,后面的则代表返回值。例如"()V" 就表示void Fun();
"(II)V" 表示 void Fun(int a, int b);
这些字符与函数的参数类型的映射表如下:
2、第二个参数之基本数据类型
3、第二个参数之对象类型与数组类型
对象类型:以"L"开头,以";"结尾,中间是用"/" 隔开。如上表第1个
数组类型:以"["开始。如上表第2个(n维数组的话,则是前面多少个"["而已,如"[[[D"表示“double[][][]”)
对象数组类型:上述两者结合,如上表第3个
3.1、对象类型与数组类型的举例:
分享到:
相关推荐
在基于Android系统的NDK(Native Development Kit)工程开发过程中,为了更好地与整个Android系统集成并方便地进行调试和测试,通常需要将外部NDK工程的部分内容融入到Android系统源码中,并与之一起编译。...
【Android NDK 开发】JNI 动态注册 ( 动态注册流程 | JNI_OnLoad 方法 | JNINativeMethod 结构体 | GetEnv | RegisterNatives ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/104222271 I ....
JNI在Android开发中起着至关重要的作用,尤其是在需要利用硬件加速、调用系统底层库或者实现高性能计算时。本教程将通过一个实际的JNI使用Demo源码,深入讲解JNI的关键概念和使用方法。 ### 1. C/C++调用Java 在...
在Android应用开发中,Cocos2d-x是一个广泛使用的开源游戏引擎,它允许开发者使用C++编写游戏逻辑,同时提供了与Java交互的能力。本主题聚焦于如何通过JNI(Java Native Interface)来实现在Cocos2d-x中调用Java层的...
对于Android开发者,尤其是底层开发人员,理解和掌握JNI是必不可少的技能。JNI允许开发者在Android应用中使用C/C++代码,这在处理性能敏感的计算、利用硬件加速或者调用已存在的C/C++库时非常有用。 1. **JNI基本...
JNI在Android开发中尤其重要,因为它是连接Java应用程序和C/C++原生代码的桥梁。Android NDK(Native Development Kit)是一组工具,允许开发者在Android应用中嵌入C/C++代码,从而利用JNI实现功能。 在JNI中,有两...
JNI在Android开发中的应用场景非常广泛,尤其当涉及到高性能计算时,由于Java本身运行效率的限制,开发者往往会通过JNI调用底层C/C++代码来实现。 #### 二、JNI的基本流程 1. **创建Android项目**:首先需要在...
在Android开发中,JNI被广泛用于实现Java无法直接处理的功能,例如调用系统底层库、优化性能敏感的代码或者利用硬件特性。这个“jni-bridge.rar_jni”压缩包中的“jni-bridge.cpp”文件很可能包含了一个示例或实际...
除了基本的数据类型操作之外,JNI还支持更复杂的数据结构处理,如数组、字符串等。例如,可以实现一个函数`concatStrings`来连接两个Java字符串。 ```c JNIEXPORT jstring JNICALL Java_JNIExample_concatStrings...
JNI在Android开发中扮演着重要的角色,特别是在需要利用C++或C这样的本地代码来提升性能、接入硬件设备或者调用已有的库时。 在Android应用开发中,JNI的使用主要有以下几个方面: 1. **性能优化**:Java代码执行...
JNI在Android系统中扮演着重要的角色,因为它使得开发者能够利用C/C++的高效性能来编写部分底层代码,例如硬件加速或者访问特定平台功能。 在JNI中,有两种主要的函数注册方式:静态注册和动态注册。 1. **静态...