HarmonyOS 鸿蒙Next native 子线程是否可以直接调用 ts 层代码,并且是使用的 native 子线程环境

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next native 子线程是否可以直接调用 ts 层代码,并且是使用的 native 子线程环境

native 子线程是否可以直接调用 ts 层代码,并且是使用的 native 子线程环境。 我们现在在进行相机的开发,需要用到 gl 对相机帧进行 2 次处理,所以在 native 侧进行子线程的创建和 gl 环境捆绑。  我们想在这一个子线程中可以直接执行 ts 层的代码(想把滤镜的操作和编写上浮至 ts 层,后续其他人开发会方便一些,当然也要把 gl 的一些指令桥接至 ts 中),所以需要依赖这个 native 线程的 gl 环境,也就必须在 native 子线程中运行 ts 的滤镜代码。现有的资料都是回归到 js 线程的,但这样就会导致 ts 层运行滤镜时 gl 环境丢失了。  请问这种方案是可行的么?我需要怎么操作。


更多关于HarmonyOS 鸿蒙Next native 子线程是否可以直接调用 ts 层代码,并且是使用的 native 子线程环境的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
目前在ohos中,子线程不能直接调用 ts 层代码,目前的有的类似方案是使用NAPI中的线程安全函数,避免了线程间通信,同时可以回到主线程调用JS函数,它可以创建一个NAPI对象,该对象包含一个JavaScript函数,并且在多个线程调用。
napi_create_threadsafe_function 创建线程安全函数,也是一个NAPI对象,包含一个JS函数,可以从多个线程调用。
napi_get_threadsafe_function_context 获取线程安全函数中的context。
napi_call_threadsafe_function 调用线程安全函数。
napi_acquire_threadsafe_function 指示线程安全函数可以开始使用。
napi_release_threadsafe_function 指示线程安全函数将停止使用。

更多关于HarmonyOS 鸿蒙Next native 子线程是否可以直接调用 ts 层代码,并且是使用的 native 子线程环境的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,Next native子线程不可以直接调用ts层代码,并且无法直接使用native子线程环境来执行ts层逻辑。

HarmonyOS的架构设计中,native层和ts(TypeScript或鸿蒙特定的TypeScript扩展)层是分开的,它们运行在不同的执行环境和内存空间中。ts层主要用于应用界面的构建和业务逻辑的处理,而native层则更多地涉及到底层系统服务、硬件接口以及性能优化等方面。

由于这种分层设计,ts层代码通常通过特定的接口或消息机制与native层进行通信,而不是直接调用。如果需要在native子线程中处理与ts层相关的任务,通常的做法是通过消息队列、回调机制或者事件总线等方式,将需要处理的任务从native层传递到ts层的主线程或合适的线程中进行处理。

因此,在HarmonyOS鸿蒙系统中,开发者需要遵循这种分层设计的原则,确保不同层级之间的通信和协作是安全、高效且符合系统设计的。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部