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

wordpress 网站搬迁微信公众号文章编辑wordpress

wordpress 网站搬迁,微信公众号文章编辑wordpress,和动物做的网站,建设银行手机银行网站用户名是什么JNI、java native interface 。可以实现Java和C、C之间的调用。 在Android开发中是必须要掌握的内容。 在应用开发中,编写JNI代码的注册可分为动态注册和静态注册 动态注册: 声明好方法、注意这些签名 在JNI_OnLoad中进行注册。 static const JNINativ…

JNI、java native interface 。可以实现Java和C、C++之间的调用。
在Android开发中是必须要掌握的内容。
在应用开发中,编写JNI代码的注册可分为动态注册和静态注册

动态注册:
声明好方法、注意这些签名 在JNI_OnLoad中进行注册。

static const JNINativeMethod method[] = {{"openUrl","(Ljava/lang/String;Ljava/lang/Object;I)I", (void*)playVideo},{"InitView","(Ljava/lang/Object;)I", (void*)InitView},{"start","()I", (void*) start},{"getPauseStatus","()Z", (void*)getPauseStatus},{"onRelease","()Z", (void*)onRelease},{"stopVideo","()V", (void*)stopVideo},{"seekTo","(D)V", (void*)changeSeek},{"changeURL","(Ljava/lang/String;)V", (void*)changeURL},{"setPause","(Z)V", (void*)setPause},{"getSupportProcel","()Ljava/lang/String;", (void*)getSupportInfo}
};static const char *mClassName = "com/mark/myapplication/player/core/PlayerCore";int JNI_OnLoad(JavaVM *vm,void  *re){g_vm = vm;IPlayerPorxy::Get()->Init(vm);AndroidHelper::getInstance()->SetVM(g_vm);//获得JNIEnvJNIEnv *env = 0;int r = vm->GetEnv((void**)&env,JNI_VERSION_1_6);//小于0失败,等于0成功if(r != JNI_OK){return -1;}//获得class对象jclass jcls =  env->FindClass(mClassName);//动态注册env->RegisterNatives(jcls,method, sizeof(method)/ sizeof(JNINativeMethod));return JNI_VERSION_1_6;
}

静态注册:

extern "C" JNIEXPORT jstring JNICALL
Java_com_mark_myapplication_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */) {std::string hello = "Hello from C++";return env->NewStringUTF(hello.c_str());
}

JNI函数签名
https://blog.csdn.net/weixin_75102992/article/details/130771941

全局引用&局部引用&弱全局引用
https://blog.csdn.net/huangjinjin520/article/details/123288292

系统中的JNI代码模块是在哪里被加载的呢。
在zygote启动时
frameworks/base/core/jni/AndroidRuntime.cpp

void AndroidRuntime::start(const char* className, const Vector<String8>& options, bool zygote)
{......JniInvocation jni_invocation;jni_invocation.Init(NULL);JNIEnv* env;if (startVm(&mJavaVM, &env, zygote, primary_zygote) != 0) {return;}onVmCreated(env);/** Register android functions.注册JNI*/if (startReg(env) < 0) {ALOGE("Unable to register all android natives\n");return;}..............
}

注册了framework中使用的native代码,如果自己需要添加framework的JNI,需要在这里进行添加声明

static const RegJNIRec gRegJNI[] = {REG_JNI(register_com_android_internal_os_RuntimeInit),REG_JNI(register_com_android_internal_os_ZygoteInit_nativeZygoteInit),REG_JNI(register_android_os_SystemClock),REG_JNI(register_android_util_EventLog),REG_JNI(register_android_util_Log),REG_JNI(register_android_util_MemoryIntArray),REG_JNI(register_android_app_admin_SecurityLog),REG_JNI(register_android_content_AssetManager),REG_JNI(register_android_content_StringBlock),REG_JNI(register_android_content_XmlBlock),..................}

例如storage_StorageManager可以在storage_StorageManager.cpp可找到

//跟APP开发中的动态注册类似
static const JNINativeMethod gStorageManagerMethods[] = {{"setQuotaProjectId", "(Ljava/lang/String;J)Z",(void*)android_os_storage_StorageManager_setQuotaProjectId},
};const char* const kStorageManagerPathName = "android/os/storage/StorageManager";int register_android_os_storage_StorageManager(JNIEnv* env) {return RegisterMethodsOrDie(env, kStorageManagerPathName, gStorageManagerMethods,NELEM(gStorageManagerMethods));
}}
http://www.yayakq.cn/news/967743/

相关文章:

  • 网站建设基本问题一级消防工程师考试条件
  • 用windows建设网站好吗wordpress创建分类目录
  • 做苗木的用什么网站wordpress批量提交表单
  • 专题类网站wordpress 页面栏目
  • 网站app的作用怎么在电脑上自己做网站吗
  • 银行需要网站开发人员嘛一个只做百合的网站
  • 企业网站建设毕业设计论文seo专业培训课程
  • 智能建站系统官网青岛网上房地产官网
  • 龙岩网站建设方案书seo网站优化方案摘要
  • 单位网站建设费用账务处理产品设计学什么内容
  • 有哪些游戏可以做网站建设厅试验员考试报名网站
  • 深圳网站建设服务比较便宜贵州省建设网站
  • 长春建站培训班汽车网站建设方案预算
  • 青岛网站制作推广青海省建设局网站首页
  • 官方网站建设银行年利息是多少比亚迪新能源汽车车型
  • 成都专业网站搭建公司电影 wordpress
  • 红河州网站建设制作网站开发软件的选择
  • 建设维护网站运营方案泉州网站公司建站
  • 网站色彩代码扫码点餐小程序怎么做
  • 济南网站优化收费标准宝塔上安装wordpress
  • 网站流量被黑krypt免费wordpress空间
  • 吉林省住房和城乡建设部网站家装公司建设网站
  • 昆明专业网站建设沈阳专业网站建设
  • 关于做服饰网站的首页视频网站开发方案
  • wordpress建立论坛网站wordpress 4.9.6 下载
  • 个人建站哪类站赚钱招聘网站建设维护人员
  • 山东省建设厅电工证查询网站如何请人做网站
  • 云南科技网站建设linux下wordpress
  • c2c网站有哪些平台ps培训班要学多久多少钱
  • 域名有了怎么制作网站帮别人做网站需要什么能力