1. OpenHarmony 初探:发展史、应用场景与环境搭建
大家好,我是你们这门课的老朋友。在正式开始写代码之前,我觉得有必要先聊聊 OpenHarmony 到底是个什么东西。说白了,它不是一个普通的操作系统,而是一个面向全场景、全连接时代的「超级底座」。我刚开始接触它的时候,也以为只是又一个 Android 变种,结果深入一看,发现完全不是那么回事。
1.1 OpenHarmony 发展史:从「备胎」到「主力」
OpenHarmony 的故事,得从 2019 年开始讲起。那年华为被制裁,Google 服务用不了,于是鸿蒙系统被推到了前台。但很多人不知道,OpenHarmony 和华为手机上那个 HarmonyOS 其实是两码事。
关键区别: HarmonyOS 是华为的商业发行版,而 OpenHarmony 是开源项目,属于开放原子开源基金会。你可以把 OpenHarmony 理解成「地基」,HarmonyOS 是华为在上面盖的「精装房」。
我梳理了几个关键时间节点,大家看一眼就明白了:
| 时间 | 事件 | 我的评价 |
|---|---|---|
| 2019.08 | 华为发布鸿蒙 OS 1.0,仅用于智慧屏 | 当时很多人觉得是「PPT 系统」 |
| 2020.09 | 鸿蒙 OS 2.0 发布,宣布开源 | 代码放出来了,大家才开始认真看 |
| 2021.06 | OpenHarmony 2.0 正式上线手机 | 我第一时间刷了机,卡顿明显,但架构惊艳 |
| 2022.07 | OpenHarmony 3.1 发布,API 稳定 | 这时候才真正适合做应用开发 |
| 2023.10 | OpenHarmony 4.0 发布,生态初具规模 | 现在入局,时机正好 |
我记得 2021 年第一次在开发板上跑 OpenHarmony 时,光是编译环境就折腾了两天。那时候文档不全,社区也冷清,遇到问题只能翻源码。现在好多了,官方文档、示例代码、社区问答都很完善。所以我说,现在学 OpenHarmony,其实是抄了近道。
1.2 OpenHarmony 应用场景:不止是手机
你可能会问:「我学这个能干嘛?」嗯,这个问题问得好。OpenHarmony 的设计哲学是「一次开发,多端部署」。它不只为手机而生,而是为所有带屏幕、带芯片的设备服务的。
我把它常见的应用场景分成了三类:
- 智能家居:智能音箱、智能灯、智能门锁、空调面板。这些设备屏幕小、资源少,OpenHarmony 的轻量级内核正好合适。
- 工业与商业:自助售货机、POS 机、工控平板、医疗设备。我有个朋友就在做基于 OpenHarmony 的医疗监护仪,他说比 Linux 方案省电 30%。
- 教育与开发板:树莓派类似的开发板、教学机器人、编程学习套件。这部分是开发者入门的首选。
我的建议: 如果你刚开始学,别一上来就想做手机 App。先买一块百元级的开发板(比如润和 Hi3861 或 Dayu200),跑个 LED 灯、传感器读取,成就感来得快,也能帮你理解系统底层。
为什么会这样?因为 OpenHarmony 的架构是分层的。它把系统拆成了内核层、系统服务层、框架层和应用层。你写应用时,根本不用关心底层跑的是 LiteOS 还是 Linux 内核——框架层帮你屏蔽了差异。这就是它「多端部署」的底气。
下面这张图,是我自己画的 OpenHarmony 整体架构,你看一眼就能明白它的分层逻辑:
1.3 OpenHarmony 开发环境搭建:手把手来一遍
好,理论说完了,咱们来点实际的。搭建开发环境是每个初学者绕不过去的坎。我曾经见过一个学员,光装 DevEco Studio 就卡了三天——最后发现是 JDK 版本不对。所以我把步骤拆细一点,你跟着走就行。
1.3.1 下载 DevEco Studio
DevEco Studio 是官方 IDE,基于 IntelliJ IDEA 定制。你直接去官网下载最新版就行。我个人习惯用 Windows,但 macOS 和 Linux 也完全支持。
避坑指南: 我曾经因为下载了「预览版」导致 API 不兼容,折腾了一下午。请务必下载 Release 版本,不要用 Beta 或 Canary 版。
1.3.2 配置 SDK 和 Node.js
安装完 DevEco Studio 后,第一次启动会提示你配置 SDK。这里要注意:
- SDK 版本:建议选择 API 9 或 API 10,太老的版本不支持新特性。
- Node.js:必须安装 14.x 以上版本,用于构建工具链。
- Ohpm:OpenHarmony 的包管理器,类似 npm,用来下载三方库。
配置完成后,你可以用下面的命令验证环境:
# 检查 Node.js 版本
node -v
# 输出示例:v16.20.0
# 检查 Ohpm 是否可用
ohpm -v
# 输出示例:1.2.0
1.3.3 创建第一个项目
打开 DevEco Studio,点击「Create Project」。你会看到一堆模板:
| 模板名称 | 适用场景 | 我的推荐 |
|---|---|---|
| Empty Ability | 空白应用,从零开始 | ✅ 初学者首选 |
| List | 列表类应用 | 适合练习数据绑定 |
| Login | 带登录页面的应用 | 适合学习页面跳转 |
| Game | 简单游戏模板 | 适合进阶练习 |
我建议你选「Empty Ability」,然后项目名称填 HelloOpenHarmony,语言选 ArkTS。ArkTS 是 OpenHarmony 的主力开发语言,基于 TypeScript 扩展,后面我们会花大量篇幅讲它。
1.3.4 运行到模拟器或真机
项目创建好后,点击右上角的运行按钮。DevEco Studio 自带模拟器,你可以在「Tools → Device Manager」里创建一个手机模拟器。如果你有开发板,也可以用 USB 连接真机。
小技巧: 第一次编译会下载 Gradle 和依赖,可能比较慢。建议开个代理,或者提前把 Gradle 包下载好放到缓存目录。我一般会在晚上睡觉前开始第一次编译,第二天早上就好了。
运行成功后,你会看到模拟器屏幕上出现一个「Hello World」的界面。别小看这一步——你已经在 OpenHarmony 上跑通了第一个应用。后面所有的复杂功能,都是在这个基础上叠加的。
本章小结
这一章我们聊了 OpenHarmony 的来龙去脉、它能干什么、以及怎么把开发环境搭起来。说白了,OpenHarmony 不是一个「备胎」,而是一个面向未来的操作系统。它的分层架构、分布式能力、多端部署,都是实实在在的技术优势。