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

鸿蒙: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%')}
}

相关文章:

  • 十大排序:插入/希尔/选择/堆/冒泡/快速/归并/计数/基数/桶排序 汇总(C语言)
  • 【收藏级神丹】Liae384_刘亦菲_直播可用,平衡度最高的原创神丹,独家珍稀资源
  • Kafka集群安装部署
  • 嵌入式linux sqlite3读写demo
  • 【面试题】网络IO模型
  • 从0开始学习pyspark--Spark DataFrame数据的选取与访问[第5节]
  • jmeter-beanshell学习1-vars使用获取变量和设置变量
  • go内存返还系统相关代码
  • 001 进程和线程
  • Ruby 环境变量
  • 手写SpringMVC之调度器DispatcherServlet
  • Web3 ETF的主要功能
  • 开源205W桌面充电器,140W+65W升降压PD3.1快充模块(2C+1A口),IP6557+IP6538
  • docker pull 镜像的时候遇到Pulling fs layer问题
  • Eigen 欧拉角转旋转矩阵相互转换
  • python3.6+scrapy+mysql 爬虫实战
  • [case10]使用RSQL实现端到端的动态查询
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Consul Config 使用Git做版本控制的实现
  • CSS 三角实现
  • CSS 专业技巧
  • Java 网络编程(2):UDP 的使用
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Zepto.js源码学习之二
  • 程序员该如何有效的找工作?
  • 分享几个不错的工具
  • 三栏布局总结
  • 设计模式(12)迭代器模式(讲解+应用)
  • 深入浏览器事件循环的本质
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • ​Python 3 新特性:类型注解
  • ​queue --- 一个同步的队列类​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #### go map 底层结构 ####
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (汇总)os模块以及shutil模块对文件的操作
  • (一)RocketMQ初步认识
  • (一)基于IDEA的JAVA基础1
  • (转) ns2/nam与nam实现相关的文件
  • (转)http-server应用
  • (转)winform之ListView
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 无限分类
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开发人员必知的八个网站
  • .NET连接MongoDB数据库实例教程
  • .pyc文件是什么?
  • /proc/interrupts 和 /proc/stat 查看中断的情况