全部频道
有奖互动
全部
讨论
问答
问答
已解决
当使用uv_queue_work方法将任务抛到JS线程上面执行的时候,对JS线程的回调方法,一般情况下需要加上napi_handle_scope来管理回调方法创建的napi_value的生命周期。对于初学者来说,学习鸿蒙开发如何来入门比较好?
使用uv_queue_work方法,不会走Node-API框架,此时需要开发者自己合理使用napi_handle_scope来管理napi_value的生命周期。这是为什么?有没有相关的演示代码帮我分析一下呢?
2401_85698579 1天前
1 回答
61 浏览
1天前
问答
已解决
引擎实例是一个独立运行环境,JS对象创建访问等操作必须在同一个引擎实例中进行。在 HarmonyOS 中,如何理解这个概念?
每个napi_value属于特定的HandleScope,HandleScope通过napi_open_handle_scope和napi_close_handle_scope来建立和关闭,HandleScope关闭后,所属的napi_value就会自动释放。有没有相关代码可以实现这个功能呢?
2401_85698579 1天前
1 回答
41 浏览
1天前
问答
已解决
当argv不为nullptr时,napi_get_cb_info会根据argc声明的数量将JS实际传入的参数写入argv。我在学习鸿蒙中,遇到了一个问题怎么理解呢?
如果argc小于等于实际JS传入参数的数量,该接口仅会将声明的argc数量的参数写入argv;而当argc大于实际参数数量时,该接口会在argv的尾部填充undefined。有没有相关介绍这个问题的呢?
2401_85698579 1天前
1 回答
38 浏览
1天前
问答
已解决
napi_value持有了ArkTS/JS对象,同时,napi_value受napi_handle_scope管理,scope中napi_value持有的JS对象不会被释放。怎么理解这个概念呢?
napi_value是一个C的结构体指针,表示一个ArkTS/JS对象的引用。对于初学者来说,学习鸿蒙开发如何来入门比较好?
2401_85698579 1天前
1 回答
43 浏览
1天前
问答
已解决
将so库和对应的Native侧接口文件加入到工程中,在工程中配置so库对应的模块动态依赖,在ArkTS侧通过import引入依赖接口调用so库。这是为什么?有没有相关的演示代码帮我分析一下呢?
需要注意该方案只能引用适配Native的so库,因此在编译生成so库时需要实现功能函数并向Napi注册其Native侧接口,提供对应的Native侧接口文件index.d.ts和配置文件oh-package.json5。在 HarmonyOS 中,如何理解这个概念?
2401_85698579 1天前
1 回答
40 浏览
1天前
问答
将so库加入到工程中,在ArkTS侧将so库的沙箱路径传递至Native侧,在Native侧使用dlopen解析so库调用功能函数。有没有相关代码可以实现这个功能呢?
为保障用户隐私安全,dlopen具有命名空间隔离能力,应用可以加载的动态库受到命名空间的限制。我在学习鸿蒙中,遇到了一个问题怎么理解呢?
2401_85698579 1天前
1 回答
39 浏览
1天前
问答
已解决
在实际项目中,业务功能可能由不同“团队/组织”提供,如:团队A开发功能编译生成so库,团队B引用so库进行后续开发。供,如:团队A开发功能编译生成so库,团队B引用so库进行后续开发。
so库可以将项目的不同功能模块化,提升代码的复用性和工程的可维护性。团队开发过程中引用三方so库的场景可分为几种?
2401_85698579 1天前
1 回答
42 浏览
1天前
问答
已解决
如果预构建so没有SONAME,链接器将会将so的绝对路径插入到依赖这个so的二进制文件的dynamic section中。怎么理解这个概念呢?
当这些二进制文件随hap包发布运行时,动态加载器(dynamic loader)可能最终无法找到这个so而导致错误。对于初学者来说,学习鸿蒙开发如何来入门比较好?
2401_85698579 1天前
1 回答
42 浏览
1天前
问答
已解决
在NDK工程中,可以通过CMake语法规则引入并使用预构建库。在引用预构建库时,模块libs目录中的预构建库,以及在CMakeLists.txt编译脚本中声明的预构建库都会被打包。这是为什么?有没有相关的演示代码帮我分析一下呢?
确保引入的SO动态库是通过HarmonyOS NDK 编译工具链编译生成,如何通过HarmonyOS NDK 编译工具链编译预构建库。在 HarmonyOS 中,如何理解这个概念?
2401_85698579 1天前
1 回答
41 浏览
1天前
问答
已解决
在工程目录的模块目录下,创建build目录,用来放置CMake构建时产生的中间文件。注意:ohos-sdk是下载下来的SDK的根目录,开发者需要自行替换成实际的下载目录。有没有相关代码可以实现这个功能呢?
用OHOS_STL=c++_static静态链接c++库方式构建工程,当OHOS_ARCH=armeabi-v7a会编译32位静态库,而当OHOS_ARCH=arm64-v8a会编译64位静态库。我在学习鸿蒙中,遇到了一个问题怎么理解呢?
2401_85698579 1天前
1 回答
39 浏览
1天前
查看更多