`
ai_longyu
  • 浏览: 479186 次
社区版块
存档分类
最新评论

学习android JNI的那些事儿--------6. 在java中传入引用数据类型(对象)作为参数

 
阅读更多

之前我们介绍过在java中传入一些基本数据类型作为参数在jni中的处理,这里我们来介绍下载java中传入我们自定义的一个对象作为参数。

我们先自定义一个class为student


这里定义了一些成员变量和成员函数,还有一个构造函数,接下来我们在main activity中调用native code,让native去调用这个class中函数,我们的做法是:

1. 新建一个student类

2. 然后初始化成员变量

3. 调用jni并且把这个class类型的变量作为参数传入

4. 在jni中调用student class 中的成员函数来修改成员变量并且返回student类型的对象

5. 最后再在main activity中打印出对象的成员变量是否被修改。


在我们的jni中这样来做:


先使用FindClass来找到我们的student class,然后得到所有的成员函数的methodID,之后调用,注意的是,调用CallXXXMethod的时候传入的第二个参数应该是我们student的对象作为参数。

最后启动模拟器:



点击第一个按钮的时候注意title的textView发生了改变:



OK,大功告成。

----------------------------------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

    zstd-jni-1.4.3-1-API文档-中英对照版.zip

    赠送jar包:zstd-jni-1.4.3-1.jar; 赠送原API文档:zstd-jni-1.4.3-1-javadoc.jar; 赠送源代码:zstd-jni-1.4.3-1-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.4.3-1.pom; 包含翻译后的API文档:zstd-jni-...

    zstd-jni-1.3.8-1-API文档-中英对照版.zip

    赠送jar包:zstd-jni-1.3.8-1.jar; 赠送原API文档:zstd-jni-1.3.8-1-javadoc.jar; 赠送源代码:zstd-jni-1.3.8-1-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.3.8-1.pom; 包含翻译后的API文档:zstd-jni-...

    zstd-jni-1.4.3-1-API文档-中文版.zip

    赠送jar包:zstd-jni-1.4.3-1.jar; 赠送原API文档:zstd-jni-1.4.3-1-javadoc.jar; 赠送源代码:zstd-jni-1.4.3-1-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.4.3-1.pom; 包含翻译后的API文档:zstd-jni-...

    zstd-jni-1.4.4-3-API文档-中英对照版.zip

    赠送jar包:zstd-jni-1.4.4-3.jar; 赠送原API文档:zstd-jni-1.4.4-3-javadoc.jar; 赠送源代码:zstd-jni-1.4.4-3-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.4.4-3.pom; 包含翻译后的API文档:zstd-jni-...

    zstd-jni-1.3.8-1-API文档-中文版.zip

    赠送jar包:zstd-jni-1.3.8-1.jar; 赠送原API文档:zstd-jni-1.3.8-1-javadoc.jar; 赠送源代码:zstd-jni-1.3.8-1-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.3.8-1.pom; 包含翻译后的API文档:zstd-jni-...

    libtensorflow_jni-cpu-windows-x86_64-1.6.0

    libtensorflow_jni-cpu-windows-x86_64-1.6.0 libtensorflow_jni-cpu-windows-x86_64-1.6.0 libtensorflow_jni-cpu-windows-x86_64-1.6.0 libtensorflow_jni-cpu-windows-x86_64-1.6.0 libtensorflow_jni-cpu-...

    zstd-jni-1.3.2-2-API文档-中文版.zip

    赠送jar包:zstd-jni-1.3.2-2.jar; 赠送原API文档:zstd-jni-1.3.2-2-javadoc.jar; 赠送源代码:zstd-jni-1.3.2-2-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.3.2-2.pom; 包含翻译后的API文档:zstd-jni-...

    android jni demo--helloworld

    android jni helloworld DEMO

    zstd-jni-1.4.4-3-API文档-中文版.zip

    赠送jar包:zstd-jni-1.4.4-3.jar; 赠送原API文档:zstd-jni-1.4.4-3-javadoc.jar; 赠送源代码:zstd-jni-1.4.4-3-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.4.4-3.pom; 包含翻译后的API文档:zstd-jni-...

    zstd-jni-1.3.2-2-API文档-中英对照版.zip

    赠送jar包:zstd-jni-1.3.2-2.jar; 赠送原API文档:zstd-jni-1.3.2-2-javadoc.jar; 赠送源代码:zstd-jni-1.3.2-2-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.3.2-2.pom; 包含翻译后的API文档:zstd-jni-...

    jni4net-0.8.8.0-bin(32&64;).rar

    jni4net-0.8.8.0,比较新的版本,里面有proxygen.exe可以编译,以及jni4net.j-0.8.8.0.jar,32位和64位皆可

    webrtc-android-jni.rar

    webrtc-android-jni

    jni-jna-web.zip

    基于spring-boot2.3.0,net.java.dev.jna5.9.0开发的JNI和JNA的web工程。 主要包括:结构体传参,so加载,so文件调用等

    Android JNI中C++层与Java层的对象交互实例

    Android JNI中C++层与Java层的对象交互实例代码详细介绍。Android JNI中C++层与Java层的对象交互实例代码详细介绍。Android JNI中C++层与Java层的对象交互实例代码详细介绍。Android JNI中C++层与Java层的对象交互...

    android-aes-jni, 用于 jni& Java的Android AES示例.zip

    android-aes-jni, 用于 jni& Java的Android AES示例 android-aes-jni git clone https://github.com/panxw/android-aes-jni.git cd android-aes-jni ndk-build

    jni数据类型转换

    jni数据类型转换例程 1. java向native传递常用基本数据类型 和字符串类型 2. java向native传递数组类型 3. java向native传递自定义java对象 4. java向native传递任意java对象(以向native传递ArrayList为例) 5....

    android JNI C 调用Java

    android JNI C 调用Java

    Android Studio3.0开发JNI流程------C++调用Java以及Java调用C++,C++/Java互相调用

    Android Studio3.0开发JNI流程,C++调用Java以及Java调用C++,C++/Java互相调用一个简单案例

    JNI------C语言调用Java

    最近项目中需要使用JNI,所以研究了一下,其中遇到过不少问题,总结一下,让遇到同样问题的人...在C/C++中调用Java的方法一般分为五个步骤:初始化虚拟机、获取类、获取类的方法、创建类对象、调用方法和退出虚拟机。

    Android调用Jni返回自定义对象

    Android调用Jni返回自定义对象 博客:http://blog.csdn.net/lowprofile_coding/article/details/39367323

Global site tag (gtag.js) - Google Analytics