.so 将 c++ 转化为安卓可使用的数据
jclass objClass = mJni->FindClass("结构类型"); 定义数组中元素类型
如果传入的是数组,需要知道它的大小并进行循环
int nsize = myArray.size();
创建一个数组对象,里面的每个元素用 objClass 元素表示(FindClass 所对应的类型)
数组为空 不再进行下面的操作
Event 是用来获取构造方法
GetMethodID 是用来 获取 java 类中方法的 ID 最后一个参数是他的类型
String :"(Ljava/lang/String;)V"
Int :"(I)V"
Bool :"(Z)V"
如果这里获取的是一个数据结构 最后一个参数是他的结构类型 仿照 jclass 最后一个参数
jobject objmodel = mJni->NewObject(objClass, method_init_Event, "");
new 一个 object 存储它的内容 第一个参数为他的 jclass 第二个是他的构造函数
字符串的转化比较特别 一定要使用下面的格式 否则会出错的
CallVoidMethod 适用于将数据存储到 objmodel
大家都是一样的存储方法 但是第二第三个参数要对应
这句一定要记得写 第二个参数是安卓端的函数名 一档不能错 第三个参数为 这个函数的参数值 并且需要与下面的参数保持一致
mJni->CallVoidMethod(mThiz, mid, texts, bres);
前两个为固定参数 后面的是与上面的第三个参数的类型以及位置保持一致
这只是初学者的代码 有不对得地方恳请大家 多多指教!
版权声明: 本文为 InfoQ 作者【用户10086】的原创文章。
原文链接:【http://xie.infoq.cn/article/8d6009819124db3aeb550bf74】。文章转载请联系作者。
评论