当前位置: 首页 > news >正文

哪个品牌网站设计感强做充气气模产品一般去哪些网站

哪个品牌网站设计感强,做充气气模产品一般去哪些网站,网页制作需要哪些软件,地图怎么认证地址本地代码中使用Java对象通过使用合适的JNI函数#xff0c;你可以创建Java对象#xff0c;get、set 静态(static)和 实例(instance)的域#xff0c;调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法#xff0c;一个域或方法的ID是任何处理域和方法的函数的必须…本地代码中使用Java对象通过使用合适的JNI函数你可以创建Java对象get、set 静态(static)和 实例(instance)的域调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法一个域或方法的ID是任何处理域和方法的函数的必须参数。下表列出了用以得到静态(static)和实例(instance)的域与方法的JNI函数。每个函数接受(作为参数)域或方法的类它们的名称符号和它们对应返回的jfieldID或jmethodID。函数描述GetFieldID得到一个实例的域的IDGetStaticFieldID得到一个静态的域的IDGetMethodID得到一个实例的方法的IDGetStaticMethodID得到一个静态方法的ID构造一个Java对象的实例C代码  jclass cls  (*env)-FindClass(env, Lpackagename/classname;);  //创建一个class的引用jmethodID id  (*env)-GetMethodID(env, cls, , (D)V);  //注意这里方法的名称是它表示这是一个构造函数而且构造参数是double型的jobject obj  (*env)-NewObjectA(env, cls, id, args);  //获得一实例args是构造函数的参数它是一个jvalue*类型。首先是获得一个Java类的class引用 (*env)-FindClass(env, Lpackagename/classname;);  请注意参数Lpackagename/classname;L代表这是在描述一个对象类型packagename/classname是该对象耳朵class路径请注意一定要以分号()结束然后是获取函数的idjmethodID id env-GetMethodID(cls, , (D)V);  第一个是刚刚获得的class引用第二个是方法的名称最后一个就是方法的签名了还是不懂我曾经如此请接着看...难理解的函数签名JNINativeMethod的定义如下typedef struct{const char*name;const char*signature;void*fnPtr;} JNINativeMethod;第一个变量name是Java中函数的名字。第二个变量signature用字符串是描述了函数的参数和返回值第三个变量fnPtr是函数指针指向C函数。其中比较难以理解的是第二个参数例如()V(II)V(Ljava/lang/String;Ljava/lang/String;)V实际上这些字符是与函数的参数类型一一对应的。() 中的字符表示参数后面的则代表返回值。例如()V 就表示void Func();(II)V 表示 void Func(int, int);那其他情况呢请查看下表类型符号booleanZbyteBcharCshortSintIlongLfloatFdoubleDvoidVobject对象LClassName;      L类名;Arrays[array-type        [数组类型methods方法(argument-types)return-type     (参数类型)返回类型稍稍补充一下1、方法参数或者返回值为java中的对象时签名中必须以“L”加上其路径不过此路径必须以“/”分开自定义的对象也使用本规则比如说 java.lang.String为“java/lang/String”com.nedu.jni.helloword.Student为Lcom /nedu/jni/helloword/Student;2、方法参数或者返回值为数组类型时请前加上[例如[I表示 int[],[[[D表示 double[][][]即几维数组就加几个[在本地方法中调用Java对象的方法1、获取你需要访问的Java对象的类jclass cls (*env)-GetObjectClass(env, obj); //使用GetObjectClass方法获取obj对应的jclass。jclass cls (*env)-FindClass(“android/util/log”) //直接搜索类名需要是static修饰的类。2、获取MethodIDjmethodID mid (*env)-GetMethodID(env, cls, callback, (I)V); //GetStaticMethodID(…)获取静态方法的ID使用GetMethdoID方法获取你要使用的方法的MethdoID使用CallVoidMethod方法调用方法。参数的意义env--JNIEnvobj--通过本地方法穿过来的jobjectmid--要调用的MethodID(即第二步获得的MethodID)depth--方法需要的参数(对应方法的需求添加相应的参数)注这里使用的是CallVoidMethod方法调用因为没有返回值如果有返回值的话使用对应的方法在后面会提到。CallVoidMethod CallStaticVoidMethodCallIntMethod CallStaticVoidMethodCallBooleanMethod CallStaticVoidMethodCallByteMethod CallStaticVoidMethod现在稍稍明白文章开始构造Java对象那个实例了吧让我们继续深入一下Jni操作Java的String对象从java程序中传过去的String对象在本地方法中对应的是jstring类型jstring类型和c中的char*不同所以如果你直接当做char*使用的话就会出错。因此在使用之前需要将jstring转换成为c/c中的char*这里使用JNIEnv提供的方法转换。const char *str (*env)-GetStringUTFChars(env, jstr, 0);(*env)-ReleaseStringUTFChars(env, jstr, str);这里使用GetStringUTFChars方法将传进来的prompt(jstring类型)转换成为UTF8的格式就能够在本地方法中使用了。注意在使用完你所转换之后的对象之后需要显示调用ReleaseStringUTFChars方法让JVM释放转换成UTF-8的string的对象的空间如果不显示的调用的话JVM中会一直保存该对象不会被垃圾回收器回收因此就会导致内存溢出。下面是Jni访问String对象的一些方法GetStringUTFChars          将jstring转换成为UTF-8格式的char*GetStringChars               将jstring转换成为Unicode格式的char*ReleaseStringUTFChars    释放指向UTF-8格式的char*的指针ReleaseStringChars         释放指向Unicode格式的char*的指针NewStringUTF               创建一个UTF-8格式的String对象NewString                    创建一个Unicode格式的String对象GetStringUTFLength      获取UTF-8格式的char*的长度GetStringLength           获取Unicode格式的char*的长度下面提供两个String对象和char*互转的方法/* c/c string turn to java jstring */jstring charToJstring(JNIEnv* env, const char* pat){jclass strClass (*env)-FindClass(env, java/lang/String);jmethodID ctorID (*env)-GetMethodID(env, strClass, , ([BLjava/lang/String;)V);jbyteArray bytes (*env)-NewByteArray(env, strlen(pat));(*env)-SetByteArrayRegion(env, bytes, 0, strlen(pat), (jbyte*)pat);jstring encoding (*env)-NewStringUTF(env, UTF-8);return (jstring)(*env)-NewObject(env, strClass, ctorID, bytes, encoding);}/* java jstring turn to c/c char* */char* jstringToChar(JNIEnv* env, jstring jstr){char* pStr NULL;jclass jstrObj (*env)-FindClass(env, java/lang/String);jstring encode (*env)-NewStringUTF(env, utf-8);jmethodID methodId (*env)-GetMethodID(env, jstrObj, getBytes, (Ljava/lang/String;)[B);jbyteArray byteArray (jbyteArray)(*env)-CallObjectMethod(env, jstr, methodId, encode);jsize strLen (*env)-GetArrayLength(env, byteArray);jbyte *jBuf (*env)-GetByteArrayElements(env, byteArray, JNI_FALSE);if (jBuf 0){pStr (char*)malloc(strLen 1);if (!pStr){return NULL;}memcpy(pStr, jBuf, strLen);pStr[strLen] 0;}env-ReleaseByteArrayElements(byteArray, jBuf, 0);return pStr;}
http://www.yutouwan.com/news/51854/

相关文章:

  • 人人车网站建设在线制作头像文字图片
  • 怎么建网站 做app软件云端设计高端网站建设
  • 做视频网站需要执照吗搜索推广和场景推广
  • 网站开发与管理实验五python培训机构
  • 网站做好后怎么更新内容图文广告公司名称
  • .电子商务网站规划俄语 俄文 俄罗斯语外贸网站建设
  • 全国知名品牌策划公司汽车seo是什么意思
  • 百度 如何 关键字 网站域名 关联网站建设设计制作方案与价格
  • 河南鑫安胜通建设有限公司网站网站实时显示
  • 个人cms网站网盘做电子书下载网站
  • 自己的网站怎么创建网页设计模板html代码音乐
  • 装饰网站设计模板下载昆明云南微网站制作哪家好
  • 一起做网店网站打不开阿里巴巴上做网站
  • 做网站背景音乐小程序推广app
  • 佛山市网站建设哪家好logo123设计网
  • 系统学做网站做外贸网站的都有哪些类型的公司
  • 大庆网站制作传奇世界网页版在线玩
  • 公司网站建设注意点网络促销
  • 网站打开的速度特别慢的原因制作网站页面怎么做
  • 博客网站怎么做cpa网站建设 教学视频教程
  • 昭通市住房和城乡建设局网站做自己的免费网站
  • 做网站课程企业信息公开查询
  • 网站公司推荐青海网站开发建设
  • 怎么才能建设免费网站学建筑的女生后悔吗
  • 小米路由做网站服务器搜索引擎营销的实现方法有哪些
  • 做优化的网站建筑工程管理系统平台
  • 黑彩网站怎么做seo软文是什么
  • 建设网站公司哪家性价比高广东装修公司排名前十强
  • 淮安网站建设找谁好宝塔系统搭建wordpress
  • 淘宝客网站怎么做的人少了上海高品质网站建设