HarmonyOS鸿蒙Next中一次开发,多端部署模块中各层之间依赖是怎么配置的?
HarmonyOS鸿蒙Next中一次开发,多端部署模块中各层之间依赖是怎么配置的? 按照一次开发,多端部署模块中的分层架构设计,各层模块之间依赖是怎么配置的?需要配置什么?需要提前编译依赖吗?只在dependencies中配置无法正常导入。
在HarmonyOS的“一次开发,多端部署”(简称“一多”)模式中,各层之间的依赖配置如下:
-
公共能力层公共能力层用于存放公共基础能力,如公共UI组件、数据管理、外部交互以及工具库等。该层的各子目录将被编译成HAR包,并只允许被产品定制层和基础特性层所依赖,不允许存在反向依赖。
-
基础特性层基础特性层位于公共能力层之上,用于存放基础特性集合,例如相对独立的功能UI和业务逻辑实现。该层的每个功能模块都具有高内聚、低耦合、可定制的特点,并依赖公共能力层为其提供通用功能和服务。基础特性层中的功能模块根据部署需求被分为两类:
- Feature类型的HAP:用于实现应用的特性功能,一个应用程序包可以包含一个或多个Feature类型的HAP。这些HAP通常用于实现应用的特性功能,可以独立编译和部署。
- HAR模块:用于实现不需要通过Ability承载的功能。根据是否需要实现按需加载,可以选择设计为HAR模块或者HSP模块。
-
产品定制层产品定制层专注于满足不同设备或使用场景的个性化需求,包括UI设计、资源和配置,以及针对特定场景的交互逻辑和功能特性。该层的各个子目录会被编译成一个Entry类型的HAP,作为应用的主入口。产品定制层被划分为多个功能模块,每个模块都针对特定的设备或使用场景设计,并根据具体的产品需求进行功能及交互的定制开发。
-
部署模型应用程序(.app文件)在流水线或应用市场上被解包为n * Entry类型的HAP + n * Feature类型的HAP。根据设备类型和使用场景将应用部署到不同类型的设备上,实现多端的统一用户体验。每个Entry类型的HAP代表了应用的入口点,而Feature类型的HAP则包含了应用的特定功能模块。允许应用能够以模块化的方式适配和部署,从而满足不同设备和场景的需求。
总结
- 公共能力层:依赖反向的关系,只依赖产品定制层和基础特性层。
- 基础特性层:既依赖公共能力层,也依赖产品定制层。
- 产品定制层:各个子目录编译成一个Entry类型的HAP,作为应用的主入口。
- 部署模型:通过Entry类型的HAP和Feature类型的HAP的组合,实现应用在不同设备上的部署。
一次开发,多端部署:
/application
├── common # 可选。公共能力层, 编译为HAR包或HSP包
├── features # 可选。基础特性层
│ ├── feature1 # 子功能1, 编译为HAR包或HSP包或Feature类型的HAP包
│ ├── feature2 # 子功能2, 编译为HAR包或HSP包或Feature类型的HAP包
│ └── ...
└── products # 必选。产品定制层
├── wearable # 智能穿戴泛类目录, 编译为Entry类型的HAP包
├── default # 默认设备泛类目录, 编译为Entry类型的HAP包
└── ...
更多关于HarmonyOS鸿蒙Next中一次开发,多端部署模块中各层之间依赖是怎么配置的?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,"一次开发,多端部署"模块的依赖配置主要涉及以下几个方面:
模块层级
鸿蒙Next的架构分为应用层、框架层、系统服务层和内核层。各层之间通过API或服务接口进行交互。
依赖声明
在模块的build.gradle
文件中,使用dependencies
块声明所需的其他模块或库。例如:
dependencies {
implementation project(':moduleA')
implementation 'com.example:libraryB:1.0.0'
}
HAR(HarmonyOS Archive)
HAR是鸿蒙中的一种模块打包格式,用于在不同设备上部署。通过HAR,可以声明对其他模块的依赖。
配置文件
在config.json
中配置模块的依赖关系,确保模块在不同设备上正确加载和运行。
动态加载
鸿蒙支持动态加载模块,通过DynamicFeature
机制,可以在运行时根据需要加载特定模块。
依赖管理工具
使用鸿蒙提供的依赖管理工具,如ohpm
(OpenHarmony Package Manager),来管理和安装依赖。
通过这些配置,鸿蒙Next实现了模块间的依赖管理,确保了多端部署的一致性和高效性。
在HarmonyOS鸿蒙Next中,一次开发、多端部署的模块依赖配置通过build-profile.json5
文件进行管理。在module
层级中,使用dependencies
字段声明依赖。例如:
{
"module": {
"dependencies": [
{
"bundleName": "com.example.lib",
"version": "1.0.0"
}
]
}
}
此外,oh-package.json5
文件用于管理JS/TS模块的依赖,类似Node.js的package.json
。通过这种方式,开发者可以灵活配置模块间的依赖关系,实现跨端部署。