[android底层]jni中获取自定义的类函数编写
本案例中编写 android app中对应的jni函数
站在用户的角度思考问题,与客户深入沟通,找到金门网站设计与金门网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖金门地区。
static native Student getStudent();
jni中获取自定义的类函数描述定向总结
定义一个char *指向自定义类
1、返回类型:jobject
2、获取自定义的类
3、通过自定义类的构造函数在jni中构建jobject类:获取方法的域id的描述符填写"
4、jni回调app中的特定方法来设置自定义对象
或者不使用回调来设置对象属性;set***Field
5、最后返回jobject对象
完整代码
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中获取自定义的类函数编写
转载注明:http://abwzjs.com/article/goipsj.html