杨利杰YJlio博客头图

HarmonyOS学习笔记02:理解ArkTS工程目录

前言:目录要能帮助我找到正在运行的代码

大家好,我是杨利杰 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 作为示例名称。

从entry/src/main/ets定位pages/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页面与EntryAbility.ets入口的职责对比

文件示例我会找的线索本次操作范围
Index.ets@Entry、@Component、build()修改一处可辨认的页面文本
EntryAbility.ets继承关系、生命周期回调、窗口与页面加载调用先阅读并记录,不覆盖模板入口

后续第 03 篇会进一步学习 Stage 模型与应用入口。本篇先建立职责区分,不同时修改页面和入口。

四、配置先看作用范围

工程中的应用级配置和模块级配置具有不同的作用范围。修改前,我会先确认这次调整是应用范围的信息,还是某个模块的声明。

应用级配置与module.json5模块配置的作用范围

module.json5 一类模块配置用于描述模块类型、设备支持、Ability、页面或权限等信息。具体字段、层级和写法需要按当前 SDK 文档检查。

配置文件不用于填写 Column、Text 等 UI 组件代码。多模块工程中,还应确认修改的是本次运行模块,而不是另一个同名配置文件。

修改配置前记录原内容;发生解析错误时,先核对最近改动和字段层级。

五、源码和资源分开管理

src/main/ets 通常用于 ArkTS 源码,src/main/resources 体系用于图片、字符串等资源。两者的用途不同,引用方式也需要遵循工程支持的资源机制。

ArkTS源码目录与图片字符串资源目录的区别

我会先从已有模板中的资源引用开始阅读,确认资源名称和归属模块。不要把电脑上的绝对路径写入页面资源引用,也不要把平台约定的资源目录随意改名。

内容入门时的检查方法
页面文字或逻辑在当前模块的 ArkTS 文件中定位
图片、字符串等资源在资源体系中定位实际文件和名称
引用失败检查引用名称、模块归属和本机模板用法

六、用一处文本修改验证目录理解

这次练习只改一段显眼文本。配图展示修改、保存、构建、部署和核对设备的流程,文案与下方代码一致。

修改保存构建部署与核对目录练习文案的流程

@Entry
@Component
struct Index {
  build() {
    Column() {
      Text('目录练习:文字来自 Index.ets')
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

实际练习优先保留模板结构,只修改原有文本。代码是页面结构示例,当前模板所需的入口、导入和文件组织仍需保留。

如果设备画面出现了新文案,就获得了“该文件参与当前运行”的证据。如果没有变化,继续检查运行模块、页面入口、文件保存、构建与部署结果。

修改成功的依据是实际设备画面;编辑器中已经保存,只能证明文件保存这一环节。

七、目录相关问题按改动范围排查

常见问题可以先按“目录差异、页面未变、配置失败”分类,再处理具体环节。

目录差异页面未变化与JSON5配置失败的排查

现象优先核对
示例里有目录,本机没有当前模板实际内容、文件引用关系
改了 Index.ets,页面没变化是否属于当前运行模块、是否是启动页面、保存与部署结果
配置修改后解析失败最近改动、JSON5 字段层级、括号和逗号
想把 .ets 批量改为 .ts工程对源码扩展名的识别规则,避免只为高亮而改扩展名

排错时先恢复最近一次配置改动,再观察构建是否恢复。涉及权限、Ability 或页面声明时,按对应版本文档修改,不直接覆盖旧教程的完整配置。

八、把实际定位路径记录下来

完成目录阅读后,我会记录页面、入口、配置和资源的实际位置,再把运行模块与观察结果一并写清楚。

页面入口配置资源的实际路径与运行结果记录

定位对象本机实际路径运行模块观察结果
页面文件待填写待填写待填写
Ability 入口待填写待填写待填写
模块配置待填写待填写待填写
资源目录待填写待填写待填写

练习顺序是展开工程、定位四类文件、保存一处文本修改、重新运行、核对设备画面。若构建失败,保留完整首条错误和对应任务名,再判断是否与最近改动有关。

学习总结

这篇笔记用“工程—模块—源码、资源与配置”建立目录地图,并区分页面与 Ability 入口。模板会演进,我更重视实际路径和引用关系,再用单点修改验证自己的理解。

完成实操后补上定位表、工具版本和真实截图。下一篇继续阅读 EntryAbility,从组件与窗口创建阶段认识 Stage 模型。

参考资料

  1. 华为开发者文档:使用 ArkTS 开发 Stage 模型应用
  2. 华为开发者文档:应用程序包术语
  3. 华为开发者文档:模块配置文件

声明:本文为学习内容与操作方法整理,配图为示意信息图;实际目录、SDK/API 和运行结果以本机模板与官方文档为准。

分隔线

返回顶部

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐