HarmonyOS应用的分层架构主要包括三个层次:产品定制层、基础特性层和公共能力层,为开发者构建了一个清晰、高效、可扩展的设计架构。
产品定制层
官方文档介绍:
- 产品定制层专注于满足不同设备或使用场景(如应用)的个性化需求,包括UI设计、资源与配置,以及针对特定场景的交互逻辑和功能特性。
- 产品定制层的功能模块独立运行,同时以来基础特性层和公共能力层来实现具体功能。
- 作为应用的入口,产品定制层是用户直接交互的界面。为满足特定产品需求,产品定制层可灵活地调整和扩展,从而满足各种使用场景。
product:应用的入口,满足同设备的适配,例如:phone模块、watch模块,建hap包
基础特性层
官方文档介绍:
- 基础特性层位于公共能力层之上,用于存放基础特性集合,例如相对独立的功能UI和业务逻辑实现。该层的每个功能功能模块都具有高内聚、低耦合、可定制的特点,以支持产品的灵活部署。
- 基础特性层为上层在产品定制稳健且丰富的基础功能支持,包括UI组件、基础服务等。同时依赖于下层的公共能力层为其提供通用功能和服务。
- 为了增强系统的可扩展性和维护行,基础特性层将功能进行模块化处理。例如,一个应用的底层导航栏中的每个选项都可能是一个独立的业务模块
features:基础业务,根据业务功能创建,比如:项目的功能模块,新车模块/我的模块/消息模块/二手车模块,推荐hsp包。
公共能力层
官方文档介绍:
- 公共能力层用于存放公共基础能力,集中了例如公共UI组件、数据管理、外部交互以及工具库等的共享功能,应用可以共享和调用这些公共能力。
common:作为项目底层支撑,存放项目工具类、公共组件,网络请求底层封装、常量字符串等等。可以建har包或者hsp包,推荐hsp包。
分层设计的好处
- 为华为的手机、2in1等1+8全场景设备提供支持,实现了“一次开发,多端部署”的开发理念
- 产品定制层、基础特性层和公共能力层,为开发者构建了一个清晰、高效、可扩展的设计架构
模块资源如何共享?
-
定义共享资源(arkts/arkui)
-
在模块Index文件中导出
/** * 模型 */ export * from './src/main/ets/models' /** * 工具 */ export * from './src/main/ets/utils'
-
在使用模块oh-package.json5文件中引入依赖并同步
"dependencies": { "@hm/basic": "file:../common/basic" // 配置har包依赖 }
三层架构项目结构演示
步骤:
-
新建项目,选择Empty Ability,然后 Next
-
填写项目基本信息
-
新建common、features、 product 目录
-
在 common 下新建一个叫 basic 公共模块
Shared Library
模块 -
在 features 下新建项目需要的业务模块, 如home、message、mine业务模块, 新建
Shared Library
包 -
把默认 entry 包改名为 phone 放到product 目录下
-
运行项目(修改运行调试配置)