鸿蒙开发学习|HarmonyOS是什么

news2025/1/19 7:58:50

鸿蒙开发学习

第一章 HarmonyOS是什么

文章目录

  • 鸿蒙开发学习
  • 前言
  • 一、什么是HarmonyOS
  • 二、HarmonyOS系统架构
    • 2.1 内核层
    • 2.2系统服务层
    • 2.3框架层
    • 2.4应用层
  • 三、HarmonyOS系统特性
    • 3.1 对消费者
    • 3.2.对应用开发
    • 3.3.对设备开发
  • 四、HarmonyOS系统四大技术特性
    • 4.1 分布式架构首次用于终端OS,实现跨终端无缝协同体验
    • 4.2 确定时延引擎和高性能IPC技术实现系统天生流畅
    • 4.3 基于微内核架构重塑终端设备可信安全
    • 4.4 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
  • 五、鸿蒙开发学习必备技能
  • 总结

前言

HarmonyOS是华为开发的一款面向未来的,全场景“分布式智慧”操作系统。将逐步覆盖1+8+N全场景终端设备。

  • 1:代表智能手机
  • 8:代表PC,平板,手表,智慧屏,AI音箱,耳机,AR/VR眼镜,车机
  • N:代表loT生态产品

对于开发者而言,HarmonyOS通过多种分布式技术,整合不同终端硬件熊力、行程一个虚拟的超级终端。
在这里插入图片描述

一、什么是HarmonyOS

对于鸿蒙,华为给出的官方定义是“面向全场景的分布式操作系统”。大概意思是:鸿蒙可以通过分布式技术,把物理上相互分离的多个设备,融合成一个“超级终端”。
举个例子:
现在很多人家里都有智能家居设备,通过特定的APP和系统,我们可以控制电灯的亮灭、窗帘的开合;但是,由于不同的生产商往往没有互联互通,用户可能需要使用多个APP甚至是多种操作系统。
总结:
(1)解决用户面对大量智能终端体验割裂的问题。
在这里插入图片描述
(2)harmonyos通过各种分布式技术整合不同超级终端的能力形成一个 虚拟的超级终端。应用开发者可基于harmonyos超级终端开发应用,聚焦上层业务逻辑,无需关注硬件差异。
在这里插入图片描述
(3)设备开发者可以按需调用其他终端能力。带来基于超级终端的创新服务体验。
在这里插入图片描述

二、HarmonyOS系统架构

harmonyos采用分层架构,共四层,从下向上依次为内核层、系统服务层、框架层、应用层。
在这里插入图片描述

2.1 内核层

  • 内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
  • 驱动子系统:硬件驱动框架(HDF)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。

2.2系统服务层

系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:

  • 系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
  • 基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X)
    、MSDP&DV等子系统组成。
  • 增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
  • 硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。

根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

2.3框架层

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

2.4应用层

应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

三、HarmonyOS系统特性

在这里插入图片描述

3.1 对消费者

所有搭载系统的设备形成一个超级终端,设备间能力互助数据共享。

3.2.对应用开发

分布式理念,一次开发,多端部署,屏蔽设备差异,开发更聚焦业务。

3.3.对设备开发

组件化灵活裁剪,统一系统,弹性部署。

四、HarmonyOS系统四大技术特性

在这里插入图片描述

4.1 分布式架构首次用于终端OS,实现跨终端无缝协同体验

鸿蒙OS的“分布式OS架构”和“分布式软总线技术”通过公共通信平台,分布式数据管理,分布式能力调度和虚拟外设四大能力,将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。

4.2 确定时延引擎和高性能IPC技术实现系统天生流畅

鸿蒙 OS通过使用确定时延引擎和高性能IPC两大技术解决现有系统性能不足的问题。确定时延引擎可在任务执行前分配系统中任务执行优先级及时限进行调度处理,优先级高的任务资源将优先保障调度,应用响应时延降低25.7%。鸿蒙微内核结构小巧的特性使IPC(进程间通信)性能大大提高,进程通信效率较现有系统提升5倍。

4.3 基于微内核架构重塑终端设备可信安全

鸿蒙OS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。微内核只提供最基础的服务,比如多进程调度和多进程通信等。

4.4 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享

鸿蒙OS凭借多终端开发IDE,多语言统一编译,分布式架构Kit提供屏幕布局控件以及交互的自动适配,支持控件拖拽,面向预览的可视化编程,从而使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发,多端部署,在跨设备之间实现共享生态。华为方舟编译器是首个取代Android虚拟机模式的静态编译器,可供开发者在开发环境中一次性将高级语言编译为机器码。此外,方舟编译器未来将支持多语言统一编译,可大幅提高开发效率。

五、鸿蒙开发学习必备技能

1.鸿蒙系统的定位,架构和技术特性
2应用开发的基础概念和知识
3.开发环境,开发工具
4.应用重要组成: ability
5.系统提供两大类Ul:java Ul和方舟Ul(js/ts ui).
6.多种业务功能:媒体,安全,AI,网络,设备管理,数据管理,线程,IDL
7.调试:真机,模拟器
8.发布方式


总结

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用最合适的设备提供最佳的场景体验

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

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

相关文章

LabVIEW最大内存块属性不存在

LabVIEW最大内存块属性不存在在NI Linux实时操作系统目标中使用系统属性节点和分布式系统管理器(DSM),但遇到一些问题:它未正确报告系统上的可用物理内存量。在NI Linux实时系统上出现错误-2147220623尝试在NI Linux实时上监测RAM…

webpack自动化打包

webpack自动化打包 首先下载包 npm i webpack-dev-server -D 配置 webpack.config.js const path require(path)//nodejs核心模块,专门用来处理路径问题 const ESLintPlugin require(eslint-webpack-plugin) const HtmlWebpackPlugin require(html-webpack-p…

java-加密、解密算法

rsa2048、sha256 rsa2048对整个文件进行hash算法,生成公钥、私钥后用于数字签名, sha256通过公钥和私钥,作为证书使用。单板打包后对每个动态库sha256计算颁发证书 sha256签名后,rsa2048进行加密。签名用于校验加密数据没有被更…

初始化一个vite+vue3项目,配置eslint+Prettier

引用vite官网的一段话,解释一下我们为什么要选择使用vite 时过境迁,我们见证了诸如 webpack、Rollup 和 Parcel 等工具的变迁,它们极大地改善了前端开发者的开发体验。 然而,当我们开始构建越来越大型的应用时,需要处…

Java后端数据校验学习总结

Java后端校验总结 后端校验注解一直在用,但是感觉不是特别清楚,希望通过写这篇文章搞清楚。 Spring自带的Validation校验框架 Spring提供了Validator接口来校验对象,主要涉及到的方法和类如下: supports方法:设置校…

win11任务栏图标闪烁|任务栏QQ图标闪动|新消息任务栏自动弹出|设置自动隐藏任务栏之后,QQ或微信等工具新消息自动弹出任务栏并颜色提示问题解决方案

背景介绍: 今天正常使用电脑时也出现消息弹出问题(已经设置隐藏任务栏),很头疼那么时什么情况,该如何组去解决呢?(微信任务栏闪动未读消息) MyDockFinder Windows 桌面美化工具 目录 背景介绍 解决问题 微信环境测试 初始界面(微信) 打开微信 …

PostMan简介2022黑马跟学

2022黑马PostMan简介跟学1.PostMan工具的使用1.1 PostMan简介1.2 PostMan安装1.3 PostMan使用1.3.1 创建WorkSpace工作空间1.3.2 发送请求(1).以百度为例发送get请求(2).以百度为例发送post请求1.3.3 保存当前请求1.3.4 创建server端1.PostMan工具的使用 1.1 PostMan简介 代码…

运算放大电路(三)-加法器

加法器 由虚短知: V- V 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 (V2 – V-)/R2 (Vout – V-)/R3 ……b 代入a式,b式变为 V1/R1 V2/R2 Vout/R3 如果取 R1R2R3 则上式变为 Vo…

ideal整合reids实现缓存查询

目录 前言: 一.工作流程 二. RedisConfig类 三.application.properties 四.开启linux中的redis 五.使用redis结合数据库进行数据查询 5.1编程式缓存 5.2声明式缓存 5.2.1在启动类上添加注解 5.2.2实现代码 六.运行结果 ​编辑 前言: 废话不多讲…

Java文件读写和CSV文件解析(读取csv文件的一列或若干列)

文件类 Java 读文件流的知识不可少,先复习一下吧! OREACLE JDK8 DOCS 文件类是Java IO的一个对象,用于指定文件的相关信息,位置和名称信息。如txt文件,csv文件对Java来说就是一个文件类。 开发手册中指出&#xff0…

Android实战场景 - 保存WebView中的图片到相册

去年同事写了一个 “在H5中保存图片到相册” 的功能,虽然有大致实现思路,实现起来也没问题,但是感觉同事考虑问题的很周全,当时候就想着去学习一下,但是项目太赶没顾得上,索性现在有时间,准备好…

2023-02-01 读书笔记:《有趣的统计》-1-基础知识

2023-02-01 读书笔记:《有趣的统计》-1-基础知识 75招学会数据分析 —— 2014 Doctor.Bruce Frey 序 统计学: 最初,用于确定某些事情发生的可能性;不断发展,根据样本数据准确推断总体数据特征的方法(推…

c语言基础之分支和循环语句

c语言基础之分支和循环语句分支语句和循环语句什么是语句?if语句switch语句在switch语句中的 breakwhile循环while语句中的break和continuefor循环break和continue在for循环中do...while()循环goto语句写在最后:📌————本章重点————&a…

全球疫情期间的校园招聘:可以学到的6个教训

疫情放开后,校园招聘逐渐回暖,谁能率先有效整合线上线下校招,企业将从一开始就处于战略领先地位。下面梳理了全球招聘团队在疫情期间的6个校招教训,希望对你有启发。01重新规划线上工具的应用玩法现如今,学生已通过网课…

【C++提高编程】vector容器详解(附测试用例与结果图)

目录1.vector容器1.1 vector基本概念1.2 vector构造函数1.3 vector赋值操作1.4 vector容量和大小1.5 vector插入和删除1.6 vector数据存取1.7 vector互换容器1.8 vector预留空间1.vector容器 1.1 vector基本概念 功能: vector数据结构和数组非常相似,…

【C++】类和对象(上)

文章目录1. 面向过程和面向对象的初步认识2. 类的引入3. 类的定义4. 类的访问限定符及封装4.1 访问限定符4.2 封装5. 类的作用域6. 类的实例化7. 类对象模型7.1 如何计算对象的大小7.2 类对象的存储方式7.3 结构体内存对齐规则8. this指针8.1 this指针的引出8.2 this指针的特性…

性能技术分享|Jmeter+InfluxDB+Grafana搭建性能平台(二)

二、CentOS安装:方式一:把下载的.rpm包推送到服务器上;方式二:直接命令行安装#下载wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.1.x86_64.rpm#安装yum localinstall?influxdb-1.7.1.x86_64.rpm -y2.3 修改配…

三十一、RabbitMQ(2)

🌻🌻 目录一、RabbitMQ 入门及安装1.1 概述1.3 Erlang 安装1.2.1 安装下载1.2.3 安装依赖环境1.2.4 安装 Erlang1.2.4 Erlang安装成功1.3 安装 RabbitMQ1.5启动 rabbitmq 服务1.4 开启管理界面及配置1.5.1 设置配置文件二、RabbitMQWeb 管理界面及授权操…

【JVM】垃圾回收算法与分代回收

文章目录1. 垃圾回收算法概述2. 标记-清除算法3. 标记-复制算法4. 标记-整理算法5. 分代回收本文参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 1. 垃圾回收算法概述 根据判定对象消亡的角度来看,垃圾收集算…

基于PHP的学院社团管理系统

摘 要“互联网”的战略实施后,很多行业的信息化水平都有了很大的提升。但是目前很多学校日常工作仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,这样就浪费了许多的人力物力,工作效率较低&#xff…