HarmonyOS 工程模块化问题

关于项目的模块化有几个问题想咨询一下

1、假设我的项目只需要一个entry模块,这个entry中是否只有一个UIAbility组件就够了,多UIAbility组件是否只在任务视图中看到多个任务,或者需要同时开启多个窗口才需要使用?

2、对于各个业务模块、底层功能模块,在HAR和HSP的选择上有什么建议吗,二者的加载机制有什么区别呢?对启动耗时和包体大小影响的差异是什么样呢?

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

如果该entry模块没有在任务视图中看到多个任务或者同时开启多个窗口的需求,一个UIAbility就可以满足需求了。

参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/uiability-overview-V5

HAR是静态共享包,编译态复用。

  • 支持应用内共享,也可以发布后供其他应用使用。

  • 多包(HAP/HSP)引用相同的HAR时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。

  • 不同HAP包引入同一个HAR包,无法实现数据的共享。

HSP是动态共享包,运行时复用。

  • 当前仅支持应用内共享。

  • 当多包(HAP/HSP)同时引用同一个共享包时,采用HSP替代HAR,可以避免HAR造成的多包间代码和资源的重复拷贝,从而减小应用包大小。

  • 同一进程,运行时可共享代码,相比har包能有效减少内存消耗,同时能实现数据共享(比如常用的单例模式)

使用建议如下:

  1. 二方库, 三方库场景:开发者开发的模块,需要暴露给其他应用使用 (公司内或者公司外) . 只能使用har。

  2. 单HAP场景:如果没有按需加载诉求,推荐使用单hap + har。如果有按需加载诉求,推荐使用hsp。hap (独有har) + 按需加载的hsp (独有的har) ==》公共hsp (封装公共的han)。

  3. 多HAP场景: 如果多hap没有共用的资源,推荐使用多hap + har。如果多hap有共用的资源,推荐使用hsp封装。hap1 (独有的har) + hap2 (独有的har) ==》公共hsp (封装公共的har)

参考地址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-package-overview-V5

分享
微博
QQ
微信
回复
6天前
相关问题
Dialog弹窗与模块化问题
377浏览 • 1回复 待解决
HarmonyOS 有没有模块化开发模板
513浏览 • 1回复 待解决
如何在ArkTS中进行模块化开发?
442浏览 • 1回复 待解决
HarmonyOS 工程能否依赖外部模块源码
528浏览 • 1回复 待解决