【HarmonyOS】鸿蒙应用模块化实现

【HarmonyOS】鸿蒙应用模块化实现

一、Module的概念

Module是HarmonyOS应用的基本功能单元,包含了源代码、资源文件、第三方库及应用清单文件,每一个Module都可以独立进行编译和运行。一个HarmonyOS应用通常会包含一个或多个Module,因此,可以在工程中,创建多个Module,每个Module分为Ability和Library。

二、新增Module方法

通过如下两种方法,在工程中添加新的Module。

方法1:鼠标移到工程目录顶部,点击鼠标右键,选择New>Module,开始创建新的Module。
方法2:在菜单栏选择File > New > Module,开始创建新的Module。
在这里插入图片描述

点击Next,在Module配置页面,设置新增Module的基本信息。

Module类型为Ability或者HarmonyOS Library时,请根据如下内容进行设置,然后点击Next。Application/Library name:新增Module所属的类名称。

Module name:新增模块的名称。
Module Type:仅Module类型为Ability时存在,工具自动根据设备类型下的模块进行设置。
Package name:软件包名称,可以点击Edit修改默认包名称,需全局唯一。
Compatible SDK:兼容的SDK版本。
在这里插入图片描述

设置新增Ability或HarmonyOS Library的Page Name。
若该Module类型为Ability,需要设置Visible参数,表示该Ability是否可以被其它应用所调用。
勾选(true):可以被其它应用调用。
不勾选(false):不能被其它应用调用。
点击Finish,等待创建完成后,可以在工程目录中查看和编辑新增的Module。

三、删除Module方法

为防止开发者在删除Module的过程中,误将其它的模块删除,DevEco Studio提供统一的模块管理功能,需要先在模块管理中,移除对应的模块后,才允许删除。

在菜单栏中选择File > Project Structure > Modules,选择需要删除的Module,点击按钮,并在弹出的对话框中点击Yes。

四、多module编译打包方法

HAP按构建类型和是否签名可以分为以下四种形态:
1、构建类型为Debug的HAP(带调试签名信息):携带调试签名信息,具备单步调试等调试手段的HAP,用于开发者在真机或者模拟器中进行应用调试。

2、构建类型为Debug的HAP(不带签名):不带调试签名信息,具备单步调试等调试手段的HAP,仅能运行在模拟器中。

3、构建类型为Release的HAP(带调试签名信息):携带调试签名信息,不具备调试能力的HAP,用于开发者在真机或者模拟器中查看和验证应用运行效果。相对于Debug类型的HAP包,体积更小,运行效果与用户实际体验一致。

4、构建类型为Release的HAP(不带签名):不带调试签名信息,不具备调试能力的HAP,仅能运行在模拟器中查看和验证应用运行效果。相对于Debug类型的HAP包,体积更小,运行效果与用户实际体验一致。
根据HarmonyOS工程介绍,一个HarmonyOS工程下可以存在多个Module,在编译构建时,可以选择对单个Module进行编译构建;也可以对整个工程进行编译构建,同时生成多个HAP。
在主菜单栏,点击Build > Build APP(s)/Hap(s) > Build Debug Hap(s),生成已签名的Debug HAP。

在这里插入图片描述

可以选择对单个Module:entry、module2、module3
也可以选择整个工程:MyApplication
选单个Module编包生成对应HAP文件,选择整个项目编包,则在每个Module的outputs路径下都生成HAP文件

五、module之间的相互调用

在MyApplication工程中创建多个module:entry、module2、module3

在module1模块中创建组件

在entry模块的配置文件package.json中添加依赖项module1

在entry模块中引用module1模块的组件

运行entry后的结果:
反之也可引用到entry中相应的组件及方法。

相关推荐

  1. 鸿蒙 HarmonyOS应用模型简要分析

    2024-06-17 04:30:02       35 阅读
  2. 「前端+鸿蒙鸿蒙应用开发-TS-模块

    2024-06-17 04:30:02       35 阅读
  3. HarmonyOS鸿蒙应用模块module资源如何获取

    2024-06-17 04:30:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 04:30:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 04:30:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 04:30:02       87 阅读
  4. Python语言-面向对象

    2024-06-17 04:30:02       96 阅读

热门阅读

  1. pytest + yaml 框架 -62.支持yaml和json2种格式用例

    2024-06-17 04:30:02       30 阅读
  2. 【微信小程序 事件绑定】

    2024-06-17 04:30:02       25 阅读
  3. 写在前面的话

    2024-06-17 04:30:02       32 阅读
  4. pdf.js实现web h5预览pdf文件(兼容低版本浏览器)

    2024-06-17 04:30:02       21 阅读
  5. 回调函数-python-chatgpt4-Memory

    2024-06-17 04:30:02       28 阅读
  6. mysql在linux下安装与配置

    2024-06-17 04:30:02       29 阅读
  7. OPPO-HR面笔记

    2024-06-17 04:30:02       31 阅读
  8. js 实现图片纵向拼接并下载

    2024-06-17 04:30:02       32 阅读
  9. 窗口信息保存

    2024-06-17 04:30:02       27 阅读
  10. DllPlugin

    2024-06-17 04:30:02       26 阅读
  11. DAG最长路问题详解

    2024-06-17 04:30:02       29 阅读
  12. Web爬虫-edu_SRC-目标列表爬取

    2024-06-17 04:30:02       30 阅读
  13. Rocky Linux配置国内源

    2024-06-17 04:30:02       27 阅读