HarmonyOS :
HarmonyOS 移动应用开发
什么是HarmonyOS?:
官方解释:HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。 鸿蒙操作系统在传统的单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。使得用户在使用时可以在多个终端硬件之间进行很好的切换。
HarmonyOS的目标是覆盖“1+8+N”全场景终端设备,这里“1”代表的是手机,“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”代表其它物联网(Internet of Things,IoT)生态产品。 对应用开发者而言,HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。 对设备开发者而言,HarmonyOS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
HarmonyOs 历史:
2012年,华为公司开始规划自己操作系统,命名为“鸿蒙”。
2018年8月24日,华为公司向国家知识产权商标局申请了“华为鸿蒙”商标,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。
2019年8月9日,华为正式发布鸿蒙系统,同时表示,鸿蒙操作系统开源。
2020年8月7日-8日,在中国信息化百人会2020年峰会上,华为公司表示,鸿蒙操作系统已经应用到华为智慧屏和华为手表上,未来会应用到全场景终端设备上。
2020年9月10日,华为鸿蒙系统升级至2.0版本,即HarmonyOS 2.0,并面向终端设备开源。
2020年12月16日,华为鸿蒙OS正式发布了面向手机开发者的Beta版本,即HarmonyOS 2.0。
2021年6月2日晚,华为正式发布HarmonyOS 2。
2022年7月27日,华为发布 HarmonyOS 3 系统。
2023年8月4日正式发布HarmonyOS 4.0
2024年6月21日鸿蒙开发者大会展示鸿蒙生态、HarmonyOS NEXT 鸿蒙星河版设计理念
HarmonyOS的特性:
三个显著技术特性: 硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署.
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据.
HarmonyOS的特性2:
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端
HarmonyOS的特性3:
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。
HarmonyOS的特性4:
分布式任务调度构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作。
HarmonyOS特性5:
HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发。
HarmonyOS特性6:
HarmonyOS通过组件化和小型化等设计方法,支持多种终
端设备按需弹性部署。
支持各组件的选择(组件可有可无)
支持组件内功能集的配置(组件可大可小)
支持组件间依赖的关联(平台可大可小)
HarmonyOS体系架构:
HarmonyOS系统整体上采用的的是分层的体系架构。 从下向上依次为:内核层、系统服务层、框架层和应用层。
iOS 体系架构
Android 体系架构
支持的开发语言:
进行HarmonyOS相关的开发可以选择的语言很多 如:C/C++、Java、XML、JS(JavaScript)、TS(TypeScript)、ArkTS、CSS和HML(HarmonyOS Markup Language)等等。
在应用开发层面,目前主要支持的是两大语言: 一个是JavaScript,简称JS; 一个是改进的TypeScript,也称eTS或ArkTS。 当然也可进行基于C/C++、Java、Python等语言的开发。
常见操作系统介绍:
操作系统(Operating System,简称OS),是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件。 介绍几个操作系统:Windows系列、Unix、Linux、Mac OS、iOS、Android、HarmonyOS。
Windows:是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现,这样可能是Windows得以广泛使用的原因之一。
常见操作系统介绍2:
Windows部分版本:Windows3.0、Windows98、Windows2000、WindowsXP、Win7、Win8、Win10
Windows3.0界面:
常见操作系统介绍3
Windows部分版本:Windows3.0、Windows98、Windows2000、WindowsXP、Win7、Win8、Win10
Windows98界面:
常见操作系统介绍4
Windows部分版本:Windows3.0、Windows98、Windows2000、WindowsXP、Win7、Win8、Win10
WindowsXP界面
常见操作系统介绍5:
Windows部分版本:Windows3.0、Windows98、Windows2000、WindowsXP、Win7、Win8、Win10
Windows10界面
常见操作系统介绍6:
介绍几个操作系统:Windows系列、Unix、Linux、Mac OS、iOS、Android、HarmonyOS。
UNIX:UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构的分时操作系统。长期由一些大型的公司在维护,限制了广泛推广。
Linux:和UNIX完全兼容,是由芬兰赫尔辛基大学计算机系学生Linus Torvalds在基于UNIX的基础上开发的一个操作系统。开源,得到了长足发展。出现了很多发行版本,如:FedoraCore、CentOS、Debian、Ubuntu、Gentoo、FreeBSD、openSUSE等等.
常见操作系统介绍7:
Linux不同版本:FedoraCore、CentOS、Debian、Ubuntu、Gentoo、FreeBSD、openSUSE等等。
FedoraCore 界面
常见操作系统介绍8:
介绍几个操作系统:Windows系列、Unix、Linux、Mac OS、iOS、Android、HarmonyOS。
Mac OS:是有苹果公司推出的专门运行与苹果电脑上的操作系统,在商用领域,Mac OS是图形用户界面首个获得成功的。1984年诞生,历经几十年发展,版本也有很多。
iOS:iOS可以说是macOS的手机版,它们都属于类Unix的商业操作系统。因为主要是手机上使用,原名为iPhone OS,后来因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC上宣布改名为iOS。
HarmonyOS 是一款面向全场景的 分布式操作系统。 Harmony本意也有和谐协调,希望鸿蒙操作系统功能协调各种软硬件资源,为我们带来更多的方便。
第2章 第一个HarmonyOS应用
搭建开发环境:
DevEco Studio 介绍
DevEco Studio集成开发环境是基于IntelliJ IDEA Community开源版本开发的,面向全场景多设备,提供一站式的分布式应用开发平台。
开发者可以通过该IDE进行项目创建、开发、编译、调试、发布等。DevEco Studio使得开发者可以方便地开发各种HarmonyOS应用,提升开发效率。
除了具有基本的代码开发、编译构建及调测等功能外,还具有以下特点,
1)多设备统一开发环境 2)高效智能代码编辑 3)多端双向实时预览 4)多端设备模拟仿真 5)低代码可视化开发.
下载安装DevEco Studio
准备工作:
注册华为开发者联盟帐号,并实名认证(因为下载使用DevEco Studio及远程模拟器需要华为开发者联盟帐号)
注册网站:https://developer.harmonyos.com下载:
链接:https://developer.harmonyos.com/cn/develop/deveco-studio安装:
下载完成Windows(64-bit)版本后,解压,然后双击运行deveco-studio-xxxxx.exe, 按照安装向导安装。
开发运行第一个鸿蒙应用:
开发并上架一个HarmonyOS应用到华为应用市场的4个步骤:
1)开发准备:开发准备包括注册和认证华为开发者账号,下载和安装DevEco Studio,下载HarmonyOS SDK。具体操作可以参考配置开发环境。
2)开发应用:DevEco Studio集成了Phone、Tablet、Wearable等多种设备的应用模板,可以通过向导创建工程,并实现自己的应用。开发过程中可以通过预览器等进行预览等工作,DevEco Studio提供了丰富的编码开发支持。
3)运行、调试和测试应用:应用开发过程中或完成后,可以使用真机进行调试或模拟器进行调试,DevEco Studio支持单步调试、跨设备调试、跨语言调试、变量可视化等调试手段,使得应用/服务调试更加高效。
4)签名发布应用:HarmonyOS应用开发完成后,如果需要分发,需要将应用发布至华为应用市场。发布到华为应用市场的应用,必须使用发布证书进行签名。
第1、4步骤需要做的工作的比较固定,基本都是一次性工作,第2、3步骤的工作往往是大量的,一个应用从开始开发到最终上线中间一般需要进行大量的分析、设计、编码、测试等工作,有的还会进行反复迭代。
开发运行第一个鸿蒙应用:
第一次运行项目基本过程:
鸿蒙虚拟机管理
选择菜单Tools->Device Manager
登录华为开发者账号
允许DevEco Studio访问账号
启动模拟器
选择P50打开手机模拟器
运行项目
选择Run->Run entry
链接设备HUAEWEI模拟器
点击 OK 运行
项目启动过程:
基于Stage模型的HarmonyOS应用项目中,每一个应用都有一个module.json5配置文件
首先会解析配置文件,获得配置文件中的module配置信息,找到要启动的应用对象。
根据配置文件中模块(module)配置的能力(abilities)信息获得配置的能力(ability),找到主能力。
能力的skills属性actions值设置为action.system.home的称为主能力,首先启动的能力。
接下来,系统会进入到主能力的生命周期过程。加载页面(page)
应用项目结构:
APP Pack = Application Package,简称APP Pack,鸿蒙应用发布应用包
APP由一个或多个HAP(HarmonyOS Ability Package)以及描述APP属性的pack.info文件组成
一个HAP在工程目录中对应一个模块(Module),模块又由代码、资源、第三方库及应用清单文件等组成。
一个模块下面可以包含多个能力(Ability),其中有一个能力为主能力,也称为入口能力或Ability。主能力是应用启动首先加载的能力。
项目结构:
FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型 其中FA支持Page Ability,PA支持Service Ability、Data Ability,以及FormAbility。API 8及其更早版本的应用程序只能使用FA模型进行开发。
Stage模型将Ability分为PageAbility和ExtensionAbility两大类 其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列ExtensionAbility,以便满足更多的使用场景。Stage模型从API 9开始支持。
目录结构:
AppScope:应用的资源和配置信息,其中包括应用的全局资源和应用的配置文(app.json5)。
entry:默认启动模块,即主模块,开发者用于存放编写的源码文件以及开发资源文件的目录。
build:构建目录,用于存放编译构建生成的文件,有开发环境自动生成,一般开发者无需修改。
entry→src:源代码目录,用于存放编写的程序源代码,也包括配置文件代码等。
entry→src→main→ets:用于存放eTS源代码文件的目录。
entry→src→main→resources:用于存放应用所用到的资源文件目录,其下面又分为元素(element)资源和媒体(media)资源,元素资源如颜色、字符串、形状等,媒体资源如图片、音频等。
entry→src→main→module.json5:模块的配置文件,如模块中的Ability配置等。
entry→src→ohosTest:存放单元测试代码的目录。
entry→build-profile.json5:编译配置文件。
node_modulers:该文件夹中存放的是node.js包管理工具安装的包。
local.properties:该文件保存了sdk等对应的本地路径。
资源和配置:
HarmonyOS应用中资源可以分为三类: 基础资源, 原始文件资源, 限定词资源
base下包括element、media等子目录,子目录也可以自行建立,不同的子目录用于存放不同类型的资源。 在element目录下一般用于存放字符串、颜色、整数、浮点数、复数、布尔值、数组等。 element资源的目录下,可以通过右键快捷菜单创建需要的元素资源文件.
相关文章:

HarmonyOS :
HarmonyOS 移动应用开发 什么是HarmonyOS?: 官方解释:HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。 鸿蒙操作系统在传统的单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式理念&#…...

C# EF 使用
WPF EF MySQL - - -版本.NET Framework4.7.2EntityFramework6.5.1MySql.Data.EntityFramework9.1.0 创建数据库 ccApp.config <connectionStrings><add name"MyDbContext" providerName"MySql.Data.MySqlClient" connectionString"server…...

简介Voronoi图Voronoi Diagrams
这是计算机的经典算法。 问题引入 倘若一张大白纸上有很多三角点,掉进去一个五星点,问,哪个三角离着五星最近?简单,算距离呗,这个五星到其他所有三角点的距离,找到最小的那个就行。 若掉进去…...

硬件测试工程师之EMC项目-辐射抗扰度试验(RS)测试标准解析思维导图
1:链接上一篇文章 硬件测试工程师之EMC项目-电磁干扰-谐波测试标准解析 2:总结思维导图并进行深入解析EMC-辐射抗扰度测试项目 附上相关报告文档以及图片解析。 3:以下为思维导图大致展示,后续可可方便观看。如有需要也可以下载。 本期先…...

H265编码丢帧问题分析
问题 通过海思芯片编码后,将编码的数据通过UDP网口发送到UDP 服务端,UDP服务端收到后保存成文件。 保存的文件有时候用VLC软件可以打开。有时候不能打开,同时用Elecard HEVC Analyer工具打开,发现VLC不能打开时丢帧。如下图,实际为858帧,而此处只有846帧。 分析 UDP包…...

CentOS Linux教程(12)--常用编辑器
文章目录 1. 背景2. nano编辑器2.1 检查安装2.2 安装nano2.3 使用nano 3. emacs编辑器3.1 检查安装3.2 安装emacs 3.3 使用emacs 1. 背景 我们经常需要编辑文件内容,windows上这个工作可以用记事本来做。 linux上对应的,我们可以使用nano或者emacs编辑…...

【浏览器学习笔记】-- 浏览器检查jQuery是否加载
环境:最近做爬虫实验,需要用到上下文http数据请求,为了能够兼容上下文环境,因此采用就jQuery请求,请求前需要加查是否有JQuery加载成功。 浏览器F12,打开浏览器控制台,复制粘贴以下代码&#x…...

大模型的提示学习
文章目录 人工提示设计自动提示设计经过预训练、指令微调和人类对齐后,我们接下来讨论如何通过提示学习方法来有效地使用大语言模型解决实际任务。目前常用的方法是设计合适的提示(Prompting),通过自然语言接口与大模型进行交互。在现有研究中,任务提示的设计主要依靠人工…...

2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
基于matlab-GUI的脉冲响应不变法实现音频滤波功能,输入加噪信号,通过巴特沃斯模拟滤波器脉冲响应不变法进行降噪。效果较好。程序已调通,可直接运行。 下载源程序请点链接:2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能…...

鸿蒙移动应用开发-------前篇
一. 鸿蒙的起源 2012年,华为公司开始规划自己的操作系统,名为’鸿蒙‘。 2018年8月24日,华为公司向国家知识产权商标局申请了’华为鸿蒙‘商标,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月…...

ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹
在ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹的类涉及到几个步骤。以下是一个简单的示例,展示了如何创建这样一个类,并将其放置在一个自定义的命名空间中。这个类将订阅机器人的速度信息&…...

了解bootstrap改造asp.net core MVC的样式模板
我们都知道,在使用默认的asp.net core MVC模板建立项目的时候,里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件,里面有大量的样式类的定义&…...

【C++】对左值引用右值引用的深入理解(右值引用与移动语义)
🌈 个人主页:谁在夜里看海. 🔥 个人专栏:《C系列》《Linux系列》 ⛰️ 天高地阔,欲往观之。 目录 前言:对引用的底层理解 一、左值与右值 提问:左值在左,右值在右?…...

寻找符合要求的最长子串
题目描述 给定一个字符串 s s s ,找出这样一个子串: 1)该子串中的任意一个字符最多出现2次; 2)该子串不包含指定某个字符; 请你找出满足该条件的最长子串的长度。 输入描述: 第一行为要求…...

【vim文本编辑器gcc编译器gdb调试器】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、vimvim安装vim常用快捷键vim使用vimtutor zh文档 二、gcc编译器安装gcc工具编译源代码 三、gdb调试器gdb安装gdb常用指令gdb简单上手使用gdb的单步调试功能 总结…...

解决使用Golang的email库发送qq邮件报错short response,错误类型为textproto.ProtocolError
问题阐述 使用email库发送QQ邮件,采用465端口: package mainimport ("fmt""net/smtp""github.com/jordan-wright/email" )func SendEmail(sendTo string, subject string, body string) (err error) {e : email.NewEmai…...

为什么说高级工程师研究的不仅是器件的稳态,模拟器件的开关过程
高级工程师研究器件的开关过程而不仅仅是稳态,主要有以下几个原因: 1. 动态性能优化:开关过程中的特性,如上升时间、下降时间、过冲、振铃等,直接影响系统的性能。了解和优化这些动态特性对于提高系统的速度、精度和稳…...

Matlab实现白鲸优化算法(BWO)求解路径规划问题
目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 白鲸优化算法(BWO)是一种受自然界白鲸捕食行为启发的新型优化算法,它通过模拟白鲸的群体捕猎策略和社会互动来探索问题的最优解。BWO因其强大的全局搜索能力和高效的局部搜索能…...

SQLserver索引的优化和使用
在SQL Server中,索引的优化和有效使用是提高查询性能的关键。以下是一些详细的步骤和最佳实践,帮助你优化和使用索引。 1. 理解索引类型 聚集索引(Clustered Index) 定义:表中数据的物理排序顺序与索引的逻辑顺序相…...

Linux 安装nacos
1.下载版本 https://github.com/alibaba/nacos/tags 2.解压压缩包,启动 (1)将压缩包放到/usr/local目录下,解压 tar -xvf nacos-server-2.0.0-BETA.tar.gz(2)删除压缩包 rm -f nacos-server-2.0.0-BETA.tar.gz(3) 找到nacos的mysql的数据库脚本,在数…...

水仙花判断
一个三位整数,如果满足条件:个位数的立方十位数立方百位数立方这个数,那么称之为“水仙花数” 编程判断一个三位整数是不是水仙花数。 输入格式: 输入一个三位整数 输出格式: 是则输出YES,不是输出 NO (注意是大写字母…...

在VS中安装chatGPT
2、在VSCode中打开插件窗口 3、输入ChatGPT 4、这里有个ChatGPT中文版,就它了 5、安装 6、这时候侧边栏多了一个chatGPT分页图标,点击它 7、打个招呼 8、好像不行 9、看一下细节描述 10、根据要求按下按下快捷键 Ctrl Shift P 11、切换成国内模式 12、…...

算法笔记:Day-09(初始动态规划)
509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 …...

“探索未来医疗:生成式人工智能在医疗领域的革命性应用“
生成式人工智能(GenAI)在医疗领域的应用具有巨大的潜力和变革性,以下是一些关键的应用领域: 医学影像分析: GenAI模型通过深度学习技术,能够自动识别医学影像中的病变区域,提高诊断的准确性和速…...

数字IC后端实现Innovus 时钟树综合(Clock Tree Synthesis)典型案例
对于如下所示电路,要求以下几路做到等长,clock skew控制在50ps以内,clock tree insertion delay做到800ps! from FF/Q to FF1_1/D through the FF1 CK from FF/Q to FF2_1/D through the FF2 CK from FF/Q to FF3_1/D through the FF3 CK fr…...

Matlab应用制作入门
要在 MATLAB 中创建一个简单的应用程序,你可以使用 App Designer,这是一个用于构建交互式应用的工具。以下是一个简单的步骤,帮助你创建一个基本的 MATLAB 应用程序: 1. 打开 App Designer 在 MATLAB 命令窗口中输入 appdesigne…...

什么是声明式编程什么是函数式编程,打比方说明
在前端开发中,声明式编程和函数式编程是两种不同的编程范式,各自有其特定的理念和用法。下面详细介绍这两种编程范式,并通过比喻进行说明。 声明式编程 定义: 声明式编程是一种编程风格,强调“你想要什么”而不是“怎…...

SpringBoot+Shiro权限管理
Shiro是一个强大的Java安全框架,提供了身份验证、授权、加密、会话管理以及与Web集成等多种安全功能。以下是对Shiro权限管理的详细总结: 一、Shiro权限管理的基本概念 权限管理,一般指根据系统设置的安全规则或者安全策略,用户…...

前端面试题22 | 什么是跨域问题?怎么解决?
哈喽小伙伴们大家好!新的一周开始啦~距离2024年结束也仅有两个月了,不知道大家年初给自己制定的目标实现了多少?不管怎样,接下来的两个月都请继续加油哦!我们坚持下来了,我们就是最棒的! 今天,继续来给大家分享一道面试题 在开发中,我们经常会遇到跨域的问题,尤其是开发前后…...

HarmonyOS Next星河版笔记--界面开发(3)
属性 1.1.设计资源-svg图标 需求:界面中展示图标→可以使用的svg图标(任意放大缩小不失真、可以改变颜色) 使用方式: ①设计师提供:基于项目的图标,拷贝到项目目录使用 Image($r(app.media.ic_dianpu)) .width(40) fillColor…...