0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS的组件化设计方案

HarmonyOS开发者 来源:HarmonyOS开发者 作者:zhangyongzhi 2021-10-13 09:59 次阅读

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所示,内核层包括LiteOSLinux和驱动框架三个组件。

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管理与应用分发原理做进一步的详细解析,敬请期待!

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6808

    浏览量

    123291
  • 终端
    +关注

    关注

    1

    文章

    1130

    浏览量

    29866
  • HarmonyOS
    +关注

    关注

    79

    文章

    1974

    浏览量

    30148

原文标题:一文带你看懂HarmonyOS如何适配多种终端

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HarmonyOS Web页面加载的原理和优化方法

    在移动互联网时代,应用的页面渲染速度对于用户体验至关重要。相对于原生页面,Web页面的性能存在多方面的威廉希尔官方网站 挑战。本文以HarmonyOS的ArkWeb组件为基础,介绍了Web页面加载中的影响因素以及对应的优化方案
    的头像 发表于 12-05 15:14 210次阅读
    <b class='flag-5'>HarmonyOS</b> Web页面加载的原理和优化方法

    宜科EEDS Slim数字扩展组件介绍

    伴随工业互联网理念及数字能力建设需求的普及,企业生产力规划过程对于数字能力的要求成为基础威廉希尔官方网站 要求,对于设备制造商而言,选择直接开放设备数据接口或是通过搭载数字能力组件,更好的体现
    的头像 发表于 07-18 16:16 379次阅读
    宜科EEDS Slim数字<b class='flag-5'>化</b>扩展<b class='flag-5'>组件</b>介绍

    HarmonyOS NEXT Developer Beta1最新术语表

    服务 原名原子服务,是HarmonyOS提供的一种面向未来的服务提供方式,是有独立入口的(用户可通过点击服务卡片打开元服务)、免安装的(无需显式安装,由系统程序框架后台安装后即可使用)用户应用程序形态
    发表于 06-27 16:16

    设备智能:中国星坤线缆组件的解决方案

    在当今快速发展的电子行业中,产品小型和成本效益是制造商追求的两大目标。中国星坤端子电缆组件以其灵活性和高效性,为电子设备制造商提供了一种理想的解决方案。本文将探讨星坤端子电缆组件的优
    的头像 发表于 06-27 09:49 294次阅读
    设备智能<b class='flag-5'>化</b>:中国星坤线缆<b class='flag-5'>组件</b>的解决<b class='flag-5'>方案</b>!

    UPS系统设计方案解读

    UPS的应用场景日趋多样,每个场景都有其独特的需求,对应不同的方案。UPS系统方案指南继续上新,本文将聚焦UPS设计方案展开讲述。
    的头像 发表于 06-26 10:06 782次阅读
    UPS系统<b class='flag-5'>设计方案</b>解读

    HarmonyOS开发案例:【使用List组件实现设置项】

    使用List组件、Toggle组件以及Router接口,实现一个简单的设置页,点击将跳转到对应的详细设置页面。
    的头像 发表于 05-10 17:01 927次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【使用List<b class='flag-5'>组件</b>实现设置项】

    HarmonyOS开发案例:【使用List组件实现商品列表】

    OpenHarmony ArkTS提供了丰富的接口和组件,开发者可以根据实际场景和开发需求,选用不同的组件和接口。
    的头像 发表于 05-10 16:41 1320次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【使用List<b class='flag-5'>组件</b>实现商品列表】

    HarmonyOS开发案例:【基础组件Slider的使用】

    学习如何使用声明式UI编程框架的基础组件。本篇Codelab将会使用Image组件、Slider组件、Text组件共同实现一个可调节的风车动画
    的头像 发表于 05-10 16:01 669次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【基础<b class='flag-5'>组件</b>Slider的使用】

    HarmonyOS开发案例:【Web组件实现抽奖】

    基于ArkTS的声明式开发范式的样例,主要介绍了Web组件如何加载本地和云端H5小程序。
    的头像 发表于 05-09 18:31 1373次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【Web<b class='flag-5'>组件</b>实现抽奖】

    HarmonyOS开发案例:【常用组件与布局】

    HarmonyOS ArkUI提供了丰富多样的UI组件,您可以使用这些组件轻松地编写出更加丰富、漂亮的界面。
    的头像 发表于 05-09 18:20 1209次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【常用<b class='flag-5'>组件</b>与布局】

    HarmonyOS实战开发-深度探索与打造个性自定义组件

    ,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。 自定义组件的创建和渲染流程 自定义组件的创建:自定义组件的实例由ArkUI框架创建。 初始
    发表于 05-08 16:30

    HarmonyOS开发案例:【 slider组件的使用】

    主要介绍slider滑动条组件的使用。如图所示拖动对应滑动条调节风车的旋转速度以及缩放比例。
    的头像 发表于 04-25 22:02 939次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【 slider<b class='flag-5'>组件</b>的使用】

    HarmonyOS开发案例:【 switch、chart组件的使用】

    基于switch组件和chart组件,实现线形图、占比图、柱状图,并通过switch切换chart组件数据的动静态显示。
    的头像 发表于 04-25 20:58 600次阅读
    <b class='flag-5'>HarmonyOS</b>开发案例:【 switch、chart<b class='flag-5'>组件</b>的使用】

    鸿蒙OS开发实例:【组件模式】

    组件一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件;与Android端的组件
    的头像 发表于 04-07 17:44 637次阅读
    鸿蒙OS开发实例:【<b class='flag-5'>组件</b><b class='flag-5'>化</b>模式】

    HarmonyOS开发威廉希尔官方网站 全面分析

    难度和成本。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。 ⚫ 对设备开发者而言, HarmonyOS 采用了组件设计方案,可以根据设备的 资源能力和业务特征进行灵活裁
    发表于 02-21 16:31