HarmonyOS简述及开发环境搭建

news2024/12/29 11:08:59

一、HarmonyOS简介

1、介绍

  • HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。有三大系统特性,分别是:硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署。

  • HarmonyOS通过硬件互助,资源共享的能力,将多个形态不一的设备进行组网,共同构成一个超级终端,可在超级终端中实现任务分发与数据共享。

  • 硬件互助依赖HarmonyOS的分布式软总线,在此基础上,HarmonyOS还具备了分布式硬件虚拟化、分布式数据管理、分布式任务调度等分布式特性。

  • 在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。

2、相关官网地址

  • HarmonyOS官网地址:https://www.harmonyos.com/
  • 华为开发者官网地址:https://developer.huawei.com/ 
  • HarmonyOS应用开发官网:https://developer.harmonyos.com/

3、HarmonyOS发展时间线

  • 2019年8月9日:HarmonyOS 1.0

  • 2020年9月10日:HarmonyOS 2.0

  • 2022年11月04日:HarmonyOS 3.1 Developer Preview

  • 2023年8月4日,HarmonyOS 4.0操作系统正式发布。

  • 2024年:预计推出HarmonyOS Next

4、OpenHarmony、HarmonyOS、HarmonyOS Connect区别

  • OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,拥有HarmonyOS最核心的能力,包括了分布式软总线以及各项分布式能力,是一个可完整运行的操作系统,gitee地址:https://gitee.com/openharmony  官网地址:https://www.openharmony.cn

  • HarmonyOS是华为通过OpenHarmony项目,结合商业发行版增加能力,构建华为自研产品的完整解决方案。核心还是OpenHarmony,在其基础上增加了UI方案等大量额为附加功能

  • HarmonyOS Connect(中文“鸿蒙智联”)是华为统一的智能硬件生态品牌。可以基于华为提供的芯片设计、操作系统、连接、云、AI和用户体验设计能力,为消费者提供高品质的智能硬件生态设备,使该设备能够与华为HarmonyOS设备(包括手机、全屋主机、智能座舱、智慧屏、手表等终端)以及其他的HarmonyOS Connect生态设备进行联接和协同,共同打造互联互通的HarmonyOS Connect生态。

5、鸿蒙生态应用核心技术理念

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

  • 一次开发 多端部署

  • 可分可合 自由流转

  • 统一生态 原生智能

 

6、原子化服务定义

  • 原子化服务是HarmonyOS提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。

免安装的HAP包不能超过10MB,保持免安装属性,HAP包必须包含FA

7、流转

  • 多个设备通过分布式操作系统能够相互感知,进而整合成一个超级终端,使设备间取长补短、相互帮助,为使用者提供自然流畅的分布式体验。

  • 流转在HarmonyOS中泛指多设备分布式操作,按照体验可分为跨端迁移多端协同

系统推荐流转

  • 系统感知周边有可用设备后,主动为用户提供可选择流转的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户选择的另一个设备的设备信息提供给应用。

 

用户手动流转

  • 用户手动流转:系统在用户手动点击流转图标后,被动为用户提供可选择交互的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户所选另一个设备的设备信息提供给应用。

8、开发者注册与个人实名认证

点击如下链接,参考文档指导,完成开发者注册与个人实名认证。(多种认证方式,任选其一。好像是银行卡认证效率最高,建议选择)

注册帐号-注册认证 | 华为开发者联盟 (huawei.com)

二、开发语言介绍

 1、ArkTS

ArkTS是华为自研的开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。

2、ArkUI

ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,提升开发效率。使用一套ArkTS API,就能在多个HarmonyOS设备上提供生动而流畅的用户界面体验。

三、开发工具工具安装

下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio#download

目前最新版本3.1 ,4.0官网暂未提供下载地址,抢先体验地址: 4.0

下载完解压安装点击exe文件安装,一路next进行安装

 

 

安装完打开需要下载相关依赖以及HarmonyOS sdk

 

 

等待安装

安装完成,用过jetbrains产品的应该看起来很熟悉了,可以自定义界面主题等

四、hellowold

1、创建项目

打开创建一个project,如下选中应用开发,选择空模板

2、使用ArkTS开发(声明式开发范式)

对于应用的开发有两种语言可以选择分别是ArkTS(声明式开发范式)和JavaScript(类Web开发范式),如下图

 

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,建议开发者具备TS语言开发能力。

当前,ArkTS在TS的基础上主要扩展了如下能力:

  • 基本语法:ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共同构成了UI开发的主体。

  • 状态管理:ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和UI的联动。

  • 渲染控制:ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,渲染对应状态下的UI内容。循环渲染可从数据源中迭代获取数据,并在每次迭代过程中创建相应的组件。数据懒加载从数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。

未来,ArkTS会结合应用开发/运行的需求持续演进,逐步提供并行和并发能力增强、系统类型增强、分布式开发范式等更多特性。

 

  • 装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。

  • UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。

  • 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。

  • 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。

  • 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。

  • 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。

  • 系统组件、属性方法、事件方法具体使用可参考基于ArkTS的声明式开发范式。

除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

  • @Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。

  • @Extend/@Style:扩展内置组件和封装属性样式,更灵活地组合内置组件。

  • stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

真机运行 

手机开启开发者模式

开启usb调试 或者同一个局域网进行连接也可以,这里打开usb调试。

找到设置->系统和更新->开发人员选项->usb调试开启,并且使用数据线连接手机和电脑

将项目放到手机运行的时候需要对项目进行签名,选择项目结构,选中signing configs自动填信息,点击ok即可

 

选中手机运行

 

3、使用JavaScript开发

我们创建项目的时候Model选择FA下面的js,就是使用JavaScript开发应用,并且有过程html经验开发的一定很熟悉,一个组件也是包括html、js、css,不做过多介绍

4、低代码开发

创建项目的选择开启低代码开发

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

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

相关文章

CFO的GenAI应用指南

CFO应该采取的最重要行动是识别最大的创造价值的机会,然后确保他们获得所需的资金和其他资源。GenAI拥有成为革命性技术的潜力,但它不会改变金融和经济学的基本原则:一家公司必须产生高于资本成本的回报。 技术改变了每一项业务,往…

双向链表超详解——连我奶奶都能学会的复杂链表(带头双向循环)

文章目录 前言一、双向链表的概念二、双向链的结构设计三、双链表的基本功能接口四、双向链表接口的实现4.1、创建结点4.2、初始化链表4.3、打印链表4.4、尾插结点4.5、尾删结点4.6、头插结点4.7、头删结点4.8、在pos结点前面插入4.9、删除pos位置的结点4.10、查找链表中的某个…

数据结构与算法编程题22

交换二叉树每个结点的左孩子和右孩子 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1 #define STR_SIZE 1024 typedef struct BiTNode {ElemType data;BiTNode* lchild, * rchild; }BiTN…

告别百度网盘,搭建自己的专属网盘 ——Cloudreve,不限制下载速度!

Cloudreve 是一个用 Go 语言写的公有网盘程序,我们可以用它来快速搭建起自己的网盘服务,公有云 / 私有云都可。 顺哥博客 先来看看文档介绍吧。 支持多家云存储驱动的公有云文件系统. 演示站 • 讨论社区 • 文档 • 下载 • Telegram 群组 • 许可证 :sparkles: 特性 :cl…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-5:队列)

学习之路主要为FreeRTOS操作系统在STM32F103&#xff08;STM32F103C8T6&#xff09;上的运用&#xff0c;采用的是标准库编程的方式&#xff0c;使用的IDE为KEIL5。 注意&#xff01;&#xff01;&#xff01;本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

智安网络|如何最大限度地提高企业网络安全水平

在当今数字化时代&#xff0c;企业面临着日益复杂和智能化的网络威胁。为了保护企业的机密信息和客户数据&#xff0c;漏洞扫描成为了一个至关重要的安全措施。然而&#xff0c;对于企业来说&#xff0c;他们最关心的是什么问题呢&#xff1f; 一、漏洞的发现和修复 在网络安全…

vscode的下载安装与配置【超详细】

1、下载 进入vscode官网 打开浏览器的下载内容管理&#xff0c;找到vscode下载任务&#xff0c;鼠标放在下载链接上并右击&#xff0c;点击复制链接地址 下载太慢&#xff1f;使用国内镜像 打开新窗口粘贴地址&#xff0c;并将域名改为&#xff1a;vscode.cdn.azure.cn&am…

【Spring集成MyBatis】MyBatis的多表查询

文章目录 1. 一对一什么是一对一User、Order类及Mapper&#xff0c;User、Order表一对一操作的实现一对一操作实现的第二种方式 2. 一对多什么是一对多一对多操作实现 3. 多对多什么是多对多多对多的实现 4. 小结 1. 一对一 什么是一对一 一对一指的是表与表之间通过外键进行…

002、ArkTS

之——开发语言 杂谈 基础编程语言ArkTS。引用来自华为开发者课堂。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等相应的能力&#xff0c;让开发者以更简洁…

Robust taboo search for the quadratic assignment problem-二次分配问题的鲁棒禁忌搜索

文章目录 摘要关键字结论研究背景1. Introduction 常用基础理论知识2. The quadratic assignment problem3. Taboo search3.1. Moves3.2 Taboo list3.3. Aspiration function3.4. Taboo list size4. Random problems5. Parallel taboo search 研究内容、成果7. Conclusion 潜在…

RabbitMQ之MQ的可靠性

文章目录 前言一、数据持久化交换机持久化队列持久化消息持久化 二、LazyQueue控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 总结 前言 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消息丢失&#xff0c;所以MQ的可靠性也非常重要。 一、…

Vatee万腾的科技探险:vatee数字化力量的前瞻征途

在Vatee万腾的科技探险中&#xff0c;我们领略到了一场数字化力量的前瞻征途&#xff0c;这是一次引领未来的创新之旅。Vatee万腾以其独特的科技理念和数字化力量&#xff0c;开启了一次引领行业的前瞻性征途&#xff0c;为数字化未来描绘出了崭新的篇章。 Vatee万腾的数字化力…

荆涛《春节回家》:歌声中的年味与乡愁

荆涛《春节回家》&#xff1a;歌声中的年味与乡愁春节&#xff0c;对于每一个中国人来说&#xff0c;都是一年中最为重要的时刻。它不仅仅是一个节日&#xff0c;更是团圆、乡愁、回忆与希望的象征。歌手荆涛的歌曲《春节回家》恰恰捕捉到了这些情感&#xff0c;用音乐为人们绘…

【AI认证笔记】NO.2人工智能的发展

目录 一、人工智能的发展里程碑 二、当前人工智能的发展特点 1.人工智能进入高速发展阶段 2.人工智能元年 三、人工智能高速发展的三大引擎 1.算法突破 2.算力飞跃 3.数据井喷 四、AI的机遇 五、AI人才的缺口 六、行业AI 人工智能算法&#xff0c;万物互联&#xff…

十大排序算法中的插入排序和希尔排序

文章目录 &#x1f412;个人主页&#x1f3c5;算法思维框架&#x1f4d6;前言&#xff1a; &#x1f380;插入排序 时间复杂度O(n^2)&#x1f387;1. 算法步骤思想&#x1f387;2.动画实现&#x1f387; 3.代码实现 &#x1f380;希尔排序 时间复杂度O(n*logn~n^2)希尔排序的设…

人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)

上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练 导入第三方库 from keras.preprocessing.image import img_to_array from keras.models import load_model impor…

用Java写一个飞翔的小鸟

目录 在 App包创建以下类 GameApp类 main包 Barrier 类 Bird 类 Cloud 类 GameBackGround 类 GameBarrierLayer 类 GameFrame 类 GameTime 类 util包 Constant 类 GameUtil 类 游戏运行结果如下&#xff1a; 碰到柱子就结束游戏 在 App包创建以下类 GameApp类 p…

matlab使用plot画图坐标轴上的导数速度一点和加速度两点如何显示

一、背景 在使用matlab中的plot函数画图时&#xff0c;有时需要在坐标轴上显示一个点的导数项&#xff0c;如横坐标是时间&#xff0c;纵坐标是速度&#xff0c;也就是位置的导数 y ˙ \dot y y˙​&#xff0c;如下图所示&#xff0c;这在matlab如何操作呢&#xff1f; 二…

基于单片机的肺活量检测系统(论文+源码)

1.系统设计 在基于单片机的肺活量检测系统中&#xff0c;在硬件上整个系统通过利用主控制器STC89C52单片机来实现对整个系统进行控制的功能&#xff0c;通过采用LCD1602实现实时液晶显示数据的功能&#xff0c;通过肺活量传感器XGZP6847ADC0832实现监测肺活量的工作&#xff0…

【从浅识到熟知Linux】基本指令之date和cal

&#x1f388;归属专栏&#xff1a;从浅学到熟知Linux &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;每日一句&#xff1a;一篇又一篇&#xff0c;学写越上头。好像真的上头了~~ 文章前言&#xff1a;本文介绍date和cal指令用法并给出示例和截图。 文章目录 date…