大家好,我是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