暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

HarmonyOS(一)系统和架构概述

畅谈Fintech 2021-06-24
914

每一位开发者都是我们要汇聚的星星之火,一起创造万物互联时代的无限可能!

                                                            Harmony OS developers



最近很多小伙伴都在讨论6月2日令国人骄傲的HarmonyOS 2 发布,都争先尝鲜升级和公测、内侧。

其实在官网开发论坛,我们早就盼望着这个日子的到来了!自去年9月HarmonyOS 2DevEco Studio Beta版发布,再到今年6月2日的HarmonyOS 2 、DevEco Studio都是Release版的发布,官网社区直播下一同见证了国产OS诞生的历史这一刻。很多开发者、爱好者包括小编自己当时都萌生了想要深入了解和学习 HarmonyOS 应用开发,好在DIGIX大赛各路大牛、大咖,分享了各种学习资料、分类整理,还有官网超级详细的文档!当然这都能传递鸿蒙的思想——“All In HarmonyOS ”。

小编也是华为手机老用户了,去年10月就开始关注Harmony OS的,期间一直划水,趁着OS 2、IDE Release稳定性加上开源社区如火如荼,也跟着学习一下呗,并分享给一起学习的你。


这期主要从5个方面了解Harmony OS:版本迭代、总体概述、技术架构、技术特性、系统安全。大部分内容摘自官网开发文档和社区文档。



PS:

小编知道很多小伙伴都争先尝鲜升级鸿蒙,并且争先报名参加申请鸿蒙系统测试体验:

1.参加申请鸿蒙系统测试体验

https://developer.huawei.com/consumer/cn/forum/topic/0203580425781350001?fid=0101303901040230869

2.Harmony OS 2 百”机升级计划





下面开始学习了


一、Harmony OS版本迭代


跟着历史的滚滚车轮我们见证一下Harmony OS的版本迭代:

1、HarmonyOS 1.0

2019年8月,首次发布Harmony 1.0,应用于华为智慧屏

2、HarmonyOS 2.0

2020年9月11日

  • HarmonyOS SDK 3.0.0.80 (API Version 3) Beta版

    DevEco Studio 2.0 Beta1版

  • HarmonyOS 2.0首个Beta版本,支持更多的设备品类,包括华为智慧屏、智能穿戴、车机设备基于HarmonyOS进行开发者beta。

  • 同时华为面向第三方的设备发布HarmonyOS开源(128K~128M内存)版本。


2021年3月31日

  • HarmonyOS SDK 2.1.1.18(API Version 5 Beta 1)

    Version:DevEco Studio 2.1 Beta 3

  • 分布式能力增强

  • 基础通信能力增强

  • 图形图像及UI框架能力增强

  • 数据服务能力增强

  • 媒体新增和优化了若干能力,可直接通过接口调用

  • 全球化能力增强,可通过接口或资源文件进行配置

  • 安全新增对证书进行操作的相关能力,并对开发者提供相应接口。

  • LiteOS内核能力新增及优化


2021年4月30日

  • HarmonyOS SDK 2.1.1.20(API Version 5DevEco Studio 2.1 Beta 4

    DevEco Studio 2.1 Beta 4

  • 较前一版本在接口内容上无新增和变更。

  • 支持在设备界面的权限申请弹窗中进行显示。

  • 新增提供服务卡片的开发指导



2021年6月2日

  • HarmonyOS SDK 2.1.1.21(API Version 5)

    DevEco Studio 2.1 Release

  • 本次发布HarmonyOS SDK 2.1 Release,较前一版本在接口内容上无新增和变更。

  • 正式发布原子化服务能力。

  • 开发指南新增流转的指导。

  • 部分特性能力的优化:

    • JS卡片的开发,新增支持JSON格式。

    • animatorProperty,animator,AnimatedStateElement,FrameAnimationElement四大类动画XML的属性新增支持在DevEco Studio的联想输入。

  • 新增支持路由器设备类型的开发能力。


二、Harmony OS总体概述


HarmonyOS是一款“面向未来”、面向1 + 8 + N全场景的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备。

1、对消费者而言
HarmonyOS能够将生活场景中的各类终端进行能力整合,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。


2、对应用开发者而言
HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。


3、对设备开发者而言
HarmonyOS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。


4、对编程语言的支持

支持的开发语言包括Java、XML、C/C++ 、JS、CSS和HML(HarmonyOS Markup Language)。



三、Harmony OS技术架构


HarmonyOS技术架构:


1、内核层

  • 内核子系统

    HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。
  • 内核抽象层(KAL,Kernel Abstract Layer)
    通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
  • 驱动子系统
    硬件驱动框架(HDF)HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。


2、系统服务层


系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:

  • 系统基本能力子系统集

    为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
  • 基础软件服务子系统集

    为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV等子系统组成。

  • 增强软件服务子系统集

    为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。

  • 硬件服务子系统集

    为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。

3、框架层


框架层为HarmonyOS应用开发提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,两种UI框架(包括适用于Java语言的Java UI框架、适用于JS语言的JS UI框架),以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,HarmonyOS设备支持的API也会有所不同


4、应用层

应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(Feature Ability)PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。



四、Harmony OS技术特性


HarmonyOS技术架构有很多特性,主要有6点:


1、分布式软总线


分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议


典型应用场景举例:

  • 智能家居场景

    在烹饪时,手机可以通过碰一碰和烤箱连接,并将自动按照菜谱设置烹调参数,控制烤箱来制作菜肴。与此类似,料理机、油烟机、空气净化器、空调、灯、窗帘等都可以在手机端显示并通过手机控制。设备之间即连即用,无需繁琐的配置。

  • 多屏联动课堂

    老师通过智慧屏授课,与学生开展互动,营造课堂氛围;学生通过手机完成课程学习和随堂问答。统一、全连接的逻辑网络确保了传输通道的高带宽、低时延、高可靠。


2、分布式设备虚拟化


分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的能力优势,如显示能力、摄像能力、音频能力、交互能力以及传感器能力等。

典型应用场景举例:

  • 视频通话场景

    在做家务时接听视频电话,可以将手机与智慧屏连接,并将智慧屏的屏幕、摄像头与音箱虚拟化为本地资源,替代手机自身的屏幕、摄像头、听筒与扬声器,实现一边做家务、一边通过智慧屏和音箱来视频通话。

  • 游戏场景

    在智慧屏上玩游戏时,可以将手机虚拟化为遥控器,借助手机的重力传感器、加速度传感器、触控能力,为玩家提供更便捷、更流畅的游戏体验。

3、分布式数据管理


分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,跨设备的数据处理如同本地数据处理一样方便快捷,让开发者能够轻松实现全场景、多设备下的数据存储、共享和访问,打造一致、流畅的用户体验创造了基础条件。


典型应用场景举例:

  • 协同办公场景

    将手机上的文档投屏到智慧屏,在智慧屏上对文档执行翻页、缩放、涂鸦等操作,文档的最新状态可以在手机上同步显示。

  • 家庭出游场景

    一家人出游时,妈妈用手机拍了很多照片。通过家庭照片共享,爸爸可以在自己的手机上浏览、收藏和保存这些照片,家中的爷爷奶奶也可以通过智慧屏浏览这些照片。

4、分布式调度

分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。


典型应用场景举例:

  • 导航场景

    如果用户驾车出行,上车前,在手机上规划好导航路线;上车后,导航自动迁移到车机和车载音箱;下车后,导航自动迁移回手机。如果用户骑车出行,在手机上规划好导航路线,骑行时手表可以接续导航。

  • 外卖场景

    在手机上点外卖后,可以将订单信息迁移到手表上,随时查看外卖的配送状态。

5、一次开发多端部署

HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。

其中,UI框架支持Java和JS两种开发语言,并提供了丰富的多态控件,可以在手机、平板、智能穿戴、智慧屏、车机上显示不同的UI效果。采用业界主流设计方式,提供多种响应式布局方案,支持栅格化布局,满足不同屏幕的界面适配能力。


6、统一OS弹性部署


HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。

  • 支持各组件的选择(组件可有可无)

    根据硬件的形态和需求,可以选择所需的组件。

  • 支持组件内功能集的配置(组件可大可小)

    根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。

  • 支持组件间依赖的关联(平台可大可小)

    根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。



五、Harmony OS系统安全


官网在系统安全这块描述的整体标语是“正确的人,通过正确的设备,正确地使用数据”。


1、正确的人


在分布式终端场景下,“正确的人”指通过身份认证的数据访问者和业务操作者。“正确的人”是确保用户数据不被非法访问、用户隐私不泄露的前提条件。HarmonyOS通过以下三个方面来实现协同身份认证:

  • 零信任模型

    HarmonyOS基于零信任模型,实现对用户的认证和对数据的访问控制。当用户需要跨设备访问数据资源或者发起高安全等级的业务操作(例如,对安防设备的操作)时,HarmonyOS会对用户进行身份认证,确保其身份的可靠性。

  • 多因素融合认证

    HarmonyOS通过用户身份管理,将不同设备上标识同一用户的认证凭据关联起来,用于标识一个用户,来提高认证的准确度。

  • 协同互助认证

    HarmonyOS通过将硬件和认证能力解耦(即信息采集和认证可以在不同的设备上完成),来实现不同设备的资源池化以及能力的互助与共享,让高安全等级的设备协助低安全等级的设备完成用户身份认证


2、正确的设备


在分布式终端场景下,只有保证用户使用的设备是安全可靠的,才能保证用户数据在虚拟终端上得到有效保护,避免用户隐私泄露。
  • 安全启动
    确保源头每个虚拟设备运行的系统固件和应用程序是完整的、未经篡改的。通过安全启动,各个设备厂商的镜像包就不易被非法替换为恶意程序,从而保护用户的数据和隐私安全。
  • 可信执行环境
    提供了基于硬件的可信执行环境(TEE,Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能力不同,对于用户的敏感个人数据,需要使用高安全等级的设备进行存储和处理。HarmonyOS使用基于数学可证明的形式化开发和验证的TEE微内核,获得了商用OS内核CC EAL5+的认证评级。
  • 设备证书认证
    支持为具备可信执行环境的设备预置设备证书,用于向其他虚拟终端证明自己的安全能力。对于有TEE环境的设备,通过预置PKI(Public Key Infrastructure)设备证书给设备身份提供证明,确保设备是合法制造生产的。设备证书在产线进行预置,设备证书的私钥写入并安全保存在设备的TEE环境中,且只在TEE内进行使用。在必须传输用户的敏感数据(例如密钥、加密的生物特征等信息)时,会在使用设备证书进行安全环境验证后,建立从一个设备的TEE到另一设备的TEE之间的安全通道,实现安全传输。


4、正确的使用数据


在分布式终端场景下,需要确保用户能够正确地使用数据。HarmonyOS围绕数据的生成、存储、使用、传输以及销毁过程进行全生命周期的保护,从而保证个人数据与隐私、以及系统的机密数据(如密钥)不泄漏。
  • 数据生成

    根据数据所在的国家或组织的法律法规与标准规范,对数据进行分类分级,并且根据分类设置相应的保护等级。每个保护等级的数据从生成开始,在其存储、使用、传输的整个生命周期都需要根据对应的安全策略提供不同强度的安全防护。虚拟超级终端的访问控制系统支持依据标签的访问控制策略,保证数据只能在可以提供足够安全防护的虚拟终端之间存储、使用和传输。
  • 数据存储

    HarmonyOS通过区分数据的安全等级,存储到不同安全防护能力的分区,对数据进行安全保护,并提供密钥全生命周期的跨设备无缝流动和跨设备密钥访问控制能力,支撑分布式身份认证协同、分布式数据共享等业务。
  • 数据使用

    HarmonyOS通过硬件为设备提供可信执行环境。用户的个人敏感数据仅在分布式虚拟终端的可信执行环境中进行使用,确保用户数据的安全和隐私不泄露。

  • 数据传输

    为了保证数据在虚拟超级终端之间安全流转,需要各设备是正确可信的,建立了信任关系(多个设备通过华为帐号建立配对关系),并能够在验证信任关系后,建立安全的连接通道,按照数据流动的规则,安全地传输数据。当设备之间进行通信时,需要基于设备的身份凭据对设备进行身份认证,并在此基础上,建立安全的加密传输通道。
  • 数据销毁

    销毁密钥即销毁数据。数据在虚拟终端的存储,都建立在密钥的基础上。当销毁数据时,只需要销毁对应的密钥即完成了数据的销毁。






参考资料:
1.官网开发文档:
https://developer.harmonyos.com/cn/documentation
2.官网开发社区:
https://developer.huawei.com/consumer/cn/forum/communityHome


文章转载自畅谈Fintech,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论