Native侧在模块注册信息设置方面需要做哪些工作?

阅读 689
1 个回答

需要准备模块加载相关信息,定义napi_module结构体,设置关键属性。如以下代码所示:

// entry/src/main/cpp/napi_init.cpp
static napi_module demoModule = {
  .nm_version = 1,
  .nm_flags = 0,
  .nm_filename = nullptr,
  .nm_register_func = Init,
  .nm_modname = "entry",
  .nm_priv = nullptr,
  .reserved = {0},
};
extern "C" __attribute__((constructor)) void RegisterDemoModule() {
    napi_module_register(&demoModule);
}

其中,.nm_register_func定义模块初始化函数,.nm_modname定义模块名称(即ArkTS侧引入的so库名称),加载so时会自动调用napi_module_register函数将模块注册到系统中。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。