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

如何做网站方案百度广告一天多少钱

如何做网站方案,百度广告一天多少钱,外贸的网站有哪些,方案协调会税务建设网站JNI的两种注册机制:静态注册和动态注册. 一、JNI介绍 JNI(Java Native Interface),即Java本地接口,JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C机型交互. 方式: 静态注册动态注册:需要提供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::extent<decltype(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/524735/

相关文章:

  • 网站流量提供商杭州seo排名
  • 做装饰工程的在什么网站投标自建站
  • 地球人--一家只做信誉的网站帮忙推广的平台
  • 网站建设外包协议天津网站排名提升
  • 邯郸教育行业网站建设百度推广代理商查询
  • 政府网站有哪些网站seo最新优化方法
  • 做广告牌子seo外链工具
  • 微信页面设计网站兰州网络推广技术
  • 上门做网站搜狗站长工具
  • wordpress用户邮箱验证码百度seo搜索引擎优化培训
  • 360极速怎么屏蔽网站新闻热点大事件
  • 购物app开发价格表站长工具seo排名
  • 微餐饮网站建设营销型网站建设方案
  • 高端网站建设公司好不好2020国内搜索引擎排行榜
  • 网站建设服务公司选哪家比较好?苏州优化收费
  • 中国建设银行河南省分行网站推广信息哪个平台好
  • 网站建设官网免费模板杭州seo优化
  • 绍兴网站建设谷歌搜索引擎在线
  • 网站的会员认证怎么做黑龙江新闻头条最新消息
  • 做网站如何分工百度推广登录平台客服
  • 网站建设如何提案万网域名注册信息查询
  • 创意二维码制作网站企业网络营销推广案例
  • 论坛型网站怎么做百度高级检索入口
  • 做百度移动网站排搜素引擎优化
  • 公司创建一个网站需要多少钱想做百度推广找谁
  • 做文献ppt模板下载网站有哪些常德政府网站
  • 青岛网站建设公司排行外链工具在线
  • 网站怎么做显得简洁美观seo数据是什么意思
  • 阿里巴巴开通诚信通后网站怎么做网络优化网站
  • 东莞手机网站价格便宜个人免费建站软件