鸿蒙开发:1.环境搭建和入门
环境搭建
安装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像素及以上
文档
文档中心
下载安装
DevEco Studio-HarmonyOS Next开发者预览版-华为开发者联盟
1.进入HUAWEI DevEco Studio产品页,单击下载列表右侧的下载按钮,下载DevEco Studio 2.选择安装路径,单击Browse指定其安装路径【默认C:\Program Files】
3.勾选DevEco Studio
配置开发环境
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,进入页面启动即可
连接项目
在启动处选择此模拟器即可
工程目录结构和代码初始结构
工程目录结构
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:应用级编译构建任务脚本
代码初始结构【src.main.ets.pages.Index.ets】
/*** 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。* @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%')}
}
页面跳转(ArkTS基础语法)
创建第二个页面
1.新建第二个页面文件,entry/src/main/etspages,选择New > ArkTS File,命名为About
2.配置第二个页面的路由,entry/src/main/resources/base/profile/main_pages.json文件中的"src"下配置第二个页面的路由"pages/About"
第二个页面【增加按钮组件,并实现点击事件和跳转到第一个页面】
import router from '@ohos.router'
@Entry
@Component
struct About {@State message: string = '第二个页面'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).fontColor(Color.Red)// 添加按钮Button(){Text("Next").fontSize(30).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({top:20}).padding({left:20,right:20})// 事件方法.onClick(() =>{console.info(`点击事件`)// 跳转到第一个页面router.pushUrl({url:'pages/Index'}).then(() =>{console.log("跳转成功")}).catch(() =>{console.log("跳转失败")})})}.width('100%')}.height('100%')}
}
相关文章:
鸿蒙开发:1.环境搭建和入门
环境搭建 安装HUAWEI DevEco Studio 简介 HUAWEI DevEco Studio是基于IntelliJ IDEA Community开源版本打造, 为运行在HarmonyOS和OpenHarmony系统上的应用和服务提供一站式的开发平台。 特点 1.高效智能代码编辑:支持ArkTS、JS、C/C等语言的代码高亮、…...
python学习 - 设计模式 - 组合模式
组合模式 Composite , 将对象组组合成树形结构以表示’部分-整体’ 的层次结构.组合模式使得用户对单个对象的组合对象的使用具有一致性 #!/usr/bin/python # -*- coding:UTF-8 -*- # File : d1.py # Software: PyCharm""" 组合模式 Composite , 将对象组组…...
JavaScript倒序遍历数组:计算年度累积值
在 JavaScript 开发中,我们经常需要对数组中的数据进行特定顺序的处理。倒序 for 循环是一种常见的技术,它可以从数组的末尾开始向前遍历元素。这种技术特别适用于需要基于前一个元素的值来计算当前元素的场景。 示例场景:计算年度累积值 假…...
华为仓颉编程语言观感
这里写自定义目录标题 相似点(主要与Swift进行对比)不同点亮点 花了半天时间,对华为新出的仓颉编程语言做了简单的了解,整体观感如下: 仓颉语言看起来是一门大而全的语言,吸纳了现存的很多中编程语言的范式…...
Elasticsearch:倒数排序融合 - Reciprocal rank fusion - 8.14
警告:此功能处于技术预览阶段,可能会在未来版本中更改或删除。语法可能会在正式发布之前发生变化。Elastic 将努力修复任何问题,但技术预览中的功能不受官方正式发布功能的支持 SLA 约束。 倒数排序融合 (reciprocal rank fusion - RRF) 是一…...
Day13—大语言模型
定义 大语言模型(Large Language Models)是一种基于深度学习的自然语言处理(NLP)模型,用于处理和生成人类语言文本。 一、认识NLP 什么是NLP NLP(Natural Language Processing)࿰…...
php基础语法_面向对象
PHP php代码标记 多种标记来区分php脚本 ASP标记:<% php代码 %> 短标记: 脚本标记: 标准标记(常用): 简写风格: ASP风格:<% php代码 %> 注意:简写风格和ASP风格…...
开源模型应用落地-LangChain高阶-LCEL-表达式语言(八)
一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么? LCEL是一种非常灵活和强大的语言,可以帮助您更…...
c# 协议数据计算陀螺仪的角度,带符号
subStrL str.Substring((76 - 8), 2); subStrH str.Substring((78 - 8), 2); Data[7] (short)(Convert.ToInt16(subStrH, 16) * 256 Convert.ToInt16(subStrL, 16));//角度X subStrL str.Substring((80 - 8), 2); subStrH str.Subst…...
ArcGIS arcpy代码工具——批量要素裁剪栅格影像
系列文章目录 ArcGIS arcpy代码工具——批量对MXD文件的页面布局设置修改 ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片 ArcGIS arcpy代码工具——将要素属性表字段及要素截图插入word模板 ArcGIS arcpy代码工具——定制属性表字段输出表格 ArcGIS arc…...
discuz插件之优雅草超级列表互动增强v1.2版本更新
https://doc.youyacao.com/9/2142 v1.2更新 discuz插件之优雅草超级列表互动增强v1.2版本更新 [title]20220617 v1.2发布[/title] 增加了对php8的支持 增加了 对discuz3.5的支持...
三、用户中心项目笔记----后端多环境实战+原始部署
后端多环境主要是修改: 依赖的环境地址 数据库地址 缓存地址 消息队列地址 项目端口号 服务器配置 后端怎么去区分不同的环境? 我们后端的SpringBoot项目,通过application.yml添加不同后缀来区分配置文件 application.yml就是公共的配置&a…...
SpringMVC的使用
SpringMVC详情 RequestMapping("/hello") 负责用户的请求路径与后台服务器之间的映射关系 如果请求路径不匹配,则用户报错404 ResponseBody 作用: 将服务器的返回值转化为JSON. 如果服务器返回的是String类型,则按照自身返回. 新增: post请求类型 PostMapping("…...
Vue73-命名路由
一、路由的name属性 二、小结...
TrustOne发布一周年成绩单,15000家数智化转型客户的选择!
新一代终端安全TrustOne 发布一周年 交出亮眼成绩单 目前已经为 15000家数智化转型客户 带来高效、全方位的解决方案 TrustOne 新一代终端安全 2023年6月 新一代终端安全TrustOne正式发布,极简新主义的创新理念为数字变革而来; 2023年12月 IDC&…...
Nginx实战:故障处理_后端服务正常,nginx偶发502(Bad Gateway)
一、故障场景 用户访问服务偶发报错【502 Bad Gateway】,但是服务后端正常运行。架构如下: #mermaid-svg-4dDszusKEuPgIPlt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4dDszusKEuPgIPlt .error-icon{fill:#5…...
mac系统清理软件哪个好用?CleanMyMac X清理工具轻松拿捏mac
还在为 mac 电脑里的垃圾文件、无用缓存和隐私痕迹而烦恼?想找一个软件直接全面清理优化电脑?维护苹果设备的清洁和高效运行是非常重要的,特别是在设备经过长时间使用后。有效的苹果清理软件不仅可以帮助您节省时间,还能延长设备的…...
拔掉独显提升性能,AMD新一代核显可以通杀主流游戏了
在今年台北电脑展上,AMD 除了带来了全新的 Ryzen 9000 系列。 与此同时也带来了全新的移动端处理器 Ryzen AI 9 HX 300 系列。 来源:AMD 也许是在 AI 领域稍晚一步,AMD 的全新移动端处理器命名直接把 AI 焊在脸上。 也就是咱们今天的主角 R…...
关于单片机那些事?
周期 时钟周期:也叫振荡周期,就是单片机外接晶振的倒数,如12Mhz,周期就是1/12us,最小的时间单位。频率越高,速度越快 指令周期:执行一条指令需要的时间,一般由若干个机器周期组成 …...
第5章 传输层
王道学习 考纲内容 (一)传输层提供的服务 传输层的功能:传输层寻址与端口;无连接服务和面向连接服务 (二)UDP UDP数据报;UDP检验 (三)TCP …...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
LINUX编译vlc
下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总(最简化)_底部的附件列表中】: ffmpeg - lzip…...
Flask和Django,你怎么选?
Flask 和 Django 是 Python 两大最流行的 Web 框架,但它们的设计哲学、目标和适用场景有显著区别。以下是详细的对比: 核心区别:哲学与定位 Django: 定位: "全栈式" Web 框架。奉行"开箱即用"的理念。 哲学: "包含…...
湖北理元理律师事务所:债务清偿方案中的法律技术革新
文/金融法律研究组 当前债务服务市场存在结构性矛盾:债权人追求快速回款,债务人需要喘息空间。湖北理元理律师事务所通过创新法律技术,在《企业破产法》《民法典》框架下构建梯度清偿模型,实现多方利益平衡。 一、个人债务优化的…...
Three.js进阶之粒子系统(一)
一些特定模糊现象,经常使用粒子系统模拟,如火焰、爆炸等。Three.js提供了多种粒子系统,下面介绍粒子系统 一、Sprite粒子系统 使用场景:下雨、下雪、烟花 ce使用代码: var materialnew THRESS.SpriteMaterial();//…...
