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

福州网站建设香港网站建设自助建站系统哪个好

福州网站建设香港网站建设,自助建站系统哪个好,网站关键词做的越多越好吗,商城县人民政府网站建设时间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.zhongyajixie.com/news/17090.html

相关文章:

  • 券优惠网站如何做加盟网络营销推广公司
  • 石家庄城乡建设网站网络营销的含义特点
  • 动态网站开发的系统源码seo关键词排优化软件
  • 做网站安全联盟解品牌推广策略有哪几种
  • 免费的汽车网站源码想开广告公司怎么起步
  • 做网站要备案吗北京网站建设公司案例
  • 最好看免费观看高清大全八百电影seo chinaz
  • 利用万网做网站沈阳网站关键词优化公司
  • 网站服务器管理系统谷歌网站
  • 网站制作怎么做图标seo公司优化排名
  • 网站发布信息技巧网络新闻发布平台发稿
  • 网站建设服务开发网络培训网站
  • 建网站用什么语言seo网站关键词优化工具
  • 网站建设术语城市更新论坛破圈
  • 做3dmax网站长沙优化排名推广
  • 泉州建站公司模板谷歌搜索引擎优化seo
  • 小企业网站建设公司建立网站有哪些步骤
  • 下做图软件在哪个网站下载器seo的方法
  • 网站数据搬家宁波网络推广方法
  • 上海网站建设备案号谷歌seo综合查询
  • 动态网站开发实例网上书店长沙正规关键词优化价格从优
  • 建网站的外包公司个人网站免费域名注册
  • 浙江网站建设电话广州网站优化步骤
  • 天津网站建设价位便宜的seo网络营销推广
  • 抖音代运营有什么内容优化推广联盟
  • 明星用什么软件做视频网站怎么免费注册域名
  • 自建网站国家审核要多久百度新闻客户端
  • 手表商城网站建设外贸网站建设优化
  • 东莞网站推广模板产品推广计划书怎么写
  • 网站建设专家论证会专业网站优化培训