栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android NDK,保留实时C ++对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android NDK,保留实时C ++对象

是的,您可以执行与C#中完全相同的操作。

要创建新的C ++对象:

jlongJava_package_name_new(JNIEnv *, jobject) {  return (long)(new CPP_Object()); }

您可以将此方法的返回值存储在Java

ptr
变量中,并将其传递给需要它的所有NDK方法:

voidJava_package_name_doSomething(JNIEnv *, jobject, jlong ptr) {  CPP_Object *obj = (CPP_Object *)ptr;  // do whatever you want with the object}

最后用类似以下的命令删除它:

voidJava_package_name_delete(JNIEnv *, jobject, jlong ptr) {  delete (CPP_Object *)(ptr);}

除了传递

ptr
给需要它的所有方法外,您还可以使用
SetLongField
GetLongField
方法从NDK部分直接获取它并进行设置:这允许
ptr
仅从代码的NDK部分管理Java
变量,我认为这更安全,并且更易于管理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号