第1章 走进Harmony
1.1 了解HarmonyOS
当前的移动互联网创新,仍然仅局限于以手机为主的单一设备,单设备的操作体验已经不能完全满足人们在不同场景下的需求,而HarmonyOS正是为万物互联而生。HarmonyOS(鸿蒙操作系统)是一款“面向未来”的操作系统,一款面向全场景的分布式操作系统,它创造性地提出了基于同一套系统能力、适配多种终端形态的分布式理念,将多个物理上相互分离的设备融合成一个“超级虚拟终端”,通过按需调用和融合不同软硬件的能力,实现不同终端设备之间的极速连接、硬件互助和资源共享,为用户在移动办公、社交通信、媒体娱乐、运动健康、智能家居等多种全场景下,匹配最合适的设备,提供最佳的智慧体验。
HarmonyOS主打“1+8+N”的全场景体验,其中“1”指的是主入口手机,“8”指的是智慧屏、平板、PC、音响、手表、眼镜、车机和耳机8种设备,“N”则指的是泛IoT硬件构成的华为HiLink生态,其中包括移动办公、智能家居、健康生活、影音娱乐、智能出行等各大场景下的智能硬件设备。
对于HarmonyOS的应用开发者而言,通过HarmonyOS所提供的多种分布式技术,使应用开发者能够聚焦于上层业务逻辑,而忽略不同终端设备的形态差异,从而极大地降低了开发难度和成本,提升了开发效率。本书将聚焦于HarmonyOS的应用开发,旨在带领更多开发者加入HarmonyOS全场景的生态建设中。下面具体介绍一下应用开发所需要的基本知识。
1.1.1 HarmonyOS技术特性
多种设备之间通过HarmonyOS可以实现硬件互助和资源共享,依赖的关键技术主要包括分布式软总线、分布式数据管理、分布式任务调度和分布式设备虚拟化等。
1.分布式软总线
分布式软总线是手机、手表、平板、智慧屏、车机等多种终端设备的统一基座,是分布式数据管理和分布式任务调度的基础,为设备之间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。分布式软总线示意图如图1.1所示。
图1.1 分布式软总线示意图
2.分布式数据管理
分布式数据管理位于分布式软总线之上,用户数据不再与单一物理设备进行绑定,而是将多设备的应用程序数据和用户数据进行同步管理,应用跨设备运行时数据无缝衔接,让跨设备数据处理如同本地处理一样便捷。分布式数据管理示意图如图1.2所示。
图1.2 分布式数据管理示意图
例如基于分布式数据管理,可以通过手机访问其他设备中的照片和视频,并将其他设备中的视频转移到智慧屏进行播放,也可以将编辑在任一设备中的备忘录信息进行跨设备更新同步。
3.分布式任务调度
分布式任务调度基于分布式软总线、分布式数据管理等技术特性,构建统一的分布式服务管理,支持对跨设备的应用进行远程启动、远程控制、绑定/解绑、迁移等操作。在具体的场景下,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,并结合用户的习惯和意图,选择最合适的设备运行分布式任务。分布式任务调度示意图如图1.3所示。
图1.3 分布式任务调度示意图
利用分布式任务调度机制,可以实现多设备间的能力互助。例如,手机设备拍照具有美颜功能,但在家庭多人合影等场景下,手机屏幕较小,此时可以用手机控制智慧屏的摄像头,同时还能调用手机的相机美颜功能,并将最终照片传回手机。
除此之外,还可以通过分布式任务调度,实现业务的无缝迁移。例如在上车前,可以通过手机查找并规划好导航路线,待上车后,导航会自动迁移到车载大屏和车机音箱,待下车后,导航又会自动迁移回手机。
4.分布式设备虚拟化
分布式设备虚拟化可以实现不同设备的资源融合、设备管理、数据处理,将周边设备作为手机能力的延伸,共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力最佳的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。分布式设备虚拟化示意图如图1.4所示。
图1.4 分布式设备虚拟化示意图
5.一次开发,多端部署
HarmonyOS通过提供统一的IDE,进行多设备的应用开发,并且通过向用户提供程序框架、Ability框架及UI框架,保证开发的应用在多终端运行时的一致性。通过模块化耦合,对应不同设备间的弹性部署。一次开发,多端部署的示意图如图1.5所示。
图1.5 一次开发,多端部署示意图
6.统一OS,弹性部署
HarmonyOS拥有“硬件互助,资源共享”和“一次开发,多端部署”的系统能力,为各种硬件开发提供了全栈的软件解决方案,并保持了上层接口和分布式能力的统一。通过组件化和小型化等设计方法,做到硬件资源的可大可小,以及在多种终端设备间按需弹性部署。
1.1.2 HarmonyOS系统架构
HarmonyOS整体遵从分层设计,从下向上依次为内核层、系统基础服务层、框架层和应用层。HarmonyOS系统架构如图1.6所示。
图1.6 HarmonyOS系统架构
1.内核层
HarmonyOS采用多内核设计(Linux内核、HarmonyOS微内核或者Lite OS),支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管等。
2.系统基础服务层
系统基础服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务,包含系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、HarmonyOS驱动框架(HDF)和硬件抽象适配层(HAL)、硬件服务子系统集和专有硬件服务子系统集。
3.框架层
框架层为HarmonyOS的应用程序提供了Java/C/C++/JavaScript等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API。
4.应用层
应用层包括系统应用和第三方应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI页面,而PA无UI页面。FA/PA均能够实现特定的业务功能,支持跨设备调度与分发,为消费者提供一致、高效的应用体验。