当前位置: 首页 > news >正文

【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:"没有罗马,那就自己创造罗马~"


目录

HarmonyOS 4.0 技术介绍:

HarmonyOS三大特征:

    1.实现硬件互助,资源共享。

     2. 面向开发者,实现一次开发,多端部署。

 3.一套操作系统可以满足不同能力的设备需求,实现统一OS,弹性部署。

HarmonyOS技术架构:

内核层

框架层和系统服务层

应用层

HarmonyOS技术特性:

1.硬件互助,资源共享

(1)分布式软总线 - 万物互联接口

(2)分布式设备虚拟化  - 集优于一体

(3)分布式数据管理 - 数据共享

​(4)分布式任务调度 - 跨设备使用应用

(5)分布式连接能力 

2.一次开发,多端部署

3.统一OS,弹性部署

📝本节小结


HarmonyOS 4.0 技术介绍

鸿蒙OS 4.0(HarmonyOS 4.0)是华为推出的一款全场景、分布式操作系统。鸿蒙4.0是其最新版本,于2023年8月4日发布,主要包括全新UI设计、多设备协同、语音交互等功能。它旨在为不同类型的智能设备提供统一的操作系统,从智能手机和平板电脑到智能家居设备和汽车等,都可以使用同一个操作系统。鸿蒙OS使用分布式技术,可以在(手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR 眼镜等多种不同终端设备)实现协同操作和资源共享提升设备间的互联互通能力。此外,鸿蒙OS还支持多种开发语言和技术,为开发者提供了更多的灵活性和选择余地。


HarmonyOS三大特征:

    1.实现硬件互助,资源共享。

能够将生活场景中的各类终端进行能力整合,形成一个超级虚拟终端,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备,提供流畅的全场景体验。能够让多设备通信能力共享,让手机、手表、电脑等通过NFC功能共享转移任务。

     2. 面向开发者,实现一次开发,多端部署。

对开发者来说,HarmonyoS 采用多种分布式技术,使应用开发与不同终端设备的形态差异无关,从而让开发者能够聚焦上层业务逻辑,更加便捷、高效地开发应用。

分布式技术:是一种系统组成模式,它把分布在不同地址的计算机通过通信网络互联在一起,组成一个计算机群,协同完成各种计算任务。

  1. 减少开发成本和工作量。鸿蒙系统具备分布式架构的特点,可以支持全系列设备,包括智能手机、平板电脑、智能穿戴、智能家居等,开发者无需针对不同的设备进行独立开发只需要一套代码就可以同时适配多种设备
  2. 提升应用性能和稳定性。鸿蒙操作系统采用了微内核架构,具有高效的资源管理和隔离机制,可以有效提升应用的性能和稳定性。
  3. 实现商业化运营。鸿蒙还为开发者提供了多种变现方式,包括应用内购买、广告投放等,帮助开发者实现商业化运营

 3.一套操作系统可以满足不同能力的设备需求,实现统一OS,弹性部署。

对设备开发者来说,Harmonyos采用了组件化的设计方案,可根据设备的资源能力和业务特征灵活裁剪,满足不同形态终端设备对操作系统的要求

Harmonyos提供了支持多种开发语言的 API,供开发者进行应用开发。支持的开发语言包括ArkTS(华为官方推荐-方舟)JS(JavaScript)C/C++ Java


HarmonyOS技术架构:

鸿蒙系统遵从分层设计,由下至上为:内核层,系统服务层,框架层,应用层。

系统功能按照“系统> 子系统 > 功能/模块逐级展开,在多设备部署下,支持开发者根据实际需求裁剪非必要的子系统/模块。

HarmonyOS技术框架视图如下:

内核层

内核层包括内核子系统驱动子系统。

内核层的内核子系统提供各种各样的内核给各种设备进行切换,从而与系统适配多个内核子系统对外提供了API抽象(叫做KAL)接口,使得我们能够在手机,家电设备或者是非常小的单片机上安装HarmonyOS操作系统

Linux内核供应标准设备提供接口(eg:手机)。

liteOS是为内存很小,无需大内核的设备提供接口(eg:家电,汽车设备)。  

驱动子系统:为所有的设备厂商提供HDF(硬件驱动框架)---硬件厂商基于HDF这个驱动框架开发出属于我们这个芯片或设备的驱动,就可以直接应用到HarmonyOS操作系统中所有的厂商都有一个对厂商提供驱动的框架。


框架层和系统服务层

框架层和系统服务层的作用:由HarmonyOS为所有的程序员提供API的调用以及SDK的调用,从而做到系列化的密度管理,插件调用

eg:通过调用UI框架设计用户界面


应用层

应用层包括系统应用和第三方非系统应用。(eg:微信就是应用层的)


HarmonyOS技术特性:

1.硬件互助,资源共享

多种设备之间能够实现硬件互助、资源共享,依赖的关键技术(5方面包括:

分布式软总线分布式设备虚拟化分布式数据管理分布式任务调度等

(1)分布式软总线 - 万物互联接口

分布式软总线:为提供统一的设备之间连接通信的API

分布式软总线示意图如下:

典型应用场景:

(a)智能家居场景:

(b)多屏联动课堂:

(2)分布式设备虚拟化  - 集优于一体

分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理多种设
备共同形成
一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行
硬件,让业务连续地在不同设备间流转,充分发挥不同设备的能力优势,如显示能力、摄
像能力、音频能力、交互能力以及传感器能力
等。

分布式设备虚拟化示意图如下:

典型应用场景:

(a)视频通话场景:在做家务时接听视频电话,可以将手机与智慧屏连接,并将智慧屏的
屏幕、摄像头与音箱
虚拟化为本地资源,替代手机自身的屏幕、摄像头、听筒与扬声
实现一边做家务、一边通过智慧屏和音箱来视频通话


(b) 游戏场景:在智慧屏上玩游戏时,可以将手机虚拟化为遥控器借助手机的重力传感
器、加速度传感器、触控能力,
为玩家提供更便捷、更流畅的游戏体验。 

(3)分布式数据管理 - 数据共享

分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管
理。
 

分布式数据管理示意图如下:

协同办公场景:

将设计文档直接投屏到智慧屏,在智慧屏进行文档的修改操作可以在手机上同步显示

(4)分布式任务调度 - 跨设备使用应用

分布式任务调度基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性,
构建统一的分布式服务管理(发现、同步、注册、调用)机制支持对跨设备的应用进行
远程启动、远程调用、远程连接以及迁移等操作
,能够根据不同设备的能力、位置、业务
运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务

下图以应用迁移为例,简要地展示了分布式任务调度能力。

典型应用场景举例:
导航场景:

(a)如果用户驾车出行,

上车前,在手机规划好导航路线;

上车后,导航自动迁移到车机和车载音箱;

下车后,导航自动迁移回手机。

(b)如果用户骑车出行,在手机规划好导航路线,骑行时手表可以接续导航

外卖场景

手机上点外卖后,可以将订单信息迁移到手表上,随时查看外卖的配送
状态
。 

(5)分布式连接能力 

分布式连接能力提供了智能终端底层和应用层的连接能力通过 USB 接口共享

终端部分硬件资源和软件能力。

开发者基于分布式连接能力,可以开发相应形态的生态产品为消费者提供更丰富的连接体验。

分布式连接能力示意图如下:


2.一次开发,多端部署


HarmonyOS 提供了用户程序框架、Ability 框架以及 UI 框架(使用栅格化布局),支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。- 这些框架可以让我们开发好应用程序App以后在多种设备上进行部署。开发好的APP可以在不同设备进行安装使用

栅格化布局:开发出来的网页可以自动适应横竖屏页面

一次开发、多端部署示意图见下图

3.统一OS,弹性部署


HarmonyOS 通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。

支持各组件的选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。
支持组件内功能集的配置(组件可大可小):根据硬件的资源情况和功能需求,可以
选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。

支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的
依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。

📝本节小结

组件不是简单的组件,而是基于HarmonyOS开发的组件,后面会继续学习~

本篇博客主要介绍了华为的鸿蒙系统(HarmonyOS4.0)的

发布,三大特征,技术架构,技术特性

喜欢的小伙伴请多多支持!

这里是Aileen

一名不断学习

的♀大学生

相关文章:

【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

​ 🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 HarmonyOS 4.0 技术介绍: HarmonyOS三大特征: 1.实现硬件互助&#…...

Qt图像处理-Qt中配置OpenCV打开本地图片

本文讲解Qt中配置OpenCV过程并用实例展示如何使用OpenCV打开图片(windows环境下) 一、下载OpenCv 本文使用版本OpenCV-MinGW-Build-OpenCV-3.4.5 下载地址: https://codeload.github.com/huihut/OpenCV-MinGW-Build/zip/refs/heads/OpenCV-3.4.5 点击Code-local-Downlo…...

HTML中RGB颜色表示法和RGBA颜色表示法

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中RGB颜色表示法和RGBA颜色表示法以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以…...

Openwrt源码下载出现“The remote end hung up unexpected”

最近项目原因需要下载openwrt21.02版本源码,花费了很多时间,找到正确方法后,发现可以节省很多时间,记录下过程,方便自己,可能方便他人。 一.问题阐述 openwrt21.02下载链接如下: git clone -…...

Spring定时任务动态更改(增、删、改)Cron表达式方案实例详解

Spring定时任务动态更改(增、删、改)Cron表达式方案实例详解 最近在做一个需求,用户可以在平台上配置任务计划数据(就是任务的执行和描述的相关信息,包括任务参数、cron表达式),配置后&#xf…...

常用登录加密之Shiro与Spring Security的使用对比

Shiro与Spring Security都是主流的身份认证和权限控制安全框架,Shiro偏向于前后端不分离平台,而Spring Security更偏向于前后端分离平台。接下来简单列一下两种登录验证的执行流程和示例,了解实际运用中的登录执行流程,然后重点剖…...

获取文件路径里的文件名(不包含扩展名)

“./abc/abc/llf.jpg” 写一个代码,让我获得“llf”这段字符串 import osfile_path "./abc/abc/llf.jpg" file_name os.path.splitext(os.path.basename(file_path))[0] print(file_name)在这个代码中,我们使用了os.path模块来处理文件路径…...

HiveSql语法优化二 :join算法

Hive拥有多种join算法,包括Common Join,Map Join,Bucket Map Join,Sort Merge Buckt Map Join等,下面对每种join算法做简要说明: Common Join Common Join是Hive中最稳定的join算法,其通过一个M…...

Leetcode—459.重复的子字符串【简单】

2023每日刷题(五十九) Leetcode—459.重复的子字符串 算法思想 巧解的算法思想 实现代码 从第一个位置开始到s.size()之前,看s字符串是否是ss的子串 class Solution { public:bool repeatedSubstringPattern(string s) {return (s s).fin…...

Mac安装Typora实现markdown自由

一、什么是markdown Markdown 是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮…...

前后端传参格式

前端发送 Serialize()方法 是指将一个抽象的JavaScript对象(数据结构)转换成字符串。这个字符串可以利用标准格式发送到服务器,被视为URL查询字符串或者POST数据,或者由于复杂的AJAX请求。这个方法使用的数据结构可以是JavaScri…...

【后端学前端】第三天 css动画 动态搜索框(定位、动态设置宽度)

1、学习信息 视频地址&#xff1a;css动画 动态搜索框&#xff08;定位、动态设置宽度&#xff09;_哔哩哔哩_bilibili 2、源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>test3</title>…...

51.0/表单(详细版)

目录 51.1 输入元素 input 51.1.1 文本域 51.1.2 密码输入框 51.1.3 单选框 51.1.4 复选框 51.1.5 提交按钮 51.1.6 重置按钮 51.1.7 普通按钮 51.1.8 图片按钮 51.1.9 隐藏域 51.1.10 文件域 51.2 多行文本框 51.3 下拉列表框 51.4 表单的综合示例 表单是网页中…...

动态规划(Dynamic Programming)

动态规划&#xff08;Dynamic Programming&#xff09;&#xff1a;是运筹学的一种最优化方法&#xff0c;只不过在计算机问题上应用比较多 DP常见步骤&#xff1a; 暴力递归/穷举记忆化搜索&#xff08;傻缓存 递归&#xff09;,使用备忘录/ DP Table 来优化穷举过程严格表结…...

linux使用文件描述符0、1和2来处理输入和输出

文件描述符012 在Linux中&#xff0c;文件描述符0、1和2分别代表标准输入&#xff08;stdin&#xff09;、标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;。它们用于处理进程的输入和输出。 文件描述符0&#xff08;stdin&#xff09;&…...

how to write and run .ps1

use .txt filechange the suffix to .ps1 from .txt 3&#xff09;how to run .ps1 3.1) PS D:> .\test.ps1 1 2 3 4 5 6 7 8 9 10 3.2) PS D:> tes then press tab key to compensate and complete the whole file name...

如何在PHP中处理跨域请求?

在 PHP 中处理跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;&#xff0c;通常需要在服务器端设置相应的 HTTP 头&#xff0c;以允许来自其他域的请求。以下是一些处理跨域请求的方法&#xff1a; 设置 HTTP 头&#xff1a; 在服务器端&#…...

spring boot 配置多数据源 踩坑 BindingException: Invalid bound statement (not found)

在上一篇&#xff1a;《【已解决】Spring Boot多数据源的时候&#xff0c;mybatis报错提示&#xff1a;Invalid bound statement (not found)》 凯哥(凯哥Java) 已经接受了&#xff0c;在Spring Boot配置多数据源时候&#xff0c;因为自己马虎&#xff0c;导致的一个坑。下面&a…...

【产品】Axure的基本使用(二)

文章目录 一、元件基本介绍1.1 概述1.2 元件操作1.3 热区的使用 二、表单型元件的使用2.1 文本框2.2 文本域2.3 下拉列表2.4 列表框2.5 单选按钮2.6 复选框2.7 菜单与表格元件的使用 三、实例3.1 登录2.2 个人简历 一、元件基本介绍 1.1 概述 在Axure RP中&#xff0c;元件是…...

Python语言学习笔记之十(字符串处理)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 字符串处理&#xff1a;以实现字符串的分割、替换、格式化、大小写转换&#xff0c;Python字符串处理是指对Py…...

WPF-附加属性《十二》

非常重要 依赖属性和附加属性&#xff0c;两者是有关系的&#xff0c;也是有些区别的&#xff0c;很多时候&#xff0c;可能会把两者混淆了。 附加属性&#xff08;Attach Property&#xff09; 顾名思义&#xff0c;就是附加上面的属性&#xff0c;自身是没有的&#xff0c;…...

算法通关第十九关-青铜挑战理解动态规划

大家好我是苏麟 , 今天聊聊动态规划 . 动态规划是最热门、最重要的算法思想之一&#xff0c;在面试中大量出现&#xff0c;而且题目整体都偏难一些对于大部人来说&#xff0c;最大的问题是不知道动态规划到底是怎么回事。很多人看教程等&#xff0c;都被里面的状态子问题、状态…...

2023 GitHub年度排行榜,JEECG上榜第三名,势头依然很猛~

2023 GitHub年度排行榜TOP10&#xff0c;JeecgBoot上榜第三名&#xff0c;势头依然很猛~...

由@EnableWebMvc注解引发的Jackson解析异常

同事合了代码到开发分支&#xff0c;并没有涉及到改动的类却报错。错误信息如下&#xff1a; Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.conv…...

ce从初阶到大牛--函数

1、显示/etc/passwd文件中以bash结尾的行&#xff1b; grep "bash$" /etc/passwd2、找出/etc/passwd文件中的三位或四位数&#xff1b; grep -E \b[0-9]{3,4}\b /etc/passwd3、找出/etc/grub2.cfg文件中&#xff0c;以至少一个空白字符开头&#xff0c;后面又跟了非…...

Java学习异常类

1 定义 异常就是指程序运行时可能出现的一些错误&#xff0c;例如数组越界、除零等。 我们也可以把自己觉得不合理的结果定义为“异常” 2 异常与错误 3 Java中的异常处理 catch语句&#xff1a;对异常的处理语句放在 catch部分&#xff0c;可以包含多个catch语句&#xff0c…...

Python 全栈体系【四阶】(六)

第四章 机器学习 五、线性模型 1. 概述 线性模型是自然界最简单的模型之一&#xff0c;它描述了一个&#xff08;或多个&#xff09;自变量对另一个因变量的影响是呈简单的比例、线性关系。例如&#xff1a; 住房每平米单价为 1 万元&#xff0c;100 平米住房价格为 100 万…...

从memcpy()函数中学习函数的设计思想

memcpy()函数&#xff1a;可以理解为内存拷贝。 他的函数定义如下的 my_memcpy()函数相同。 下面这个函数是我的模拟实现&#xff0c;现在让我们一起来学习一下这个函数的设计思想&#xff1a; void * my_memcpy(void * des, const void* src, size_t size) {void * p des;…...

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装

【PostgreSQL】从零开始:&#xff08;二&#xff09;PostgreSQL下载与安装 Winodws环境下载与安装PostgreSQL下载PostgreSQL安装PostgreSQL1.登录数据库2.查看下我们已有的数据库 Liunx环境下载与安装PostgreSQL使用YUM下载安装PostgreSQL1.下载PostgreSQL安装包2.安装PostgreS…...

PHP的垃圾回收机制是怎样的?

PHP 使用自动垃圾回收机制来管理内存。PHP 的垃圾回收主要依赖于引用计数和周期性垃圾回收两种策略。 引用计数&#xff1a; PHP 使用引用计数来跟踪变量的引用次数。每当一个变量被引用&#xff0c;其引用计数就增加&#xff1b;每当一个引用被释放&#xff0c;计数就减少。当…...

个人直播网站怎么做/百度搜索广告价格

L1-083 谁能进图书馆 为了保障安静的阅读环境&#xff0c;有些公共图书馆对儿童入馆做出了限制。例如“12 岁以下儿童禁止入馆&#xff0c;除非有 18 岁以上&#xff08;包括 18 岁&#xff09;的成人陪同”。现在有两位小/大朋友跑来问你&#xff0c;他们能不能进去&#xff…...

网站上动画视频怎么做的/北京百度seo点击器

本文内容 引入IHttpModule 概述创建自定义 HTTP 模块的步骤演示创建自定义 HTTP 模块 HTTP 模块的工作方式 HTTP 模块与 Global.asax 文件参考资料引入 本文在 VS 2008 和 IIS 6 环境下概述如何利用 IHttpModule 自定义 HTTP 模块。 当我们在 VS 2008 里新建一个 Web 应…...

wordpress分类自定义title/网络销售真恶心

题目描述 学校植树节开展植树活动&#xff0c;已知CoCo所在的班级分到树苗m株&#xff0c;班里参加植树的同学有n人&#xff08;m>n&#xff09;&#xff0c;请问每位同学平均可以植树几株&#xff1f;还有几株剩余&#xff1f;输入要求 输入两个整数m和n&#xff0c;分别…...

泉州网站制作设计/个人网页免费域名注册入口

1.场景 参数验证功能 1 是基于 JSR303 实现的&#xff0c;用户只需标识 JSR303 标准的验证 annotation&#xff0c;并通过声明 filter 来实现验证 2。 2.maven以依赖 <dependency><groupId>javax.validation</groupId><artifactId>validation-api</…...

企点账户中心/网络优化工具app手机版

近日知名苹果分析师郭明錤指出苹果研发的5G基带芯片再次失败&#xff0c;今年下半年的iPhone14将不得不继续采用高通的5G基带芯片&#xff0c;此举反证华为海思研发的5G手机SOC芯片在技术方面的领先优势。苹果研发的5G芯片其实只是5G基带芯片&#xff0c;它此前的iPhone一直都采…...

画册设计1p一般多少钱/网站seo优化

数位DP 什么是数位DP 数位DP是DP的一种&#xff0c;顾名思义&#xff0c;按每一个数位来进行DP。 什么时候使用 题目的要求与一个数字相关&#xff0c;并且它能通过每一个数位来进行转移。 例题&#xff1a;求所有nnn位数中能被mmm整除的数的个数。 怎么使用 一般的DP是多…...