1.认识HarmonyOS
1.1.HarmonyOS简介
在中美贸易战的刺激下,国产操作系统HarmonyOS(鸿蒙操作系统)开始进入到大众的视野。
鸿蒙寓意为“万物起源”,发展至今已经经过了好几个迭代版本。
1.1.1.早期鸿蒙雏形 LiteOS
2015 年 5 月 20 日,华为网络大会上,华为发布最轻量级的 物联网操作系统 LiteOS。
Huawei LiteOS
Huawei LiteOS 是华为面向IoT领域,构建的轻量级物联网操作系统,遵循BSD-3开源许可协议,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域,大幅降低设备布置及维护成本,有效降低开发门槛、缩短开发周期。
Huawei LiteOS 内核,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行。
具有高实时性,高稳定性,超小内核,基础内核体积,可以裁剪至不到10K,低功耗,支持功能静态裁剪等特点。
1.1.2.鸿蒙操作系统发展
2016年5月,鸿蒙正式在华为公司的软件部内部立项并开始投入研发,吹响了研发鸿蒙操作系统的号角。
2019年8月10日,华为正式发布了HarmonyOS 1.0,该系统率先部署在智慧屏上。华为消费者业务CEO余承东在发布会上宣布鸿蒙将进行开源。
2020年9月10日,华为发布HarmonyOS 2.0,主要在3个方面做出重大提升:分布式的软总线、分布式的数据管理及分布式的安全,此版本可用于大屏、手表和车机。
2020年12月,华为发布面向开发者提供了手机版本HarmonyOS 2.0的Beta版本,开发者可以访问华为开发者联盟官网 ,申请获取 HarmonyOS 2.0 手机开发者 Beta 版升级 。
2021年6月2号,华为发布可以覆盖手机等移动终端的HarmonyOS 2.0。
2021年10月,华为发布鸿蒙3.0版本。
2023年8月4日,华为正式发布鸿蒙4.0,华为Mate 60和Mate 60Pro系列出厂预装了鸿蒙OS 4系统。
1.1.3.鸿蒙操作系统介绍
鸿蒙系统不同于既有的Android、ios、Windows、Linux等操作系统,它面向的是1+8+N的全场景设备,能够根据不同内存级别的设备进行弹性组装和适配,并且跨设备交互信息。
比如可以将手机端播放的视频迁移到智慧屏,通过大屏来观看视频,同时也可以将视频音效分离到外设音响;通过设备A获取设备B的数据;多设备终端数据同步等。
1+8+N全场景
目前的硬件生态是相互割裂的,无论手机、手表、电视还是手机,都有各自独立的生态,影响用户体验,用户希望打破设备间的壁垒,实现设备间的无缝连接。
为此,鸿蒙操作系统基于用户体验的考虑,要实现的是设备间的1+8+N的万物互联。
“1”指的是中间位置的手机,用户流量的核心入口。
“8”指手机的外围8类设备,包括:PC、TV、平板电脑、耳机、眼镜、手表、车机、音箱,在人们的日常生活中使用频率仅次于手机。
“N”指最外层的搭载鸿蒙系统的物联网设备,应用场景包括:运动健康、影音娱乐、智慧出行、移动办公、智能家居等。
各应用场景常见的设备有:
运动健康:血压计、智能秤等;
影音娱乐:游戏、视屏等;
智慧出行:定位、打车等;
移动办公:打印机、投影仪等;
智能家居:扫地机、摄像头等;
鸿蒙操作系统3大特征
1.实现设备之间硬件互助,资源共享,比如:手机将视频分享给智慧屏,将音频分享给音箱,音视频同步。
2.一次开发,多端部署。
3.统一OS,弹性部署。根据设备的资源能力和业务特征灵活裁剪,满足不同形态终端设备对操作系统的要求。
目前鸿蒙系统适用华为、荣耀旗下部分机型
1.HUAWEI P系列:P50、P50 Pro、P50E、P40、P40 Pro、P40 Pro+。
2. HUAWEI Mate系列:Mate 60、Mate 60Pro、Mate 50、Mate 50Pro、Mate 40、Mate 40 Pro、Mate 40E、Mate 30、Mate 30 Pro、Mate 30E。
3. HUAWEI nova系列:nova 10、nova 10 Pro、nova 9、nova 9 Pro。
4. 其他系列:畅享50Z、麦芒9 Pro 5G、麦芒8、荣耀X30i、荣耀X30 Max、荣耀play6T。
1.1.4.HarmonyOS 和OpenHarmony 的关系
华为于2020年9月10号将HarmonyOS 2.0源码捐赠给开放原子开源基金(国内首个开源软件基金会)会孵化,得到OpenHarmonyOS 1.0并开放下载。
2020年12月22号,OpenHarmony全场景分布式终端操作系统(以下简称OpenHarmony)项目群正式成立,该项目群是由中国科学院软件所、华为终端公司、京东集团等7家单位组成,共同规划OpenHarmony的持续发展。
2021年6月2日发布会上,开放原子开源基金会将孵化的OpenHarmony 2.0 全量开源发布。
HarmonyOS实际上分为3个部分:OpenHarmonyOS、包括HMS(Huawei Mobile Services,华为移动服务)在内的闭源应用与服务,以及其他开放源代码。
OpenHarmonyOS 是鸿蒙操作系统中开源的部分,HarmonyOS是基于OpenHarmonyOS 的商用发行版。
1.2.HarmonyOS技术架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。
系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
1.2.1.内核层
内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
驱动子系统:硬件驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
1.2.2.系统服务层
系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。
其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV等子系统组成。
增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
1.2.3.框架层
HarmonyOS应用开发提供了ArkTS/JS/C/C++/Java等多语言的用户程序框架,两种UI框架(包括适用于ArkTS/JS语言的方舟开发框架即ArkUI、适用于Java语言的Java UI框架),以及各种软硬件服务对外开放的多语言框架API。
1.2.4.应用层
应用层包括系统应用和第三方非系统应用。
理解Ability
在HarmonyOS分布式系统中,一切皆能力,能力无大小。
在HarmonyOS应用程序中,
一个页面即一种能力,如登录页面,即具有登录功能的能力;
一个服务即一种能力,如后台播放音乐的能力;
一个数据操作即一种能力,如获取数据库数据等。
同时能力之间也可以互相调用,通过页面能力来管理后台音效播放与暂停。
在HarmonyOS应用程序中将能力分为FA(Feature Ability,即元程序)和PA(Particle Ability,即元服务)两种类型。
HarmonyOS的应用由一个或多个FA(Feature Ability,特征能力)或PA(Particle Ability,粒子能力)组成,应用程序可以以能力为单位进行部署。
其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。
FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。
基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
1.3.鸿蒙开发岗位与薪资
1.3.1.鸿蒙开发岗位
基于HarmonyOS技术架构,鸿蒙开发分为:鸿蒙应用开发、鸿蒙操作系统开发、HarmonyOS IOT 设备开发、openHarmony内核驱动开发、华为HMS(Huawei Mobile Services,华为手机服务)应用开发。
HarmonyOS开发者官网:https://developer.huawei.com/consumer/cn/
HarmonyOS应用开发地址:https://developer.huawei.com/consumer/cn/app
HarmonyOS IOT 设备开发地址:https://device.harmonyos.com/
openHarmony样例:https://growing.openharmony.cn/mainPlay/sample/?titleId=1
1.3.2.鸿蒙开发岗位与薪资