本节介绍HarmonyOS的特征。
HarmonyOS把各终端硬件的能力虚拟成可共享的能力资源池,让应用通过系统调用其所需的硬件能力。在这个架构下,硬件能力类似于活字印刷术中的一个个单字字模,可以被无限次重复使用。简单来说,各终端实现了硬件互助,资源共享。应用拥有了调用远程终端的能力,像调用本地终端一样方便,而用户收获一个多设备组成的超级终端。
那么是如何实现硬件互助、资源共享的呢?主要是基于以下几个方面实现的。
1 分布式软总线
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。分布式软总线示意图如图1-1所示。
图1-1 分布式软总线示意图
简言之,分布式软总线提供了多设备连接能力。
2 分布式设备虚拟化
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。分布式设备虚拟化示意图如图1-2所示。
举一个无人机的例子,传统的无人机分享视频的步骤如下:
· 拍摄无人机的画面。
· 将无人机拍摄的视频保存下来。
· 通过通信软件分享视频。
而在分布式设备虚拟化后,无人机可以被当作是手机的一个摄像头,在视频通话软件中,可以直接使用无人机的摄像头进行实时分享。
图1-2 分布式设备虚拟化示意图
3 分布式数据管理
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。分布式数据管理示意图如图1-3所示。
图1-3 分布式数据管理示意图
在全场景新时代,每个人拥有的设备越来越多,单一设备的数据往往无法满足用户的诉求,数据在设备间的流转变得越来越频繁。以一组照片数据在手机、平板电脑、智慧屏和计算机之间相互浏览和编辑为例,需要考虑到照片数据在多设备间是怎么存储、怎么共享和怎么访问的。HarmonyOS分布式数据管理的目标是为开发者在系统层面解决这些问题,让应用开发变得简单。它能够保证多设备间的数据安全,解决多设备间数据同步、跨设备查找和访问的各种关键技术问题。
HarmonyOS分布式数据管理对开发者提供分布式数据库、分布式文件系统和分布式检索能力,开发者在多设备上开发应用时,对数据的操作、共享、检索可以跟使用本地数据一样处理,为开发者提供便捷、高效和安全的数据管理能力,大大降低了应用开发者实现数据分布式访问的门槛。同时,由于在系统层面实现了这样的功能,可以结合系统资源调度,大大提升跨设备数据远程访问和检索的性能,让更多的开发者可以快速上手实现流畅的分布式应用。
4 分布式任务调度
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
图1-4以应用迁移为例,简要地展示分布式任务调度能力。
图1-4 分布式任务调度示意图
在传统的终端设备上做跨设备的应用访问时,需要应用自己完成服务发现、连接、命令监听、命令解析等一系列的工作,无论是应用开发者自己开发,还是使用第三方库,都让应用开发过程变得沉重。分布式任务调度就是在系统层面为应用提供通用的分布式服务,让应用开发可以聚焦在业务实现上。HarmonyOS在分布式任务调度上充分考虑了应用开发者的使用便利性,提供了应用信息自动同步的能力,通过查询远程Ability接口,既可以指定Ability查询设备列表,又可以指定设备标识,查询Ability列表,开发者可以根据实际场景灵活使用。在API形式上保持了和本地使用基本一致,仅增加了远程设备标识的参数,这让开发者使用起来完全没有障碍,开发者生态十分友好。举例来说,在手机和手表间进行应用间协同,在游乐场游玩的场景,用户可以全程不使用手机,解决了在游乐场游玩过程中手机容易丢失、损坏的痛点,非常好地提升了用户体验。
5 分布式连接能力
分布式连接能力提供了智能终端底层和应用层的连接能力,通过USB接口共享终端部分的硬件资源和软件能力。开发者基于分布式连接能力,可以开发相应形态的生态产品为消费者提供更丰富的连接体验。分布式连接能力示意图如图1-5所示。
图1-5 分布式连接能力示意图
HarmonyOS提供用户程序框架、Ability框架以及UI框架,能够保证开发的应用在多终端运行时保证一致性;一次开发、多端部署;多终端软件平台API具备一致性,确保用户程序的运行兼容性;支持在开发过程中预览终端的能力适配情况(CPU、内存、外设、软件资源等);支持根据用户程序与软件平台的兼容性来调度用户呈现。一次开发,多端部署示意图如图1-6所示。
图1-6 一次开发,多端部署示意图
HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。
· 支持各组件的选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。
· 支持组件内功能集的配置(组件可大可小):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。
· 支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。