OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK

这篇具有很好参考价值的文章主要介绍了OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Har 包

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

  • 使用场景
    • 作为二方库,发布到OHPM  私仓,供公司内部其他应用使用。
    • 作为三方库,发布到 OHPM  中心仓,供其他应用使用。
  • HAR 开发约束限制
    • HAR 不支持 UIAbility、ExtensionAbility 组件和 pages 页面。
    • HAR 不支持在 build-profile.json5 文件的 buildOption 中配置 worker。
    • FA 模型与 Stage 模型的 HAR 不支持相互引用。
    • Stage 模型的 HAR,不能引用 AppScope 内的内容。在编译构建时 AppScope 中的内容不会打包到 HAR 中,因此会导致 HAR 资源引用失败。

开发介绍

  1. 创建一个工程

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

  1. 工程里加模块

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

  1. 选择 staticlibrary,就是静态库

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

  1. 打开 native 的开关就是支持 nativec++,也就支持 ndk

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

  1. 在主工程里导入 library 工程

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

  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应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

总结

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

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK,OpenHarmony,HarmonyOS,移动开发,c语言,c++,数据库,harmonyos,华为,Openharmony,鸿蒙开发文章来源地址https://www.toymoban.com/news/detail-851464.html

到了这里,关于OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenHarmony开发-连接开发板调试应用

    在 OpenHarmony 开发过程中,连接开发板进行应用调试是一个关键步骤,只有在真实的硬件环境下,我们才能测试出应用更多的潜在问题,以便后续我们进行优化。本文详细介绍了连接开发板调试 OpenHarmony 应用的操作步骤。 首先,我们搭建了OpenHarmony的开发环境,安装 OpenHarmo

    2024年04月11日
    浏览(44)
  • openharmony应用开发HDC 常用命令

    1.查看hdc版本: hdc --version 2.查看设备sn号: hdc list targets 3.进入shell: hdc shell 4.重启设备 hdc shell reboot 5.设置RK开发板根目录的读写权限 hdc shell mount -o rw,remount / # 此命令用于解决推包时提示只读路径,无法推送。例如:[Fail]Error opening file: read-only file system, path:/system/lib/libace.z.

    2024年04月14日
    浏览(37)
  • 鸿蒙开发实战-OpenHarmony之天气应用

    功能描述: 通过请求免费API获取指定城市七天内相关天气信息 开发环境: IDE:DEV ECO 4.0.600 SDK:4.0.10.15 开发板:DAYU200 4.0.10.16 一. 创建项目,调试环境 1.创建项目 2.选择OpenHarmony、API10 3.连网条件下加载依赖 4.在开发板上签名,运行HelloWorld测试环境 直接运行,然后点击log报错直

    2024年02月21日
    浏览(49)
  • HarmonyOS/OpenHarmony应用开发-Stage模型应用/组件级配置

    在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应 app.json5配置文件 和 module.json5配置文件 文件中的

    2024年02月13日
    浏览(65)
  • 鸿蒙应用开发学习路线(OpenHarmony/HarmonyOS)

    作者:坚果 团队:坚果派 公众号:“大前端之旅” 润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领100+队员完成Pr的提交合入。 欢迎通过主页或者私信联系

    2024年02月15日
    浏览(91)
  • OpenHarmony应用开发入门教程(一、开篇)

    华为正式宣布2024年发布的华为鸿蒙OS Next版将不再兼容安卓系统。这一重大改变,预示着华为鸿蒙OS即将进入一个全新的阶段。 都说科技无国界,这是骗人的鬼话。谷歌的安卓12.0系统早已发布,但是自从受到美影响,谷歌就拒绝再向华为提供安卓系统。你说它横不横,就是给

    2024年02月19日
    浏览(52)
  • OpenHarmony 应用 ArkUI 状态管理开发范例

    本文转载自《#2023 盲盒+码 # OpenHarmony 应用 ArkUI 状态管理开发范例》,作者:zhushangyuan_ 本文根据橘子购物应用,实现 ArkUI 中的状态管理。 在声明式 UI 编程框架中,UI 是程序状态的运行结果,用户构建了一个 UI 模型,其中应用的运行时的状态是参数。当参数改变时,UI 作为

    2024年02月10日
    浏览(37)
  • OpenHarmony开发- 应用子系统/Launcher

    Launcher 作为系统人机交互的首要入口,提供应用图标的显示、点击启动、卸载应用,并提供桌面布局设置以及最近任务管理等功能。 Launcher 采用 扩展的TS语言(ArkTS)开发,主要的结构如下: product 业务形态层:区分不同产品、不同屏幕的各形态桌面,含有桌面窗口、个性化

    2024年04月16日
    浏览(48)
  • OpenHarmony OpenCV应用样例开发

    背景 OpenCV 介绍 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由一系列的 C 函数和少量 C++ 类构成,同时提供 Python、Java 和 MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 具有极广的应用领域,它包括但不

    2024年04月14日
    浏览(35)
  • HarmonyOS/OpenHarmony应用开发-HDC环境变量设置

    hdc(HarmonyOS Device Connector)是 HarmonyOS 为开发人员提供的用于调试的命令行工具,通过该工具可以在 windows/linux/mac 系统上与真实设备或者模拟器进行交互。 hdc 工具通过 HarmonyOS SDK 获取,存放于 /Huawei/Sdk/openharmony/版本号/toolchains/ 目录下。 1、打开环境变量 2、新建系统变量 3、

    2024年04月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包