Android Native Code开发学习(三)对类进行操作
本教程为native code学习笔记,希望能够帮到有需要的人
我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大
对java中的对象变量进行操作
首先我们新建一个java的类
1 2 3 4 5 6 7 8
| public class ClassForJNI { public int a; public int b; public void add(){ System.out.println("a+b is :"+(a+b)); return; } }
|
我们的目标就是更改里面的a和b,并且调用这个类,就可以看到我们的输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| jclass clz_2 = env->FindClass("com/example/nativecodelearn/ClassForJNI");
jmethodID jcmid_2 = env->GetMethodID(clz_2, "<init>", "()V");
jobject = env->NewObject(clz_2, jcmid_2); jfieldID fid_a =env->GetFieldID(clz_2,"a","I"); jint num_a =env->GetIntField(jobject,fid_a); env->SetIntField(jobject,fid_a,9); jfieldID fid_b =env->GetFieldID(clz_2,"b","I"); jint num_b =env->GetIntField(jobject,fid_b); env->SetIntField(jobject,fid_b,10);
jmethodID jmeid_2 = env->GetMethodID(clz_2,"add","()V"); env->CallVoidMethod(jobject,jmeid_2);
|
其实这个步骤一共就这几步
- 找到类名
- 准备构造函数
- 创建对象
- 获得fieldID
- 得到对应的变量
- 更改变量的值
通过这样我们就可以运行了,这样就可以得到最终的结果了
