鸿蒙 架构模块化开发

171 阅读2分钟

关于创建项目此处不再介绍,配置项目界面选一下

image.png 至于为啥没选择FA?只看见鸿蒙现在主推Stage模型。FA也不太了解。

项目整体结构介绍

image.png

安卓和鸿蒙项目结构对比

image.png

什么是应用程序包

用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。一个应用所对应的软件包文件,称为“应用程序包”。

平台安装包
安卓aab或apk
iosipa
鸿蒙app
windowsexe

HarmonyOS提供了应用程序包开发、安装、查询、更新、卸载的管理机制

应用app包内HAP的类型

应用以APP Pack形式发布,其包含一个或多个HAP包。HAP是应用安装的基本单位,HAP可以分为Entry和Feature两种类型:

  • Entry类型的HAP:应用的主模块。在同一个应用中,同一设备类型只支持一个Entry类型的HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。
  • Feature类型的HAP:应用的动态特性模块。Feature类型的HAP通常用于实现应用的特性功能,一个应用程序包可以包含一个或多个Feature类型的HAP,也可以不包含。 image.png

Module分为“Ability”和“Library”两种类型:

  • “Ability”类型的Module编译后生成HAP包。
  • “Library”类型的Module编译后生成HAR包或HSP包

选择合适的包类型

HAP、HAR、HSP三者的功能和使用场景总结对比如下:

image.png

鸿蒙项目至少包括一个Entry类型的模块

image.png

创建一个功能文件夹feature 创建feature类型的HAP module

image.png

创建一个common目录里面放置通用模块

创建HAR库

如果希望放到仓库可以提供给其他应用使用需要创建类型为static library 打包之后生成的是Har 包含在依赖library的HAP和HSP中 包体积会变大。

image.png

创建HSP库

如果对包体积大小比较关心的话可以创建 shared library 编译之后生成的是HSP 工程内只有一份 不会重复加载,但是要考虑动态加载的问题

image.png

截屏2024-06-28 18.38.28.png