HarmonyOS的组件化设计方案

harmonyos是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,harmonyos提出了基于同一套系统能力、适配多种终端形态的分布式理念。
为了实现“基于同一套系统能力、适配多种终端形态”,harmonyos采用了“组件化”的设计方案,实现根据设备的资源能力和业务特征灵活裁剪,满足不同形态终端设备对操作系统的要求。
一、为什么采用“组件化”设计方案?
分层架构是最为流行、应用最为广泛的软件架构设计方式,将整个软件系统自顶而下垂直划分成若干个层级,对每一层的系统能力、特定行为进行抽象。层级之间单向依赖,上层使用下层的各种服务,而下层对上层不感知。每一层对自己的上层提供接口的同时,隐藏内部实现细节。
对于中小规模系统,基于架构分层可以较好地解决系统架构解耦和跨团队协作问题,每一层提供一定的业务功能,可以由不同的小团队负责每一层不同的业务交付。然而,对于操作系统这么庞大的软件系统,只有架构分层还是远远不够的,因为每一层都很复杂,同一分层内不同模块之间相互依赖、无序调用。如果没有进一步的组件化架构,绝对会给软件工程和项目管理带来巨大的灾难。
基于以上原因,harmonyos采用了组件化的设计方案,先对复杂的操作系统进行架构分层,再对每一层进行组件化。
下面我们就来具体看看harmonyos的“组件化”设计方案。
二、“组件化”设计方案详解
1. harmonyos架构分层
首先,我们来看看harmonyos系统是如何架构分层的。
如图2所示,harmonyos划分为以下层级:
应用层:由应用开发者交付,向最终消费者提供ui接口,为消费者体验负责。应用层向下仅依赖于框架层提供的api,应用开发仅依赖于harmonyos发布的sdk。
框架层、系统服务层和内核层:这三个层级属于harmonyos基础平台,由harmonyos平台开发者交付,面向北向应用生态提供api和sdk,面向南向设备生态提供driver interface和ddk(driver development kit,驱动开发包)。
驱动层:由设备开发者交付,向harmonyos提供器件驱动实现。驱动层仅依赖于驱动框架提供的driver interface,驱动开发仅依赖于harmonyos发布的ddk。
我们通过架构分层对harmonyos操作系统进行大颗粒系统解构,方便不同的生态参与方。参与方既可以相对独立,又可以相互协作,共同构建形形色色的智能终端设备和丰富的应用软件,为消费者带来全场景智慧服务体验。
2. harmonyos基础平台组件化
harmonyos基础平台涉及框架层、系统服务层和内核层三部分,harmonyos对这三个层级进行了进一步的组件化设计。
内核层组件化
如图3所示,内核层包括liteos、linux和驱动框架三个组件。
liteos和linux组件可以按需部署在不同设备之上。这两个组件向系统服务层提供posix(portable operating system interface,可移植操作系统接口)和cmsis(common microcontroller software interface standard,通用微处理器软件接口标准)接口,用于屏蔽不同的内核实现差异。
驱动框架组件向驱动层提供了driver interface和ddk,向系统服务层提供标准化的硬件操作接口hdi(harmonyos driver interface)。
框架层/系统服务层组件化
harmonyos系统架构分层根据功能定位区分了系统服务层和框架层,系统服务层是所有系统服务的汇总,通过框架层向应用暴露api。单个系统能力实现通常分布在系统服务层和框架层,考虑到系统服务和框架紧密耦合,在harmonyos中未统一定义系统服务层和框架层之间的层间接口。如图4所示,harmonyos将同一个功能实现的系统服务和框架组合在一起,形成一个个独立的“组件”,每个组件提供一个的系统能力和对应的api接口。组件之间基于innersdk完成解耦,支持组件独立代码下载、独立编译、独立测试和组件拼装。
三、harmonyos如何在多终端部署?
通过“组件化”设计后,harmonyos支持根据设备的资源能力和业务特征灵活裁剪,满足不同形态终端设备对操作系统的要求。也就是说,一套harmonyos可以部署到不同的终端设备上。
为了部署在不同形态的终端设备上,harmonyos细分为以下四种基本系统规格:
轻量系统(mini system)
面向mcu(micro control unit,微控制单元)类处理器的设备,支持的设备最小内存为128kib,如智能家居领域的连接类模组、传感器设备、穿戴类设备等。
可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的iot总线读写组件等。
小型系统(small system)
面向应用处理器的设备,支持的设备最小内存为1mib,如智能家居领域的ip camera、电子猫眼、路由器以及行车记录仪等。
可以提供更高的安全能力,标准的图形框架,以及视频编解码的多媒体能力。
标准系统(standard system)
面向应用处理器的设备,支持的设备最小内存为128mib,如带屏iot设备、智能手机。
可以提供增强的交互能力,3d gpu和硬件合成能力,更多控件和动效更丰富的图形能力,以及完整的应用框架。
大型系统(large system)
面向应用处理器的设备,支持的设备最小内存为1gib,如智慧屏、智能手表等。
可以提供支持兼容三方os系统的应用框架。
harmonyos根据不同的系统规格,分别定义了最小系统必选组件集和对应的可选组件集。产品部署harmonyos时,根据系统规格类型选择对应的最小系统必选组件集,同时根据不同产品的差异化功能需要选择可选组件。基于组件间依赖管理,如果某个可选组件被选择,相应该组件依赖的其他组件也会自动被打包到harmonyos系统。
在开发者资源中心deveco marketplace可以进行组件管理,灵活拼装出不同的产品解决方案。deveco marketplace的详细介绍,请参见往期推文。
deveco marketplace链接如下:https://repo.harmonyos.com
组件是拼装harmonyos的一个个零部件。每个组件都提供一定的系统能力,一些组件还涉及面向应用暴露api接口。不同组件组合部署到特定设备上,面向应用提供的api能力会存在差异。本文我们就组件的部署原理做了详细说明,后续我们还将对组件化架构下的组件运行态管理、sdk管理与应用分发原理做进一步的详细解析,敬请期待!


运放内部如何降低偏置电流?运放外部如何补偿偏置电流造成的影响?
关于边缘计算与云计算的不同之处
小鹏汽车收购案落地,向滴滴配发5816.42万股股份
与初始化相关的重要寄存器介绍
储能电池种类介绍1
HarmonyOS的组件化设计方案
图书生产缺陷控制居然因为它 得到了有效控制!
Unreal 4新增了VR/AR/MR的支持和优化现已支持WMR平台和头显
恩智浦创新的EdgeLock™安全区域可简化保护数十亿台物联网设备的复杂性
车载电源线路用TDK共模滤波器
具有极端力学行为的水凝胶3D打印设计与制造
水泥厂扬尘噪音在线监测器在施工现场如何应用?
基于FPGA的超声波瓶体厚度检测分类研究
高频功率切换损耗低 高速IGBT增强PV变频器效能
同致电子科技顺利通过CNAS实验室认可
案例分析:从冶金物联看物联网的商业模式创新
变压器底部的鹅卵石起什么作用
校准MAX9979引脚电子器件
小米AI音箱怎么样_来自小米用户的智能音箱真实使用体验
监控系统中如何选择图象信号的传输线