当前位置: 首页 > article >正文

鸿蒙module开发实践

模块化开发简介

鸿蒙是支持模块化开发的,使用模块开发可以有以下好处:

  • 应用功能多样化:一个应用通常包含多种功能。
  • 模块化管理:将不同功能按模块划分和管理,是一种好的设计方法。
  • 独立开发:每个功能模块可以作为一个独立的Module进行开发,包含源代码、资源文件、第三方库和配置文件等。
  • 独立编译:每个Module可以独立编译,实现特定功能。
  • 优势:这种模块化、松耦合的设计方式有助于应用的开发、维护和扩展。

新建流程:新建-模块-Choose Your Ability Template:

这里有四种模板可选择:

  • Ability类型的Module: 用于实现应用的功能和特性。每一个Ability类型的Module编译后,会生成一个以.hap为后缀的文件,我们称其为HAP(Harmony Ability Package)包。HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包,具体包含如下两种类型。
  • entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,只能包含唯一一个entry类型的HAP。
    • 因此,当选择了entry类型的Module之后,在编译运行的时候,需要选择编译运行入口
  • feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。
  • Native C++
  • Static Library : 静态共享库。编译后会生成一个以.har为后缀的文件,即静态共享包HAR(Harmony Archive)
    • 共享包类型:HAR
    • 编译和运行方式:HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。 注意:编译HAR时,建议开启混淆能力,保护代码资产。
    • 发布和引用方式:HAR除了支持应用内引用,还可以独立打包发布,供其他应用引用。
  • Shared Library: 动态共享库。编译后会生成一个以.hsp为后缀的文件,即动态共享包HSP(Harmony Shared Package)。
    • 共享包类型: HSP
    • 编译和运行方式:HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
    • 发布和引用方式:HSP一般随应用进行打包,当前支持应用内和集成态HSP。应用内HSP只支持应用内引用,集成态HSP支持发布到ohpm私仓和跨应用引用。

选用Static Library

在Configure New Module界面中,设置新添加的模块信息,设置完成后,单击Finish完成创建。

  • Module name:新增模块的名称。
  • Device type:支持的设备类型。
  • Enable native:是否创建一个用于调用C++代码的模块。

可视化配置完之后,

在项目级的build-profile.json中,就会新增对该模块的引用

    {
      "name": "test",
      "srcPath": "./features/test",
    }

http://www.kler.cn/a/402533.html

相关文章:

  • 直播技术-Android基础框架
  • Python 网络爬虫操作指南
  • C#构建一个简单的前馈神经网络
  • 小程序免备案:快速部署与优化的全攻略
  • 【数据结构】—— 线索二叉树
  • CSS3新特性——字体图标、2D、3D变换、过渡、动画、多列布局
  • 豆瓣书摘 | 爬虫 | Python
  • 性能稳定的云计算监控工具大全
  • 硬件工程师零基础入门:一.电子设计安全要点与欧姆定律
  • 蓝桥杯2024年11月20日个人赛报名页下方例题解答
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-conv.py
  • 重构代码之引入外部方法
  • 【c++篇】:深入c++的set和map容器--掌握提升编程效率的利器
  • 【JavaSE】【网络编程】UDP数据报套接字编程
  • MFC1(note)
  • 高频面试题(含笔试高频算法整理)基本总结回顾21
  • goland单元测试
  • 【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题
  • 一次成功尝试:旧电脑通过网线,连接带无线网卡电脑上外网
  • Android和IOS的区别
  • C++——智能指针剖析
  • 专家PID控制
  • 在 for 循环中,JVM可能会将 arr.length 提升到循环外部,仅计算一次。可能会将如何解释 详解
  • AwsCredentialsProvider认证接口
  • Python运算符列表
  • C++设计模式之适配器模式与桥接模式,装饰器模式及代理模式相似点与不同点