乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS2),打造
⾯向全场景的分布式操作系统
什么是鸿蒙智能终端系统(HarmonyOS 2)
HarmonyOS 是新⼀代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统⼀的语⾔。带来简洁,流畅,连续,安全可靠的全场景交互体验。
HarmonyOS 鸿蒙系统(鸿蒙 OS)是⼀款“⾯向未来”、⾯向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能⼒的基础上,HarmonyOS提出了基于同⼀套系统能⼒、适配多种终端形态的分布式理念,能够⽀持多种终端设备。鸿蒙操作系统及华为全场景新品发布会
⾥程碑
2019年8⽉,华为在开发者⼤会上正式发布鸿蒙系统。
2020年9⽉,华为在开发者⼤会上发布鸿蒙2.0,并⾯向应⽤开发者发布Beta版本。
2020年12⽉,华为发布鸿蒙OS 2.0⼿机开发者Beta版。
2021年6⽉,华为正式发布鸿蒙OS 2.0。
系统定位
HarmonyOS是⼀款“⾯向未来”、⾯向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能⼒的基础上,HarmonyOS提出了基于同⼀套系统能⼒、适配多种终端形态的分布式理念,能够⽀持⼿机、平板、智能穿戴、智慧屏、车机等多种终端设备。
对消费者⽽⾔,HarmonyOS能够将⽣活场景中的各类终端进⾏能⼒整合,可以实现不同的终端设备之间的快速连接、能⼒互助、资源共享,匹配合适的设备、提供流畅的全场景体验。
对应⽤开发者⽽⾔,HarmonyOS采⽤了多种分布式技术,使得应⽤程序的开发实现与不同终端设备的形态差异⽆关。这能够让开发者聚焦上层业务逻辑,更加便捷、⾼效地开发应⽤。
对设备开发者⽽⾔,HarmonyOS采⽤了组件化的设计⽅案,可以根据设备的资源能⼒和业务特征进⾏灵活裁剪,满⾜不同形态的终端设备对于操作系统的要求。
HarmonyOS提供了⽀持多种开发语⾔的API,供开发者进⾏应⽤开发。⽀持的开发语⾔包括Java、XML(Extensible Markup Language)、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)。
系统架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应⽤层。系统功能按照“系统 > ⼦系统 > 功能/模块”逐级展开,在多设备部署场景下,⽀持根据实际需求裁剪某些⾮必要的⼦系统或功能/模块。
内核层
内核⼦系统:HarmonyOS采⽤多内核设计,⽀持针对不同资源受限设备选⽤适合的OS内核。内核抽象层(KAL,KernelAbstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能⼒,包括进程/线程管理、内存管理、⽂件系统、⽹络管理和外设管理等。
驱动⼦系统:HarmonyOS驱动框架(HDF)是HarmonyOS硬件⽣态开放的基础,提供统⼀外设访问能⼒和驱动开发、管理框架。
系统服务层
系统服务层是HarmonyOS的核⼼能⼒集合,通过框架层对应⽤程序提供服务。该层包含以下⼏个部分:
系统基本能⼒⼦系统集:为分布式应⽤在HarmonyOS多设备上的运⾏、调度、迁移等操作提供了基础能⼒,由分布式软总线、分布式数据管理、分布式任务调度、⽅⾈多语⾔运⾏时、公共基础库、多模输⼊、图形、安全、AI等⼦系统组成。其中,⽅⾈运⾏时提供了C/C++/JS多语⾔运⾏时和基础的系统类库,也为使⽤⽅⾈编译器静态化的Java程序(即应⽤程序或框架层中使⽤Java语⾔开发的部分)提供运⾏时。
基础软件服务⼦系统集:为HarmonyOS提供公共的、通⽤的软件服务,由事件通知、电话、多媒体、DFX、MSDP&DV等⼦系统组成。
增强软件服务⼦系统集:为HarmonyOS提供针对不同设备的、差异化的能⼒增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等⼦系统组成。
硬件服务⼦系统集:为HarmonyOS提供硬件服务,由位置服务、⽣物特征识别、穿戴专有硬件服务、IoT专有硬件服务等⼦系统组成。
根据不同设备形态的部署环境,基础软件服务⼦系统集、增强软件服务⼦系统集、硬件服务⼦系统集内部可以按⼦系统粒度裁剪,每个⼦系统内部⼜可以按功能粒度裁剪。
框架层
框架层为HarmonyOS的应⽤程序提供了Java/C/C++/JS等多语⾔的⽤户程序框架和Ability框架,以及各种软硬件服务对外开放的多语⾔框架API;同时为采⽤HarmonyOS的设备提供了C/C++/JS等多语⾔的框架API,不同设备⽀持的API与系统的组件化裁剪程度相关。
应⽤层
应⽤层包括系统应⽤和第三⽅⾮系统应⽤。HarmonyOS的应⽤由⼀个或多个FA(Feature Ability)或PA(Particle Ability)组成。其
中,FA有UI界⾯,提供与⽤户交互的能⼒;⽽PA⽆UI界⾯,提供后台运⾏任务的能⼒以及统⼀的数据访问抽象。基于FA/PA开发的应⽤,能够实现特定的业务功能,⽀持跨设备调度与分发,为⽤户提供⼀致、⾼效的应⽤体验。
系统安全性
在搭载HarmonyOS的分布式终端上,可以保证“正确的⼈,通过正确的设备,正确地使⽤数据”。
通过“分布式多端协同⾝份认证”来保证“正确的⼈”。
通过“在分布式终端上构筑可信运⾏环境”来保证“正确的设备”。
通过“分布式数据在跨终端流动的过程中,对数据进⾏分类分级管理”来保证“正确地使⽤数据”。
正确的⼈
在分布式终端场景下,“正确的⼈”指通过⾝份认证的数据访问者和业务操作者。“正确的⼈”是确保⽤户数据不被⾮法访问、⽤户隐私不泄露的前提条件。HarmonyOS通过以下三个⽅⾯来实现协同⾝份认证:
零信任模型:HarmonyOS基于零信任模型,实现对⽤户的认证和对数据的访问控制。当⽤户需要跨设备访问数据资源或者发起⾼安全等级的业务操作(例如,对安防设备的操作)时,HarmonyOS会对⽤户进⾏⾝份认证,确保其⾝份的可靠性。
多因素融合认证:HarmonyOS通过⽤户⾝份管理,将不同设备上标识同⼀⽤户的认证凭据关联起来,⽤于标识⼀个⽤户,来提⾼认证的准确度。
协同互助认证:HarmonyOS通过将硬件和认证能⼒解耦(即信息采集和认证可以在不同的设备上完成),来实现不同设备的资源池化以及能⼒的互助与共享,让⾼安全等级的设备协助低安全等级的设备完成⽤户⾝份认证。
正确的设备
在分布式终端场景下,只有保证⽤户使⽤的设备是安全可靠的,才能保证⽤户数据在虚拟终端上得到有效保护,避免⽤户隐私泄露。
安全启动:确保源头每个虚拟设备运⾏的系统固件和应⽤程序是完整的、未经篡改的。通过安全启动,各个设备⼚商的镜像包就不易被⾮法替换为恶意程序,从⽽保护⽤户的数据和隐私安全。
可信执⾏环境:提供了基于硬件的可信执⾏环境(TEE,Trusted Execution Environment)来保护⽤户的个⼈敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能⼒不同,对于⽤户的敏感个⼈数据,需要使⽤⾼安全等级的设备进⾏存储和处理。HarmonyOS使⽤基于数学可证明的形式化开发和验证的TEE微内核,获得了商⽤OS内核CC EAL5+的认证评级。
设备证书认证:⽀持为具备可信执⾏环境的设备预置设备证书,⽤于向其他虚拟终端证明⾃⼰的安全能⼒。对于有TEE环境的设备,通过预置PKI(Public Key Infrastructure)设备证书给设备⾝份提供证明,确保设备是合法制造⽣产的。设备证书在产线进⾏预置,设备证书的私钥写⼊并安全保存在设备的TEE环境中,且只在TEE内进⾏使⽤。在必须传输⽤户的敏感数据(例如密钥、加密的⽣物特征等信息)时,会在使⽤设备证书进⾏安全环境验证后,建⽴从⼀个设备的TEE到另⼀设备的TEE之间的安全通道,实现安全传输。
正确地使⽤数据
在分布式终端场景下,需要确保⽤户能够正确地使⽤数据。HarmonyOS围绕数据的⽣成、存储、使⽤、传输以及销毁过程进⾏全⽣命周期的保护,从⽽保证个⼈数据与隐私、以及系统的机密数据(如密钥)不泄漏。
数据⽣成:根据数据所在的国家或组织的法律法规与标准规范,对数据进⾏分类分级,并且根据分类设置相应的保护等级。每个保护等级的数据从⽣成开始,在其存储、使⽤、传输的整个⽣命周期都需要根据对应的安全策略提供不同强度的安全防护。虚拟超级终端的访问控制系统⽀持依据标签的访问控制策略,保证数据只能在可以提供⾜够安全防护的虚拟终端之间存储、使⽤和传输。
数据存储:HarmonyOS通过区分数据的安全等级,存储到不同安全防护能⼒的分区,对数据进⾏安全保护,并提供密钥全⽣命周期的跨设备⽆缝流动和跨设备密钥访问控制能⼒,⽀撑分布式⾝份认证协同、分布式数据共享等业务。
数据使⽤:HarmonyOS通过硬件为设备提供可信执⾏环境。⽤户的个⼈敏感数据仅在分布式虚拟终端的可信执⾏环境中进⾏使⽤,确保⽤户数据的安全和隐私不泄露。
数据传输:为了保证数据在虚拟超级终端之间安全流转,需要各设备是正确可信的,建⽴了信任关系(多个设备通过华为帐号建⽴配对关系),并能够在验证信任关系后,建⽴安全的连接通道,按照数据流动的规则,安全地传输数据。当设备之间进⾏通信时,需要基于设备的⾝份凭据对设备进⾏⾝份认证,并在此基础上,建⽴安全的加密传输通道。
数据销毁:销毁密钥即销毁数据。数据在虚拟终端的存储,都建⽴在密钥的基础上。当销毁数据时,只需要销毁对应的密钥即完成了数据的销毁。
技术特性
⼀、硬件互助,资源共享
分布式软总线:分布式软总线是多种终端设备的统⼀基座,为设备之间的互联互通提供了统⼀的分布式通信能⼒,能够快速发现并连接设备,⾼效地分发任务和传输数据。
分布式设备虚拟化:分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成⼀个超级虚拟终端。针对不同类型的任务,为⽤户匹配并选择能⼒合适的执⾏硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
分布式数据管理:分布式数据管理基于分布式软总线的能⼒,实现应⽤程序数据和⽤户数据的分布式管理。⽤户数据不再与单⼀物理设备绑定,业务逻辑与数据存储分离,应⽤跨设备运⾏时数据⽆缝衔接,为打造⼀致、流畅的⽤户体验创造了基础条件。
分布式任务调度:分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统⼀的分布式服务管理(发现、同步、注册、调⽤)机制,⽀持对跨设备的应⽤进⾏远程启动、远程调⽤、远程连接以及迁移等操作,能够根据不同设备的能⼒、位置、业务运⾏状态、资源使⽤情况,以及⽤户的习惯和意图,选择合适的设备运⾏分布式任务。
⼆、⼀次开发,多端部署
HarmonyOS提供了⽤户程序框架、Ability框架以及UI框架,⽀持应⽤开发过程中多终端的业务逻辑和界⾯逻辑进⾏复⽤,能够实现应⽤的⼀次开发、多端部署,提升了跨设备应⽤的开发效率。
三、统⼀OS,弹性部署
HarmonyOS通过组件化和⼩型化等设计⽅法,⽀持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。⽀撑通过编译链关系去⾃动⽣成组件化的依赖关系,形成组件树依赖图,⽀撑产品系统的便捷开发,降低硬件设备的开发门槛。
⽀持各组件的选择(组件可有可⽆):根据硬件的形态和需求,可以选择所需的组件。
⽀持组件内功能集的配置(组件可⼤可⼩):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。
⽀持组件间依赖的关联(平台可⼤可⼩):根据编译链关系,可以⾃动⽣成组件化的依赖关系。例如,选择图形框架组件,将会⾃动选择依赖的图形引擎组件等。
开发套件
DevEco Studio
⾯向华为终端全场景多设备的⼀站式分布式应⽤开发平台,⽀持分布式多端开发、分布式多端调测、多端模拟仿真和全⽅位的质量与安全保障。
DevEco Device Tool
HarmonyOS 智能设备⼀站式集成开发环境,⽀持HarmonyOS组件按需定制、⼀键编译和烧录、可视化调试、分布式能⼒集成等,帮助开发者⾼效开发和创新新硬件。
HarmonyOS应⽤开发在线体验
通过⼀次开发、多设备部署,体验HarmonyOS跨设备应⽤的⾼效便捷开发。
鸿蒙系统设计⼯具
该设计⼯具承载了 HarmonyOS 设计规范,帮助三⽅开发团队提升设计协作效率,提供设计云规范和原⼦化布局两⼤服务。
开源⽣态
OpenHarmony 2.0
OpenHarmony是开放原⼦开源基⾦会(OpenAtom Foundation)旗下开源项⽬,定位是⼀款⾯向全场景的开源分布式操作系
统。
OpenHarmony在传统的单设备系统能⼒的基础上,创造性地提出了基于同⼀套系统能⼒、适配多种终端形态的理念,⽀持多种终端设备上运⾏。
Canary版本在OpenHarmony 1.1.0的基础上,增加标准系统版本,具备的主要功能如下:
新增22个⼦系统,⽀持全⾯的OS能⼒,⽀持内存⼤于128M的带屏设备开发等。
提供系统三⼤应⽤:桌⾯、设置和SystemUI。
提供全新的OpenHarmony应⽤框架能⼒、Ability Cross-platform Engine能⼒。
提供JS应⽤开发能⼒。
提供媒体框架,⽀持⾳视频功能开发。
提供图形框架能⼒,⽀持窗⼝管理和合成,⽀持GPU能⼒。
源代码:
开发基础知识
应⽤基础知识
1. APP
HarmonyOS 的应⽤软件包以 APP Pack(Application Package)形式发布,它是由⼀个或多个 HAP(HarmonyOS Ability Package)以及描述每个 HAP 属性的 pack.info 组成。HAP 是 Ability 的部署包,HarmonyOS 应⽤代码围绕Ability 组件展开。⼀个 HAP 是由代码、资源、第三⽅库及应⽤配置⽂件组成的模块包,可分为 entry 和feature 两种模块类型,如图 1 所⽰。
entry:应⽤的主模块。⼀个APP中,对于同⼀设备类型必须有且只有⼀个entry类型的HAP,可独⽴安装运⾏。
feature:应⽤的动态特性模块。⼀个 APP 可以包含⼀个或多个 feature 类型的 HAP,也可以不含。只有包含 Ability 的 HAP 才能够独⽴运⾏。
2. Ability
Ability 是应⽤所具备的能⼒的抽象,⼀个应⽤可以包含⼀个或多个 Ability。Ability 分为两种类型:FA(
Feature Ability)和 PA(Particle Ability)。FA/PA 是应⽤的基本组成单元,能够实现特定的业务功能。FA 有 UI 界⾯,⽽ PA ⽆UI 界⾯。
3. 库⽂件
库⽂件是应⽤依赖的第三⽅代码形式,存放在 libs ⽬录,是.so ⽂件。
4. 资源⽂件
应⽤的资源⽂件(字符串、图⽚、⾳频等)存放于 resources ⽬录下,便于开发者使⽤和维护,详见资源⽂件分类。
5. 配置⽂件
配置⽂件 (config.json) 是应⽤的Ability 信息,⽤于声明应⽤的Ability,以及应⽤所需权限等信息,详见应⽤配置⽂件。
6. pack.info
描述应⽤软件包中每个 HAP 的属性,由 IDE 编译⽣成,应⽤市场根据该⽂件进⾏拆包和
HAP 的分类存储。HAP 的具体属性包括:
delivery-with-install: ⽤于标识该 HAP 是否需要在主动安装时进⾏安装。
name:HAP ⽂件名。
module-type:模块类型,entry 或feature。
device-type:⽤于标识⽀持该 HAP 运⾏的设备类型。
花粉HarmonyOS 2全国统⼀考试
⼀、选择题(每题5分,共5题)
1、HarmonyOS 2及华为全场景新品发布会时间是?
A∶2021年6⽉1⽇
B∶2020年6⽉2⽇
C∶2021年6⽉3⽇
D∶2021年6⽉2⽇
答案:B
解析:华为于6⽉2⽇晚上8点举⾏了HarmonyOS 2 及全场景新品线上发布会。在发布会上,⾸先介绍的是华为⾃家研发的全新系统:HarmonyOS 2。HarmonyOS是新⼀代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统⼀的语⾔。带来简捷,流畅,连续,安全可靠的全场景交互体验。通过⼀个系统,覆盖⼩到内存128K的设备,⼤到4GB以上的⼿机等⼤⼤⼩⼩智能终端,满⾜1+8+N全场景交互(One as All),为消费者带来极致的全场景交互体验(All as One)。
2、HarmonyOS 2采⽤的是什么架构?
A∶全站解耦
B∶全栈解耦
D∶全栈解藕
C∶全站接耦
答案:B
解析:HarmonyOS是⼀个“超⼤型”的软件全栈解耦的系统,做到⼀套代码满⾜⼤⼩系统的要求,鸿蒙将所有业务逻辑切割开,给予每个模块标签,根据⽤户需求进⾏模块组装,实现⾯对全场景的操作。“依托HarmonyOS的分布式能⼒,消费者可以按需调⽤、组合不同设备的软硬件能⼒,为⽤户带来最适合其所在场景的智慧体验。”- 华为消费者BG软件部总裁王成录
3、HarmonyOS 2可以在最⼩多⼤RAM设备运⾏?
A: 128M
B: 126K
C: 128K
D: 126G更新鸿蒙系统
答案:C
解析:⽆论设备⼤⼩,只需⼀个系统就可以覆盖内存⼩到128K,⼤到4GB以上等⼤⼤⼩⼩的智能终端设备,为消费者带来极致的全场景交互体验。