`

JNI学习之步步深入二

阅读更多

JNI为了扮演在c/c++和java之间的匹配工作,它首先需要做的就是既要认识java中的数据类型,也要认识c/c++中的数据类型。这时,jni就相当于一个适配者了。好比,A与C两个人本来不认识,可是现在B认识A,B也认识C,那么通过C的指引和介绍,A和C就认识了!

那么jni如何做到既认识C/C++,也认识java呢?其实很简单,一张匹配表足矣,见图!

1、原始数据类型的匹配:

gg

其中jni中的本地类型都是以j开头,可以在c/c++中直接和c/C++类型互通互换!

2、复杂数据类型的匹配:

gg2

几种复合数据类型,主要是字符串jstring和数组jarray。注意jni中复合数据类型不能直接转换为c/C++中相应的类型,需要调用jni中自带的相应的方法来操作!

分享到:
评论

相关推荐

    hello-jni.rar_ android jni_android hello jni_android jni hellojn

    本篇文章将深入探讨Android环境下使用NDK进行JNI开发,并通过"hello-jni"项目作为实例,带领读者一步步走进Android NDK的世界。 一、Android NDK概述 Android Native Development Kit(NDK)是一组工具,它允许...

    深入理解Android:卷I--详细书签版

     笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild...

    完整代码.rar

    本教程将带你一步步了解如何使用JNI技术,通过两个示例项目"Java-JNIHelloWorld"和"C++ -JNIHelloWorld"来深入学习这一主题。 首先,我们需要理解JNI的基本概念。JNI是一个接口,提供了在Java虚拟机(JVM)中调用...

    CITESPACE使用教程.rar

    在《CITESPACE使用教程.pdf》中,详细步骤和实例将引导用户从安装软件、导入数据,到设置参数、生成可视化图,再到解读结果,步步深入,确保每个使用者都能掌握这一工具。通过学习和实践,科研人员可以充分利用...

    android-ndk初学,一个简单实例实现

    Android NDK 是一个开发工具集,允许Android应用开发者使用C/C++代码来编写部分应用程序,从而利用这些低级语言的高性能和灵活性。这个工具集使得开发者能够利用...掌握这些步骤对于深入学习Android NDK开发至关重要。

    用JAVA读取硬盘序列号 -源码.zip

    在IT领域,尤其是在软件开发中,获取硬件设备的唯一标识符是常见的需求,例如硬盘序列号...如果你希望深入学习,可以下载这个压缩包,按照解压密码解压后查看源码,结合你的Java知识,一步步理解并学习其中的实现方法。

    androidndk开发实战

    总的来说,这个资源包为Android NDK开发提供了一个全面的学习路径,从环境搭建到实际应用,再到高级技巧,一步步引导开发者深入理解并熟练掌握NDK编程。通过实践这些文档中的内容,开发者可以提升其在Android平台上...

    Android HelloNDK

    本文将深入探讨"Android HelloNDK"这一主题,帮助开发者更好地理解和运用NDK。 首先,我们来理解Android NDK的基本概念。NDK是Android开发中的一个重要组件,它提供了一系列的工具,使得开发者能够在Android平台上...

    android源码开发实战21.07.zip

    在Android源码开发实战21.07的资料中,我们可以深入探讨Android系统的内部运作机制,了解并掌握如何对Android进行源码级别的开发和定制。这个压缩包可能包含一系列的教程、代码示例以及相关文档,帮助开发者从底层...

    javacv244jar包及本机库

    JavaCV(Java Computer Vision)是一个Java接口,它为多个计算机视觉库提供了便利...开发者可以利用这些工具执行各种计算机视觉任务,如图像处理、特征检测、人脸识别等,而无需深入学习C++或直接操作OpenCV的原生API。

    PhoneDialer.rar

    本文将深入探讨如何在Delphi 10.3.1环境下,为安卓应用添加动态获取拨打电话权限的机制。 首先,我们需要了解安卓权限系统的变化。自Android 6.0(API级别23)开始,系统引入了运行时权限的概念。对于一些敏感权限...

Global site tag (gtag.js) - Google Analytics