HarmonyOS 是什么?
HarmonyOS 是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统
My brothers,如果对大华为的鸿蒙系统还不太了解,可以看下这个视频:
鸿蒙介绍视频
那问题来了:
为什么要学习 HarmomyOS ?
首先,HarmomyOS ,刚开始是据说是华为开发的一款可能兼容Android应用程序的跨平台操作系统,且说明主要是用于物联网,未必会发展为手机系统。但是呢,由于众所周知的外部因素,鸿蒙逐渐发展为下一代的操作系统。
这就意味着两点:
对移动开发者而言,早日接触和了解鸿蒙系统也很有必要。
HarmonyOS 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示。
各层的介绍可以看官网介绍,移动开发者,更多的和 「框架层」「应用层」打交道,一些涉及的名词下文再介绍。
这里我好奇一个点,
所谓的全场景万物互联是怎么做到的?
「硬件互助,资源共享」 是华为给出的答案,具体实现依赖的关键技术包括分布式软总线
、分布式设备虚拟化
、分布式数据管理
、分布式任务调度
等。
定义:
分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议
简单来说,就是个多设备间的通信基座,无需关心到底是通过蓝牙,还是 wifi,还是NFC或者其他方式,甚至不需要特意和目标设备连接。
定义:
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的能力优势,如显示能力、摄像能力、音频能力、交互能力以及传感器能力等。
简单来说,多设备的能力,将会被虚拟聚合在一起,取并集,使用的时候选取最优。
定义:
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,跨设备的数据处理如同本地数据处理一样方便快捷,让开发者能够轻松实现全场景、多设备下的数据存储、共享和访问,为打造一致、流畅的用户体验创造了基础条件
简单来说,是一个智慧版的网盘工具,不需要用户自己操作上传和同步,鸿蒙自己帮你处理。
定义:
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
简单来说,这是一个智能的决策中心,处理以上的数据,做出判断。
通过以上的介绍,可以看到在一定范围内,设备之前在用户无感知的场景下,进行交换数据,和执行指令。那我们不由开始思考:
如何保证数据通信的安全?
通过“分布式多端协同身份认证”来保证“正确的人”。
通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。
通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。
零信任模型:HarmonyOS基于零信任模型,实现对用户的认证和对数据的访问控制。当用户需要跨设备访问数据资源或者发起高安全等级的业务操作(例如,对安防设备的操作)时,HarmonyOS会对用户进行身份认证,确保其身份的可靠性。
多因素融合认证:HarmonyOS通过用户身份管理,将不同设备上标识同一用户的认证凭据关联起来,用于标识一个用户,来提高认证的准确度。
协同互助认证:HarmonyOS通过将硬件和认证能力解耦(即信息采集和认证可以在不同的设备上完成),来实现不同设备的资源池化以及能力的互助与共享,让高安全等级的设备协助低安全等级的设备完成用户身份认证。
安全启动
确保源头每个虚拟设备运行的系统固件和应用程序是完整的、未经篡改的。通过安全启动,各个设备厂商的镜像包就不易被非法替换为恶意程序,从而保护用户的数据和隐私安全。
可信执行环境
提供了基于硬件的可信执行环境(TEE,Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。由于分布式终端硬件的安全能力不同,对于用户的敏感个人数据,需要使用高安全等级的设备进行存储和处理。HarmonyOS使用基于数学可证明的形式化开发和验证的TEE微内核,获得了商用OS内核CC EAL5+的认证评级。
设备证书认证
支持为具备可信执行环境的设备预置设备证书,用于向其他虚拟终端证明自己的安全能力。对于有TEE环境的设备,通过预置PKI(Public Key Infrastructure)设备证书给设备身份提供证明,确保设备是合法制造生产的。设备证书在产线进行预置,设备证书的私钥写入并安全保存在设备的TEE环境中,且只在TEE内进行使用。在必须传输用户的敏感数据(例如密钥、加密的生物特征等信息)时,会在使用设备证书进行安全环境验证后,建立从一个设备的TEE到另一设备的TEE之间的安全通道,实现安全传输。如图1所示。
HarmonyOS围绕数据的生成、存储、使用、传输以及销毁过程进行全生命周期的保护,从而保证个人数据与隐私、以及系统的机密数据(如密钥)不泄漏。
支持的语言有:
支持的设备有:
Phone | Tablet | Car | TV | Wearable | Lite Wearable | Smart Vision |
---|---|---|---|---|---|---|
手机 | 平板 | 车机 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
创建 module 的时候针对选择的设备,DS内置了一些模版代码,开发者可以根据语言自行选用。
目前针对这些设备,市面上真机资源还是不荣哟拥有,IDE提供远程模拟机使用,不过需要注册下华为开发者账号,并且实名认证。
跑完测试项目后,我们来看看 Harmony 的工程结构,逻辑结构是怎么样的?和 Android 对比不同之处又在哪?
HarmonyOS应用发布形态为APP Pack(Application Package,简称APP),它是由一个或多个HAP(HarmonyOS Ability Package)包以及描述APP Pack属性的pack.info文件组成。
一个HAP在工程目录中对应一个Module,由代码、资源、第三方库及应用清单文件组成。
有两个类型:
Entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。
Feature:应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不含。
注意加粗文字,一个 APP,同一设备类型,才会有一个 entry 类型 HAP 的限制。所以
,在创建一个类型为 Ability 的Module时,遵循如下原则:
对比 Android 碎碎念:
我个人理解,HAP 等同于 Android 的 module ,区别点在于可以单独运行。单独运行的时候可以生成一个单独的安装包
HarmonyOS 应用代码是围绕 Ability 组件展开的。上文中讲到的 HAP,
就是由N个Ability组成。
Ability分为两种类型:
对比 Android 碎碎念:
有没有感觉像是 Android 的四大组件的概念。类似 FA 是 Activity,PA 是 Service/Content provider/Broadcast receiver 。
创建 Module 的时候可以选择 library 的类型,该类型最后可以打包成一个 HAR。
内容包括源代码、资源文件和config.json文件。HAR 不同于 HAP,HAR 不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
对比 Android 碎碎念:
可以理解为就是 Android 中 aar 的概念
以上就是全部内容了,最近会陆续出一系列关于 HarmonyOS 应用层开发的文章,欢迎关注~
0.鸿蒙OS初探
1.鸿蒙开发环境配置 & 问题记录
量大急召 iOS/Android 实习生、开发、技术专家~
技术氛围好,有想法的可以联系我,
有赞移动期待你的加入~
快来一起做同事呀~
简历直通车:[email protected]