基于资料ReactNative for OpenHarmony CAPI版本开发使用指导-5.00.0.302.pdf 中4.2内容搭建,Rn部分功能模块。如图中cpp模块是否必须,处理主要用来通信是否还有其他作用。
基于资料ReactNative for OpenHarmony CAPI版本开发使用指导-5.00.0.302.pdf 中4.2内容搭建,Rn部分功能模块。如图中cpp模块是否必须,处理主要用来通信是否还有其他作用。
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答992 阅读
1 回答972 阅读
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与原生代码的通讯效率。