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

大家好,我是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
相关推荐
Magic-ZYJ11 小时前
HarmonyOS Release 构建安全:ArkGuard 混淆、签名配置与秘密管理
安全·华为·harmonyos·移动应用开发·心晴手记
见山是山-见水是水13 小时前
拆解HarmonyOS网络请求适配:原生鸿蒙页面的实现路径与调试方法
华为·harmonyos
m0_7496902313 小时前
【寻迹校园 HarmonyOS NEXT 实战 36】深色模式不是反色:用语义 Token 管理品牌色与状态色
harmonyos·arkts·深色模式·ui设计·主题设计
lqj_本人14 小时前
鸿蒙跨端实战_QT后台切换导致OpenGLES上下文丢失:黑屏自救指南
qt·华为·harmonyos
OH_TPC15 小时前
HarmonyOS APP开发---“数据眼“健康追踪App,需要用到这个库
华为·harmonyos·鸿蒙
lilian23316 小时前
Harmony os 技术实战|拼豆制图49:五组分类视觉规则如何收口成一张配置表
华为·harmonyos
2501_9197490317 小时前
华为鸿蒙免费决策APP—小羊挠头
华为·harmonyos·鸿蒙
m0_7496902317 小时前
【寻迹校园 HarmonyOS NEXT 实战 37】一套 ArkUI 适配四档宽度:sm、md、lg、xl 响应式 Shell 实战
华为·harmonyos·arkui·navigation·响应式布局·多设备适配
RisunJan19 小时前
HarmonyOS 架构精读:从系统分层到应用模型
华为·架构·harmonyos
见山是山-见水是水19 小时前
从需求到页面:鸿蒙原生 Ability 与 ArkTS 交互的 ArkTS 原生实现
华为·harmonyos