HarmonyOS 7.0学习笔记02:读懂工程目录
🔥 个人主页: 杨利杰YJlio
❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》
《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》
🌟 让复杂的事情更简单,让重复的工作自动化


文章目录
前言:目录要能帮助我找到正在运行的代码
大家好,我是杨利杰 YJlio。
第一个工程能够运行之后,我接下来要找清楚四件事:页面在哪个文件、Ability 入口做什么、配置的作用范围是什么、资源应该放在哪里。这篇是 HarmonyOS 7.0 学习笔记第 02 篇,围绕 ArkTS 工程目录做一次定位练习。
目录知识的用处,会在“改了文件没效果”和“修改配置后构建失败”时体现出来。我的做法是先读当前模板,再用一处页面文本修改验证文件与运行结果的关系。
先确认文件属于哪个模块、参与哪次运行,再动手修改。
本文配图为学习内容示意图。目录和配置以本机模板为准,运行结果需要完成实际操作后记录。
| 环境项 | 本次实际记录 |
|---|---|
| DevEco Studio 版本 | 待填写 |
| HarmonyOS SDK/API | 待填写 |
| 练习工程 | 第 01 篇创建的 ArkTS 工程,实际名称待填写 |
| 本次运行模块与设备 | 待填写 |
一、先分清工程、模块与源码
我先把目录理解成三个层次:工程管理构建产品,模块组织应用能力,模块中的源码、资源和配置实现具体功能。

小练习常从入口模块开始,大型项目可能有多个模块。每个模块有自己的配置和文件,因此看到同名的 Index.ets 时,还需要看它所在的模块和完整路径。
| 层次 | 阅读时先确认什么 |
|---|---|
| 工程 | 根目录、构建产品与运行配置 |
| 模块 | 模块名称、模块用途及本次运行目标 |
| 文件 | 是页面、Ability、资源,还是配置 |
二、沿着源码目录找到页面
在常见模板中,ArkTS 源码位于模块的 src/main/ets 目录,页面文件可在其中的 pages 目录查找。本篇使用 entry 和 Index.ets 作为示例名称。

下面沿用原稿的常见单模块结构,带有“如有”的条目应按本机生成内容确认:
MyHarmonyApp/
├─ AppScope/ # 应用级配置或资源(模板如有)
├─ entry/ # 本例入口模块
│ ├─ src/main/ets/
│ │ ├─ entryability/
│ │ │ └─ EntryAbility.ets
│ │ └─ pages/
│ │ └─ Index.ets
│ ├─ src/main/resources/
│ └─ src/main/module.json5
├─ build-profile.json5 # 构建产品配置(如有)
└─ hvigor/ # 构建工具配置(如有)
图中的 pages/Index.ets 是相对于源码目录的页面示例路径。在上述结构中,对应完整相对路径为 entry/src/main/ets/pages/Index.ets。如果实际模板使用了其他模块名或页面名,记录实际路径即可。
示例目录用来帮助定位;本机没有某个条目时,先查看模板与引用关系,不要为了凑齐目录树而创建空文件夹。
三、页面和 Ability 入口分工不同
找到 Index.ets 与 EntryAbility.ets 后,我会把它们分别打开。页面文件主要描述 UI 结构和交互;Ability 入口主要查看应用组件生命周期、窗口启动及页面加载相关逻辑。

| 文件示例 | 我会找的线索 | 本次操作范围 |
|---|---|---|
Index.ets | @Entry、@Component、build() | 修改一处可辨认的页面文本 |
EntryAbility.ets | 继承关系、生命周期回调、窗口与页面加载调用 | 先阅读并记录,不覆盖模板入口 |
后续第 03 篇会进一步学习 Stage 模型与应用入口。本篇先建立职责区分,不同时修改页面和入口。
四、配置先看作用范围
工程中的应用级配置和模块级配置具有不同的作用范围。修改前,我会先确认这次调整是应用范围的信息,还是某个模块的声明。

module.json5 一类模块配置用于描述模块类型、设备支持、Ability、页面或权限等信息。具体字段、层级和写法需要按当前 SDK 文档检查。
配置文件不用于填写 Column、Text 等 UI 组件代码。多模块工程中,还应确认修改的是本次运行模块,而不是另一个同名配置文件。
修改配置前记录原内容;发生解析错误时,先核对最近改动和字段层级。
五、源码和资源分开管理
src/main/ets 通常用于 ArkTS 源码,src/main/resources 体系用于图片、字符串等资源。两者的用途不同,引用方式也需要遵循工程支持的资源机制。

我会先从已有模板中的资源引用开始阅读,确认资源名称和归属模块。不要把电脑上的绝对路径写入页面资源引用,也不要把平台约定的资源目录随意改名。
| 内容 | 入门时的检查方法 |
|---|---|
| 页面文字或逻辑 | 在当前模块的 ArkTS 文件中定位 |
| 图片、字符串等资源 | 在资源体系中定位实际文件和名称 |
| 引用失败 | 检查引用名称、模块归属和本机模板用法 |
六、用一处文本修改验证目录理解
这次练习只改一段显眼文本。配图展示修改、保存、构建、部署和核对设备的流程,文案与下方代码一致。

@Entry
@Component
struct Index {
build() {
Column() {
Text('目录练习:文字来自 Index.ets')
.fontSize(20)
.fontWeight(FontWeight.Bold)
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
实际练习优先保留模板结构,只修改原有文本。代码是页面结构示例,当前模板所需的入口、导入和文件组织仍需保留。
如果设备画面出现了新文案,就获得了“该文件参与当前运行”的证据。如果没有变化,继续检查运行模块、页面入口、文件保存、构建与部署结果。
修改成功的依据是实际设备画面;编辑器中已经保存,只能证明文件保存这一环节。
七、目录相关问题按改动范围排查
常见问题可以先按“目录差异、页面未变、配置失败”分类,再处理具体环节。

| 现象 | 优先核对 |
|---|---|
| 示例里有目录,本机没有 | 当前模板实际内容、文件引用关系 |
改了 Index.ets,页面没变化 | 是否属于当前运行模块、是否是启动页面、保存与部署结果 |
| 配置修改后解析失败 | 最近改动、JSON5 字段层级、括号和逗号 |
想把 .ets 批量改为 .ts | 工程对源码扩展名的识别规则,避免只为高亮而改扩展名 |
排错时先恢复最近一次配置改动,再观察构建是否恢复。涉及权限、Ability 或页面声明时,按对应版本文档修改,不直接覆盖旧教程的完整配置。
八、把实际定位路径记录下来
完成目录阅读后,我会记录页面、入口、配置和资源的实际位置,再把运行模块与观察结果一并写清楚。

| 定位对象 | 本机实际路径 | 运行模块 | 观察结果 |
|---|---|---|---|
| 页面文件 | 待填写 | 待填写 | 待填写 |
| Ability 入口 | 待填写 | 待填写 | 待填写 |
| 模块配置 | 待填写 | 待填写 | 待填写 |
| 资源目录 | 待填写 | 待填写 | 待填写 |
练习顺序是展开工程、定位四类文件、保存一处文本修改、重新运行、核对设备画面。若构建失败,保留完整首条错误和对应任务名,再判断是否与最近改动有关。
学习总结
这篇笔记用“工程—模块—源码、资源与配置”建立目录地图,并区分页面与 Ability 入口。模板会演进,我更重视实际路径和引用关系,再用单点修改验证自己的理解。
完成实操后补上定位表、工具版本和真实截图。下一篇继续阅读 EntryAbility,从组件与窗口创建阶段认识 Stage 模型。
参考资料
声明:本文为学习内容与操作方法整理,配图为示意信息图;实际目录、SDK/API 和运行结果以本机模板与官方文档为准。

更多推荐



所有评论(0)