`
朱润泽
  • 浏览: 47434 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

JNI的基本语法

 
阅读更多

 

JNI的类型

1、基本数据类型

以下是java的基本数据类型和jni中的基本数据类型的比较,及各类型的字节。

2、引用类型

Java中不同的引用类型在JNI当中也有对应的引用类型,以下树形表示:

当在C语言中使用时,所有的JNI引用类型都被定义为jobject类型。typedef jobject jclass;

 

jvalue 类型

jvalue类型是一个基本数据类型和引用类型的集合,定义方式如下:

 typedef union jvalue {
     jboolean z;
     jbyte    b;
     jchar    c;
     jshort   s;
     jint     i;
     jlong    j;
     jfloat   f;
     jdouble  d;
     jobject  l;
 } jvalue;

class的说明

(1).类和接口的描述符在java当中使用”.”,如:java.lang.String

而在JNI当中是用”/”,如:java/lang/String

(2).数组类型的引用类型用”[”表示。如  int[](java中的表示法)   ß---à  [I([ 大写的i JNI中的表示法,[ 的个数表示数组的维数  二维则是  [[ I )

 

(3)域的说明,和java比较如下表:

注意:引用类型的域 L开头,并且以”;”作为结尾。数组类型和class说明的一样。

 

(4).Method说明

JNI中的方法的声明规则:先写参数列表,再写返回类型,以下是例子。

 

 

 

分享到:
评论

相关推荐

    Android 使用JNI

    二、JNI基本语法 1. **数据类型映射**: Java类型与C/C++类型之间有对应关系,如Java的`int`对应C的`jint`,`String`对应`jstring`。 2. **JNIEnv指针**: JNI接口函数通过JNIEnv指针提供,它包含了一系列方法,用于...

    JNI基础资料

    本资料将深入介绍JNI的基础知识,包括C语言的基本语法以及JNI的基本概念和使用。 首先,理解C语言的基本语法是学习JNI的前提。C语言是一种强大的、低级别的编程语言,它的语法简洁,执行效率高。在JNI中,开发者...

    jni详解清晰详细pdf

    5. **对象和数组**:JNI提供了丰富的接口来操作Java对象,包括字符串、数组(基本类型数组和对象数组)以及数组的元素。这部分会介绍如何创建、访问和修改这些对象。 6. **异常处理**:在本地代码中捕获和抛出Java...

    用Delphi开发JNI应用

    首先,理解JNI的基本概念是必要的。JNI提供了一种桥梁,使得Java虚拟机(JVM)可以调用本地方法(即非Java语言编写的函数),同时也允许本地代码调用Java类的方法。这在需要利用C、C++或Delphi等语言高效性能或访问...

    JNI测试用例代码及报告

    下面将详细介绍JNI的基本概念、使用场景、测试用例的常见内容以及如何调试JNI相关的问题。 1. JNI基础概念: JNI是Java平台的一部分,它为Java应用程序提供了一种方式来调用本地(非Java)代码,通常是C/C++,以...

    Jni 调用注意事项

    在C语言中,调用JNI函数时必须使用`(*env)->`语法,而在C++中可以简化为`env->`。这是由于C++的名称修饰(name mangling)规则导致的,C++会改变函数的名称以处理函数重载,而C语言没有这种机制。 7. **字符串处理...

    ubuntu_netbeans_jni

    8. **后续步骤**:完成基本的JNI应用后,可能需要进一步优化代码,处理错误,或者扩展功能,例如添加更多的本地方法,优化性能,或者调整为适应多平台的需求。 总结来说,这个主题涉及的是如何在Ubuntu Linux上使用...

    Android_Jni 简单调用

    Android JNI(Java Native Interface)是Java平台用于与本地代码交互的一种技术,允许Java代码和其他语言写的代码进行交互。...同时,掌握CMake的基本语法和配置也是必要的,以便更好地管理和构建C/C++代码。

    C/C++在进行jni开发时的区别

    3. 数据类型转换:C语言在JNI中需要处理Java对象到C数据类型的转换,如将Java对象转换为本地指针,或将基本数据类型转换为对应的C类型。 4. 错误处理:C语言没有异常处理机制,因此在JNI中通常需要使用错误代码和...

    Java JNI 技术文档教程

    - **C语言基础:** 掌握C语言的基本语法和编程技巧。 - **C++基础:** 了解C++语言的特性和面向对象编程。 推荐参考书籍: - **《Java Programming Language》第二版,作者:Ken Arnold 和 James Gosling** - **...

    JNI开发——不同class类中的native本地方法的动态注册

    其基本语法如下: ```cpp int RegisterNatives(JNIEnv *env, jclass clazz, JNINativeMethod* methods, int numMethods); ``` 其中,`JNIEnv *env`是JNI环境指针,`jclass clazz`是要注册本地方法的类的类对象,`...

    java_jni_mytest.tar.gz_android_jni

    首先,让我们了解JNI的基本概念。JNI是Java平台标准的一部分,它为Java应用程序提供了一种方式来调用本地(非Java)代码,反之亦然。这使得开发者可以利用Java的跨平台特性同时利用C/C++等语言的高效性能。JNI接口...

    Android JNI开发

    - **数据类型转换**:JNI定义了一套与Java基本类型对应的本地类型,例如,Java的`int`对应JNI的`jint`,`String`对应`jstring`等。对于引用类型,例如数组,也有相应的本地类型,如`jobjectArray`。 - **注册JNI...

    JNI的全部中英文资料,包括Android NDK mk说明的中文翻译

    综合这些资料,开发者不仅可以学习到JNI的基本概念和使用方式,还能深入理解Android NDK的构建过程,从而在Android开发中灵活运用原生代码,提高应用程序的性能和效率。同时,由于资料全面,对于遇到的大多数JNI相关...

    AndroidJNI教材

    读者可以通过这部分内容复习或学习C语言的基本语法,数据类型,控制结构,函数,指针等,这些都是编写JNI代码的基础。 总的来说,《AndroidJNI教材》这套资源提供了全面的JNI学习路径,从基本概念到高级应用,涵盖...

    android jni demo

    通过分析这个"android jni demo"项目,开发者可以了解JNI的基本使用流程,包括Java和C/C++之间的接口定义、本地库的构建和加载,以及如何在实际项目中运用这些技术。这为深入理解Android系统的底层机制和优化提供了...

    java JNI开发 linux平台学习开发模板

    2. C++中编写JNI方法的语法,如`JNIEXPORT`、`JNICALL`和JNI方法名的构成。 3. 使用Makefile编译C++代码并生成动态链接库。 4. 在Linux环境下运行包含JNI的Java应用程序,设置`java.library.path`。 这个模板为初学...

    Android.mk语法说明(android ndk开发)

    本文将深入探讨`Android.mk`文件的基本语法和常用配置选项,并通过实例说明其在实际开发中的应用。 #### 二、基本概念 在开始详细介绍`Android.mk`语法之前,我们需要了解几个基本的概念: 1. **Module**:在`...

    Android 计算数学表达式(NDK JNI方式)

    以上就是使用NDK和JNI在Android应用中计算数学表达式的基本流程。这种方法虽然需要更多的编码工作,但能充分利用硬件资源,为计算密集型任务提供更好的性能。对于初学者来说,这是一个很好的学习实践NDK和JNI技术的...

Global site tag (gtag.js) - Google Analytics