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

HarmonyOS应用开发环境搭建以及快速入门介绍

下载并安装DevEco Studio,这是华为官方提供的HarmonyOS应用开发IDE。访问华为开发者联盟官网下载对应操作系统的版本。安装完成后,配置HarmonyOS SDK和必要的工具链。

确保计算机满足开发环境要求,包括Windows 10 64位或macOS 10.14及以上操作系统,8GB以上内存,以及至少10GB的可用硬盘空间。

创建第一个HarmonyOS项目

官网地址:https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/tutorials_Next-HelloWorld

打开DevEco Studio,选择“Create HarmonyOS Project”创建一个新项目。

选择适合的模板,如“Empty Ability”作为起点。配置项目名称、包名和存储路径,确保选择正确的设备类型和API版本。选择Compatible SDK为5.0.5(17),在编译构建时,DevEco Studio会根据指定的Compatible SDK版本进行编译打包。

DevEco Studio会默认勾选除‘Car’以外的全部Device type,保持该选项即可。

项目创建完成后,DevEco Studio会自动生成基本项目结构,包括配置文件、资源文件和初始代码。熟悉项目目录结构,重点关注entry/src/main目录下的config.jsonresourcesjava文件夹。

编写基础UI界面

在Project导航栏中选中 entry -> src -> main -> ets -> pages -> Index.ets,即可看到初始创建项目的模板代码。

@Entry装饰的@Component将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。
其中,@Component装饰器装饰了struct关键字声明的数据结构Index。
Index被@Component装饰后具备组件化的能力,通过实现build方法描述UI。

界面由RelativeContainer相对布局容器作为根容器,RelativeContainer支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。

定义字体大小fontSize取值为$r('app.float.page_text_font_size')资源类型;定义文本的字体粗细fontWeight取值为Bold,即字体较粗。

字体大小等数据的值一般存储在/entry/src/main/resources/base/element/float.json文件下,可以按照上文page_text_font_size的方式保存至float.json文件中,并通过$r('app.float.xxx')进行资源引用。

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {RelativeContainer() {Text(this.message).id('HelloWorld').fontSize($r('app.float.page_text_font_size')).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).onClick(() => {this.message = 'Welcome';})}.height('100%').width('100%')}
}

alignRules属性用于指定设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效,在这里定义Text组件横向居中和纵向居中。

开启右边栏的Previewer,预览器将工程中的@Entry作为实现入口,自动实现预览

http://www.lryc.cn/news/611918.html

相关文章:

  • 【大模型系列】gpt-oss系列模型初探
  • 前端UI组件库
  • WMS及UI渲染底层原理学习
  • ROG 掌机 X:便携游戏新宠,开启微观生存冒险
  • JAVA 程序员cursor 和idea 结合编程
  • OpenAI最新开源:GPT-OSS原理与实践
  • 需求如何映射到开发计划中
  • 江协科技STM32 15-1 FLASH闪存
  • Unity模型显示在UI上
  • IDS知识点
  • 在ubuntu上使用jenkins部署.net8程序
  • 【网络安全】入侵检测系统 Suricata 概述 | IDS
  • DHCP 服务器与DNS服务器
  • 如何将照片从POCO手机传输到Mac电脑
  • Linux基础命令的生产常用命令及其示例简单解释
  • Mac 洪泛攻击笔记总结补充
  • Vue2中实现数据复制到 Excel
  • OceanBase DBA实战营2期--自动分区分裂学习笔记
  • 虚幻GAS底层原理解剖四 (TAG)
  • 《爬虫实战指南:轻松获取店铺详情,开启数据挖掘之旅》
  • Adobe Analytics 数据分析平台|全渠道客户行为分析与体验优化
  • 时隔六年!OpenAI 首发 GPT-OSS 120B / 20B 开源模型:性能、安全与授权细节全解
  • 【WAIC 2025】AI安全的攻防前线:合合信息AI鉴伪检测技术
  • 算法训练营DAY55 第十一章:图论part05
  • 支持向量机(SVM)算法依赖的数学知识详解
  • 非机动车识别mAP↑28%!陌讯多模态融合算法在智慧交通的实战解析
  • Unity里的对象旋转数值跳转问题的原理与解决方案
  • Linux《进程间通信(上)》
  • Android 之 Kotlin中的符号
  • Linux---第二天---基础指令