如何从零到一开始搭建鸿蒙项目

大家好,我是simple。我的理想是利用科技手段来解决生活中遇到的各种问题

在之前的时间里,我自己也经历了好几个鸿蒙项目,也搭建了几个鸿蒙项目。所以我接下来说的项目搭建是按照鸿蒙的推荐以及个人习惯相结合搭建出来的项目,如果有什么不足的地方大家都可以指正。

0. 下载ecodev编辑器

1. 创建项目

创建一个空项目

填入新项目信息

tip: 设备类型为上线应用的时候,将会发布的平台。

2. 三层架构搭建

首先我们需要理解什么是三层架构,个人简单见解是:第一层是入口层,这里是不同设备类型(如手机、手表、折叠屏等)的入口,第二层是基础特性层,基础特性层是各种小组件、页面,供入口引用,第三层是公共能力层,里面放置一些工具库、公共配置,供入口层或特性层引用。

三层工程结构如下:

  • commons(公共能力层):用于存放公共基础能力集合(如工具库、公共配置等)。commons层可编译成一个或多个HAR包或HSP包,只可以被products和features依赖,不可以反向依赖。
  • features(基础特性层):用于存放基础特性集合(如应用中相对独立的各个功能的UI及业务逻辑实现等)。各个feature高内聚、低耦合、可定制,供产品灵活部署。不需要单独部署的feature通常编译为HAR包或HSP包,供products或其它feature使用。需要单独部署的feature通常编译为Feature类型的HAP包,和products下Entry类型的HAP包进行组合部署。features层可以横向调用及依赖common层,同时可以被products层不同设备形态的HAP所依赖,但是不能反向依赖products层。
  • products(产品定制层):用于针对不同设备形态进行功能和特性集成。products层各个子目录各自编译为一个Entry类型的HAP包,作为应用主入口。products层不可以横向调用。

3. 创建公共层

在项目根目录上创建文件夹为commons,用于放置公共能力层模块,可以选择har包或者是hsp包,在这里我们选hsp包。

这里可以给模块命名,并且可以选择可以使用该模块的设备类型。

4. 创建特性层

与第三步相同,在项目根目录上创建文件夹为features,用于放置基础特性层模块,可以选择har包或者是hsp包,在这里我们依旧选hsp包。

5. 创建入口层

在项目根目录上创建文件夹为products,用于放置产品模块,我们可以entry模块改名为phone(改名时切记应该是给模块改名,而不是单纯给文件夹改名,如下图),然后将其拖动到products里面。

此时如果还需要创建别的设备类型模块,如下。

这样三层基本已经创建完毕了。

6. 架构关联

当我们需要在phone里面使用basic的工具,我们此时打开phone/oh-package.json5文件,添加以下内容,然后点击sync now同步即可。需要使用到的包需要引入到basic/Index.ets文件下,或者从basic/xx/xx.ets文件导出。

json 复制代码
"dependencies": {
  "basic": "file:../../commons/basic",
}

7. 小提示

我觉得三层架构是针对比较大型的项目搭建,正常的项目可以使用一层架构或者两层架构就可以满足了。鸿蒙目前正在迅速迭代中,开发一个项目的时候最好不要频繁更换ide版本,不然可能需要会有各种小彩蛋。

如果有需要项目的人可以看一下git仓库。

bash 复制代码
git clone https://gitee.com/simple-lau/harmony_template.git
相关推荐
坚果派·白晓明3 小时前
【鸿蒙PC】SDL3 移植:AtomCode Skills 4 步速通多媒体库适配
c++·华为·ai编程·harmonyos·atomcode·c/c++三方库
风满城334 小时前
鸿蒙原生应用实战(三):设置与统计页面开发 — 数据驱动的功能模块
harmonyos
xcLeigh4 小时前
鸿蒙平台 KeePass 密码管理器适配实战:从 Windows 到 鸿蒙PC 的 Electron 迁移指南
windows·electron·web·harmonyos·加密算法·keepass
金启攻5 小时前
鸿蒙原生应用开发实战(一):从零搭建“钓点日记“——项目初始化与环境配置全指南
harmonyos
风华圆舞5 小时前
鸿蒙语音识别为什么要区分 startListening 和 stopListening
华为·语音识别·harmonyos
YM52e5 小时前
鸿蒙PC ArkTS 声明合并问题深度解析与最佳实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
互联网散修5 小时前
鸿蒙实战:网络状态监听与诊断工具
网络·华为·harmonyos·网络状态监听
祭曦念6 小时前
从零开始构建鸿蒙纪念日提醒 App:ArkTS + API 24 实战
华为·harmonyos
浮芷.7 小时前
鸿蒙HarmonyOS 6.1新特性之沉浸式光感效果实现过程中的各类问题解决-鸿蒙PC版(一)
华为·harmonyos·鸿蒙·鸿蒙系统
轻口味7 小时前
轻规划鸿蒙开发实战7:接管 Ability Kit 跨设备流转,EntryAbility 全链路 onContinue 数据打包与无缝接
华为·harmonyos·鸿蒙