Android JNI编程学习

这篇博客介绍了如何在Android中使用JNI处理从Java传递过来的二维数组,包括获取数组的行和列以及数组内元素的值,并进行计算。同时,讲解了在JNI中如何创建新的二维数组并返回,以及利用<android/log.h>进行日志输出,便于在LogCat中查看和调试。
摘要由CSDN通过智能技术生成

1、从java中传递过来一个二维数组,JNI获取到这个数组的 行和列;  并且获取到数组内的值来计算;

JNIEXPORT jdouble Java_com_example_test1_MyJni_Eig(JNIEnv *env, jobject,
		jobjectArray arrayData)
用 jobjectArray传递数组,下面代码实现的是获取到这个数组的行和列
	jint row = env->GetArrayLength(arrayData); //行数
	jarray myarray = (jobjectArray) env->GetObjectArrayElement(arrayData, 0);
	jint col = env->GetArrayLength(myarray); //得到列数
需要注意强制转换,要不会报错。下面代码是把值取出,
jdouble aa[row][col];
	//取出数据从jobjectArray中
	for (i = 0; i < row; i++) {
		myarray = (jobjectArray) env->GetObjectArrayElement(arrayData, i);
		jdouble *data = (*env).GetDoubleArrayElements((jdoubleArray) myarray,
				0);
		for (j = 0; j < col; j++) {
			aa[i][j] = data[j]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值