目录

同步方式动态加载Native模块

loadNativeModule (同步动态加载系统库接口)用于同步动态加载Native模块,目的是按需加载所需要的模块。

函数说明

loadNativeModule(moduleName: string): Object;
参数 说明
moduleName 加载的模块名。

loadNativeModule支持的场景

场景 示例
系统库模块 加载@ohos.或@system.
应用内Native模块 加载libNativeLibrary.so

使用注意事项

以加载libentry.so为例,需要完成以下配置。

  1. 在模块级oh-package.json5文件中配置dependencies字段。

    "dependencies": {
      "libentry.so": "file:./src/main/cpp/types/libentry"
    },
  2. 在模块级build-profile.json5文件中配置runtimeOnly.packages字段。

    "buildOption": {
      "arkOptions": {
        "runtimeOnly": {
          "packages": [
            "libentry.so"
          ]
        }
      },
      // ...
    },

使用示例

示例1:HAP加载系统库模块

// HAP加载系统库模块
let hilog: ESObject = loadNativeModule('@ohos.hilog');
hilog.info(0, 'testTag', 'loadNativeModule ohos.hilog success');

示例2:HAP加载Native库

libentry.so的index.d.ts文件如下:

export const add: (a: number, b: number) => number;

完成使用注意事项中的依赖配置后,使用loadNativeModule加载libentry.so并调用add函数。

//HAP加载Native库
let module: ESObject = loadNativeModule('libentry.so');
let sum: number = module.add(1, 2);