news 2026/6/5 18:05:06

鸿蒙6.0应用开发——一多工程的部署与发布

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙6.0应用开发——一多工程的部署与发布

鸿蒙6.0应用开发——一多工程的部署与发布

文章目录

  • 鸿蒙6.0应用开发——一多工程的部署与发布
    • 概述
    • 创建三层架构工程
    • 修改Module类型及设备类型
    • 修改依赖关系
    • 配置增强启动页
    • 发布一多应用

概述

本章介绍一多应用在工程结构设计及应用上架配置中的方法。在开发“一多”应用时,除了需要针对手机、平板、电脑、智能穿戴、智慧屏等不同设备的硬件特性进行适配外,还需合理组织代码工程,以提升开发效率与部署灵活性。为保障多设备间一致的用户体验,系统提供了相应的配置能力。

说明

本章的内容基于DevEco Studio 6.0.0 Release版本进行介绍,如使用DevEco Studio其它版本,可能存在文档与产品功能界面不一致、操作不一致的情况,请以实际功能界面为准。

创建三层架构工程

建议在应用开发过程中使用架构设计中介绍的“三层架构工程”,在common层存放基础公共代码,features层存放相对独立的功能模块代码,products层存放完全独立的产品代码。通过在products层依赖features和common提供的公共能力,可最大化实现代码复用与职责分离。

“三层架构工程”将项目工程以common、features、products三个层级进行组织,以提升代码复用性与开发效率。工程结构示例如下所示:

/application ├── common# 公共特性目录│ ├── features# 功能模块目录│ ├── feature1# 子功能│ ├── feature2# 子功能2│ └──...# 子功能n│ └── products# 产品层目录├── default# 默认设备泛类目录├── tv# 智慧屏泛类目录└── wearable# 智能穿戴泛类目录

建议使用DevEco Studio直接创建出三层架构的新工程。在编译器创建工程弹框中选择Flexible Layout Ability工程模板,该模板可以创建跨设备应用开发的三层工程结构。更多工程模板介绍内容可参考工程模板介绍。

配置工程名称、包名等基本信息,选择目标支持设备,完成设置后即可创建项目。

创建后的工程目录如下图所示:

  • common层为HAR(Harmony Archive)类型的Module,提供通用组件和工具类等基础能力支撑;
  • features层默认创建两个HAR类型的Module,用于封装独立的功能模块与业务逻辑,提升模块化程度与复用性;
  • products层创建一个entry类型的HAP(Harmony Ability Package)Module,作为应用的主入口模块,承载设备与场景差异化的个性化配置和启动逻辑。

根据业务需求,应用可以灵活规划新增或删除Module,具体操作步骤可以参考添加/删除模块。

说明

在一多应用开发中,可以根据设备类型的设计差异选择是否创建独立HAP包。例如,手机和平板的布局与功能设计类似,可共用一个HAP包;而智慧屏(TV)和智能穿戴设备(Wearable)因与其他设备相比差异较大,建议分别创建独立的HAP包。

修改Module类型及设备类型

修改Module类型

在新增Module时,可选择不同类型的Module进行创建。若需修改已创建Module的类型,只需编辑其module.json5配置文件中的"type"字段即可。"type"支持"entry/feature/har/shared"四个取值,分别表示应用的主模块、动态特性模块、静态共享包模块、动态共享包模块,开发者可参考应用程序包开发与使用,根据具体使用场景来选择或修改Module的类型。

修改设备类型

在新增Module时,可指定该Module支持运行的设备类型;对于已创建的Module,可通过修改其module.json5配置文件中的"deviceTypes"字段,修改支持运行的设备类型,支持"phone/tablet/2in1/tv/wearable/car",分别对应手机、平板、电脑、智慧屏、智能穿戴、智能座舱设备。修改后需要点击右上角的"Sync Now",否则改动不会生效。

说明

module.json5配置文件中定义了Module的各项基本配置信息,更多字段的详细说明可参考module.json5配置文件。

修改依赖关系

采用架构设计中介绍的“三层架构工程”设计原则,在Module中引用其他Module时,需在其oh-package.json5文件中配置依赖关系。使用Flexible Layout Ability工程模板创建的三层架构,模板会默认配置好依赖关系。若要引入新的依赖关系,修改"dependencies"字段,添加新的依赖关系,格式为:

"依赖名称":"本地相对路径"

配置完成后,在代码中可直接通过该依赖名称使用features或common的功能模块。

修改oh-package.json5文件后,请点击右上角的"Sync Now",否则改动不会生效。更多详情参考引用及管理共享包。

配置增强启动页

启动页(Starting Window)在应用冷启动、进程未就绪或内容未加载完成时显示,是首个呈现给用户的界面。开发一多应用时,多端设备共用一套代码,由于不同设备的断点存在差异,启动页在各端呈现的效果可能有所不同,如下表所示:

系统提供增强启动页配置能力,旨在保障应用在多端设备上启动页体验的一致性,减少开发者的手动适配工作。开发者可根据设计需求配置启动资源,相应资源也具备根据窗口尺寸进行缩放的能力,更易于多设备适配设计。

增强启动页通过配置json文件的方式实现,json文件需要由开发者自行创建并放置到工程目录下,配置文件中可设置图标、插画、背景颜色、背景图片、品牌标识等多元化元素,有助于提升用户对产品的认知。详细的配置步骤可参考配置增强启动页。

说明

增强启动页从API version 19开始支持,低版本下配置不会生效。

发布一多应用

发布一多应用时,可以配置应用分发至多种设备。默认分发设备为创建项目时所选的设备类型,但可根据实际需求调整。只需发布一次,用户即可在所有支持的设备上安装和使用您的应用。详细的发布流程可参考发布HarmonyOS应用。

构建的一多工程若包含多个根据设备区分的HAP,且在配置支持设备时一并勾选了相关设备,应用程序(.app文件)在流水线或应用市场上被解包为N个Entry类型的HAP,根据HAP中的deviceTypes声明的设备类型,分发到不同设备。

说明

  • 请确保软件包中声明的支持设备范围(即module.json5文件中"deviceTypes"字段的枚举值)包含AppGallery Connect上最终勾选的设备类型。若声明范围小于勾选范围,超出部分将不会生效。若要新增支持的设备,可参考修改Module类型及设备类型。
  • 在应用提交上架前可以修改分发的设备,应用一旦发布,升级版本只支持增加设备,无法删除已选择的设备。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 18:05:02

xrdp远程桌面实战:5步深度配置解决Linux RDP连接难题

xrdp远程桌面实战:5步深度配置解决Linux RDP连接难题 【免费下载链接】xrdp xrdp: an open source RDP server 项目地址: https://gitcode.com/gh_mirrors/xrd/xrdp xrdp作为Linux系统上功能最全面的开源RDP服务器,为Windows远程桌面协议提供了在…

作者头像 李华
网站建设 2026/6/5 18:04:57

2023B卷,最长广播响应

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:华为OD面试 文章目录 一、🍀前言 1.1 ☘️题目详情 1.2 ☘️参考解题答案 一、🍀前言 2023B卷,最长广播响应。 1.1 ☘️题目详情 题目: 某通信网…

作者头像 李华
网站建设 2026/6/5 18:03:53

从模糊到高清:如何用AI技术一键提升你的多媒体画质

从模糊到高清:如何用AI技术一键提升你的多媒体画质 【免费下载链接】Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolutio…

作者头像 李华
网站建设 2026/6/5 18:02:50

金融文本分析实战:使用FinBERT-tone构建智能投资决策系统

金融文本分析实战:使用FinBERT-tone构建智能投资决策系统 【免费下载链接】finbert-tone 项目地址: https://ai.gitcode.com/hf_mirrors/Beijing-Ascend/finbert-tone FinBERT-tone是一款专为金融文本情感分析设计的强大工具,基于BERT模型在海量…

作者头像 李华
网站建设 2026/6/5 18:02:47

性能对比分析:LongCat-Flash-Chat-FP8在推理效率上的突破

性能对比分析:LongCat-Flash-Chat-FP8在推理效率上的突破 【免费下载链接】LongCat-Flash-Chat-FP8 项目地址: https://ai.gitcode.com/meituan-longcat/LongCat-Flash-Chat-FP8 LongCat-Flash-Chat-FP8是美团推出的新一代AI对话模型,通过创新的…

作者头像 李华