鸿蒙系统(HarmonyOS)介绍

news2024/11/14 2:05:45

一.鸿蒙OS

鸿蒙OS是由华为推出的一款开源操作系统,旨在满足智能终端设备的多样化需求。随着物联网(IoT)的快速发展,传统操作系统面临无法高效支持多设备间的协作与资源共享的问题。鸿蒙OS作为一种全新的架构,具有独特的优势和广阔的应用前景。

1.定义与特性

鸿蒙OS是一个基于微内核设计的操作系统,旨在为不同类型的智能设备提供统一的平台支持。其主要特性包括:

多终端支持:鸿蒙OS能够运行在智能手机、平板电脑、智能家居设备、汽车及可穿戴设备等多种终端上。

高效性:通过资源管理和任务调度优化,鸿蒙OS能够在不同硬件平台上实现流畅的性能。

安全性:内置多层安全机制,保障用户数据和隐私。

与其他操作系统的比较: 与Android和iOS相比,鸿蒙OS强调分布式架构和微内核设计,使其在资源管理、响应速度和安全性方面具有优势。

2.核心技术理念

在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念:

一次开发,多端部署

定义:这一理念强调通过统一的开发框架和API,使开发者能够为多种终端(如手机、平板、智能家居设备等)编写一次代码,并在不同设备上部署和运行。

优势:减少了开发时间和成本,提高了开发效率,方便企业快速响应市场需求和用户反馈。同时,确保用户在不同设备上获得一致的使用体验。

可分可合,自由流转

定义:此理念指的是鸿蒙OS支持应用和服务的灵活组合,允许开发者根据具体场景和需求,动态调整资源和任务的分配。

优势:提升了系统的灵活性和适应性,使得多设备间可以无缝协作,实现任务的智能调度和资源的高效利用。例如,在智能家居环境中,用户可以根据需要随时调整设备之间的协作关系。

统一生态,原生智能

定义:鸿蒙系统致力于建立一个开放的生态环境,将不同厂商和设备连接在一起,提供原生智能体验,促进设备间的智能协同。

优势:通过集成AI能力,鸿蒙OS能够为用户提供个性化和智能化的服务,同时吸引更多开发者和合作伙伴加入生态圈,推动整个生态的繁荣和发展。例如,用户可以通过语音助手控制多个智能设备,实现一体化的智能家居体验。

3.技术架构设计

(1)应用层

定义与功能:

应用层是鸿蒙OS的最上层,直接与用户交互,承载各种类型的应用,包括原生应用和Web应用。

应用类型:

原生应用:基于鸿蒙OS的SDK和API开发,利用系统特性,提供高性能和丰富的用户体验。

Web应用:采用HTML5、CSS和JavaScript等技术开发,支持跨平台运行,适合快速开发和迭代。

(2)框架层

定义与功能:

框架层位于应用层和系统服务层之间,提供一套丰富的API和服务接口,支持应用的开发与运行。

核心组件:

分布式框架:

支持分布式应用的开发,允许不同设备间的资源共享和调用,简化多终端协作的开发过程。

UI框架:提供用户界面构建的支持,包括布局、控件和动画等,帮助开发者快速创建美观的界面。

多媒体框架:

支持音频、视频和图像处理,提供丰富的多媒体功能接口。

服务发现与调用:

提供统一的服务发现机制,应用可以方便地调用系统服务和其他应用的功能。

(3)系统服务层

定义与功能:

系统服务层负责提供各种系统级别的服务,如安全、存储、网络等,支持应用层的需求。

服务种类:

安全服务:提供身份验证、数据加密和权限管理等安全功能,确保应用和用户数据的安全。

数据存储服务:支持本地和云端数据存储,提供数据的读写、备份和恢复功能。

网络服务:提供网络通信、数据传输和远程服务调用等功能,确保应用可以无缝连接互联网和其他设备。

性能优化:

系统服务层通过资源管理和负载均衡等技术,优化系统性能,确保应用运行的高效性。

(4)内核层

定义与功能:

内核层是鸿蒙OS的基础部分,负责管理硬件资源和提供基本的操作系统功能。

微内核特性:

鸿蒙OS采用微内核设计,仅保留最基本的功能,如进程管理、内存管理和设备驱动,其余服务均在用户空间运行,从而提高了安全性和稳定性。

任务调度与IPC:

内核负责高效的任务调度,确保多任务并发执行的流畅性。

进程间通信(IPC)机制支持不同应用和服务之间的数据交换,提供高效的消息传递和同步。

3.鸿蒙的分布式架构

鸿蒙OS的分布式架构是其一大亮点,旨在实现多设备之间的无缝协作与资源共享。随着物联网的发展,用户对跨设备体验的需求日益增长,鸿蒙OS通过分布式架构满足这一需求。  

分布式架构的核心理念

统一性:鸿蒙OS将不同类型的设备(如手机、平板、智能家居、汽车等)整合到同一操作系统中,提供统一的开发和使用体验。

灵活性:支持跨设备运行的应用,可以根据用户需求和设备特性进行动态调整和适配。

资源共享:实现不同设备间的资源共享,允许设备之间协同工作,提高资源利用率。

分布式能力的实现

分布式应用框架:

提供一套完整的API,允许开发者轻松构建和管理分布式应用。

支持分布式数据管理、服务发现与调用,简化多终端协作的开发过程。

分布式服务模型:

每个设备可以作为服务提供者和消费者,能够注册自身服务并发现其他设备的服务。

支持服务的动态发现和调用,用户可以在不同设备上无缝切换,享受一致的体验。

关键技术

分布式数据管理:

提供统一的数据管理接口,支持数据的存储、同步和共享。

数据在设备间的传输采用高效的协议,确保数据的实时性和一致性。

分布式任务调度:

通过任务调度机制,将任务合理分配到不同的设备上执行,提高系统性能和响应速度。

允许用户在一个设备上启动的任务,可以在其他设备上继续进行,支持无缝切换。

4.版本经历

早期版本:

鸿蒙OS 1.0:2019年8月9日,在华为开发者大会(HDC.2019)上,华为正式发布了鸿蒙操作系统。这个版本标志着鸿蒙系统的诞生,为后续的版本奠定了基础。

主要升级版本:

HarmonyOS 2.0:2020年9月10日,华为鸿蒙系统升级至HarmonyOS 2.0。这个版本在性能、功能以及用户体验上都有了显著的提升,为后续的设备升级和生态建设提供了有力支持。

HarmonyOS 3:2022年7月27日,华为发布了鸿蒙HarmonyOS 3系统。支持更多设备加入超级终端,并提升了鸿蒙智联、万能卡片、流畅性能、隐私安全、信息无障碍等方面。

HarmonyOS 4:2023年8月4日,在2023华为开发者大会上,HarmonyOS 4正式发布。

二.Android 系统架构

Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆叠(Software Stack),或称为“软件叠层架构”,叠层主要分成三层:操作系统、中间件、应用程序。其中,操作系统层就是基于Linux内核的。

具体来说,Android的架构从底层到上层依次包括:

Linux内核层:提供核心系统服务,如安全、内存管理、进程管理、网络堆栈和驱动模型等。同时,作为硬件和软件之间的抽象层,隐藏具体硬件细节,为上层提供统一的服务。

各种库和Android运行环境:包括C/C++库集合、核心库集合(提供Java核心类库的功能)以及Dalvik虚拟机(运行Java应用程序的虚拟机,后发展为ART运行时)。

应用程序框架:提供构建应用程序时可能用到的各种API(应用程序编程接口)和组件,开发人员可以使用这些API来开发应用程序,并可以替换组件。

应用程序:包括系统应用程序和用户自行安装的应用程序,这些应用程序都是基于上述层次构建起来的。

三.android的OS与linux OS的关系

Android OS层是基于Linux OS的定制版本,并在其上构建了一整套定制化的软件平台以满足移动设备的需求,所以Android系统不能算是一个全新的系统。

继承与扩展:Android OS继承了Linux OS的许多特性和功能,并对其进行了扩展和优化,以满足移动设备的需求。

定制与优化:Android OS对Linux内核进行了大量的定制和优化工作,包括改进内存管理、进程管理、网络堆栈等方面,以提高系统的性能和稳定性。

开源与共享:Android OS和Linux OS都是开源的操作系统,这意味着它们的源代码都是公开的,并且社区中的开发者可以共同参与开发和改进这些系统。

四.鸿蒙OS与Linux OS的关系

鸿蒙OS不是基于Linux OS开发的,鸿蒙OS也不是Linux OS的发行版或变种,而是一款全新的操作系统。

内核结构:鸿蒙OS是基于微内核设计的,而Linux OS是单内核结构。微内核设计使得鸿蒙OS具有更高的灵活性和可扩展性,能够更好地适应不同设备和场景的需求。

应用场景:鸿蒙OS是一款面向全场景的分布式操作系统,旨在实现设备之间的无缝连接和协同工作。而Linux OS则更侧重于服务器、桌面和嵌入式等领域的应用。

生态系统:鸿蒙OS和Linux OS在生态系统上也有所不同。鸿蒙OS能够与安卓系统兼容,并支持运行安卓应用程序,这使得它在移动设备上具有更广泛的应用基础。而Linux OS则拥有庞大的开源社区和丰富的软件资源,但在移动设备上的应用相对较少。

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

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

相关文章

C#入门 023 什么是类(Class)

什么是“类” 是一种数据结构 是一种数据类型 代表现实世界中的“种类” 构造器和析构器 析构器 析构器(Destructor)是一种特殊的成员方法,用于在对象被垃圾回收器(Garbage Collector, GC)回收之前执行清理操作。…

AXI DMA (一)

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济…

ubuntu 安装kafka-eagle

上传压缩包 kafka-eagle-bin-2.0.8.tar.gz 到集群 /root/efak 目录 cd /root/efak tar -zxvf kafka-eagle-bin-2.0.8.tar.gz cd /root/efak/kafka-eagle-bin-2.0.8 mkdir /root/efakmodule tar -zxvf efak-web-2.0.8-bin.tar.gz -C /root/efakmodule/ mv /root/efakmodule/efak…

TCP 三次握手意义及为什么是三次握手

✨✨✨励志成为超级技术宅 ✨✨✨ TCP的三次握手在笔试和面试中经常考察,非常重要,那么大家有没有思考过为什么是三次握手,俩次握手行不行呢?四次握手行不行呢?如果大家有疑问或者不是很理解,那么这篇博客…

vmware在全屏模式下快速切换回win桌面的方法

window上开发没有ubuntu下的方便,经常在window主机和ubuntu虚拟机直接切换太麻烦,每次得ctrlalt从虚拟机释放鼠标才可以切换,经过折腾发现以下几种方法可行 方法1 虚拟机监听切换按键并通知主机进行切换桌面 虚拟主机放在单独的一个桌面上并…

[Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比

目录 一:Mysql 容器化安装 二:Redis 容器化安装 Redis 简介 Redis 容器创建 三:C容器制作 四:容器资源更新 常见问题 一:Mysql 容器化安装 进入 mysql 的镜像网站,查找 mysql 的镜像 mysql docker…

泷羽sec学习打卡-Linux基础

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于Linux的那些事儿-Base 一、Linux-Base什么时openssl?有哪些加密参数?常用lin…

SpringBoot后端解决跨域问题

1.全局方式 新建一个conifg配置类,内容如下: Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//是否发送Cookie.allowCrede…

odoo17 owl 前端 顶部导航栏右侧添加自定义按钮

odoo17 前端 顶部导航栏右侧添加自定义按钮 先看图 很多时候都想要在这添加个自定义按钮或图标, 无穷下手添加 这里将展示如何在顶部header添加自定义 添加自定义模块 demo 目录结构如下 └─demo│ __init__.py│ __manifest__.py│├─static│ └─src│ ├─s…

Power bi中的lookupvalue函数

lookupvalue函数是一个非常实用的函数,它可用于在两个表之间查找相应的值。kagkupMalue函数可以将一个表中的列值作为参数传递给另一个表中的列,并返回在第二个表中与该值匹配的另一个列的值。在实践中,lookupvalue函数通常用于两个表之间的关…

golang分布式缓存项目 Day5 分布式节点

该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习 1 流程回顾注: 我们在GeeCache 第二天 中描述了 geecache 的流程。在这之前已经实现了流程 ⑴ 和 ⑶&#xf…

[产品管理-76]:延续是创新与颠覆式创新的比较

目录 一、概述 1、定义与特征 2、市场影响与竞争策略 3、实施难度与风险 4、案例分析 二、示例 1. 延续性创新示例 2. 创新示例 3. 颠覆式创新示例 一、概述 延续性创新与颠覆式创新是技术创新领域的两种重要策略,它们在多个方面存在显著差异。 以下是对…

【 AI写作鹅-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

AI:重塑电商行业的创新引擎,开启电商数字化转型新征程

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

语义分割数据增强,图像和标签同步对应详细增强教程(附代码)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《图像增强》 &a…

pgsql和mysql的自增主键差异

1. 当有历史数据存在时, mysql的自增主键是默认从最大值自增。 pgsql的自增主键取初始值开始逐个尝试,所以存在可能与历史数据的主键重复的情况。 pgsql解决上述问题的方式:重设自增值。 SELECT SETVAL(t_db_filed_id_seq, (SELECT MAX(&q…

Spring Cloud Contract快速入门Demo

1.什么是Spring Cloud Contract ? Spring Cloud Contract 是 Spring 提供的一套工具,用于帮助开发者通过契约(Contract)驱动的方式进行微服务的测试和集成。它主要解决微服务之间通信时,如何确保服务提供者和消费者之…

OceanBase JDBC (Java数据库连接)的概念、分类与兼容性

本章将介绍 OceanBase JDBC的 概念与分类,已帮助使用 JDBC 的用户及技术人员更好的 了解JDBC,以及 OceanBase JDBC在与 MySQL 及 Oracle 兼容性方面的相关能力。 一、JDBC 基础 1.1 JDBC 的概念 JDBC 一般指 Java 数据库连接。Java 数据库连接&#xf…

自定义springCloudLoadbalancer简述

概述 目前后端用的基本都是springCloud体系; 平时在dev环境开发时,会把自己的本地服务也注册上去,但是这样的话,在客户端调用时请求可能会打到自己本地,对客户端测试不太友好. 思路大致就是前端在请求头传入指定ip&a…

Go/Golang语言各种数据类型内存字节占用大小和最小值最大值

具体请前往:Go/golang语言基本数据类型字节大小和取值范围(最小值~最大值)