Administrator
发布于 2026-08-30 / 51 阅读
0
0

鸿蒙开发初体验:从零搭建 DevEco Studio 到运行第一个 ArkUI 应用

系列文章《鸿蒙开发从入门到专家》第 1 篇(初级篇)

前言

2024 年华为正式推出 HarmonyOS NEXT,业内称之为"纯血鸿蒙"——它彻底移除了 Android 兼容层,从内核到应用框架全部自研。到 2026 年,HarmonyOS 终端设备已突破 8000 万台,覆盖手机、平板、PC、车机、智慧屏等全场景。对于开发者来说,这意味着一个独立于 Android 和 iOS 之外的第三大生态正在快速成型,而 ArkTS + ArkUI 就是打开这个生态的钥匙。

很多有经验的 Android 或前端开发者想转入鸿蒙开发,却被第一步的环境搭建拦住了。本文从下载安装到运行第一个应用,手把手带你走完整流程,大约 15 分钟就能出成果。

一、DevEco Studio NEXT 安装与配置

1.1 下载与安装

DevEco Studio 是华为官方提供的鸿蒙应用集成开发环境,基于 IntelliJ IDEA 社区版打造。2025 年后的项目必须使用 DevEco Studio NEXT(对应 API Level 12+)。

系统要求:

  • Windows 10/11(64 位,8GB 内存以上)

  • macOS 11 及以上(Intel 或 Apple Silicon)

  • 硬盘空间至少 20GB

下载地址: 华为开发者联盟官网(developer.huawei.com/consumer/cn/deveco-studio)

安装过程与 Android Studio 几乎一致,一路下一步即可。首次启动时会提示下载 SDK,建议选择:

  • HarmonyOS SDK(API 12 及以上)

  • Previewer 预览器(强烈推荐,支持热重载)

  • Emulator 模拟器(如果没有真机调试的话)

1.2 创建第一个项目

打开 DevEco Studio,选择 File → New → Create Project,在模板列表中选择 Empty Ability(Stage 模型)。这里注意:华为已主推 Stage 模型,旧的 FA 模型逐渐淘汰,新项目直接选 Stage 即可。

填写项目信息:

  • Project name:HelloHarmonyOS

  • Bundle name:com.example.helloharmonyos

  • Save location:自选目录

  • Compatible SDK:API 12(对应 HarmonyOS 5.0)

  • Model:Stage

点击 Finish,等待 Gradle 同步完成。首次同步可能需要 3-5 分钟,取决于网络状况。

1.3 项目结构速览

同步完成后,你会看到如下目录结构:

HelloHarmonyOS/
├── entry/                          # 主模块(entry 是默认入口模块名)
│   ├── src/main/ets/
│   │   ├── entryability/
│   │   │   └── EntryAbility.ets    # 入口 Ability,管理页面生命周期
│   │   └── pages/
│   │       └── Index.ets           # 首页(我们主要编辑的文件)
│   ├── src/main/resources/         # 资源文件(图片、字符串、颜色)
│   │   ├── base/element/           # 颜色、字符串等值资源
│   │   └── rawfile/                # 原始文件
│   ├── module.json5                # 模块配置(权限、Ability 声明等)
│   └── build-profile.json5         # 构建配置
├── hvigor/                         # 构建脚本
└── build-profile.json5             # 项目级构建配置

关键文件说明:

  • EntryAbility.ets:Stage 模型的入口,负责窗口管理和生命周期回调。

  • Index.ets:首页页面文件,ArkUI 声明式 UI 代码写在这里。

  • module.json5:相当于 Android 的 AndroidManifest.xml,声明 Ability、权限、路由等信息。

二、编写第一个 ArkUI 页面

2.1 认识 ArkUI 声明式语法

打开 entry/src/main/ets/pages/Index.ets,默认会生成一段示例代码。我们把它改成自己的第一个页面:

@Entry
@Component
struct Index {
  @State message: string = 'Hello HarmonyOS!'
  @State count: number = 0

  build() {
    Column({ space: 20 }) {
      Text(this.message)
        .fontSize(28)
        .fontWeight(FontWeight.Bold)
        .fontColor('#317AF7')

      Text(`点击次数: ${this.count}`)
        .fontSize(20)
        .fontColor('#666666')

      Button('点我计数', { type: ButtonType.Capsule })
        .width(160)
        .height(44)
        .backgroundColor('#317AF7')
        .fontColor(Color.White)
        .onClick(() => {
          this.count++
        })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .backgroundColor('#F5F5F5')
  }
}

语法要点解读:

语法元素

作用

@Entry

标记页面的入口,每个页面文件必须有且只有一个

@Component

标记这是一个 UI 组件结构体

struct Index

组件定义,名称自定义

@State

状态装饰器,标记的变量变化会自动触发 UI 刷新

build()

构建 UI 的方法,所有界面代码写在这里

Column / Text / Button

ArkUI 内置组件,分别对应垂直布局容器、文本、按钮

.onClick()

事件绑定,链式调用风格

2.2 实时预览与热重载

DevEco Studio 提供了强大的预览功能。点击编辑器右上角的 Previewer 按钮,即可在右侧看到实时渲染效果。修改代码后,预览器会自动热重载,无需重新编译——这个体验比 Android 的 XML 预览器流畅得多。

如果你没有真机,可以配置模拟器:

  1. 点击顶部工具栏的 Tools → Device Manager

  2. 选择 Remote Emulator(华为云模拟器,需要登录华为账号)

  3. 或者创建 Local Emulator(本地下载镜像,启动较慢)

2.3 运行到真机

如果你手头有搭载 HarmonyOS 5.0 的手机,真机调试效果最好:

  1. 手机开启开发者模式:设置 → 关于手机 → 连续点击版本号 7 次

  2. 开启 USB 调试:设置 → 系统和更新 → 开发人员选项 → USB 调试

  3. 用 USB 线连接电脑,DevEco Studio 会自动识别设备

  4. 点击顶部运行按钮(绿色三角),选择你的设备

首次运行需要在手机上允许调试授权。编译安装大约 10-20 秒,比 Android 的 Gradle 构建快不少。

三、理解 Stage 模型的核心概念

很多从 Android 转过来的开发者会困惑:鸿蒙的 Ability 到底是什么?跟 Android 的 Activity 有什么区别?

3.1 Ability vs Activity

特性

Android Activity

HarmonyOS UIAbility

生命周期

onCreate/onStart/onResume…

onCreate/onForeground/onBackground/onDestroy

页面导航

Intent + Activity 栈

Router 或 Navigation 组件

多窗口

较复杂

原生支持,通过 WindowStage 管理

跨设备迁移

不支持

原生支持分布式迁移

UIAbility 是 Stage 模型的核心组件,每个 UIAbility 对应一个独立的窗口。简单应用通常只有一个 EntryAbility,复杂应用可以有多个 Ability(比如一个主页面 Ability + 一个视频播放 Ability)。

3.2 生命周期钩子实战

打开 EntryAbility.ets,你可以在 onWindowStageCreate 里获取窗口并加载首页:

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'
import { window } from '@kit.ArkUI'

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    console.info('EntryAbility onCreate')
  }

  onWindowStageCreate(windowStage: window.WindowStage): void {
    console.info('EntryAbility onWindowStageCreate')
    // 加载首页
    windowStage.loadContent('pages/Index', (err) => {
      if (err.code) {
        console.error('Failed to load content', err.message)
        return
      }
      console.info('Succeeded in loading content')
    })
  }

  onForeground(): void {
    console.info('EntryAbility onForeground')
  }

  onBackground(): void {
    console.info('EntryAbility onBackground')
  }
}

onForeground 和 onBackground 分别对应应用进入前台和退到后台的时机,可以用来处理播放暂停、数据保存等逻辑。

四、常见踩坑与解决

问题 1:预览器报错 “Unable to start preview”

  • 检查 SDK 版本是否与项目配置的 API 级别匹配

  • 尝试 Build → Clean Project 后重新同步

问题 2:真机安装提示 “解析包失败”

  • 检查手机的 HarmonyOS 版本是否 >= 项目配置的 minCompatibleVersionCode

  • 确认签名配置正确(自动签名可在 File → Project Structure → Signing Configs 中开启)

问题 3:@State 变量修改后 UI 不刷新

  • ArkTS 要求状态更新必须是赋值操作,this.arr.push(item) 不会触发刷新,要写成 this.arr = [...this.arr, item]

小结与下篇预告

本文带你完成了 DevEco Studio 的安装、第一个 ArkUI 项目的创建和运行,并介绍了 Stage 模型的核心概念。关键记住三点:

  1. 新项目一定选 Stage 模型,FA 模型已淘汰

  2. ArkUI 是声明式框架,数据驱动 UI,状态用 @State 管理

  3. 预览器支持热重载,开发效率很高

下一篇(第 2 篇)我们将深入 ArkTS 语言本身——如果你已经会 TypeScript,60% 的内容你已经掌握了。但鸿蒙在 TypeScript 基础上增加了声明式 UI 语法、状态装饰器和严格类型模式,这些才是重点。

参考阅读


评论