【HarmonyOS NEXT开发】鸿蒙开发环境准备,ArkTS基础语法入门

news2024/9/30 23:06:18

在这里插入图片描述
在这里插入图片描述

文章目录

    • 鸿蒙开发环境准备,ArkTS基础语法入门
        • 大纲
        • 简介
          • DevEco Studio简介
          • 运行环境要求
        • 安装与配置
          • 开发工具下载
          • Harmony OS 和 OpenHarmony 的区别
          • Previewer
          • 汉化插件的配置
        • ArkTS基础快速入门
          • 1. 解释说明
          • 2. 变量与常量
          • 3. 变量命名规则
          • 4. 数组
          • 5. 函数
            • 定义函数
            • 调用函数
          • 6. 箭头函数
          • 7. 对象
          • 8. 联合类型
          • 9. 枚举
          • 实例:创建一个学生信息系统

鸿蒙开发环境准备,ArkTS基础语法入门

大纲
  • 主题:鸿蒙开发环境准备,ArkTS基础语法入门。

  • 内容摘要:带领直播课的观众一步步安装好DevEco Studio,配置好开发环境。学习基础的ArkTS 语法,能够基本掌握鸿蒙开发的核心语言ArkTs,包括数组,函数的基本使用,对象方法,接口&对象…

简介
DevEco Studio简介

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

作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点:

  • 高效智能代码编辑:支持ArkTS、JS、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。
  • 多端双向实时预览:支持UI界面代码的双向预览、实时预览、动态预览、组件预览以及多端设备预览,便于快速查看代码运行效果。
  • 多端设备模拟仿真:提供HarmonyOS本地模拟器,支持Phone等设备的模拟仿真,便捷获取调试环境。
  • DevEco Profiler性能调优:提供实时监控能力和场景化调优模板,便于全方位的设备资源监测,采集数据覆盖多个维度,为开发者带来高效、直通代码行的调优体验。
运行环境要求

为保证DevEco Studio正常运行,建议电脑配置满足如下要求:

  • 操作系统:Windows10 64位、Windows11 64位
  • 内存:16GB及以上
  • 硬盘:100GB及以上
  • 分辨率:1280*800像素及以上
安装与配置
开发工具下载

进入到网址:https://developer.huawei.com/consumer/cn/deveco-studio/,点击立即下载,Mac(X86)适用于英特尔的处理器,Max(ARM)适用于M系列的处理器。

首先,我们下载DevEco Studio,其是基于Itellij IDEA Community定制化开发的专注于HarmonyOS应用和设备的开发的集成开发环境(IDE)。

在勾选三个选项时,只需勾选创建快捷方式即可。

DevEco Studio提供开箱即用的开发体验,将HarmonyOS SDK、Node.js、Hvigor、OHPM、模拟器平台等进行合一打包,简化DevEco Studio安装配置流程。

以前的版本需要手动配置Node.js,SDK;对于最新的版本,HarmonyOS SDK已嵌入DevEco Studio中,无需额外下载配置。HarmonyOS SDK可以在DevEco Studio安装位置下DevEco Studio\sdk目录中查看。如需进行OpenHarmony应用开发,可通过Settings > OpenHarmony SDK页签下载OpenHarmony SDK。

Harmony OS 和 OpenHarmony 的区别

img

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,由华为、阿里、腾讯、百度、浪潮、招商银行、360等十家互联网企业共同发起组建。这一项目的目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。从“Open”一词中可以看出,它是一个开放源代码的项目,由华为雇佣的开发者编写代码,而后,华为将HarmonyOS中的基础功能提取出来,打包成一个名为“OpenHarmony”的项目,并捐赠给了开放原子开源基金会。作为一个开源项目,OpenHarmony不包括AOSP的组成部分,因此不支持apk安装。这意味着使用者只需遵守开源协议和法律即可使用。

img

HarmonyOS是华为基于OpenHarmony、AOSP等开源项目开发的面向多种全场景智能设备的商用版本。如果将OpenHarmony理解为基础地基,HarmonyOS则是在此基础上建立的精装房。为了保护华为现有手机和平板用户的数字资产,HarmonyOS 2在遵循AOSP的开源许可的基础上,实现了现有Android生态应用在部分搭载该系统设备上的运行,支持apk安装。HarmonyOS的其他称呼包括鸿蒙操作系统和鸿蒙OS。

如果你是一名应用开发工程师,专注于华为终端设备的应用开发,那么选择HarmonyOS可能更合适。如果你对HarmonyOS底层的技术感兴趣,或者想对HarmonyOS做出贡献,那么选择OpenHarmony将是一个不错的选择。当然,如果想更进一步,基于OpenHarmony开源项目进行二次开发制作属于自己的操作系统,也是一个很好的选择。

在这里插入图片描述

Previewer

预览代码的效果,根据代码的变化实时变化。

在这里插入图片描述

向观众演示随着message内容的变化,右侧Previewer的内容也发生了相应的变化。

汉化插件的配置

ArkTS基础快速入门
1. 解释说明
// console.log('消息说明','打印的内容')
console.log('我说','HelloWorld')

// 如果想要修改分隔符
console.log('我说'+','+'Hello World')
console.log(['我说','HelloWorld'].join(","))

相当于给console.log()传入两个参数,当代码执行时,会在控制台输出每个参数并且自动在每个参数之间插入一个空格。

输出的结果可以在DevEco Studio底部的Log中进行查看。
在这里插入图片描述

拓展:代码区保存和预览区reload的区别

  • Ctrl+S保存代码

    当你按下 Ctrl+S 保存代码时,DevEco Studio 通常会执行一次增量编译。增量编译只会重新编译自上次构建以来更改的部分代码,这种方法使得编译速度非常快。因此,保存后的更新几乎是即时的,而且不会清除之前的日志信息。

    实时编译预览的前提是在Preview的上端开启了LivePreview,即小插头的图标。

  • 预览区 Reload

    预览区的 Reload 按钮可能会触发更复杂的操作,包括完整的 UI 刷新,甚至可能重新加载整个页面或应用。同时,Reload会导致应用的状态被重置,因此之前的日志信息会被清除。

2. 变量与常量
  • 变量

在这里插入图片描述

// let 变量名:变量类型 = 值
let title:string = '奥利奥水果捞'
let price:number = 21.8
let isSelect:boolean = true
let title:string = '奥利奥水果捞'
console.log('字符串title',title)

let price:number = 21.86
console.log('价格price',price)

let isSelect:boolean = true
console.log('是否被选择isSelect',isSelect)
  • 常量
// const 常量名:常量类型 = 值
const companyName:string = '华为'
const PI:number = 3.14
3. 变量命名规则
  • 只能包含数字、字母、下划线,不能以数字开头
  • 不能包含关键字(例如let const)
  • 严格区分大小写
4. 数组
let names: string[] = ['小红','小明','小张']
console.log('取到了',names[2])
5. 函数
定义函数
function 函数名(){
  函数体
}
function 函数名(形参1:类型,形参2:类型){
	函数体
  return 处理后的结果
}
调用函数
函数名()
函数名(实参1,实参2)
function buy(num:number,price:number){
  return num*price
}

let totalPrice:number = buy(2,3)
console.log('最终的价格',totalPrice)
6. 箭头函数

箭头函数是一种更为简洁的函数写法,语句的末尾需要加分号。

let buy = (num:number,price:number) => {
  return num*price
}

let totalPrice:number = buy(2,3)
console.log('最终的价格',totalPrice)
7. 对象
  • 作用:用于描述一个物体的特征行为

对象是一个可以存储多个数据的容器。

  • 定义与使用
    • 通过Interface接口约定对象结构类型
    • 定义对象并且使用
interface 接口名称{
  属性1:类型1
  属性2:类型2
  属性3:类型3
}
interface Person{
  name:string
  age:number
  gender:string
}

let person:Person = {
  name:'张三',
  age:18,
  gender:'male'
}

console.log('人的名字:',person.name)
console.log('人的年龄:',person.age)
console.log('人的性别:',person.gender)

interface 接口名称{
  方法名:(参数:类型) => 返回值类型
}
interface Person{
  name:string
  age:number
  gender:string
  sing:(song:string)=>void
}

let person:Person = {
  name:'张三',
  age:18,
  gender:'male',
  sing:(song:string)=>{
    console.log('张三','唱',song);
  }
}

console.log('人的名字:',person.name)
console.log('人的年龄:',person.age)
console.log('人的性别:',person.gender)
person.sing('我和我的祖国')
8. 联合类型
  • 适用于不用类型
let judge:number | string = 100
judge = 'A+'
console.log('评价',judge)
  • 锁定类型
let gender: 'male' | 'female' | 'secret' = 'male'
console.log('性别',gender)
9. 枚举
enum 枚举名{
  常量1 =,
  常量2 =,
  ......
}
enum ThemeColor{
  RED = '#ff0f29',
  ORANGE = '#ff7100',
  GREEN = '#30b30e'
}

let color:ThemeColor = ThemeColor.RED
实例:创建一个学生信息系统
  • 描述

你需要创建一个系统来管理学生的信息。每个学生有名字、年龄、性别以及成绩。通过函数计算并打印每个学生的总成绩。使用枚举表示成绩等级,并用对象描述学生信息

  • 要求
  1. 使用 interface 定义学生的信息。
  2. 使用枚举来表示成绩等级。
  3. 使用函数计算总成绩。
  4. 使用箭头函数打印学生信息。
// 定义枚举
enum GradeLevel {
  A = '优秀',
  B = '良好',
  C = '中等',
  D = '及格',
  F = '不及格'
}

// 定义学生接口
interface Student {
  name: string;
  age: number;
  gender: 'male' | 'female' | 'secret';
  scores: number[];
  gradeLevel?: GradeLevel;  // 可选属性
}

// 函数计算总成绩
function calculateTotalScore(scores: number[]): number {
  // array.reduce(callbackFn,initialValue);
  // callbackFn:(accumulator,currentValue)=>... 将第一个元素作为accumulator,并从第二个元素开始处理数组。
  return scores.reduce((total, score) => total + score, 0);
}

// 箭头函数打印学生信息
let printStudentInfo = (student: Student): void => {
  const totalScore = calculateTotalScore(student.scores);
  console.log(`学生姓名: ${student.name}`);
  console.log(`年龄: ${student.age}`);
  console.log(`性别: ${student.gender}`);
  console.log(`总成绩: ${totalScore}`);
  student.gradeLevel = totalScore >= 90 ? GradeLevel.A : (totalScore >= 80 ? GradeLevel.B : (totalScore >= 70 ? GradeLevel.C : (totalScore >= 60 ? GradeLevel.D : GradeLevel.F)));
  console.log(`成绩等级: ${student.gradeLevel}`);
}

// 创建学生对象
let student: Student = {
  name: '李华',
  age: 16,
  gender: 'male',
  scores: [88, 92, 76, 81]
}

在这里插入图片描述

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

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

相关文章

Mini型LoRa DTU远距离无线传输“小体积大作为”

Mini型LoRa DTU(数据传输单元)CL61M凭借其小巧的体积、低功耗、远距离通信和高可靠性等特点,在远距离无线传输领域展现出了巨大的应用潜力。使RS485/232串口终端设备能够轻松实现十公里的远距离无线通信,适用于多种复杂环境&#…

(三)Kafka离线安装 - ZooKeeper开机自启

手动启动方式 一般通过指令手动来启动zookeeper的方法是,先进入到zookeeper的安装目录下的bin目录,然后执行启动指令。 cd /usr/local/zookeeper/zookeeper-3.8.4/bin/zkServer.sh start 停止指令 zkServer.sh stop 查看状态 zkServer.sh status 上…

如何在知行之桥上通过业务单号查找原始报文?

在知行之桥中接收或发送的数据通常是EDI原始报文,知行之桥会对EDI原始报文进行格式转换,以方便用户后端系统的处理。因此,一般情况下,用户看到的都是转换后的数据结构,例如Json、XML或Excel等,无需直接查看…

window上部署kafka3.6.1,并配置sasl认证

1 安装kafka 第一步安装kafka,并能成功启动,可参考文章Windows下安装Kafka3-CSDN博客 2 修改kafka的配置文件 server.properties是kafka的主要配置文件,里面有很多参数可以调整。 主要修改如下 listenersSASL_PLAINTEXT://127.0.0.1:9092 sasl.enable…

基于tkinter实现学生管理系统(四)

学生信息管理系统-修改学生 代码实现 在上一节中的class StudentManagerApp中添加如下方法: # 修改学生信息def modify_student(self):selection self.tree.selection()if not selection:messagebox.showwarning("警告", "请选择要修改的学员"…

04:创建PADS Logic软件逻辑库

1. 打开自带的库文件 2.保留common库,移除其他库文件 3.新建库 5点击封装工具栏 6选择2D线 7添加端点 8点击保存 9打开查看

SQLi-LABS靶场46-50通过攻略

less-46 1.判断注入点 ?sort1 页面出现报错 2.判断闭合方式 ?sort1 -- 3.查询数据库 因为页面有报错 所以使用报错注入 ?sort1 and updatexml(1,concat(1,database()),1)-- 4.查询数据库的所有表 ?sort1 and updatexml(1,concat(1,(select group_concat(table_name)…

【功能自动化】使用HTMLTestRunner生成测试报告

配置环境: 1.部署webtours网站 2.user.txt 3.HTMLTestRunner.py """ A TestRunner for use with the Python unit testing framework. It generates a HTML report to show the result at a glance.The simplest way to use this is to invoke it…

【Go高性能】测试(单元测试、基准测试)

Go测试 一、分类1. 单元测试2. 基准测试 二、基准测试1. 介绍2. 基准测试基本原则3. 使用testing包构建基准测试3.1 执行基准测试3.2 基准测试工作原理3.3 改进基准测试的准确性3.3.1 -benchtime3.3.2 -count3.3.3 -cpu 4. 使用benchstat工具比较基准测试(可跳过)4.…

Leetcode 第 408 场周赛题解

Leetcode 第 408 场周赛题解 Leetcode 第 408 场周赛题解题目1:3232. 判断是否可以赢得数字游戏思路代码复杂度分析 题目2:3233. 统计不是特殊数字的数字数量思路代码复杂度分析 题目3:3234. 统计 1 显著的字符串的数量思路代码复杂度分析 题…

Pycharm can‘t open file ‘D:\\Program‘: [Errno 2] No such file or directory

问题描述 Pycharm 使用Python 3.11.9 版本调试代码报错: 解决方案 1、WindowsR,调起CMD(PowerShell不行),执行以下指令: mklink /J "D:\PyCharm" "D:\Program Files\JetBrains\PyCharm 2…

react学习之useState和useEffect

useState useState 可以使函数组件像类组件一样拥有 state,函数组件通过 useState 可以让组件重新渲染,更新视图。 实际使用 setstate()中回调函数的返回值将会成为新的state值回调函数执行时, React会将最新的state值作为参数传递 const A…

Vulkan进阶系列1 - Raytracing 光线查询

一:概述 为了提高效率,光线追踪需要将几何体组织成加速结构(AS, 即Acceleration Structure),以减少渲染过程中光线与三角形的相交测试次数。这种层次结构通常在硬件中实现,但只有两个层级对用户可见:一个顶层加速结构(TLAS),它引用任意数量的底层加速结构(BLAS)。通…

Linux进程间的通信(一)exec函数族,getenv获取系统环境变量,system和popen的区别,文件和记录锁定通信

目录 几个系统关键api exec函数族 getenv() system() 文件和记录锁定通信 在Linux/Unix系统中,进程间通信方式(Inter-Process Comunication)通常有如下若干中方式: 1、文件和记录锁定 2、管道 3、信号 4、system-V 5、PO…

贪心算法三道经典题(买卖股票,分发饼干)

贪心算法 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 步骤: 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 分发饼干 LeetCode原题 找满足孩子数量的最大值———最优解问题 什么…

数据同步大冒险:PostgreSQL到MySQL的奇妙之旅

引言:一场跨数据库的浪漫邂逅 💑 在数据的世界里,不同数据库系统就像是来自不同星球的恋人,它们各自拥有独特的魅力,但偶尔也会渴望一场跨越界限的亲密接触。今天,我们就来见证一场PostgreSQL与MySQL之间的…

初赛试题-2022年CSP-J3

先言 本次试卷 完善程序 三、完善程序(每题3分,共30分) (1) 【答案】 A B C D A (2) 【答案】 A B C D A

探索用于小占用关键词检测的TinyML框架:一个简明概述

目录 摘要 第一部分:引言 第二部分:部署TinyML的常见挑战 第三部分:SF-KWS的不同方法 A. 网络架构(Network Architecture) B. 学习技术(Learning Techniques) C. 模型压缩(Mo…

最新黑名单查询录入系统PHP网站源码

源码介绍: 最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很…