最近终于入手了一台支持 HarmonyOS 6 的设备,打算认真体验一下鸿蒙开发的全流程。
虽然之前对 HMOS 有所耳闻,但真正上手还是遇到了一些意料之外的坑。
这篇文章记录下从零开始的环境搭建过程,希望能帮助到同样想入坑 HMOS 开发的朋友。
准备工作
开始之前,我们需要准备以下工具:
- 一台 HarmonyOS 设备(我用的是 HMOS 6 的设备)
- 一台开发电脑(Mac / Windows / Linux 均可)
- USB 数据线(用于连接设备和电脑)
环境搭建
1. DevEco Studio 安装
HarmonyOS 的官方 IDE 是 DevEco Studio,基于 IntelliJ IDEA 定制。
可以从华为开发者官网下载安装包。
安装完成后,打开 DevEco Studio,它会自动下载 SDK。这个过程可能需要一些时间,
取决于你的网络环境。需要注意的是,SDK 版本要和你的设备系统版本匹配。
小提示: 如果下载 SDK 速度很慢,可以试试配置国内镜像源。
在 SDK Manager 中修改下载地址为华为云镜像可以显著提升速度。
2. hdc 配置
hdc(HarmonyOS Device Connector)是类似 Android adb 的命令行调试工具。
我用的是独立安装的 hdc 3.0.0b 版本,放在 ~/.hdc/hdc 路径下。
配置环境变量:
# 在 ~/.zshrc 中添加
export PATH="$HOME/.hdc:$PATH"
# 重载配置
source ~/.zshrc
# 验证安装
hdc --version
# → HDC version: 3.0.0b
3. 连接设备
用 USB 数据线连接设备和电脑。在设备上确保开启了"开发者模式"和"USB 调试"。
在我的体验中,HMOS 6 的设备连接非常顺畅:
# 查看设备列表
hdc list targets
# 如果能看到设备信息,说明连接成功
# → [设备序列号]
不过在 HMOS 4.2 的老设备上遇到了问题 —— hdc list targets 返回空列表,
而且不弹出 USB 授权框。目前还在排查原因,推测是 USB 模式或授权缓存的问题。
创建第一个应用
在 DevEco Studio 中,选择 "Create Project",然后选择 "Empty Ability" 模板。
项目创建完成后,默认会生成一个 Hello World 应用。
项目的核心文件结构如下:
MyApplication/
├── entry/
│ ├── src/
│ │ ├── main/
│ │ │ ├── ets/ # 应用代码 (ArkTS)
│ │ │ │ ├── MainAbility/
│ │ │ │ └── pages/
│ │ │ │ └── index.ets
│ │ │ ├── resources/ # 资源文件
│ │ │ └── module.json5 # 模块配置
│ └── build-profile.json5 # 构建配置
├── oh_modules/ # 依赖模块
├── build-profile.json5 # 项目级构建配置
└── hvigor.config.json5 # 编译构建配置
ArkTS 是 HarmonyOS 的声明式 UI 开发语言,语法风格和 SwiftUI / Jetpack Compose 类似。
这是 index.ets 的默认内容:
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
可以看到声明式 UI 的写法非常直观。@Entry 表示这是页面的入口,@Component 声明这是一个组件,@State 标记响应式状态变量。
运行与调试
点击工具栏的 Run 按钮(▶),DevEco Studio 会自动编译并在连接的设备上安装和启动应用。
整个过程和 Android Studio 非常相似。
如果一切顺利,你会在设备屏幕上看到 "Hello World" 字样。
虽然只是一个简单的文本,但看到自己的第一个 HMOS 应用跑在真机上,还是挺有成就感的。
遇到的一些坑
这里记录一些我在搭建过程中遇到的问题和解决方法:
- SDK 下载失败: 检查网络代理设置,确认 DevEco Studio 没有走代理导致连接超时。
- hdc 连接老设备失败: HMOS 4.2 上
hdc list targets为空,
有说法是在设备端拔插 USB 或切换 USB 模式到"传输文件"可以解决,但我这里还没成功。 - 编译报错: 大部分情况下是 SDK 版本不匹配,检查 DevEco Studio 和 SDK 版本是否兼容。
- 签名配置: 调试运行会自动生成签名配置,但发布版本需要申请华为开发者签名。
总结
HarmonyOS 的开发体验整体来说还不错,特别是 ArkTS 的声明式 UI 设计让界面开发变得很直观。
DevEco Studio 的功能也相当完善,从编码到调试一站式搞定。
不过目前的生态还在建设阶段,社区资源相对较少,遇到问题时更需要自己摸索。
但正是这种"开荒"的过程,反而让我觉得很有趣。
接下来我计划尝试更多的 HMOS API,包括分布式应用、卡片开发等,后续会继续分享。
如果你也在学习 HMOS 开发,欢迎在评论区或通过邮件交流!