鸿蒙:1.入门

概述

简介

鸿蒙操作系统(HarmonyOS)是华为公司发布的一款智能终端系统,是基于微内核的面向全场景的分布式操作系统。它致力于提供更加安全、高效、低延迟、低功耗的操作体验,可通过技术手段对应用程序和设备进行智能协同,并在用户界面、资源管理和功耗等方面进行优化。

发展历程

  • 2012年,华为开始规划自有操作系统,并在芬兰赫尔辛基设立智能手机研发中心,招募相关技术人才。

  • 2016年5月,华为消费者BG软件部开始立项研发分布式操作系统1.0版本。

  • 2017年,鸿蒙内核1.0完成技术验证,软件部门继续立项研发2.0版本,并于次年研发出用于终端TEE的鸿蒙内核2.0。

  • 2018年初,消费者软件部提出打造全场景时代的软件底座,把华为的系统装载到各种设备上,这一思路获得任正非认可。同年5月,自研分布式操作系统获得华为消费者BG投资,成为正式项目,同年8月24日,华为申请了“华为鸿蒙”商标,随后该系统被取名为“鸿蒙”。

  • 2019年5月,美国对华为实施相关限制措施。同年6月,华为轮值董事长胡厚崑表示华为已采用包括鸿蒙操作系统在内的替代方案。同年8月9日,华为在开发者大会上发布EMUI 10的同时宣告了HarmonyOS 1.0的诞生,但此时鸿蒙系统只搭载在家用电器上,尚未应用于手机系统,其第一个落地产品是华为旗下荣耀的智慧屏。

  • 2020年12月,华为发布HarmonyOS 2.0手机开发者Beta版本。

  • 2021年5月18日,华为智能硬件生态品牌Works with HUAWEI HiLink 与 Powered by HarmonyOS全面升级为HarmonyOS Connect(鸿蒙智联)。同年5月25日,EMUI官博正式更名为HarmonyOS。6月2日,HarmonyOS 2.0正式发布,鸿蒙操作系统正式覆盖手机等移动终端。同年9月23日,HarmonyOS 2.0的用户数量超过1.2亿,成为全球增长最快的移动操作系统之一。

  • 2022年7月,Harmony 3.0正式发布,“鸿蒙世界”的概念被首次提出。

  • 2023年8月,Harmony 4.0正式发布。9月,全新鸿蒙HarmonyOS NEXT蓄势待发,鸿蒙原生应用全面启动。

  • 2024年1月18日,HarmonyOS NEXT鸿蒙星河版面向开发者开放申请。截至2024年5月15日,鸿蒙生态设备数量超8亿台。2024年第一季度,华为鸿蒙HarmonyOS在中国市场首次超越苹果iOS,并成为中国第二大操作系统。

官方文档

HarmonyOS:3.1/4.0

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/1_1_u5feb_u901f_u5165_u95e8-0000001478340845-V2

HarmonyOS:NEXT

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5

搭建

安装node.js

简介

Node.js是一个免费、开源、跨平台的 JavaScript 运行时环境,它让开发人员能够创建服务器、Web 应用、命令行工具和脚本。 

 注意

鸿蒙要求:Node.js版本要求为v14.19.1及以上,且低于v17.0.0;对应的npm版本要求为6.14.16及以上 

下载 

官网下载https://nodejs.org/en/ 历史版本下载:https://nodejs.org/dist/ 16.16.0LTS是目前比较稳定的版本,下载后直接无脑下一步即可 安装路径默认就行(C:\Program Files\nodejs\) 

node.js官网icon-default.png?t=N7T8https://nodejs.org/en/配置环境变量

系统path:C:\Program Files\nodejs\ 配置npm国内镜像

npm是Node的包管理工具【安装Nodejs时会附带】,npm仓库在国外,使用npm是可能下载失败

安装npm的国内镜像:npm install -g cnpm --registry=https://registry.npmmirror.com

配置国内淘宝镜像:npm config set registry https://registry.npm.taobao.org

查看配置的镜像是否成功: npm config get registry

查看nodejs版本

node -v

查看npm版本

npm -v

单独安装ohpm

简介

OHPM CLI 作为鸿蒙生态三方库的包管理工具,支持OpenHarmony共享包的发布、安装和依赖管理

文档

文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/ide-command-line-ohpm-0000001490235312-V2

下载

下载地址:https://developer.huawei.com/consumer/cn/deveco-studio/#download_cli

下载位置【【D:\A_harmonyOS\Autils\commandline-tools-windows-2.0.0.2】】

初始化

注意:初始化ohpm前,需先完成node.js环境变量配置

1.解压文件,进入commandline-tools-windows-2.0.0.2\command-line-tools\ohpm\bin

2.执行:init.bat

配置环境变量【用户和系统环境都配置】

OHPM_HOME:D:\A_harmonyOS\Autils\commandline-tools-windows-2.0.0.2\command-line-tools\ohpm

Path:%OHPM_HOME%\bin

检查版本

ohpm -v

HUAWEI DevEco Studio

简介

HUAWEI DevEco Studio是基于IntelliJ IDEA Community开源版本打造,为运行在HarmonyOS和OpenHarmony系统上的应用和服务提供一站式的开发平台。

特点

1.高效智能代码编辑:支持ArkTS、JS、C/C++等语言的代码高亮、代码智能补齐、

代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。

2.低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,

可快速预览效果,所见即所得;同时支持卡片的零代码开发,降低开发门槛和提升界面开发效率。

3.多端双向实时预览:支持UI界面代码的双向预览、实时预览、动态预览、组件预览以及多端设备预览,便于快速查看代码运行效果。

4.多端设备模拟仿真:提供HarmonyOS本地模拟器,支持手机等设备的模拟仿真,便捷获取调试环境。

运行环境要求

操作系统:Windows10 64位、Windows11 64位

内存:8GB及以上

硬盘:100GB及以上

分辨率:1280*800像素及以上

文档

官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/deveco_overview-0000001053582387-V2

下载安装

下载地址:https://developer.huawei.com/consumer/cn/deveco-studio/

1.进入HUAWEI DevEco Studio产品页,单击下载列表右侧的下载按钮,下载DevEco Studio

2.选择安装路径,单击Browse指定其安装路径【默认C:\Program Files】

3.勾选DevEco Studio

配置开发环境【可单独安装node.js和ohpm】

1.安装Node.js与ohpm【Node.js版本要求为v14.19.1及以上,且低于v17.0.0;对应的npm版本要求为6.14.16及以上】

如果本地没有合适的版本,可以选择Install按钮【C:\Users\86150\nodejs】【C:\Users\86150\AppData\Local\Huawei\ohpm】

可能有做前端的同学是有Node.js的环境,由于版本和路径的原因,仍然建议单独安装

2.在SDK Setup界面,设置HarmonyOS SDK存储路径【C:\Users\86150\AppData\Local\Huawei\Sdk】

入门

创建第一个项目HelloWorld

创建一个新工程

1.打开DevEco Studio,在欢迎页单击Create Project,创建一个新工程

2.选择“Empty Ability”模板,填写工程相关信息,保持默认值即可

预览项目效果

在DevEco Studio右侧菜单栏,单击Previewer【如果项目过于复杂,则需要使用模拟器或者真机测试】

Previewer热更新

Previewer支持热更新,在修改代码之后,保存可以自动更新效果

创建模拟器

简介

Previewer预览项目,这种预览方式可以快速看到项目效果,但是如果项目过于复杂,则需要使用模拟器或者真机测试

安装

1.Tools > SDK,勾选System-image-phone进行下载【下载的项目比较大,等待时间较长】

2.Tools > Device Manager,创建模拟器

模拟器可以创建手表模拟器、电视模拟器和手机模拟器

在模拟器创建的高级设置中,可以配置模拟器的内存、存储空间和CPU等设置

内存分配根据自己的电脑需求配置,如果电脑内存小,可以适当调小内存,但是至少要保持4G

3.创建完成之后启动模拟器,点击Action启动即可

4.回到IDE中,选择手机模拟器,然后点击运行即可

启动

1.打开DevEco Studio,找到最上面Tools/Device Manager,进入页面启动即可

连接项目

注意:启动了会识别src/main/ets/pages/Index.ets的页面

工程目录结构

AppScope > app.json5:应用的全局配置信息

entry:HarmonyOS工程模块,编译构建生成一个HAP包

src > main > ets:用于存放ArkTS源码

src > main > ets > entryability:应用/服务的入口

src > main > ets > pages:应用/服务包含的页面

src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件

src > main > module.json5:Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息

build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。其中targets中可配置当前运行环境,默认为HarmonyOS

hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现

oh_modules:用于存放三方库依赖信息

build-profile.json5:应用级配置信息,包括签名、产品配置等

hvigorfile.ts:应用级编译构建任务脚本

代码初始结构

/*** 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。* @Entry:表示该自定义组件为入口组件,有这次才能启动项目* @Component:表示自定义组件* @State:表示组件中的状态变量,状态变量变化会触发UI刷新*/
@Entry
@Component/*** HarmonyOS是组件化开发* struct Index{}:自定义组件,可复用的UI单元,可组合其他组件*/
struct Index {@State message: string = 'Hello World'/*** UI描述* build(){}:以声明式的方式来描述UI的结构** https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-create-custom-components-0000001473537046-V2#section11509117338111.所有声明在build()函数的语言,我们统称为UI描述2.@Entry装饰的自定义组件,其build()函数下的根节点唯一且必要,且必须为容器组件,其中ForEach禁止作为根节点。3.@Component装饰的自定义组件,其build()函数下的根节点唯一且必要,可以为非容器组件,其中ForEach禁止作为根节点。*/build() {/*** 系统组件* Row/Column/Text:有ArkUI提供的组件*  - 容器组件:用来完成布局,例如:Row/Column*  - 基础组件:自带样式功能的页面元素,例如:Text*/Row() {Column() {Text(this.message)/*** 属性方法:设置组件的UI样式,方法比较多,后面在慢慢讲解*/.fontSize(50).fontWeight(FontWeight.Bold).fontColor(Color.Red)}.width('100%')}.height('100%')}
}

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

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

相关文章

mac鼠标键盘共享:ShareMouse for Mac 激活版

hareMouse 是一款 Windows 和 macOS 操作系统上的共享和切换鼠标和键盘的实用工具。这款软件允许用户在多台计算机之间无缝地共享鼠标和键盘,使得在不同设备之间进行工作和操作变得更加便捷。占用资源少: ShareMouse 设计轻量,占用系统资源较…

JVM原理(十五):JVM虚拟机静态分配与动态分配

1. 分派 本节讲解的分派调用过程将会揭示多态性特征的一-些最基本的体现,如“重载”和“重写”在Java虚拟机之中是如何实现的。 1.1. 静态分派 案例: 我们先来看一段代码: Human mannew Man(); 我们把上面代码中的“Human"称为变量的“静态类型…

alibabacloud学习笔记10

讲解微服务链路追踪系统的作用 讲解什么Sleuth链路追踪系统 注释掉我们的网关过滤器。 注释掉断言。 网关服务,视频服务,订单服务,我们都给这段依赖添加进来。 调用一个请求。 我们可以看到控制台上会有输出。 讲解zipkin介绍和部署实战 访问…

Vite: 实现 no-bundle 开发服务 (2)

概述 基于前文 Vite: 实现 no-bundle 开发服务 (1) 我们基于下面的导图继续实现 no-bundle 构建服务 接下来我们需要完成如下的模块: CSS 编译插件静态资源加载插件模块依赖图开发,并在 transform 中间件中接入HMR 服务端代码开发HMR 客户端代码开发 CSS 编译插件…

泰国内部安全行动司令部数据泄露

BreachForums 论坛的一名成员宣布发生一起重大数据泄露事件,涉及泰国内部安全行动司令部 (ISOC),该机构被称为泰国皇家武装部队的政治部门。 目前,我们无法准确确认此次泄露的真实性,因为该组织尚未在其网站上发布有关该事件的任…

数据库管理-第217期 Oracle的高可用-02(20240704)

数据库管理217期 2024-07-04 数据库管理-第217期 Oracle的高可用-02(20240704)1 GDS简介2 GDS架构2.1 全局数据服务池2.2 全局数据服务域2.3 全局服务管理2.4 全局数据服务目录2.5 Oracle通知服务 3 GDS简图3.1 负载均衡3.2 只读服务失败转移3.3 多主复制…

项目基础知识

1.JDBC编程和MySQL数据库 数据库的连接(以前写qq项目时的代码) package com.wu.Util; import java.sql.*; public class JDBCUtil {private static JDBCUtil jdbcUtil null;private JDBCUtil() {}public static JDBCUtil getJdbcUtil() {if (jdbcUtil…

剧本杀小程序:助力商家发展,提高游戏体验

近几年,剧本杀游戏已经成为了当下年轻人娱乐的游戏社交方式。与其他游戏相比,剧本杀游戏具有强大的社交性,玩家在游戏中既可以推理玩游戏,也可以与其他玩家交流互动,提高玩家的游戏体验感。 随着互联网的发展&#xf…

Vue通过Key管理状态

Vue通过Key管理状态 Vue 默认按照“就地更新”的策略来更新,通过 v-for 渲染的元素列表。当数据项的顺序改变时,Vue 不会随之移动 DOM 元素的顺序,而是就地更新每个元素,确保它们在原本指定的索引位置上渲染。为了给 Vue 一个提示…

VIO(Virtual_Input_Output) IP 使用笔记

VIO(Virtual Input/Output)IP 核,即虚拟输入输出 IP,可以通过调试界面模拟 IO 的变化,这可以在板子没有按键等外设、或外设不足的情况下,来模拟外部输入。然而网上关于 VIO 的教程都说的不是很清楚&#xf…

html高级篇

1.2D转换 转换(transform)你可以简单理解为变形 移动:translate 旋转:rotate 缩放:sCale 移动:translate 1.移动具体值 /* 移动盒子的位置: 定位 盒子的外边距 2d转换移动 */div {width…

【python】OpenCV—Nighttime Low Illumination Image Enhancement

文章目录 1 背景介绍2 代码实现3 原理分析4 效果展示5 附录np.ndindexnumpy.ravelnumpy.argsortcv2.detailEnhancecv2.edgePreservingFilter 1 背景介绍 学习参考来自:OpenCV基础(24)改善夜间图像的照明 源码: 链接&#xff1a…

Linux 文件系统以及日志管理

一、inode 与block 1. inode 与block详解 在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取…

PyMuPDF 操作手册 - 09 API - Page属性方法和简短说明

文章目录 一、Page属性方法和简短说明一、Page属性方法和简短说明 https://pymupdf.readthedocs.io/en/latest/page.html Method/Attribute属性方法Short Description简短说明Page.add_caret_annot()仅限 PDF:添加插入符号注释Page.add_circle_annot()仅限 PDF:添加圆圈…

微服务粒度难题:找到合适的微服务大小

序言 在微服务架构风格中,微服务通常设计遵循SRP(单一职责原则),作为一个独立部署的软件单元,专注于做一件事,并且做到极致。作为开发人员,我们常常倾向于在没有考虑为什么的情况下尽可能地将服…

头歌资源库(20)最大最小数

一、 问题描述 二、算法思想 使用分治法,可以将数组递归地分割成两部分,直到数组长度为1或2。然后比较这两部分的最大、次大、次小、最小数,最终得到整个数组中的最大两个数和最小两个数。 算法步骤如下: 定义一个函数 findMinM…

Java - 程序员面试笔记记录 实现 - Part3

4.1 线程与进程 线程是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间以及一些进程级资源,但拥有自己的栈空间。 4.3 Java 多线程 方法一:继承 Thread 类,重写 run 方法;…

二分法查找有序表的通用算法(可查链表,数组,字符串...等等)

find_binary函数 注意事项: (1)你设计的迭代器模板中必须有using value_type T,且有加减运算功能,其本上能与C标准库std中一样。 (2)集合必须是有序的。 下面是函数代码: /// &…

一次建表语句触发的ORA-600报错分析

​ 某次在客户Oracle数据库执行一条建表语句时,报出ORA-600错误。 报错代码如下: ORA-00600: 内部错误代码, 参数: [rwoirw: check ret val], [], [], [], [], [], [], [], [], [], [], [] 相关的建表语句如下: ​ 在报错发生后,…

Android studio开发入门教程详解(复习)

引言 本文为个人总结Android基础知识复习笔记。如有不妥之处,敬请指正。后续将持续更新更多知识点。 文章目录 引言UITextView文本基本用法实际应用常用属性和方法 Button按钮处理点击事件 EditText输入框基本属性高级特性 ImageView图片ImageView的缩放模式 Prog…