> 文档中心 > OpenHarmony轻量系统 子系统,组件那点事

OpenHarmony轻量系统 子系统,组件那点事

OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。OpenHarmony技术架构如下所示:

OpenHarmony支持如下几种系统类型:

  • 轻量系统(mini system)

    面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB,可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。

  • 小型系统(small system)

    面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为1MiB,可以提供更高的安全能力、标准的图形框架、视频编解码的多媒体能力。可支撑的产品如智能家居领域的IP Camera、电子猫眼、路由器以及智慧出行域的行车记录仪等。

  • 标准系统(standard system)

    面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB,可以提供增强的交互能力、3D GPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。

OpenHarmony里包含的2个基础概念:

  • 子系统

    OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。子系统是一个逻辑概念,它具体由对应的组件构成。

  • 组件

    对子系统的进一步拆分,可复用的软件单元,它包含源码、配置文件、资源文件和编译脚本;能独立构建,以二进制方式集成,具备独立验证能力的二进制单元。

 为实现芯片解决方案,产品解决方案与OpenHarmony是解耦的,可插拔的。组件,芯片解决方案和产品解决方案的路径,目录树和配置都需要遵循一定的规则,具体如下:

1.组件源码路径名命规则为:{领域}/{子系统}/{组件}

2.芯片解决方案是一个特殊的组件,源码路径规则为:device/{芯片解决方案厂商}/{开发板}

3.产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}。产品解决方案也是一个特殊的组件。

如下图,增加一个demolink的组件。Build.gnd定义了这个组件的源码,依赖文件,依赖库。

 定义了组件后,我们把这个组件配置到子系统。可以看到,在build/lite中存在众多的子系统,每个子系统都有个json的配置文件。 

以sensor子系统为例,在sensors.json中以json数组的方式配置组件。我们可以把新添加的组件添加到这个子系统中。

 

 

芯片解决方案

 产品解决方案 

 

OpenHarmony中依赖引入有三种方式:

1.产品配置config.json中增加组件依赖

 

2.已有模块BUILD.gn中deps配置组件依赖

3.已有模块中增加源码路径,通过文件引入依赖

 

参考课程:HarmonyOS Connect设备开发系列课程
https://mp.weixin.qq.com/s/B5UmQEY2U1WoagD_XLYl6w
https://mp.weixin.qq.com/s/saI5sMcyIuyi97V1Mjzt7Q
https://mp.weixin.qq.com/s/hNWv9S3nJ46YW4ushyYUTg