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

大家好,我是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
相关推荐
nashane4 小时前
HarmonyOS Wi-Fi连接用户操作监听全解析:从系统弹框到Promise回调
华为·harmonyos·harmonyos 5
Lanren的编程日记7 小时前
Flutter 鸿蒙应用数据版本管理实战:版本记录+版本回退+版本对比,实现全链路数据版本控制
flutter·华为·harmonyos
木斯佳9 小时前
HarmonyOS 本地存储实战:记账本案例改造实现日历联动
华为·harmonyos
李游Leo10 小时前
别让一张 12MB 的照片拖垮页面:ImageSource / PixelMap / ImagePacker 的工程化处理链路
harmonyos
nashane10 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
@不误正业10 小时前
鸿蒙小艺智能体开放平台实战-接入系统级AI-Agent能力
人工智能·华为·harmonyos
IntMainJhy13 小时前
「Flutter三方库sqflite的鸿蒙化适配与实战指南:从入门到踩坑的本地数据库开发全记录」
数据库·flutter·华为·信息可视化·数据库开发·harmonyos
前端技术16 小时前
HarmonyOS开发:鸿蒙应用开发发展史
华为·harmonyos
Hello__777717 小时前
开源鸿蒙 Flutter 实战|自定义头像组件全流程实现
flutter·华为·harmonyos
IntMainJhy18 小时前
【flutter for open harmony】第三方库Flutter成就解锁彩纸动画的鸿蒙化适配与实战指南
harmonyos