本篇将手把手教你如何搭建 HarmonyOS 开发环境,创建 ImportantDays 项目工程,并完成基础配置。
一、开发工具准备
1.1 DevEco Studio
HarmonyOS 应用开发使用华为官方 IDEDevEco Studio,它是基于 IntelliJ IDEA 社区版定制的集成开发环境。
下载地址:华为开发者官网 https://developer.huawei.com/consumer/cn/deveco-studio/
系统要求:
- Windows 10/11 64 位
- macOS 11 或更高版本
- 内存:8GB 以上(推荐 16GB)
- 磁盘空间:10GB 以上
1.2 SDK 安装
安装 DevEco Studio 后,首次启动会引导安装 HarmonyOS SDK。本项目使用的是:
- HarmonyOS SDK 版本:5.0.3(15)
- ArkTS 版本:对应 SDK 5.0.3
在 DevEco Studio 中通过File > Settings > SDK确认 SDK 版本。
1.3 模拟器配置
为了测试应用,需要配置 HarmonyOS 模拟器:
- 打开 DevEco Studio
- 点击
Tools > Device Manager - 创建一个新的模拟器(Phone 类型)
- 选择合适的系统镜像
也可以使用真机调试,需要在开发者选项中开启 USB 调试。
二、创建项目
2.1 新建工程
- 打开 DevEco Studio,点击
Create Project - 选择
Empty Ability模板 - 填写项目信息:
- Project name:ImportantDays
- Bundle name:com.importantdays.app
- Save location:选择你的工作目录
- Compile SDK:5.0.3(15)
- Compatible SDK:5.0.3(15)
- Module language:ArkTS
- Device type:Phone
- 点击
Finish创建工程
2.2 项目初始结构
创建完成后,DevEco Studio 会自动生成以下文件结构:
ImportantDays/ ├── AppScope/ │ ├── app.json5 # 应用配置 │ └── resources/ │ └── base/ │ └── element/ │ └── string.json # 应用名称等字符串 ├── entry/ │ └── src/main/ │ ├── ets/ │ │ ├── entryability/ │ │ │ └── EntryAbility.ets # 入口 Ability │ │ └── pages/ │ │ └── Index.ets # 默认首页 │ ├── resources/ │ │ └── base/ │ │ ├── element/ │ │ │ ├── color.json │ │ │ ├── float.json │ │ │ └── string.json │ │ └── media/ # 图标资源 │ └── module.json5 # 模块配置 ├── build-profile.json5 ├── oh-package.json5 └── hvigorfile.ts2.3 修改应用配置
打开AppScope/app.json5,修改为:
{ "app": { "bundleName": "com.importantdays.app", "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:layered_image", "label": "$string:app_name" } }打开AppScope/resources/base/element/string.json,添加应用名称:
{ "string": [ { "name": "app_name", "value": "重要日" } ] }三、引入第三方依赖
3.1 添加 dayjs
本项目使用 dayjs 进行日期处理。打开oh-package.json5:
{ "modelVersion": "5.0.3", "description": "ImportantDays - Track your important days with countdown/count-up", "dependencies": { "dayjs": "^1.11.13" }, "devDependencies": { "@ohos/hypium": "1.0.21" } }3.2 同步依赖
在 DevEco Studio 中,修改oh-package.json5后会自动提示同步。也可以手动触发:
- 点击工具栏的
Sync Now按钮 - 或者执行
File > Sync and Refresh Project
等待 hvigor 构建工具自动下载 dayjs 到oh_modules/目录。
3.3 验证依赖安装
同步完成后,项目目录下会出现oh_modules/dayjs/文件夹,确认安装成功。
四、创建项目目录结构
按照 MVVM 架构,我们需要创建以下目录:
entry/src/main/ets/ ├── common/ # 常量 ├── components/ # UI组件 ├── model/ # 数据模型 ├── types/ # 类型定义 ├── utils/ # 工具类 └── viewmodel/ # ViewModel在 DevEco Studio 中,右键ets目录,选择New > Directory,依次创建上述目录。
五、配置 module.json5
module.json5是模块的核心配置文件,本项目配置如下:
{ "module": { "name": "entry", "type": "entry", "description": "$string:module_desc", "mainElement": "EntryAbility", "deviceTypes": ["phone"], "deliveryWithInstall": true, "installationFree": false, "pages": "$profile:main_pages", "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:layered_image", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:foreground", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": ["entity.system.home"], "actions": ["action.system.home"] } ] } ], "extensionAbilities": [ { "name": "EntryBackupAbility", "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", "type": "backup", "exported": false, "metadata": [ { "name": "ohos.extension.backup", "resource": "$profile:backup_config" } ] } ] } }关键配置说明:
mainElement:指定应用的入口 Ability 为EntryAbilitypages:引用main_pagesprofile 文件,定义页面路由skills:声明应用可以响应系统桌面点击启动extensionAbilities:配置备份 Ability
六、配置页面路由
在entry/src/main/resources/base/profile/目录下创建main_pages.json:
{"src":["pages/MainEntry","pages/AddEditDayPage","pages/DayDetailPage"]}这里注册了三个页面:
MainEntry:主入口页面(包含 Tab 导航)AddEditDayPage:添加/编辑页面(使用 router 跳转)DayDetailPage:详情页面(使用 router 跳转)
七、构建验证
完成以上配置后,点击 DevEco Studio 工具栏的Build > Build H(s)进行编译。如果编译成功,说明项目框架搭建完成。
常见编译问题:
- SDK 版本不匹配:检查
build-profile.json5中的 SDK 版本 - 依赖同步失败:检查网络连接,重新同步 oh-package.json5
- 页面路由找不到:确保
main_pages.json中注册了所有页面
八、小结
本篇详细介绍了 HarmonyOS 开发环境的搭建过程,包括 DevEco Studio 安装、项目创建、依赖管理、目录结构规划和核心配置文件。完成这些步骤后,项目的基本框架就已经搭建好了。