OpenHarmony&HarmonyOS

OpenHarmony: 是HarmonyOS的核心基础架构,不是操作系统。作为手机厂商要和鸿蒙挂钩,还要依照OpenHarmony自己开发一套系统,不能直接使用OpenHarmony。
HarmonyOS: 是华为基于开源项目OpenHarmony开发的面向多种全场景智能设备的操作系统

技术架构

鸿蒙体系在架构层面采用的是分层设计,自下向上依次为:内核层->系统服务层->框架层->应用层

鸿蒙系统 架构图 鸿蒙系统基础架构_UI


系统功能按照“系统>子系统>组件”逐级展开,在多设备部署场景下可以根据实际需求裁剪某些非必要组件。这样鸿蒙体系从架构开始,就把系统做了拆解,可以让平板、手机、智能家居都可以按需使用鸿蒙系统(的组件),进行万物互联。

(本次主要介绍系统基本能力子系统集的框架层和最上层的应用层)

1.内核层(详细在源码解析时再议)

内核子系统:采用多内核,内核抽象层通过屏蔽多内核差异,对上层提供基础的多内核能力(进程/线程管理、内存管理、文件系统、网络管理和外设管理等)
驱动子系统:驱动框架是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架

2.系统服务层

OH的核心能力集合,通过框架层对应用程序提供服务,包含系统基本能力子系统集,基础软件服务子系统集,增强软件服务子系统集,硬件服务子系统集。根据不同设备形态的部署环境,系统服务层的子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

3.框架层*

为应用开发提供C/C++/JS等多语言用户程序框架和Ability框架,适用于JS的UI框架,以及各种软硬件服务对外开发的多语言框架API
根据系统的组件化裁剪程度,设备支持的API也会不同

4.应用层*

包括系统应用和第三方非系统应用
应用由一个或多个FA(Feature Ability)或PA(Partiace Ability)组成。
FA:有UI界面,提供与用户交互的能力
PA:无UI界面,提供后台运行任务的能力,同于数据访问抽象
基于FA/PA开发的引用,能实现特定业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

系统类型及特性

1.系统类型

轻量系统、小型系统、标准系统

2.特性*

子系统

是一个逻辑概念,具体由对应的组件构成

组件

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

OH开发的两种类型

设备开发

通过OH提供的源码(类库)+开发板进行硬件设备的而开发

应用开发*

OH采用多种分布式技术——应用程序的开发实现与不同终端设备的形态差异无关
HarmonyOS与开发语言和sdk的不同:
1.开发语言
HarmonyOS主要支持C/C++/Java/JS开发应用,OH不支持Java开发应用
目前HarmonyOS还有部分功能基于AOSP(AndroidOpen-SourceProject),因此还是要使用Java

2.sdk
应用开发工具都是统一使用DevEco Studio,但是使用的sdk不同