Harmony三层架构
层次说明
层次 | 说明 | 特点 |
---|---|---|
产品层(products) | HAP,即应用整体 | 可安装和运行在不同设备上 |
功能层(features) | HSP,动态共享,应用的功能 | 1.不能独立运行,需要依赖于产品 Hap 包 2.可有page页面 |
资源(common) | HAR,静态共享库,功能依赖的资源 | 1.不能独立运行 2.没有page页面 |
HSP和HAR
特点
- HSP不支持在设备上单独安装/运行,需要与依赖该HSP的HAP一起安装/运行。HSP的版本号必须与HAP版本号一致。
- HSP不支持在配置文件中声明UIAbility组件与ExtensionAbility组件。
- HSP可以依赖其他HAR或HSP,但不支持循环依赖,也不支持依赖传递。
两者异同
相同点:
- 模块间资源共享
- 不支持在设备上单独安装/运行
- 不支持在配置文件中声明UIAbility组件与文档中心组件
- 不支持循环依赖,也不支持依赖传递
不同点:
- har 发布二方或三方仓使用(hsp 不可以)2.har 中不支持在配置文件中声明pages页面3. hsp 中支持在配置文件中声明pages页面
- hsR多模块依赖只会打包一份
- hsp 支持按需加载
使用方法
- 根目录下创建products、features、commons,分别对应三层结构
- 三层内部组成如下:
- products:创建Module->entry ability或者feature ability。即Phone、Tablet、Car等具体设备
- features:创建Module->Shared Library。即HSP
- commons:创建Module->Static Library。即HAR,常命名为base
- commons
- 在common/basic/src下新建utils(存放工具)、constants(常量,格式为“AAA=aaa_aaa”)、api、components、models文件夹
- 上一条每一个文件夹下新建index.ets,并写入" export * from ‘./xxx’ "。xxx为同文件夹下的文件
- 在commons的index.ets里同样写入" export * from ‘…/xxx’ "。
- features
配置依赖。
//features/oh-package.json5 |
- products
配置依赖。
//products/Phone或其他/oh-package.json5 |
- 构建
- Run Configurations中选择运行哪一个(Phone还是其他)
- 如果出现依赖未安装,点击Run->Edit Configurations->Deploy Multi Hap标签页,勾选要安装的依赖包
- 版本管理
- VCS->Enable Vesion Control Integrations
- 全选左侧文件,并右键后选择Git->add
- 点击上方栏Git->commit
- 点击上方栏Git->Manage Remote,配置远程仓库(注意远程仓库得是空仓,否则push不上去)
- 点击上方栏Git->push,输入账户和密码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 kaiyu's blog!
评论