【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中相应的组件及方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/721661.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第55期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

CIC-DDoS2019-Detection

CIC-DDoS2019 对CIC-DDoS2019数据集进行检测,本文提供了如下内容: 数据清洗与合并机器学习模型深度学习模型PCA,t-SNE分析数据,结果可视化 代码地址:[daetz-coder](https://github.com/daetz-coder/CIC-DDoS2019-Detection) 1、数据集加载…

【Anaconda】【Windows编程技术】【Python】Anaconda的常用命令及实操

一、Anaconda终端 在安装Anaconda后,电脑上会新增一个Anaconda终端,叫Anaconda Prompt,如下图: 我们选择“打开文件位置”,将快捷方式复制一份到桌面上,这样日后就可以从桌面上方便地访问Anaconda终端了&…

欢乐钓鱼大师游戏攻略:萌新必备攻略大全!钓鱼脚本!

《欢乐钓鱼大师》是一款休闲益智类游戏,以钓鱼为主题,玩家需要通过各种钓鱼任务和挑战,收集不同种类的鱼类,并提升自己的钓鱼技术和装备。本文将为大家详细解析游戏的各个方面,帮助玩家更好地掌握游戏技巧,…

Airbind - hackmyvm

简介 靶机名称:Airbind 难度:中等 靶场地址:https://hackmyvm.eu/machines/machine.php?vmAirbind 本地环境 虚拟机:vitual box 靶场IP(Airbind):192.168.56.121 跳板机IP(windows 11)&…

BEV 中 multi-frame fusion 多侦融合(一)

文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…

移动app必须进行安全测试吗?包括哪些测试内容?

移动App已经成为我们日常生活中不可或缺的一部分,无论是社交娱乐还是工作学习,我们都离不开这些精心设计的应用程序。然而,随着移动App的广泛普及和使用,其安全性问题也逐渐浮出水面。为了确保用户数据的安全和减少潜在的风险&…

Playwright工作原理

执行test时,有哪些关键步骤 当我们用Playwright编写一段简单的test script,代码如下所示:在test case中第一段代码就是await page.goto(xxxxx) import { test, expect } from playwright/test;test(test, async ({ page }) > {await page…

新闻稿发布中被拒稿的原因分析

企业的公关经理在落地新闻宣传时一定碰到过新闻媒体拒稿的情况,小马识途在此总结了常见的拒稿原因,供广大企业参考。 1、新闻稿内容涉及违法违规信息 企业在发稿的时候内容一定要确认好,不要涉及违法、违规类信息,如果新闻内容里…

序列到序列模型中的注意力机制

目录 一、说明 二、编码器解码器架构中的问题:需要注意 2.1 编码器方面的问题: 2.2 解码器方面的问题: 三、什么是注意力机制? 3.1 计算 ci 值: 3.2 ci 的广义表示: 四、Bahdanau 注意 : 4.1. 兼…

报表开发工具DevExpress Reporting v23.2 - 增强PDF导出、多平台打印等

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reporting控件日前正式发布了v23.2…

生产看板管理系统内容有哪些?

相信很多做生产管理的朋友都会遇到如下问题,我就在想,是否能一个创建“透明的”的工作场所?让员工和管理者能够实时查询生产进度,及时发现生产中的问题。 生产进度难追踪 生产过程不透明 生产决策缺乏数据支持 ——能&#xf…

LeRobot——Hugging Face打造的机器人领域的Transformer架构

前言 如友人邓博士所说,“用 Stanford aloha 课题组提供的训练数据,训练他们研发的 Action Chunking Transformer 动作规划模型,训练结果,能用,但是稳定性有待提高 要提高稳定性,看来必须修改 Stanford a…

C++初学者指南第一步---6.枚举和枚举类

C初学者指南第一步—6.枚举和枚举类 文章目录 C初学者指南第一步---6.枚举和枚举类1.作用域的枚举(enum class类型)(C11)2.无作用域的枚举(enum类型)3.枚举类的基础类型4.自定义枚举类映射5.和基础类型的互相转换 1.作用域的枚举(enum class类…

深度学习(九)——神经网络:最大池化的作用

一、 torch.nn中Pool layers的介绍 官网链接: https://pytorch.org/docs/stable/nn.html#pooling-layers 1. nn.MaxPool2d介绍 nn.MaxPool2d是在进行图像处理时,Pool layers最常用的函数 官方文档:MaxPool2d — PyTorch 2.0 documentation &…

耗时两天半的java之sql注入代码审计

java之sql注入代码审计 前言 其实找到漏洞原因很简单,主要想学习一下JDBCsql的过程 JDBC 简单介绍 Java通过java.sql.DriverManager来管理所有数据库的驱动注册,所以如果想要建立数据库连接需要先在java.sql.DriverManager中注册对应的驱动类&#x…

2Y0A21 GP2Y0A21YK0F 红外测距传感器 arduino使用教程

三根线 正极负极信号线 确认自己的三根线分别代表什么,我们的颜色可能不一样 附一张我买的传感器他们的说明图 正极 接 开发板5V 负极 接开发板GND 信号线 接A0 代码arduino ide上面写 // Infračerven senzor vzdlenosti Sharp 2Y0A21// připojen potře…

新火种AI|Sora发布半年之后,AI视频生成领域风云再起

作者:一号 编辑:美美 AI视频最近有些疯狂,Sora可能要着急了。 自OpenAI的Sora发布以来,AI视频生成技术便成为了科技界的热门话题。尽管Sora以其卓越的性能赢得了广泛关注,但其迟迟未能面向公众开放,让人…

Study--Oracle-03-数据库常规操作

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。 一、oracle 版本及主要功能 二、数据安装完成后常用操作SQL 1、检查数据库监听状态 监听的常用命令 启动:[oracleoracle u01]$ lsnrctl stop 停止&am…