OpenHarmony 与 HarmonyOS 有什么区别?
简短回答: OpenHarmony 是由开放原子开源基金会管理的开源基础项目;HarmonyOS(鸿蒙)是华为在 OpenHarmony 之上加入专有组件后构建的商用操作系统。二者的关系常被类比为 AOSP 与 Android。
OpenHarmony 与 HarmonyOS 有什么区别?
| OpenHarmony | HarmonyOS | |
|---|---|---|
| 所有者 / 治理 | 开放原子开源基金会(开源项目) | 华为(商业产品) |
| 源代码 | 公开,任何人都可以获取 | 未完全公开 |
| 许可证 | 主要为 Apache 2.0,其他组件保留各自许可证 | 专有 |
| 内核 | 多内核:LiteOS、Linux、UniProton | HarmonyOS 5 起使用华为的鸿蒙内核(HongMeng) |
| 设备 | 从微控制器到手机,来自众多厂商 | 主要是华为设备 |
| 应用商店与云服务 | 不内置 | 华为 AppGallery 和 HMS |
| 安卓应用 | 不支持 | HarmonyOS 2–4.x 支持,HarmonyOS 5 起不支持 |
HarmonyOS 5(NEXT)带来了什么变化?
早期 HarmonyOS(2 至 4.x)在手机上结合了 AOSP 和 OpenHarmony,因此可以运行安卓应用。2024 年底以 HarmonyOS 5 发布的 HarmonyOS NEXT 移除了 AOSP 层和安卓兼容,只运行原生应用,使用鸿蒙微内核,并基于 OpenHarmony 5.0(API 12)。
HarmonyOS 6 延续了这一思路,基于 OpenHarmony 6.0。
应该为哪一个开发?
- HarmonyOS 应用: 如果想通过 AppGallery 触达华为手机和平板用户,就面向 HarmonyOS 开发。
- OpenHarmony 设备: 如果做的是开发板、工业或嵌入式设备,或者要构建自己的发行版,就面向 OpenHarmony。
两者共享 ArkTS、ArkUI 和 DevEco Studio。在 DevEco Studio 项目中,目标系统在构建配置中选择,其中 runtimeOS 可以设为 OpenHarmony。不要假设为 HarmonyOS 构建的应用能在 OpenHarmony 设备上运行,因为 API 和服务并不相同。
两者有哪些共同点?
- 都使用 ArkTS 语言和声明式 ArkUI 框架。
- 应用模型概念相同(Stage 模型、HAP 包)。
- 都使用 DevEco Studio 工具链和 hdc 调试工具。
后续步骤
常见问题
HarmonyOS 是开源的吗?
不完全是。OpenHarmony 基础部分是开源的,但 HarmonyOS 是华为的商业产品,其中很大一部分是专有的,没有公开源码。
HarmonyOS 5 能运行安卓应用吗?
不能。HarmonyOS 5(最初称为 HarmonyOS NEXT)移除了 Android 开源项目(AOSP)层,只支持原生鸿蒙应用。HarmonyOS 2 至 4.x 可以运行安卓应用。
HarmonyOS 5 基于哪个 OpenHarmony 版本?
HarmonyOS 5 基于 OpenHarmony 5.0(API 12)。HarmonyOS 6 基于 OpenHarmony 6.0。
两者可以用同一套工具开发吗?
可以。两者都使用 ArkTS、ArkUI 和 DevEco Studio,但为 HarmonyOS 开发的应用不一定能在 OpenHarmony 设备上运行,而且 AppGallery 等华为服务只属于 HarmonyOS。