鸿蒙: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#section1150911733811
   1.所有声明在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%')
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件性能测试有哪几种测试方法?专业性能测试报告出具

软件性能测试是指对软件系统在特定负载条件下的性能进行评估和验证的过程,目的是确保软件在正常使用的情况下能够满足用户的要求,并在稳定的性能水平下运行,在软件开发过程中起到了至关重要的作用,可以确保软件产品的质量和可靠性…

经典卷积神经网络 LeNet

一、实例图片 #我们传入的是28*28,所以加了padding net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Flat…

安卓请求服务器[根据服务器的内容来更新spinner]

根据服务器的内容来更新spinner 本文内容请结合如下两篇文章一起看: 腾讯云函数node.js返回自动带反斜杠 腾讯云函数部署环境[使用函数URL] 现在有这样一个需求,APP有一个下拉选择框作为版本选择,因为改个管脚就变成一个版本,客户需求也很零散,所以后期会大量增加版本,这时候每…

三菱PLC标签使用(I/O的映射)与内容

今天,小编继续开始三菱PLC的学习,今天的内容是标签及其标签的内容说明,如果对你有帮助,欢迎评论收藏。 标签的种类,等级,定义 种类 三菱3U的PLC的种类分别为二种:全局标签与局部标签 全局标签…

【大数据】—量化交易实战案例(海龟交易策略)

声明:股市有风险,投资需谨慎!本人没有系统学过金融知识,对股票有敬畏之心没有踏入其大门,今天用另外一种方法模拟炒股,后面的模拟的实战全部用同样的数据,最后比较哪种方法赚的钱多。 海龟交易…

交互未来入选“北京市通用人工智能产业创新伙伴计划”模型伙伴

在“开启数智新时代,共享数字新未来”的宏大主题下,2024全球数字经济大会于近日盛大开幕,汇聚全球智慧,共谋数字经济新篇章。大会首日,备受瞩目的人工智能专题论坛率先拉开帷幕,以“应用即未来——大模型赋…

PLC工作原理

PLC(可编程逻辑控制器)的工作原理简述为:集中采样、集中输出、周期性循环扫描。 西门子PLC 一、集中采样 顺序读取所有输入端子的通断状态,并将所读取的信息存到输入映像寄存器中,此时输入映像寄存器被刷新&#xff…

基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程,遵循系统开发生命周期法和结构化方法,基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式,采用JSP技术,后台…

Land survey boundary report (template)

Land survey boundary report (template) 土地勘测定界报告(模板).doc

昇思25天学习打卡营第7天|保存与加载

Python语言 AI框架:Mindspore 1.模型构建 class Network(nn.Cell):def __init__(self):super().__init__()self.flatten nn.Flatten()self.dense_relu_sequential nn.SequentialCell(nn.Dense(28*28, 512, weight_init"normal", bias_init"zeros…

C#Winform窗体中嵌入exe文件

1,效果以嵌入Modbus Slave为例: 2,代码: public partial class Form1 : Form{//设置嵌入exe的常量private const int nIndex -16;private const int dwNewLong 0x10000000;Process m_AppProcess;public Form1(){InitializeCompo…

符号速率、调制方式、码率、传输速率

符号速率、调制方式、码率(比特率)和传输速率在通信系统中是相互关联且重要的概念,它们之间的关系可以归纳如下: 一、定义 符号速率(Symbol Rate): 也称波特率(Baud Rate&#xff…

mmdetection3增加12种注意力机制

在mmdetection/mmdet/models/layers/目录下增加attention_layers.py import torch.nn as nn from mmdet.registry import MODELS #自定义注意力机制算法 from .attention.CBAM import CBAMBlock as _CBAMBlock from .attention.BAM import BAMBlock as _BAMBlock from .attent…

欢乐钓鱼大师游戏攻略:在什么地方掉称号鱼?云手机游戏辅助!

《欢乐钓鱼大师》是一款融合了休闲娱乐和策略挑战的钓鱼游戏。游戏中的各种鱼类不仅各具特色,而且钓鱼过程充满了挑战和乐趣。下面将为大家详细介绍如何在游戏中钓鱼,以及一些有效的钓鱼技巧,帮助你成为一个出色的钓鱼大师。 实用工具推荐 为…

Day64 代码随想录打卡|回溯算法篇---组合总和

题目(leecode T39): 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 …

什么开放式耳机好用?五大王牌开放式耳机种草!

随着科技的持续进步,开放式蓝牙耳机悄然兴起,逐步取代了经典的入耳式耳机。入耳式耳机以其卓越的隔音性能著称,然而,长时间的使用却容易引发耳道受压,伴随而来的不仅是疼痛与不适,更潜藏着耳膜受损的风险。…

90%的铲屎官必遇到家里猫毛满天飞问题,热门宠物空气净化器分享

作为一名资深猫奴,一到换毛季节家中就会忍受猫毛飞舞、异味四溢的双重困扰?花粉加上宠物的毛发和体味,过敏和不适似乎成了家常便饭。尝试过很多半方法,用过空气净化器去除毛和异味,虽然普通空气净化器可能提供一定程度…

swiftui中几个常用的手势控制单击点击,双击和长按事件

简单做了一个示例代码,包含三个圆形形状,配置了不同的事件,示例代码: // // RouterView.swift // SwiftBook // // Created by song on 2024/7/4. //import SwiftUIstruct RouterView: View {State var isClick falsevar bod…

Movable antenna 早期研究

原英文论文名字Historical Review of Fluid Antenna and Movable Antenna 最近,无线通信研究界对“流体天线”和“可移动天线”两种新兴天线技术的发展引起了极大的关注,这两种技术因其前所未有的灵活性和可重构性而极大地提高了无线应用中的系统性能。…

用Vue3和Plotly.js绘制交互式3D烛形图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 Plotly.js实现交互式K线图 应用场景 K线图广泛应用于金融领域,用于展示股票、外汇等金融产品的价格走势。它直观地呈现了开盘价、收盘价、最高价和最低价等信息,帮助投资者分析市场趋势…