[android底层]jni中获取自定义的类函数编写
本案例中编写 android app中对应的jni函数
staticnativeStudentgetStudent();
jni中获取自定义的类函数描述定向总结
定义一个char *指向自定义类
1、返回类型:jobject
2、获取自定义的类
3、通过自定义类的构造函数在jni中构建jobject类:获取方法的域id的描述符填写"<init>"
4、jni回调app中的特定方法来设置自定义对象
或者不使用回调来设置对象属性;set***Field
5、最后返回jobject对象
完整代码
constchar*jnistudentname="com/jniacpp/Student";jobjectgetStudent(JNIEnv*env,jobjectthiz){jclassstuClass=env->FindClass(jnistudentname);//取得构造方法的域idjmethodIDconstuctId=env->GetMethodID(stuClass,"<init>","()V");//构建obj对象jobjectstuObj=env->NewObject(stuClass,constuctId);//取得特定方法的域idjmethodIDsetStudentId=env->GetMethodID(stuClass,"setStudent","(ILjava/lang/String;Z)V");//调用app中的setStuudent函数env->CallVoidMethod(stuObj,setStudentId,"110917010","mrzhang",true);/*//取得各个属性的域id;jfieldIDnameID=env->GetFieldID(stuClass,"name","Ljava/lang/String;");jfieldIDidID=env->GetFieldID(stuClass,"id","I");jfieldIDisBoyID=env->GetFieldID(stuClass,"isBoy","Z");env->SetIntField(stuObj,nameID,21);env->SetObjectField(stuObj,nameID,env->NewStringUTF("zhangsir"));env->SetIntField(stuObj,isBoyID,true);*/returnstuObj;}
参考电子书
Android技术之JNI和HAL.pdf声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。