《探索 HarmonyOS 鸿蒙Next(5.0) 开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》

发布于 1周前 作者 itying888 来自 鸿蒙OS

《探索 HarmonyOS 鸿蒙Next(5.0) 开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》 从无到有,打造模块化项目。构建一个开箱即用的项目,从 Git 上拉取下来即可直接进行开发,其中涵盖路由通信、上下拉刷新、网络请求、事件通知、顶部tab封装等功能,项目里调用 API 为鸿洋大佬的 wanAndroidAPI。后期将持续完善,若有不足之处,诚邀各位大佬多提宝贵建议,共同进步成长。

为啥要模块化

在一些公司,员工可能接手几年前甚至更久远的项目,其架构常是所有代码在一个包中,导致代码混乱,降低可读性和可维护性。维护或更新时,开发人员需在混乱代码中艰难寻找相关部分,耗时耗力且易引入新错误,代码复用性也不高。而模块化架构能有效解决这些问题,提高开发效率和项目质量。

模块化带来的好处

将应用分解为多个功能模块,其中每个模块负责执行特定的功能。通过模块化设计提高了代码的可理解性和可复用性,使应用的扩展和维护变得更为简便,同时降低了系统各部分之间的耦合度。

详细请看官方应用架构概述

  • 分层架构设计
  • 模块化设计

产品定制层

主要针对跨多种设备,目前以设备类型–手机phone为主,后续再迭代其它多种设备。

产品定制层

基础特性层

主要针对功能模块进行划分,设计为HAR模块,编译后对应HAR包。比如各个APP底部导航栏有几个Tab。

公共能力层

主要针对公共能力层的各子目录将被编译成HAR包,而他们只能被产品定制层和基础特性层所依赖,不允许存在反向依赖。比如 网络请求模块、公共UI模块、工具模块。

应用模块化选型

  • 一般大部分项目可以直接采用代码架构 单HAP+可选(多HSP)+可选(多HAR)
  • HSP如果是按需加载的那种,比如像支付宝首页(单车、菜鸟等)推荐使用,否则还是推荐HAR。官方也说了,若HSP包和HAR包均能满足业务需求,建议将HSP包改成HAR包。
  • 过多的HSP可能会影响安装效率和App启动性能,那么代码架构采用 单HAP+可选(多HAR)。

应用模块化选型

应用模块化选型

大概了解后,让我们撸起袖子加油干。

  • 本篇先搭建 产品定制层
  • IDE版本为 5.0.3.906,没有更新的,去官方更新
  • IDE版本
  1. 创建一个项目

创建一个项目

  1. 傻瓜式创建,点 Next

傻瓜式创建

  1. 这是创建好后的工程目录,发现与我们想要的效果不一样,我们接着改造.

    • 选中项目,右键 New,选 Directory,新建一个名为 products 的目录
    • 选中 entry 拖入到 products 目录里

新建目录

拖入目录

拖入目录

拖入目录

  1. 产品定制层 这第一步已经完成了。后续如果增加新的设备,比如平板、手表、车机都可以。

  2. 项目新增了 README.md 文件,方便后续的项目介绍与说明

README.md

有兴趣的同学可以点击查看源码


更多关于《探索 HarmonyOS 鸿蒙Next(5.0) 开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

学习了

更多关于《探索 HarmonyOS 鸿蒙Next(5.0) 开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题《探索 HarmonyOS 鸿蒙Next(5.0) 开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》,以下是专业且简洁的回答:

在HarmonyOS鸿蒙Next(5.0)中,构建模块化项目架构是提升开发效率、增强代码可维护性和复用性的重要手段。模块化基础主要涉及以下几个方面:

  1. 模块定义:在鸿蒙系统中,模块是通过特定的配置文件(如module.json)来定义的,该文件描述了模块的基本信息、依赖关系等。

  2. 模块划分:根据项目需求,将功能相对独立的代码划分为不同的模块。每个模块应职责清晰,便于独立开发和测试。

  3. 模块间通信:鸿蒙提供了多种机制来实现模块间的通信,如远程过程调用(RPC)、事件总线等。开发者需根据具体场景选择合适的通信方式。

  4. 模块依赖管理:通过配置文件或构建工具管理模块间的依赖关系,确保在构建和运行时能够正确加载和初始化依赖模块。

  5. 模块化构建:鸿蒙的构建系统支持模块化构建,能够自动处理模块间的依赖关系,生成可独立部署的模块包。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部