HarmonyOS鸿蒙Next中library中的native使用方式

HarmonyOS鸿蒙Next中library中的native使用方式 想在自己library中使用第三方的so库,然后把library打成sdk给别的项目使用,缺少相关的开发文档和配置流程

3 回复

1、将cpp文件夹copy到library/src/main中

2、library中build-profile.json5中增加buildOption配置、配置如下:

{
  "buildOption": {
    "napiLibFilterOption": {
      "enableOverride": true
    },
    "externalNativeOptions": {
      "path": "./src/main/cpp/CMakeLists.txt",
      "arguments": "",
      "abiFilters": [
        "armeabi-v7a",
        "arm64-v8a"
      ],
      "cppFlags": ""
    }
  }
}

3、第三方so库通过在cmake中配置引入

更多关于HarmonyOS鸿蒙Next中library中的native使用方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,library模块中的native代码主要用于实现跨平台功能,通常通过Native API与底层系统交互。native代码可以通过NativeModuleNativeLibrary的方式集成到鸿蒙应用中。

  1. NativeModule
    NativeModule是鸿蒙提供的一种机制,允许开发者编写C/C++代码,并通过JSArkTS调用。开发者需要在native目录下编写C/C++代码,并通过CMakeNinja进行编译,生成动态链接库(.so文件)。在ArkTS中,通过@ohos.native模块加载并调用native方法。

  2. NativeLibrary
    NativeLibrary是鸿蒙提供的一种更轻量级的native代码集成方式,适用于简单的native功能。开发者需要将native代码编译为静态库(.a文件),并在module.json5中配置nativeLibrary路径。应用启动时,鸿蒙系统会自动加载并初始化native库。

  3. Native API
    鸿蒙提供了丰富的Native API,包括文件操作、网络通信、图形渲染等,开发者可以直接在native代码中调用这些API,实现与鸿蒙系统的深度集成。

  4. 跨平台兼容性
    鸿蒙Next的native代码支持跨平台编译,开发者可以通过CMake配置文件,针对不同架构(如arm64-v8ax86_64)生成对应的二进制文件,确保应用在不同设备上正常运行。

总结:在鸿蒙Next中,native代码的使用主要通过NativeModuleNativeLibrary实现,开发者可以借助Native API与系统深度交互,同时支持跨平台编译。

在HarmonyOS鸿蒙Next中,library中的native代码通常通过C/C++编写,用于实现高性能或底层操作。使用步骤如下:

  1. 创建Native模块:在src/main/cpp目录下编写C/C++代码,并配置CMakeLists.txt文件。
  2. 生成动态库:编译生成.so文件,放入libs目录。
  3. Java/Kotlin调用:通过System.loadLibrary加载动态库,并声明native方法调用C/C++函数。
  4. JS调用:通过Native APIFFI(外部函数接口)调用Native代码。

确保相关权限和依赖项正确配置,以实现跨语言调用。

回到顶部