第2章:第一个鸿蒙应用——从零到Hello World
说实话,每次带新人入门,我最怕的就是环境搭好了,项目建好了,结果卡在“Hello World”这一步。其实没那么玄乎,今天我就带你走一遍完整流程。你跟着做,十分钟内肯定能看到模拟器上跑起来。
2.1 创建你的第一个HarmonyOS项目
打开DevEco Studio,你会看到欢迎界面。别慌,直接点“Create Project”。
这里有几个选项:
- Empty Ability:最干净的模板,适合新手
- List:带列表页面的模板
- Login:登录页模板
我个人习惯选Empty Ability。为什么?因为干净,你能看到最核心的东西,没有多余代码干扰你理解。
my_first_app。中文命名虽然支持,但我在项目中遇到过编译报错,后来就再也不敢用了。
点击“Finish”,等几秒钟。DevEco Studio会帮你下载Gradle依赖和SDK。第一次可能会慢一点,喝口水就好。
2.2 项目目录结构——别被吓到
项目建好后,左侧会出现一堆文件夹。我第一次看也懵了,但拆开来看其实很简单。
| 目录/文件 | 作用 |
|---|---|
entry/ |
主模块,你的应用入口就在这里 |
feature/ |
功能模块,用于拆分业务逻辑(后面章节会讲) |
ohos/ |
鸿蒙SDK相关配置,一般不用动 |
build.gradle |
项目级构建配置 |
local.properties |
本地SDK路径,自动生成 |
重点看entry/src/main目录:
ets/:存放ArkTS代码(就是咱们写逻辑的地方)resources/:资源文件,图片、字符串、颜色都放这module.json5:模块配置文件,声明权限、入口Ability等
2.3 理解Hello World代码
打开entry/src/main/ets/pages/index.ets,你会看到类似这样的代码:
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
来,我拆开给你讲:
@Entry:标记这个组件是页面入口。说白了,就是告诉系统“这是第一页”@Component:声明这是一个组件。鸿蒙里万物皆组件@State:声明响应式变量。message变了,界面会自动更新build():描述UI的方法。你在这里写界面长什么样
你想想看,这个结构是不是很像搭积木?Row是行,Column是列,Text是文字。一层套一层,就拼出了界面。
@Entry写成了@Entry(少了个字母),结果编译报错半天找不到原因。所以,注解一定要拼写正确。
2.4 运行到模拟器
代码写好了,怎么看到效果?
- 点击顶部工具栏的“Device Manager”图标(像个手机)
- 选择“Emulator”标签页
- 点击“+ New Emulator”,选一个设备型号(推荐P40或Mate 40)
- 下载系统镜像(大概1-2GB,等一会儿)
- 启动模拟器
模拟器启动后,点击DevEco Studio右上角的绿色三角(Run)按钮。等几秒钟,你就会看到模拟器上出现“Hello World”。
2.5 运行到真机
真机调试其实更简单,但有几个坑要注意:
- 打开手机“设置” → “关于手机”,连续点7次版本号,开启开发者模式
- 回到设置,进入“系统和更新” → “开发人员选项”,打开“USB调试”
- 用数据线连接电脑,手机上会弹出“允许USB调试吗?”,点确定
- 在DevEco Studio的设备列表里选择你的手机,点Run
2.6 常见问题与解决
嗯,这里我总结几个新手最容易碰到的问题:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 模拟器启动黑屏 | 电脑没开启硬件虚拟化 | 进BIOS开启Intel VT-x或AMD-V |
| 编译报错“ohpm not found” | ohpm环境变量没配置 | 在DevEco Studio里重新配置SDK路径 |
| 真机连接不上 | 驱动没装或USB调试没开 | 安装HiSuite驱动,检查开发者选项 |
其实大部分问题都是环境配置引起的。你只要按照官方文档一步步来,基本不会出大问题。如果真的卡住了,重启DevEco Studio或者重启电脑,能解决80%的玄学问题。
2.7 小结
这一章我们做了三件事:创建项目、理解目录结构、运行Hello World。看起来简单,但这是你鸿蒙开发的第一步。我记得自己第一次跑通Hello World时,还挺激动的——虽然只是个“Hello World”,但意味着整个开发链路通了。
下一章,我们会深入ArkTS语法,开始写真正的业务逻辑。到时候你会发现,鸿蒙开发其实挺有意思的。
公众号:蓝海资料掘金营,微信deep3321