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

吉安网站建设优化服务青海高端网站建设

吉安网站建设优化服务,青海高端网站建设,自己如何搭建服务器,门户网站的营销特点JNI的两种注册机制#xff1a;静态注册和动态注册. 一、JNI介绍 JNI(Java Native Interface)#xff0c;即Java本地接口#xff0c;JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C机型交互. 方式#xff1a; 静态注册动态注册#xff1a;需要提供Java中…JNI的两种注册机制静态注册和动态注册. 一、JNI介绍 JNI(Java Native Interface)即Java本地接口JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C机型交互. 方式 静态注册动态注册需要提供Java中Native方法的方法签名和Native层中对应的实现函数。 二、静态注册 要求C/C层的函数名符合某种特定的要求包含Java中Native方法的目录信息和方法名。 Example Java package cn.com.codingce.ndkpractice;public native String stringFromJNI();C extern C JNIEXPORT jstring JNICALL Java_cn_com_codingce_ndkpractice_MainActivity_stringFromJNI(JNIEnv *env, jobject thiz) {std::string hello Hello from C;//crashTest();return env-NewStringUTF(hello.c_str()); }按照以上规则进行命名在调用到Native的方法时JVM会去查找是否存在对应函数名的函数以此实现静态注册。 三、动态注册 动态注册相对于静态注册优点是不再根据特定路径查找函数的实现带来两个好处 没有了冗杂的函数名适用于大型项目开发。由于不再根据Native函数查找对应的JNI层函数所以首次调用速度比静态注册快。 开发者需要自行提供Java层和C/C层中的映射关系。 一种可行的方法是基于JNI重载JNI_OnLoad()在其中对函数进行动态注册。 Example Java package cn.com.codingce.ndkpractice.utils;public static native void logInit(String logFilePath, String logName, int logfileLevel, int logScreenLevel);C 此步骤涉及到如何获取Java函数。 static JNINativeMethod nativeUtilsMethods[] {{logInit, (Ljava/lang/String;Ljava/lang/String;II)V, (void *) localLogInit},{logJni, (ILjava/lang/String;)V, (void *) logJni},{logClose, ()V, (void *) logClose}, };static void nativeLogUtilsRegisterNatives(JNIEnv *jniEnv) {if (jniEnv nullptr) {return;}jclass clazz nullptr;do {clazz jniEnv-FindClass(cn/com/codingce/ndkpractice/utils/LogUtils);if (clazz nullptr) {diagnosis_assert(!FindClass LogUtils error!);break;}if (jniEnv-RegisterNatives(clazz, nativeUtilsMethods,std::extentdecltype(nativeUtilsMethods)::value) ! 0) {diagnosis_assert(!RegisterNatives error!);break;}} while (false);if (jniEnv-ExceptionCheck() JNI_TRUE) {jniEnv-ExceptionClear();}if (clazz ! nullptr) {jniEnv-DeleteLocalRef(clazz);} }重载JNI_OnLoad函数并在其中调用nativeLogUtilsRegisterNatives函数 JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {JNIEnv *jniEnv{nullptr};if (vm-GetEnv((void **) jniEnv, JNI_VERSION_1_6) ! JNI_OK) {diagnosis_assert(!JNI version error!);return JNI_EVERSION;}nativeLogUtilsRegisterNatives(jniEnv);return JNI_VERSION_1_6; }
http://www.hkea.cn/news/14329914/

相关文章:

  • 常州网站制作优化自己做的网站如何百度能搜索
  • 网站建设工作总结报告陕西做网站公司哪家好
  • 想做个网站广州建设银行投诉网站
  • 东港区建设局网站wordpress 淘宝模板
  • 佛山外贸网站建设信息照明网站建设
  • wordpress .po 在哪里优化网站seo策略
  • 江苏网站建设价格低wordpress 编辑器表情插件
  • 合肥seo网站推广费用品牌建设发展规划
  • 珠海市网络营销协会的官方网站会员卡管理系统价格
  • 建设专业网站哪家技术好网站开发亿玛酷适合5
  • 黄山市建设工程造价管理站网站用手机搭建wordpress
  • 平度市城市建设局网站在网站建设中 为了防止工期拖延
  • 电子商务网站建设人才浙江公司响应式网站建设推荐
  • 网站建设与网页设计专业的证明做二维码打款网站链接
  • 网站建设 psd九江专业制作网站小程序
  • 食品网站网页设计内网网站开发报价
  • 网站项目团队介绍互联网网站文化
  • 如何联系网站管理员河源哪有做网站
  • 如何在网站上做评比软件开发外包合同模板
  • 龙岗网站建设定制开发有没有做长图的网站
  • 海纳企业网站建设模板群晖做网站服务器速度快吗
  • dw做的网站放文件夹一个人做网站赚钱
  • 如何自己做外贸网站桂林漓江官网
  • 怎么做电影流量网站吗厦门海沧建设局网站
  • 北京 网站建设合肥网站优化选哪家
  • 淘宝上买的建设网站能退款吗中国建设建筑教育网站
  • 知名网站设计服务商网站制作的公司哪家效果好
  • 电商平台建站赣州章贡区景点
  • 教学系统设计 网站开发现在流行做网站吗
  • 大连网站建设策划网站建设 广州网站建设专业公司