HarmonyOS 关于ArkTS中使用Rn搭建问题?

基于资料ReactNative for OpenHarmony CAPI版本开发使用指导-5.00.0.302.pdf 中4.2内容搭建,Rn部分功能模块。如图中cpp模块是否必须,处理主要用来通信是否还有其他作用。

阅读 568
1 个回答

CMakeLists.txt配置文件引入cpp文件配置,三方库配置。

packageProvider.cpp,引入三方库时,需要在这里加入引入的包名,比如:\#include “WebViewPackage.h” 和std::make\_shared<WebViewPackage\>(ctx),详情可以参考rn资料中参考三方库的引入。

SampleTurboModulePackage.cpp SampleTurboModulePackage.h 这两个文件应该是对引入的三方包进行使用,通常引用三方库不需要对这里进行修改,是对三方库通信的,这里就会引用到TurboModule里面的文件。

RN这个文件夹主要是选择不同ArkTS还是capi,在config.ts中// ArkTS/CAPI 开关配置 export const ENABLE\_CAPI\_ARCHITECTURE = true; 通过配置对rn和HarmonyOS侧链接所使用的ArkTS和capi进行一个选择,建议使用capi,后期主要维护和升级的是capi.

TurboModule这里主要是用于同通信的。

TurboModule:TurboModule是React Native中的一种新的原生模块系统,TurboModules是创建利用某些平台特定API的库的首选方法。它与Fabric和JSI结合使用,可以提供更高效的原生模块调用方式。

TurboModule是React Native中的一个新特性,它旨在改善原生模块(Native Modules)的性能和可维护性。可以通过React Native的「Bridge」帮助JavaScript和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。

旧架构启动时Native会加载所有的Native Modules,导致启动性能变差,以及RAM资源占用大。

Turbo Native Modules与Native Modules相比,存在以下优势:

各个平台的强类型接口声明是一致的;

可以使用C++编写模块或迁移其它平台的原生代码,以此避免在跨平台重复实现模块;

模块支持懒加载,可以节省内存,加快App启动速度;

通过替换Bridge为JSI(使用原生代码编写的 JavaScript 接口),提升JavaScript与原生代码的通讯效率。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进