HarmonyOS 鸿蒙Next多模块开发,模块类型怎么选

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next多模块开发,模块类型怎么选

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-package-overview-V5
按照上面文档的描述,我们项目选择了一个entry模块,多个shared模块的结构,以为可以尽可能减小包大小
实际开发时发现,每新增一个模块,ide的可选运行模块都会新增这个模块,变成了图2这样,其中只有phone模块是entry模块,其他都是shared模块,感觉不对劲
但如果选har模块,由于模块间也有相互依赖,又怕被依赖的模块在每个依赖的模块的产物里都被包含一份,导致包体积特别大

所以想请教下
- 单个app中,分为lib层和biz层的话,biz层har和shared模块应该怎么选
- 手机、平板的UI界面差异较大,逻辑也会有所差异,应该使用一个app好还是2个app好

3 回复

1.1、对于不需要按需加载且仅有一个Entry类型的HAP的App来讲,可以直接全部采用HAR进行开发设计。这里说的仅有一个HAP指的是一种设备类型仅有一个HAP,而不是.app文件包里面仅有一个HAP。因为.app里面可以包含其他设备的HAP包,如手表、大屏,进行多设备分发。

1.2、如果要实现按需加载功能,那么对应的组件可以采用HSP作为按需加载组件模块。

2、手机平板官方定位成了同一个泛类,推荐编译成一个hap包,但是如果UI、逻辑差异都很大,结合业务实际场景,选择编译成不同的hap包。

我现在的项目是按业务层、界面层、入口区分,界面还能搞细分,就算来五折叠都好改

在HarmonyOS鸿蒙Next进行多模块开发时,模块类型的选择至关重要。HarmonyOS中的模块主要分为“Ability”和“Library”两种类型,编译后分别生成HAP包和HAR包(或HSP包,针对动态共享)。

  1. Entry类型的HAP:作为应用的主模块,每个应用在同一设备类型上只支持一个Entry类型的HAP,它通常包含应用的入口界面、图标和主功能。
  2. Feature类型的HAP:用于实现应用的动态特性功能,一个应用可以包含一个或多个Feature类型的HAP。
  3. HAR(Harmony Archive):静态共享包,用于多个模块或工程间共享代码、资源等,可以发布到OHPM私仓或中心仓供其他应用使用。
  4. HSP(Harmony Shared Package):动态共享包,同样用于代码和资源的共享,但HSP不支持独立发布,需跟随宿主应用一起发布,且在运行时按需加载。

选择时,若功能模块需在多个应用间共享且不需按需加载,可选HAR;若需按需加载,则选HSP。对于应用的主模块和特性模块,则分别选择Entry和Feature类型的HAP。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部