鸿蒙module开发实践

news/2024/11/21 4:39:48/

模块化开发简介

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

  • 应用功能多样化:一个应用通常包含多种功能。
  • 模块化管理:将不同功能按模块划分和管理,是一种好的设计方法。
  • 独立开发:每个功能模块可以作为一个独立的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.ppmy.cn/news/1548658.html

相关文章

基于YOLOv8深度学习的智慧交通非机动车驾驶员头盔佩戴检测系统

随着智慧交通系统的快速发展和城市交通的日益复杂化,非机动车驾驶员的安全问题引起了广泛关注,尤其在发生交通事故时,佩戴头盔作为基础的保护措施,能够有效降低头部受伤的风险,保障非机动车驾驶员的生命安全。然而&…

UEFI学习笔记(十七):SMCCC概述

UEFI学习笔记(十七):SMCCC概述 一、什么是 SMC 调用规范?1、定义:2、目标:3、适用范围: 二、SMC调用约定与分类1、SMC 调用通过以下两种约定传递参数和返回值:2、SMC调用分类 三、SM…

探索DDCA:深入理解内存架构、子系统与内存控制器

数字设计和计算机体系结构(DDCA)中,内存架构、子系统及内存控制器是核心组成部分。在现代计算机系统中,高效的内存管理对于提升整体性能和响应速度至关重要。本文将深入探讨这些关键元素,帮助您更好地理解它们的工作原…

Oracle19C AWR报告分析之Operating System Statistics

Oracle19C AWR报告分析之Operating System Statistics 一、分析数据二、详细分析三、总结建议 Oracle 19C的AWR(Automatic Workload Repository)报告中的Operating System Statistics部分提供了操作系统层面的性能统计数据。这些指标对于分析数据库性能的…

Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真

引言 导航仿真是机器人自动化系统中不可或缺的一部分,能够帮助开发者在虚拟环境中测试机器人在复杂场景下的运动与路径规划。 在 Gazebo 仿真环境中,TurtleBot3 配合 ROS 操作系统提供了强大的导航功能。在进行导航仿真时,首先需要准备地图&…

【python】Bokeh 与 Plotly:创建交互式数据可视化工具

Bokeh 与 Plotly:创建交互式数据可视化工具 在现代数据分析中,交互式数据可视化已经成为一个重要的工具。它不仅能帮助我们更好地展示数据,还能通过直观的方式探索数据中的模式和异常。本文将对比两款流行的 Python 可视化库:Bok…

第十二章 并行Stream流

目录 一、引言 二、获取并行Stream流的两种方式 三、并行和串行Stream流的效率对比 四、parallelStream线程安全问题 五、parallelStream背后的技术 5.1. Fork/Join框架介绍 5.2. Fork/Join原理-分治法 5.3. Fork/Join原理-工作窃取算法 5.4. Fork/Join案例 一、引言 …

深入解析Kernel32.dll与Msvcrt.dll

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 介绍Kernel32.dll:Windows操作系统的核心Msvcrt.dll:C运行时库的核心 使用举例使用Kernel32.dll的示例:文件操作使用Msvcrt.dll的…