鸿蒙应用三层架构详解

46 阅读3分钟

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包依赖
     }
    

三层架构项目结构演示

步骤:

  1. 新建项目,选择Empty Ability,然后 Next

    image.png

  2. 填写项目基本信息

    image.png

  3. 新建common、features、 product 目录

  4. 在 common 下新建一个叫 basic 公共模块 Shared Library模块

  5. 在 features 下新建项目需要的业务模块, 如home、message、mine业务模块, 新建Shared Library

  6. 把默认 entry 包改名为 phone 放到product 目录下

  7. 运行项目(修改运行调试配置)

    image.png