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 整体架构,你看一眼就能明白它的分层逻辑:

OpenHarmony 整体架构图 OpenHarmony 分层架构 应用层(Applications) 系统应用 · 第三方应用 · HAP 包 框架层(Framework) Ability框架 · UI框架 · 分布式数据管理 系统服务层(System Services) 分布式软总线 · 安全 · 多媒体 · 图形 · AI 内核层(Kernel) LiteOS · Linux Kernel · 驱动框架 💡 关键理解: 应用层只与框架层交互,不直接调用内核。 这就是「一次开发,多端部署」的技术基础。

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 不是一个「备胎」,而是一个面向未来的操作系统。它的分层架构、分布式能力、多端部署,都是实实在在的技术优势。