[android底层]jni中获取自定义的类函数编写

本案例中编写 android app中对应的jni函数

站在用户的角度思考问题,与客户深入沟通,找到金门网站设计与金门网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖金门地区。

static native Student getStudent();


jni中获取自定义的类函数描述定向总结



    定义一个char *指向自定义类

[android底层]jni中获取自定义的类函数编写

1、返回类型:jobject

[android底层]jni中获取自定义的类函数编写

2、获取自定义的类

[android底层]jni中获取自定义的类函数编写

3、通过自定义类的构造函数在jni中构建jobject类:获取方法的域id的描述符填写""

[android底层]jni中获取自定义的类函数编写

4、jni回调app中的特定方法来设置自定义对象

[android底层]jni中获取自定义的类函数编写

        或者不使用回调来设置对象属性;set***Field

[android底层]jni中获取自定义的类函数编写

5、最后返回jobject对象

[android底层]jni中获取自定义的类函数编写

    完整代码

const char * jnistudentname = "com/jniacpp/Student";
jobject getStudent(JNIEnv *env, jobject thiz){
	jclass stuClass = env->FindClass(jnistudentname);
	//取得构造方法的域id
	jmethodID constuctId = env->GetMethodID(stuClass, "", "()V");
	// 构建obj对象
	jobject stuObj = env->NewObject(stuClass, constuctId);

	//取得特定方法的域id
	jmethodID setStudentId = env->GetMethodID(stuClass, "setStudent", "(ILjava/lang/String;Z)V");
	//调用app中的setStuudent函数
	env->CallVoidMethod(stuObj, setStudentId, "110917010", "mrzhang", true);

	/*
	//取得各个属性的域id;
	jfieldID nameID = env->GetFieldID(stuClass, "name", "Ljava/lang/String;");
	jfieldID idID = env->GetFieldID(stuClass, "id", "I");
	jfieldID isBoyID = env->GetFieldID(stuClass, "isBoy", "Z");
	env->SetIntField(stuObj, nameID, 21);
	env->SetObjectField(stuObj, nameID, env->NewStringUTF("zhang sir"));
	env->SetIntField(stuObj, isBoyID, true);
	*/
	return stuObj;
}

参考电子书

Android技术之JNI和HAL.pdf


网站标题:[android底层]jni中获取自定义的类函数编写
本文URL:http://bzwzjz.com/article/goipsj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制级高端网站建设 温江网站设计 成都定制网站建设 四川成都网站设计 成都网站建设 营销型网站建设 网站制作公司 公司网站建设 古蔺网站建设 成都企业网站建设 手机网站建设套餐 四川成都网站建设 成都h5网站建设 品牌网站建设 定制网站建设 企业网站建设公司 企业网站建设 网站建设方案 成都网站建设流程 阿坝网站设计 成都网站设计 成都品牌网站建设