第1章_HarmonyOS简介
第1章 HarmonyOS 简介
HarmonyOS 学习系统 | 阶段一:入门筑基期
建议学习时长:1-2 周
学习目标
| 序号 | 能力 |
|---|---|
| 1 | 了解 HarmonyOS 产生的历史背景与现实动因 |
| 2 | 理解 HarmonyOS 三大核心特性(硬件互助、一次开发、弹性部署) |
| 3 | 掌握 HarmonyOS 四层技术架构各层职责与核心组件 |
| 4 | 能区分鸿蒙生态、OpenHarmony 与 HarmonyOS 三者关系 |
核心图解
内容讲解
1.1 产生的背景
为什么需要 HarmonyOS?
想象你有一个大家族,每个人都有不同的技能:爷爷擅长做饭,妈妈擅长理财,爸爸擅长修东西。但每个人都只用自己的方式沟通,互不统属——这就像当前的手机、平板、手表、电视各自运行不同的操作系统,设备之间"语言不通"。
HarmonyOS 就像是给这个家族请了一位超级管家:他统一了所有人的沟通方式(分布式软总线),把每个人的技能汇总成一个"技能池"(硬件互助资源共享),无论你在厨房还是客厅,都能随时调用任何人的能力。你走进厨房,用手机碰一下微波炉,微波炉就自动联网——管家帮你搞定了一切。
早在 1999 年,时任中国科技部部长徐冠华曾说"中国信息产业缺芯少魂"——"芯"指芯片,"魂"指操作系统。二十多年过去,这个问题依然存在。
2019 年 5 月 15 日,美国商务部将华为及 70 家关联企业列入"实体清单"(Entities List),谷歌暂停了与华为的部分合作,华为手机面临无法升级 Android 版本和搭载谷歌服务的困境。为了避免被人"卡脖子",华为公开了自己的"秘密武器"——HarmonyOS。其实早在2016 年 5 月,自研操作系统就已经在华为内部立项。2019 年 8 月 9 日,HarmonyOS 在华为开发者大会上首次公开亮相。2021 年 6 月 2 日,HarmonyOS 2 正式版发布,支持超过百款设备升级。
什么是 HarmonyOS?
HarmonyOS(鸿蒙系统)是一个面向全场景的分布式操作系统。它以人为中心,将人、设备、场景有机地联系在一起,尤其面向 IoT 领域,将多种智能设备的体验实现系统级融合。
对消费者而言,HarmonyOS 从根本上解决了多终端体验割裂的问题;对开发者而言,HarmonyOS 提供了统一的"超级终端"开发平台,应用开发与设备形态差异无关;对设备开发者而言,HarmonyOS 采用组件化设计,可按需裁剪以满足不同设备的需求。
1.2 核心特性
1.2.1 硬件互助,资源共享
HarmonyOS 把各终端硬件的能力虚拟成可共享的能力资源池。各终端实现了硬件互助、资源共享,应用拥有调用远程终端的能力,像调用本地终端一样方便。主要基于以下四项技术实现:
| 技术 | 作用 | 生活类比 |
|---|---|---|
| 分布式软总线 | 设备间快速发现、连接、传输 | 家族群聊群——所有人实时在线互通消息 |
| 分布式设备虚拟化 | 多设备融合为"超级虚拟终端" | 技能池——任何人的技能可以被其他人借用 |
| 分布式数据管理 | 跨设备数据无缝访问 | 家庭共享冰箱——谁做的菜,全家都能吃 |
| 分布式任务调度 | 跨设备远程启动、调用、迁移 | 智能分工——谁有空谁干,活儿自动分配 |
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。例如,传统的无人机视频分享需要先保存再通过通信软件发送,而分布式设备虚拟化后,无人机可以直接被当作手机的一个摄像头在视频通话中实时分享。
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接。
分布式任务调度构建统一的分布式服务管理机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态选择合适的设备运行分布式任务。
1.2.2 一次开发,多端部署
HarmonyOS 提供了用户程序框架、Ability 框架以及 UI 框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用。开发者只需开发一次,即可部署到手机、平板、智慧屏、车机、穿戴设备等多种终端。
1.2.3 统一 OS,弹性部署
HarmonyOS 通过组件化和小型化设计,支持多种终端设备按需弹性部署。组件"可有可无"、“可大可小”、“平台可大可小”——根据硬件的形态和资源灵活裁剪。
1.3 技术架构
HarmonyOS 整体遵从分层架构设计,从下向上依次为内核层、系统服务层、框架层和应用层。系统功能按照"系统 → 子系统 → 功能/模块"逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
1.3.1 内核层
内核层主要分为两部分:
- 内核子系统:HarmonyOS 采用多内核设计,支持针对不同资源受限设备选用适合的 OS 内核。内核抽象层(KAL)通过屏蔽多内核差异对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统管理、网络管理和外设管理等。轻量设备可选用 LiteOS,富设备可选用 Linux Kernel。
- 驱动子系统:鸿蒙驱动框架(HDF)是 HarmonyOS 硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
1.3.2 系统服务层
系统服务层是 HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几部分:
- 系统基本能力子系统集:分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等子系统。
- 基础软件服务子系统集:事件通知、电话、多媒体、DFX 等子系统。
- 增强软件服务子系统集:智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统。
- 硬件服务子系统集:位置服务、生物特征识别、穿戴专有硬件服务等子系统。
1.3.3 框架层
框架层为 HarmonyOS 应用开发提供了 Java/C/C++/JS 等多语言的用户程序框架和 Ability 框架、两种 UI 框架(Java UI 框架和 JS UI 框架),以及多语言运行时。
1.3.4 应用层
应用层包括系统应用、第三方应用、原子化服务和跨端迁移应用,是用户直接接触的层面。
1.4 生态体系
HarmonyOS 生态中有三个重要概念需要区分:
| 概念 | 性质 | 管理方 | 说明 |
|---|---|---|---|
| 鸿蒙生态 | 整体生态 | - | 包含 OpenHarmony + HarmonyOS + 开发工具 + 开发库 |
| OpenHarmony | 开源项目 | 开放原子开源基金会 | HarmonyOS 的底座,华为捐献基础能力,项目地址 gitee.com/openharmony |
| HarmonyOS | 商用版本 | 华为 | 基于 OpenHarmony + AOSP 的商用发行版,手机和平板能运行 Android 应用是因为实现了 AOSP 的运行 |
需要注意:OpenHarmony 暂时还没有中文名字,核心贡献主力目前还是华为。HarmonyOS 不是开源项目而是商用版本,它包含了华为自家的商业增强部分。
代码速查卡
| 概念 | 一句话总结 |
|---|---|
| 分布式软总线 | 多设备统一通信基座,提供发现、连接、传输能力 |
| 分布式设备虚拟化 | 多设备融合为"超级虚拟终端",硬件能力可跨设备调用 |
| 分布式数据管理 | 跨设备数据无缝访问,数据不与单一设备绑定 |
| 分布式任务调度 | 支持远程启动、调用、连接、迁移等跨设备操作 |
| KAL (内核抽象层) | 屏蔽多内核差异,向上提供统一的内核能力接口 |
| HDF (驱动框架) | 统一外设访问能力和驱动开发管理框架 |
| OpenHarmony | 华为捐献基础能力的开源项目,HarmonyOS 的底座 |
与 Android/iOS 对比
| 特性 | HarmonyOS | Android | iOS |
|---|---|---|---|
| 设计理念 | 面向全场景的分布式 OS | 移动设备 OS | 移动设备 OS |
| 内核设计 | 多内核(可选用不同内核) | Linux 宏内核 | 混合内核(XNU) |
| 多设备支持 | 手机/平板/手表/电视/车机/IoT | 手机/平板/电视/手表/车机 | 手机/平板/手表/电视 |
| 跨设备协同 | 系统级分布式能力(核心特性) | 有限(需第三方应用) | 有限(仅 Apple 生态) |
| 开源情况 | OpenHarmony 开源 | AOSP 开源 | 闭源 |
| 开发语言 | Java/JS/C/C++ | Java/Kotlin/C++ | Swift/Obj-C |
| UI 框架 | Java UI + JS UI | View/Compose | UIKit/SwiftUI |
| 弹性部署 | 支持组件化按需裁剪 | 不支持 | 不支持 |
⚠️ 踩坑回忆录
刚接触鸿蒙的时候,我跟很多同学一样,以为 HarmonyOS 就是"华为版的 Android"。直到有一次面试被问到"鸿蒙和 Android 的内核有什么区别",我支支吾吾半天没答上来。后来深入研究才知道,HarmonyOS 采用的是多内核设计(KAL 屏蔽差异),可以根据设备资源选择不同的内核——轻量设备用 LiteOS,富设备用 Linux Kernel。而 Android 始终是 Linux 宏内核。这个区别看似小,实际上决定了鸿蒙"弹性部署"的核心能力。千万别把鸿蒙简单理解为 Android 换皮!
还有一个常见的误解:很多人以为 HarmonyOS 开源了。其实开源的是OpenHarmony,而 HarmonyOS 是华为基于 OpenHarmony + AOSP 的商用发行版,两者是不同的东西。面试时如果混淆了这两个概念,会显得很不专业。
必做实操任务
| 序号 | 任务 | 难度 |
|---|---|---|
| 1 | 画出 HarmonyOS 四层架构图,标注各层核心组件 | ★★☆ |
| 2 | 用自己的话向朋友解释"分布式软总线"的概念 | ★☆☆ |
| 3 | 对比列表:HarmonyOS vs Android 在架构设计上的 5 个关键差异 | ★★☆ |
| 4 | 查阅 OpenHarmony 官方仓库,了解其项目结构 | ★★☆ |
| 5 | 列举 3 个日常生活中可以用到 HarmonyOS 分布式能力的场景 | ★☆☆ |
学习检查清单
- 能解释 HarmonyOS 产生的历史背景和现实动因
- 能说出 HarmonyOS 四层架构各层职责
- 能列举分布式软总线、设备虚拟化、数据管理、任务调度各自的作用
- 能区分 OpenHarmony 和 HarmonyOS 的关系
- 能说出 HarmonyOS 三大核心特性
- 能解释"弹性部署"的含义和实现方式
- 能在面试中清晰区分 HarmonyOS 与 Android 的核心差异
进阶方向
- 深入研究 OpenHarmony 开源项目:https://gitee.com/openharmony
- 了解 HarmonyOS NEXT(纯血鸿蒙)的最新发展
- 阅读分布式系统相关书籍,理解分布式技术底层原理
