在Harmony应用开发中,开发者可以使用dlopen的方式对so库进行动态加载。
1.SO库侧
- 1.将so库鸿蒙化,编译方案可以参考lycium/doc/ohos_use_sdk/OHOS_SDK-Usage.md · OpenHarmony-SIG/tpc_c_cplusplus - Gitee.com
- 2.动态加载的方法,需要导出处理,如下:
EXTERN_C_START
static napi_value Init(napi_env env, napi_value exports)
{
napi_property_descriptor desc[] = {
{ "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr }
};
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
return exports;
}
// 导出Add的包装函数
napi_value AddWrapper(napi_env env, napi_callback_info info) { return Add(env, info); }
// 导出sumTest的包装函数
int sumTestWrapper(int a, int b) {
return sumTest(a, b);
}
EXTERN_C_END
<