认识HarmonyOS

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.鸿蒙开发岗位与薪资

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32F103x 的时钟源

AHB (Advanced High-performance Bus) 高速总线,用来接高速外设的。 APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的,包含APB1 和 APB2。 APB1:上面连接的是低速外设,包括电源接口、备份接口、 CAN 、 US…

【Linux网络】网络编程套接字(TCP)

目录 地址转换函数 字符串IP转整数IP 整数IP转字符串IP 关于inet_ntoa 简单的单执行流TCP网络程序 TCP socket API 详解及封装TCP socket 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端处理请求 客户端创建套接字 客户端连接服务器 客户端…

QT-串口工具

一、演示效果 二、关键程序 &#xff1a; #include "mainwindow.h" #include "ui_mainwindow.h"#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow),listPlugins(QList<TabPluginInt…

动态规划--持续更新篇

将数字变成0的操作次数 1.题目 2.思路 在numberOfSteps函数中&#xff0c;首先设置f[0]为0&#xff0c;因为0已经是0了&#xff0c;不需要任何步骤。然后&#xff0c;使用一个for循环从1迭代到输入的整数num。对于每个整数i&#xff0c;如果i是奇数&#xff0c;则将f[i]设置为…

静态时序分析:SDC约束命令set_driving_cell详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 在上文中&#xff0c;我们不建议使用set_drive命令而是使用set_driving_cell命令&#xff0c;这是一个描述输入端口驱动能力更精确的方法。因为大多数情况下&…

SpringBoot实现缓存预热的几种常用方案

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

QEMU开发入门

1. 简介 QEMU&#xff08;Quick EMUlator&#xff09;是一个开源的虚拟化软件&#xff0c;它能够模拟多种硬件平台&#xff0c;并在这些平台上运行各种操作系统。QEMU可以在不同的主机架构之间进行虚拟化&#xff0c;例如x86、ARM、PowerPC、Risc-V等。QEMU是一个功能强大且灵…

LabVIEW开发FPGA的高速并行视觉检测系统

LabVIEW开发FPGA的高速并行视觉检测系统 随着智能制造的发展&#xff0c;视觉检测在生产线中扮演着越来越重要的角色&#xff0c;尤其是在质量控制方面。传统的基于PLC的视觉检测系统受限于处理速度和准确性&#xff0c;难以满足当前生产需求的高速和高精度要求。为此&#xf…

ACL权限、特殊位与隐藏属性的奥秘

1.2 操作步骤 # 1. 添加测试目录&#xff0c;用户&#xff0c;组&#xff0c;并将用户添加到组 ------------------- [rootlocalhost ~]# mkdir /project[rootlocalhost ~]# useradd zs[rootlocalhost ~]# useradd ls[rootlocalhost ~]# groupadd tgroup[rootlocalhost ~]# g…

软件提示找不到MSVCP140.dll是什么意思,修复MSVCP140.dll丢失的多个方法

msvcp140.dll 文件是 Microsoft Visual C 运行时库的一部分&#xff0c;具体来说它是 Visual Studio 2015 版本编译的C应用程序所依赖的一个动态链接库&#xff08;DLL&#xff09;文件。这个 DLL 文件包含了大量由Microsoft开发的标准C库函数&#xff0c;这些函数对于许多在Wi…

大模型综述总结--第一部分

1 目录 本文是学习https://github.com/le-wei/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf的总结&#xff0c;仅供学习&#xff0c;侵权联系就删 目录如下图 本次只总结一部分&#xff0c;刚学习有错请指出&#xff0c;VX关注晓理紫&#xff0c;关注后续。 2、概述…

红日靶场3

靶场链接&#xff1a;漏洞详情 在虚拟机的网络编辑器中添加两个仅主机网卡 信息搜集 端口扫描 外网机处于网端192.168.1.0/24中&#xff0c;扫描外网IP端口&#xff0c;开放了80 22 3306端口 80端口http服务&#xff0c;可以尝试登录网页 3306端口mysql服务&#xff0c;可…

linux卸载mysql8重装5

目录 背景操作卸载重装配置启动 背景 在linux&#xff08;阿里云ECS&#xff09;安装部署Hive时初始化Hive元数据库&#xff0c;遇到报错前一天两三小时没解决&#xff0c;问题定位为mysql&#xff0c;次日打算重装 操作 卸载 停止 MySQL 服务 systemctl stop mysql yum卸载…

ES6内置对象 - Map

Map&#xff08;Map对象保存键值对&#xff0c;键值均不限制类型&#xff09; 特点&#xff1a; 有序&#xff08;Set集合是无序的&#xff09;&#xff1b;键值对&#xff08;键可以是任意类型&#xff09;&#xff1b;键名不能重复&#xff08;如果重复&#xff0c;则覆盖&…

c编译器学习07:minilisp编译器改造(debug模式支持调试)

问题 原版的minilisp编译器不支持argv输入测试&#xff0c;不方便单步调试。 代码改造目标是既不改变原有程序的各种功能&#xff0c; 又能支持个人习惯的vs单步debug模式。 CMakeLists.txt变更 定义DEBUG宏 解决单步调试源码定位偏差问题 cmake_minimum_required(VERSION …

高级语言期末2012级B卷

1.编写函数&#xff0c;输出任意正整数n的位数&#xff08;n默认为存储十进制的整形变量&#xff09; 例如&#xff1a;正整数13&#xff0c;则输出2,&#xff1b;正整数3088&#xff0c;则输出4 #include <stdio.h>int func(int n) {int count0;while(n>0) {n/10;co…

免费的WP模板网站推荐

免费wordpress模板下载 高端大气上档次的免费wordpress主题&#xff0c;首页大图全屏显示经典风格的wordpress主题。 https://www.wpniu.com/themes/289.html wordpress免费企业主题 深蓝色经典实用的wordpress网站模板&#xff0c;用wordpress免费企业主题搭建网站。 http…

基于springboot+vue的安康旅游网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Day17_集合与数据结构(链表,栈和队列,Map,Collections工具类,二叉树,哈希表)

文章目录 Day17 集合与数据结构学习目标1 数据结构2 动态数组2.1 动态数组的特点2.2 自定义动态数组2.3 ArrayList与Vector的区别&#xff1f;2.4 ArrayList部分源码分析1、JDK1.6构造器2、JDK1.7构造器3、JDK1.8构造器4、添加与扩容5、删除元素6、get/set元素7、查询元素8、迭…

java基础-正则表达式+文件操作+内置包装类

目录 正则表达式去除字符串前后空格&#xff1a;去除每一行中首尾的空格去除开头的 数字_ 文件操作打印当前项目路径获取文件的上级目录/和\读取文件 内置包装类System类常用方法 Number类Integer类常用方法Float和Double 正则表达式 去除字符串前后空格&#xff1a; str.tri…