鸿蒙HarmonyOS知识开发指南:模块化设计规范

在HarmonyOS应用开发中,模块化不仅是一个设计原则,更是一种开发实践。它旨在将应用程序拆分为多个功能模块,每个功能模块负责特定的功能或特性。功能模块可以独立开发、编译和部署,也可以在不同的设备上灵活组合和调用。

应用程序包结构概念

在进行模块化设计时,需要考虑HarmonyOS的应用包结构选型,HarmonyOS的应用包结构是为了定义应用的组织方式,通过开发态、编译态、发布态阶段应用程序包的形态,了解到不同包类型对应的使用场景以及使用规则。

Ability应用组件设计

HarmonyOS应用的业务逻辑需要通过Ability组件承载,根据业务设备以及业务诉求不同,需要考虑Ability组件的选择以及设计。在多设备的背景下,应用的形态不一定是传统移动设备上的单任务单窗口形式,在一些场景下,多任务多窗口的形态可以让用户获得更好的用户体验,提升使用效率。

例如在手机设备上:

  • 笔记应用,可让用户将信息从笔记的一页复制到另一页。
  • 文档编辑应用,可让用户同时打开编辑多个文档,可让用户将内容从一个文档复制或移动到另一个文档。
  • 导航/打车应用,可以让导航后台运行,回到主页查找新的位置信息或其它信息。
  • 购物类临时客服界面,可让用户通过任务管理快速从商品浏览页切换回到客服会话界面,避免用户一层层打开查找。
  • 应用支付/登录页面,可以切换至应用内其它页面查找并复制相关信息。

在大屏设备上,应用内的多个任务可以以多窗口的形式存在,用户可以并行操作应用的不同功能。

  • 视频播放器应用,可让用户在观看播放内容的同时浏览其他可能感兴趣的视频列表。
  • 电子邮件应用,可让用户在撰写电子邮件的同时查看收到的邮件列表。
  • 地址簿应用,可让用户并排比较多个人员的联系信息。
  • 阅读应用,可让用户在查阅所有标题概要后,打开多篇文章供稍后阅读。

对于这种类似独立应用一样的任务,每个任务对应一个UIAbility组件实例,并且每个任务可以单独显示一个窗口,对用户而言,可以在同个应用不同任务间切换,就像是单独的应用一样,并且在大屏设备上可以独立地移动、调整大小、显示和隐藏应用窗口。所以在进行功能设计时,需要对应用本身是否支持多任务多窗口,结合起来考虑Ability组件的设计,这影响整体工程模块化的结构。

  • 对于单Ability的情况下,可以对应单窗口类型应用,或者通过多实例/指定实例实现的多任务类应用,如上述例子中的笔记、文档编辑应用,这类情况下,建议采用单HAP来承载UIAbility。
  • 对于多Ability有两种情况:
    • 对于多窗口类型的应用,这类应用每个窗口对应不同的功能,通过不同的UIAbility承载,如上述例子中导航/打车应用,导航功能界面和主页属于不同的功能,并且要能够作为两个任务呈现给用户,可以将该模块作为Feature类型的HAP承载相应的UIAbility组件。
    • 对于应用的一些拓展功能如卡片、分享业务,其不会作为单独的任务和窗口形态运行,但是由于其功能相对来说独立,并且是由系统提供的独立ExtensionAbility来承载,从更好拆分业务来考虑,也建议通过Feature类型的HAP承载单独的ExtensionAbility组件。

应用模块化选型

应用架构是给应用业务服务的,是从技术的角度思考业务如何实现的;而工程模块化模型,是基于技术架构对代码工程所做的模块化技术选型,需要考虑技术到代码工程上如何落地,只有代码工程模型的技术选型合理了,才能在包体积、性能、产品部署等取得一个最优的综合表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值