Android_NDK JNI Native层构建java对象(D8)

本文详细介绍了在Android NDK的JNI环境中如何构建和操作Java对象。通过示例展示了如何找到并使用Java类的构造方法创建对象,以及如何调用对象的方法改变其属性值,涉及到了常量指针和指针常量的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android_NDK JNI Native层构建java对象

常量指针和指针常量

//常量指针 100也就是常量不能改变
int num1 = 100;
const int *p = &num1;

//指针常量 p1指向的&num2也就是地址不能改变
int num2 = 200;
int * const p1 = &num2;

Native层构建java对象

JNIEXPORT jobject JNICALL Java_com_sweet_lib_1network_1sign_createPoint
(JNIEnv *env, jclass jclz){
	// jclz -> Simple1

	// 获取 Point 的 class ,name = "全类名"
	jclass point_clz = (*env)->FindClass(env,"com/darren/ndk/day13/Point");
	// 构建 java 层的 Point 对象,构造函数的id , 构造方法 <init>
	jmethodID j_mid = (*env)->GetMethodID(env,point_clz,"<init>","(II)V");

	jobject point = (*env)->NewObject(env, point_clz, j_mid,11,22);

	// y 重新付个值,调用 set 方法
	j_mid = (*env)->GetMethodID(env, point_clz,"setY","(I)V");
	/* va_list 集合
	void (JNICALL *CallVoidMethodV)
		(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
	// jvalue
	void (JNICALL *CallVoidMethodA)
		(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
	*/

	(*env)->CallVoidMethod(env, point,j_mid,33);

	return point;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值