鸿蒙(HarmonyOS)开发知识@IT·互联网

OpenHarmony应用开发引入开源C/C++库---之Har

2024-09-21  本文已影响0人  迪士尼在逃程序员

Har 包

HAR(Harmony Archive)是静态共享包,可以包含代码、C++ 库、资源和配置文件。通过 HAR 可以实现多个模块或多个工程共享 ArkUI 组件、资源等相关代码。HAR 不同于 HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

开发介绍

  1. 创建一个工程
  1. 工程里加模块
  1. 选择 staticlibrary,就是静态库
  1. 打开 native 的开关就是支持 nativec++,也就支持 ndk
  1. 在主工程里导入 library 工程
  1. 修改代码导出控件,方法
    // library 工程里修改 ------------------------------------------
    // src/main/ets/components/mainpage/MainPage.ets
    export struct AddCom {
    ......
            Text(this.message)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
              .onClick(() => {
                hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(this.na, this.nb));
                this.na += 1;
                this.nb += 2;
                this.message = "AddCom = " + testNapi.add(this.na, this.nb);
              })

    // src/main/ets/components/mainpage/Caculate.ets
    import hilog from '@ohos.hilog';
    import testNapi from 'liblibrary.so';

    export namespace  Caculator {
      export function add(a: number, b: number) {
        hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(a, b));
        return testNapi.add(a, b);
      }
    }

    // Index.ets
    export { AddCom } from './src/main/ets/components/mainpage/MainPage'
    export { Caculator } from './src/main/ets/components/mainpage/Caculate'

    // library 工程里修改 ------------------------------------------

    // 主项目里导入
    import { AddCom, Caculator } from 'library'
    .....
            Text(this.message)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
              .onClick(() => {
                hilog.info(0x0000, 'testTag', 'Test Har 2 + 3 = %{public}d', Caculator.add(this.na, this.nb));
                this.na += 10
                this.nb += 10
                this.message = "2+3=" + Caculator.add(this.na, this.nb)
              })
  1. 结果

总结

可以利用 OpenHarmony 的 hsp 和 har,包装组件和对应的 NDK 工程,提供给其他应用进行开发和应用。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙

上一篇下一篇

猜你喜欢

热点阅读