android NDK 实用学习(二)-java端对象成员赋值和获取对象成员值
1,关于java端类及接口定义请参考:
android NDK 实用学习-获取java端类及其类变量
2,对传过来的参数进行赋值:
- 对bool类型成员进行赋值
env->SetBooleanField(jobj, jfbdata, false);
- 对double类型成员进行赋值
env->SetDoubleField(jobj, jfddata, 209.22);
- 对int类型成员进行赋值
env->SetIntField(jobj, jfidata, );
- 对byte类型成员进行赋值
env->SetByteField(jobj, jfcdata, );
- 对String类型进行赋值
char data[] = ""; env->SetObjectField(jobj, jfsdata, env->NewStringUTF(data));
- 对基本类型数组类型进行赋值
- // 获取Java中Int数组赋值
- jintArray jint_arr = (jintArray)env->GetObjectField(jobj, jiarr);
- int arrInt[] = {};
- for(int i = ; i < ; ++i){
- arrInt[i] = +i;
- }
- env->SetIntArrayRegion(jint_arr, , , arrInt);
- // 获取Java中byte数组赋值
- jfieldID jbyteArr = env->GetFieldID(jcSetDataMgr, "byteArr", "[B");
- char arrByte[] = "";
- jbyteArray jbyte_arr = (jbyteArray)env->GetObjectField(jobj, jbyteArr);
- env->SetByteArrayRegion(jbyte_arr, , , (const signed char*)arrByte);
3,获取成员变量值:
- 获取bool类型成员变量值
- bool bData = env->GetBooleanField(jcSetDataMgr, jfbdata);
- 获取double类型成员变量值
- double dData = env->GetDoubleField(jcSetDataMgr, jfddata);
- 获取int类型成员变量值
- int iData = env->GetIntField(jcSetDataMgr, jfidata);
- 获取byte类型成员变量值
- char cData = env->GetByteField(jcSetDataMgr, jfcdata);
- 获取String成员变量值
- jfieldID jfsdata = env->GetFieldID(jcSetDataMgr, "sData", "Ljava/lang/String;");
- jstring jtestStr = (jstring)(env->GetObjectField(jcSetDataMgr, jfsdata));
- const char* testStr = env->GetStringUTFChars(jtestStr, NULL);
- char testData[] = {};
- strcpy(testData, testStr);
- env->ReleaseStringUTFChars(jtestStr, testStr);
- 获取基本类型数组成员变量值
- jfieldID jiarr = env->GetFieldID(jcSetDataMgr, "intArr", "[I");
- if(NULL == jiarr){
- DEBUG_OUT("jfbdata fail!");
- }
- // 获取Java中数组属性arrays的对象
- jintArray jint_arr = (jintArray)env->GetObjectField(jobj, jiarr);
- int arrInt[] = {};
- for(int i = ; i < ; ++i){
- arrInt[i] = +i;
- }
- env->GetIntArrayRegion(jint_arr, , , arrInt);
4,关于类中包含类的可以依次类推,如有用到,以后后续完善!
android NDK 实用学习(二)-java端对象成员赋值和获取对象成员值的更多相关文章
- android NDK 实用学习(三)- java端类对象的构造及使用
1,读此文章前我假设你已经读过: android NDK 实用学习-获取java端类及其类变量 android NDK 实用学习-java端对象成员赋值和获取对象成员值 2,java端类对象的构造: ...
- android NDK 实用学习(五)-c++端调用java接口
1,阅读此文章前请阅读前面文章,以免阅读出现障碍: android NDK 实用学习(一)-获取java端类及其类变量 android NDK 实用学习(二)-java端对象成员赋值和获取对象成员值 ...
- android NDK 实用学习(一)-获取java端类及其类变量
近期为android 端项目包装一些c++代码,故学习ndk相关知识,现总结如下: 1,java与c++类型参照图: 2,此测试中使用的java类: package com.dasea.test.co ...
- android NDK 实用学习(四)-类缓存
1,为什么需要类缓存: 答:由于频繁的查找类及类成员变量需要很大的时间与空间开销,可参考如下文章: http://www.ibm.com/developerworks/cn/java/j-jni/ h ...
- 二、Android NDK编程预备之Java jni入门Hello World
转自: http://www.eoeandroid.com/forum.php?mod=viewthread&tid=264543&fromuid=588695 昨天已经简要介绍了J ...
- 【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据 ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- 三、Android NDK编程预备之Java jni入门创建C/C++共享库
转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...
- Android NDK开发 JNI操作java构造方法,普通方法,静态方法(七)
Android NDK开发 JNI操作java普通.静态.构造方法 1.Jni实例化一个Java类的实例jobject 1.通过FindClas( ),获取Java类的的jclass 2.通过GetM ...
随机推荐
- C#学习笔记(一)
1.cmd运行devenv启动VS. 2.解决方案:公司 项目:部门 类:员工 3.右边的解决方案管理器:会自动隐藏,想让他固定的话,就点击关闭按钮中间的“自动隐藏”:可以拖动到上下左右,当出现阴影的 ...
- [转载]OpenFileDialog对话框Filter属性
首先说明一个示例,分析一下Filter属性的构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读的字符串,可以自定定义,“|*.xls”是筛选器,表示筛选文件夹中后缀 ...
- uva 10056
概率 Q += p*pow(1-p, i*n+k-1) i = 0,1,2,3...... #include <cstdio> #include <cmath> int mai ...
- ural 1221
本来就是个很水的题 就是枚举起点长度然后直接判断就行了 但是比赛的时候写了个大bug 还找不出来 自己太水了 #include <cstdio> #include <c ...
- 简单Sql语句统计每年每个月的数据,每个月为数据的每列,简单SQL练习
有一张表,数据如下 请写出结果为以下的SQL语句. 在mysql中创建表 CREATE TABLE `aa` ( `id` int(10) NOT NULL AUTO_INCREMENT COMME ...
- BZOJ 3533 sdoi 2014 向量集
设(x,y)为Q的查询点,分类讨论如下:1.y>0: 最大化a*x+b*y,维护一个上凸壳三分即可 2.y<0:最大化a*x+b*y 维护一个下凸壳三分即可 我们考虑对时间建出一棵线段 ...
- QxtFlowView(libqxt)
https://github.com/mnutt/libqxt/tree/master/examples http://libqxt.bitbucket.org/doc/0.5/class_qxt_f ...
- C#字符串的常用操作
一.string关键字与StringBuilder类 C# 字符串是使用 string 关键字声明的一个字符数组.字符串是使用引号声明的,如下例所示: string s = "Hello, ...
- org.apache.http.ProtocolException: Target host is not specified
对于httpClient4.3访问指定页面,可以从下面的demo抽取方法使用. 注意:对于URL必须使用 http://开始,否则会有如下报错信息: Caused by: org.apache.htt ...
- 程序员的自我修养(2)——计算机网络(转) good
相关文章:程序员的自我修养——操作系统篇 几乎所有的计算机程序,都会牵涉到网络通信.因此,了解计算机基础网络知识,对每一个程序员来说都是异常重要的. 本文在介绍一些基础网络知识的同时,给出了一些高质量 ...