鸿蒙OS初探

前言

HarmonyOS 是什么?

HarmonyOS 是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统

My brothers,如果对大华为的鸿蒙系统还不太了解,可以看下这个视频:

鸿蒙介绍视频

那问题来了:

为什么要学习 HarmomyOS ?

首先,HarmomyOS ,刚开始是据说是华为开发的一款可能兼容Android应用程序的跨平台操作系统,且说明主要是用于物联网,未必会发展为手机系统。但是呢,由于众所周知的外部因素,鸿蒙逐渐发展为下一代的操作系统。

这就意味着两点:

  1. 势必会抛弃 ASOP,形成自己的生态。
  2. 基于其强大物联网基础,会产生更多的交互场景,所谓万物互联,这意味着新的机遇。

对移动开发者而言,早日接触和了解鸿蒙系统也很有必要。

HarmonyOS 系统介绍

HarmonyOS 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示。
鸿蒙OS初探_第1张图片

各层的介绍可以看官网介绍,移动开发者,更多的和 「框架层」「应用层」打交道,一些涉及的名词下文再介绍。

这里我好奇一个点,

所谓的全场景万物互联是怎么做到的?

「硬件互助,资源共享」 是华为给出的答案,具体实现依赖的关键技术包括分布式软总线分布式设备虚拟化分布式数据管理分布式任务调度等。

硬件互助,资源共享

分布式软总线

定义:

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

简单来说,就是个多设备间的通信基座,无需关心到底是通过蓝牙,还是 wifi,还是NFC或者其他方式,甚至不需要特意和目标设备连接。

鸿蒙OS初探_第2张图片

分布式设备虚拟化

定义:

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

简单来说,多设备的能力,将会被虚拟聚合在一起,取并集,使用的时候选取最优。

鸿蒙OS初探_第3张图片

分布式数据管理

定义:

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

简单来说,是一个智慧版的网盘工具,不需要用户自己操作上传和同步,鸿蒙自己帮你处理。

鸿蒙OS初探_第4张图片

分布式任务调度

定义:

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

简单来说,这是一个智能的决策中心,处理以上的数据,做出判断。

鸿蒙OS初探_第5张图片

通过以上的介绍,可以看到在一定范围内,设备之前在用户无感知的场景下,进行交换数据,和执行指令。那我们不由开始思考:

如何保证数据通信的安全?

正确的人,通过正确的设备,正确地使用数据

通过“分布式多端协同身份认证”来保证“正确的人”。
通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。
通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。

分布式多端协同身份认证

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

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

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

构筑可信运行环境

  • 安全启动
    确保源头每个虚拟设备运行的系统固件和应用程序是完整的、未经篡改的。通过安全启动,各个设备厂商的镜像包就不易被非法替换为恶意程序,从而保护用户的数据和隐私安全。

  • 可信执行环境
    提供了基于硬件的可信执行环境(TEE,Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能力不同,对于用户的敏感个人数据,需要使用高安全等级的设备进行存储和处理。HarmonyOS使用基于数学可证明的形式化开发和验证的TEE微内核,获得了商用OS内核CC EAL5+的认证评级。

  • 设备证书认证
    支持为具备可信执行环境的设备预置设备证书,用于向其他虚拟终端证明自己的安全能力。对于有TEE环境的设备,通过预置PKI(Public Key Infrastructure)设备证书给设备身份提供证明,确保设备是合法制造生产的。设备证书在产线进行预置,设备证书的私钥写入并安全保存在设备的TEE环境中,且只在TEE内进行使用。在必须传输用户的敏感数据(例如密钥、加密的生物特征等信息)时,会在使用设备证书进行安全环境验证后,建立从一个设备的TEE到另一设备的TEE之间的安全通道,实现安全传输。如图1所示。

鸿蒙OS初探_第6张图片

分类分级管理数据

HarmonyOS围绕数据的生成、存储、使用、传输以及销毁过程进行全生命周期的保护,从而保证个人数据与隐私、以及系统的机密数据(如密钥)不泄漏。

  • 数据生成:根据数据所在的国家或组织的法律法规与标准规范,对数据进行分类分级,并且根据分类设置相应的保护等级。每个保护等级的数据从生成开始,在其存储、使用、传输的整个生命周期都需要根据对应的安全策略提供不同强度的安全防护。虚拟超级终端的访问控制系统支持依据标签的访问控制策略,保证数据只能在可以提供足够安全防护的虚拟终端之间存储、使用和传输。
  • 数据存储:HarmonyOS通过区分数据的安全等级,存储到不同安全防护能力的分区,对数据进行安全保护,并提供密钥全生命周期的跨设备无缝流动和跨设备密钥访问控制能力,支撑分布式身份认证协同、分布式数据共享等业务。
  • 数据使用:HarmonyOS通过硬件为设备提供可信执行环境。用户的个人敏感数据仅在分布式虚拟终端的可信执行环境中进行使用,确保用户数据的安全和隐私不泄露。
  • 数据传输:为了保证数据在虚拟超级终端之间安全流转,需要各设备是正确可信的,建立了信任关系(多个设备通过华为帐号建立配对关系),并能够在验证信任关系后,建立安全的连接通道,按照数据流动的规则,安全地传输数据。当设备之间进行通信时,需要基于设备的身份凭据对设备进行身份认证,并在此基础上,建立安全的加密传输通道。
  • 数据销毁:销毁密钥即销毁数据。数据在虚拟终端的存储,都建立在密钥的基础上。当销毁数据时,只需要销毁对应的密钥即完成了数据的销毁。

HarmonyOS 开发工程介绍

开发语言和设备支持

支持的语言有:

  • Java
  • JS (JavaScript)
  • C/C++编程— 这个使用 NDK 开发
  • XML(Extensible Markup Language)
  • CSS(Cascading Style Sheets)
  • HML(HarmonyOS Markup Language)。

支持的设备有:

Phone Tablet Car TV Wearable Lite Wearable Smart Vision
手机 平板 车机 智慧屏 智能穿戴 轻量级智能穿戴 智慧视觉设备

创建 module 的时候针对选择的设备,DS内置了一些模版代码,开发者可以根据语言自行选用。

目前针对这些设备,市面上真机资源还是不荣哟拥有,IDE提供远程模拟机使用,不过需要注册下华为开发者账号,并且实名认证。
鸿蒙OS初探_第7张图片

工程结构

跑完测试项目后,我们来看看 Harmony 的工程结构,逻辑结构是怎么样的?和 Android 对比不同之处又在哪?

这是官方介绍的图
鸿蒙OS初探_第8张图片

HarmonyOS应用发布形态为APP Pack(Application Package,简称APP),它是由一个或多个HAP(HarmonyOS Ability Package)包以及描述APP Pack属性的pack.info文件组成。

HAP

一个HAP在工程目录中对应一个Module,由代码、资源、第三方库及应用清单文件组成。

有两个类型:

  1. Entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。

  2. Feature:应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不含。

注意加粗文字,一个 APP,同一设备类型,才会有一个 entry 类型 HAP 的限制。所以
,在创建一个类型为 Ability 的Module时,遵循如下原则:

  • 若新增 Module 的设备类型为已有设备时,则Module的类型将自动设置为“Feature”。
  • 若新增 Module 的设备类型为当前还没有创建Module,则Module的类型将自动设置为“Entry”。

对比 Android 碎碎念:
我个人理解,HAP 等同于 Android 的 module ,区别点在于可以单独运行。单独运行的时候可以生成一个单独的安装包

鸿蒙OS初探_第9张图片

Ability

HarmonyOS 应用代码是围绕 Ability 组件展开的。上文中讲到的 HAP,
就是由N个Ability组成。
Ability分为两种类型:

  1. FA(Feature Ability,中文名称:元程序):有UI界面
  2. PA(Particle Ability,中文名称:元服务):无UI界面

对比 Android 碎碎念:
有没有感觉像是 Android 的四大组件的概念。类似 FA 是 Activity,PA 是 Service/Content provider/Broadcast receiver 。

HAR

创建 Module 的时候可以选择 library 的类型,该类型最后可以打包成一个 HAR。

内容包括源代码、资源文件和config.json文件。HAR 不同于 HAP,HAR 不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

对比 Android 碎碎念:
可以理解为就是 Android 中 aar 的概念

结语

以上就是全部内容了,最近会陆续出一系列关于 HarmonyOS 应用层开发的文章,欢迎关注~

0.鸿蒙OS初探

1.鸿蒙开发环境配置 & 问题记录


量大急召 iOS/Android 实习生、开发、技术专家~
技术氛围好,有想法的可以联系我,
有赞移动期待你的加入~
快来一起做同事呀~

简历直通车:[email protected]


欢迎关注个人微信公众号,最新的博客,好玩的事情,都会在上面分享,期待与你共同成长。

在这里插入图片描述

你可能感兴趣的:(HarmonyOS,鸿蒙,HarmonyOS)