HarmonyOS C/C++库开发 C侧和TS之间的数据交互
问题:
1. ts 傳 struct 給 napi 標準的做法,是否有sample code?
2. ts 傳 pointer 給 napi 標準的做法,是否有sample code?场景:C++ 工程Native和上层ArkTS复杂的数据传递 (或者说Native的对象数据与ArkTS的对象数据如何绑定?)实现:尝试过程中能够实现数据交换,但是同一份数据其数据类型会多次转换拷贝,影响性能。
以下是基于自己的API的开发Native C++ project遇到的具体例子:
C API:
INT32 PPCS_NetworkDetect(st_PPCS_NetInfo *NetInfo, UINT16 UDP_Port);
struct st_PPCS_NetInfo:
typedef struct{
char bFlagInternet;
char bFlagHostResolved;
char bFlagServerHello;
char NAT_Type;
char MyLanIP[16];
char MyWanIP[16];
} st_PPCS_NetInfo;
希望在底层调用PPCS_NetworkDetect()返回填充的struct st_PPCS_NetInfo能够高效的在上层Arkts使用或呈现,而不是需要我们去经过复杂的数据类型转换,是否有方案就是能够提供pointer让两层的数据对象直接高效交互。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
ArkTS和C++之间的交互
1140浏览 • 1回复 待解决
N-API接口实现ArkTS/TS/JS和C/C++之间的交互
1108浏览 • 1回复 待解决
HarmonyOS ArkTS与C/C++的交互
431浏览 • 1回复 待解决
c++侧可以直接调用ts的static方法吗?
1881浏览 • 1回复 待解决
ts给c++传递数组,c++层如何解析
1695浏览 • 1回复 待解决
C/C++实现的开源mqtt库如何移植到native c++工程中?
3091浏览 • 1回复 待解决
AVPlayer实现音频播放(c++侧)
1061浏览 • 1回复 待解决
ArkTS与Native(C/C++/Rust)通过什么方式实现调用交互
2000浏览 • 1回复 待解决
有没有从ts设置回调到c++层,然后c++再回调到ts的示例代码?
786浏览 • 1回复 待解决
如何通过AKI三方库实现ArkTS与C/C++之间的跨语言调用
3039浏览 • 1回复 待解决
怎样用c\c++开发啊有知道的吗?
4032浏览 • 1回复 待解决
HarmonyOS应用开发 支持C++吗?
17588浏览 • 1回复 待解决
HarmonyOS 如何调用标准C++库
278浏览 • 1回复 待解决
使用C++进行HarmonyOS开发的问题
398浏览 • 2回复 待解决
dev studio可以用C#或者C++开发吗?
3514浏览 • 1回复 待解决
如何修改C++版本?C++支持情况?
842浏览 • 1回复 待解决
HarmonyOS应用开发 没有 C++ UI 框架
14170浏览 • 2回复 待解决
HarmonyOS C++库使用aki库,编译报错
189浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
2038浏览 • 1回复 待解决
如何实现ArkTS与C/C++的HashMap转换?
943浏览 • 0回复 待解决
HarmonyOS C++异步操作
205浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
230浏览 • 1回复 待解决
安装pcre报错“You need a C++ compiler for C++ support.”
2400浏览 • 1回复 待解决
如何实现ArkTS与C/C++的数组转换
477浏览 • 1回复 待解决
C/C++的三方开源库如何迁移到系统下运行
1764浏览 • 1回复 待解决
因为涉及跨语言调用,所以类型转换几乎是必须的。【建议】 尽可能的减少数据转换次数,避免不必要的复制。减少数据转换次数: 频繁的数据转换可能会导致性能下降,可以通过批量处理数据或者使用更高效的数据结构来优化性能;避免不必要的数据复制: 在进行数据转换时,可以使用Node-API提供的接口来直接访问原始数据,而不是创建新的副本;使用缓存: 如果某些数据在多次转换中都会被使用到,可以考虑使用缓存来避免重复的数据转换。缓存可以减少不必要的计算,提高性能。可以使用高性能数组存储值类型数据,使用ArrayBuffer代替JSArray来提高应用性能。参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/napi-guidelines-V5#%E9%AB%98%E6%80%A7%E8%83%BD%E6%95%B0%E7%BB%84
https://gitee.com/openharmony/arkui_napi/blob/master/sample/native_module_systemtest/js_test_arraybuffer.cpp
问题1:可以通过如下代码传一个ts的类到c侧并通过napi_get_named_property获取类中的成员://在ArkTS中声明两个类,在tsClass中有三个成员函数,分别会需要string,number和testCb类作为入参。
问题2:不支持。