
摘要:本文以一张典型的 OpenHarmony 开发环境截图为基础,深入解析一个标准的
Hello World应用项目。通过代码结构、UI 布局、预览器功能和开发工具链的全面剖析,帮助初学者快速掌握 OpenHarmony 的核心开发流程与最佳实践。
在上一篇《Electron 与开源鸿蒙的关系》中,我们探讨了跨平台框架与国产操作系统的生态融合。而本篇将聚焦于 OpenHarmony 的实际开发场景,以一张真实的 DevEco Studio 开发界面截图为例,带领读者从零开始构建一个基础应用。

图1:DevEco Studio 中的 HelloWord 项目结构与 Index.ets 代码
该截图展示了:
我们将逐层拆解这个“Hello World”应用,理解其背后的架构设计与技术细节。
hm_project/
├── entry/ # 主入口模块
│ ├── src/
│ │ └── main/
│ │ ├── ets/ # ArkTS 源码
│ │ │ ├── entryability/ # 入口 Ability
│ │ │ │ └── Index.ets ← 当前文件
│ │ │ └── pages/ # 页面组件
│ │ └── app.ets # 应用主入口
│ └── build/ # 构建输出
├── oh_modules/ # 第三方模块
└── config.json # 配置文件文件 | 功能 |
|---|---|
Index.ets | 主页面组件,显示“Hello World” |
app.ets | 应用启动入口,注册 Ability |
config.json | 定义应用名称、图标、权限等 |
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(150)
.fontWeight(FontWeight.Bold)
.fontColor(Color.Pink)
}
.width('100%')
}
.height('100%')
}
}@Entry
@Component
struct Index {@Component:声明这是一个可渲染的 UI 组件。@Entry:标记为应用入口组件,由系统自动加载。@State message: string = 'Hello World';@State:标记为响应式状态变量,当值变化时自动触发 UI 更新。'Hello World',后续可通过事件或异步请求修改。build() {
Row() {
Column() {
Text(this.message)
.fontSize(150)
.fontWeight(FontWeight.Bold)
.fontColor(Color.Pink)
}.width('100%')
}.height('100%')
}Row():水平排列子元素,占据整个屏幕宽度。Column():垂直堆叠子元素,用于居中内容。Text():文本显示组件,支持链式调用设置样式。.fontSize(150):字体大小为 150sp。.fontWeight(FontWeight.Bold):加粗字体。.fontColor(Color.Pink):粉红色文字。.width('100%') 和 .height('100%'):容器占满父级空间。提示:ArkUI 支持链式调用,语法简洁,类似 React 或 Flutter。
src/main/ets/pages 查看页面组件。Index.ets 被选中,表示当前编辑文件。Index.ets 源码。Phone (medium):普通手机屏幕。Foldable (large):折叠屏设备。优势:无需编译运行即可看到视觉效果,大幅提升开发效率。
如图中红色框所示:
Text(this.message)
.fontSize(150)
.fontWeight(FontWeight.Bold)
.fontColor(Color.Pink)FontWeight.Bold 必须大写 Bold。Color.Pink 必须大写 Pink。color.pink 会导致编译错误。点击预览器右上角的旋转图标(方块内带箭头),可在横屏和竖屏之间切换。
用途:
Column 在横屏下可能改为 Row)。Ctrl + Shift + R。点击顶部工具栏的绿色三角按钮,选择 HUAWEI Phone [NewDevice_from_Huawei_Phone] 启动模拟器。
底部终端显示构建命令:
$ hdc file send .../entry-default-unsigned.hap /sdcard/...
$ hdc shell bm install ...
$ hdc shell rm -rf /sdcard/...
$ hdc shell aa start -a EntryAbility -b com.example.helloworld说明:
hdc:HarmonyOS Device Connector,用于连接设备。hap:Harmony Ability Package,即应用包。aa start:启动 Ability。Log 标签页查看运行日志。console.log() 输出调试信息。避免频繁更新状态:
@State message: string = 'Hello World';不要频繁修改 message,除非必要。
使用 @Prop 传递数据:
message 来自父组件,应使用 @Prop 接收。扩展功能 | 实现方式 |
|---|---|
点击改变文字 | 添加 onClick 事件 |
动画效果 | 使用 Animation 组件 |
多语言支持 | 引入 string.json 资源文件 |
图标展示 | 添加 Image 组件 |
通过分析这张截图中的 Index.ets,我们总结出 OpenHarmony 应用开发的五大核心特征:
Row, Column, Text 等组件构建界面。@State 实现数据驱动视图更新。给初学者的建议:
@Component, @State, Row, Column, Text 等基础组件。Previewer 的使用方法。