10.9 鸿蒙创建和运行项目

创建和运行项目

1.1 新建项目

  • 双击桌面上的图标,启动DevEco Studio

  • 首次打开会出现下面的弹窗,保持默认选项

  • 保持默认勾选,单击"Agree"(同意)按钮

  • 单击【Create Project】(创建项目)
  • 选择【Empty Ability】(空应用), 之后单击【Next】

如果不是首次打开DevEco Studio, 则【文件】【新建】【新建项目】

项目名称一定要以字母开头,包含字母、数字、下划线

保存的地址路径中不能出现中文,最后字母,可以结合数字,下划线

保存的路径问题【error】

【pro是项目所在文件夹,需要在添加一个项目的文件夹名称】

保存的路径问题【error】

【保存位置只能包含字母、数字、句点(.)、下划线(_)、连字符(-)、冒号(:)和反斜杠(\)】

单击【Finish】按钮后,项目创建成功

1.2 启用中文化插件

【File】【Settings...】

【Plugins】【Installed】

单击"Enable"启用中文化插件,之后单击"Apply"应用, "ok"关闭窗口

单击【Restart】重启,

1.3 打开入口文件

【项目目录】【entry】【src】【main】【ets】【pages】【Index.ets】

TypeScript 复制代码
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  
  build() {
    // 相对布局
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

1.4 在预览器中预览

  • 确认Index.ets是当前文件

  • 单击右侧标签【预览器】

1.5 预览器配置

1.6 设置代码换行

【文件】【设置】【编辑器】【常规】

需要手动添加文件的后缀名

1.7 设置VSCode风格的快捷键

  • 【文件菜单】【设置】

安装插件【VSCode Keymap】

选择VSCode风格的快捷键

如果初始化项目报错

错误类型:

在创建项目时报以下错误 ,或者在创建项目时无反应

解决方案

修改idea.properties文件即可

理解入口文件基础代码

!!!!注意:

以下概念不需要现在完全明白,只要会用,随着知识体系的深入,就会深刻理解

  • 以@开头的标识符为装饰器,标识不同的功能

  • @Entry 标识当前文件为入口文件,只能有一个入口文件

  • @Component标识当前文件是一个组件

  • struct (结构)定义组件的结构 Index为组件名

  • @State 定义组件的状态,当状态改变时,会触发视图更新

  • build(){} 构建组件, build内部只能有一个唯一的根组件

TypeScript 复制代码
// 以@开头的标识符为装饰器,标识不同的功能
// @Entry 标识当前文件为入口文件,只能有一个入口文件
@Entry
// @Component标识当前文件是一个组件
@Component
// struct(结构)定义组件的结构 Index为组件名
struct Index {
  // @State 定义组件的状态【数据】,当状态改变时,会触发视图更新
  @State message: string = 'Hello World';

  // build(){} 构建组件,  build内部只能有一个唯一的根组件
  build() {
  // 是一种布局模式【相对布局】
  RelativeContainer() {
    // 文本组件,用于在页面中添加文本内容
    Text(this.message)
      // 组件标识
      .id('HelloWorld')
      // 从资源文件(resources/base/element/float.json 中)动态获取字体大小,支持多语言、多设备适配
      // 字体大小,可以写具体的数值,比如30,注意这里的尺寸没有单位【px】
      .fontSize($r('app.float.page_text_font_size'))
      // ctrl + 鼠标点击,可以查看FontWeight的所有参数值
      .fontWeight(FontWeight.Bold)
      // 对齐方式的规则
      .alignRules({
        // anchor 锚点
        center: { anchor: '__container__', align: VerticalAlign.Center },
        middle: { anchor: '__container__', align: HorizontalAlign.Center }
      })
      // 点击事件
      .onClick(() => {
        // 组件本身
        this.message = 'Welcome';
      })
  }
  .height('100%')
  .width('100%')
 }
}

参考文档:

文档仅做参考,有些方式不一定要掌握,有些内容不一定现在能理解

创建和运行Hello World的官方文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hello-world-V5

相关推荐
HwJack2032 分钟前
【HarmonyOS开发小实践】ArkUI 动画系统属性动画、显式动画与路径动画
ui·性能优化·harmonyos
BoomHe2 小时前
Android Framework 文件应用移植到 AndroidStudio
android
李游Leo2 小时前
HarmonyOS 7 实战开发 05:把页面做到可上线状态
ios·harmonyos
传奇开心果编程3 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
>Andre<4 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
事圆则缓4 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
mmsx5 小时前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
zhangfeng11335 小时前
ATK(华为算子测试平台)详细介绍 CANN(Compute Architecture for Neural Networks,神经网络计算架构
人工智能·华为·ai编程·npu·cann
贾伟康6 小时前
【HarmonyOS 7新能力|043】可变字体工程封装:把接入逻辑放进可维护的分层结构
harmonyos·arkts·arkui·ui设计·可变字体
HarmonyOS_SDK6 小时前
HarmonyOS智慧多窗,让应用在任意窗口都“恰到好处”
harmonyos