关于mNativeSu易做图ce的赋值问题,读过源码的请进。
都知道在NDK下取su易做图ces的句柄一般是static Su易做图ce* getNativeSu易做图ce(JNIEnv* env, jobject jsu易做图ce)
{
jclass clazz = env->FindClass("android/view/Su易做图ce");
if(clazz == NULL)
{
return NULL;
}
jfieldID field_su易做图ce = env->GetFieldID(clazz, ANDROID_VIEW_SURFACE_JNI_ID, "I");
if(field_su易做图ce == NULL)
{
return NULL;
}
return (Su易做图ce *) env->GetIntField(jsu易做图ce, field_su易做图ce);
}
但是我怎么找不到su易做图ce下mNativeSu易做图ce在什么时候什么地方赋值的,有哪位看过这部分代码的,指导一下,谢谢了。 --------------------编程问答-------------------- 郁闷,我算看明白了,原来是su易做图ce的ndk创建并赋值,然后其他的C++代码再读取操作。 --------------------编程问答-------------------- 我也在看jni层怎么操作su易做图ce,搜了半天就看到楼主这么一个讲底层获取的Su易做图ce指针式怎么来的。。想了半天,得到的结论跟楼主的一样,mNativeSu易做图ce顾名思义就是c代码里的Su易做图ce,应该就是Java层在创建一个java的Su易做图ce对象时,会将底层对应的 c++的Su易做图ce对象的指针保存在mNativeSu易做图ce里。
我们要再c里面操作Su易做图ce,就需要获取mNativeSu易做图ce,并转化为c++的Su易做图ce对象进行操作,而不是获取java的Su易做图ce类对象进行操作。
这仅仅是我的理解,供其他研究这个问题的兄弟们参考下。
补充:移动开发 , Android