项目结构

项目创建成功后,左侧的“项目资源管理器”(Project Explorer)会显示如下结构。我们来逐一拆解每个文件夹和文件的作用。

假设你的项目名叫 MyFirstApp,结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
MyFirstApp
├── entry # 主模块,应用的主要代码和资源都在这里
│ ├── src
│ │ ├── main
│ │ │ ├── ets # ArkTS 代码存放目录(核心!)
│ │ │ │ ├── entryability
│ │ │ │ │ └── EntryAbility.ts # 应用入口 Ability,管理应用的生命周期
│ │ │ │ ├── pages
│ │ │ │ │ └── Index.ets # 第一个页面,我们刚预览的就是它!
│ │ │ │ └── Application.ts # 应用级的初始化,一般不用动
│ │ │ ├── resources # 资源文件目录
│ │ │ │ ├── base
│ │ │ │ │ ├── media # 存放图片、视频等媒体文件
│ │ │ │ │ ├── profile # 存放JSON格式的配置文件(如页面路由)
│ │ │ │ │ └── element # 存放字符串、颜色、尺寸等常量定义
│ │ │ │ └── en_US... # 多语言资源(如美式英语)
│ │ │ └── module.json5 # 当前模块的配置文件(非常重要!)
│ │ └── ohosTest # 单元测试代码目录
│ └── build-profile.json5 # 模块的编译信息
├── oh_modules # 项目的依赖库目录(类似 npm 的 node_modules)
├── build-profile.json5 # 项目级的编译配置
├── hvigorfile.ts # 项目级的构建脚本
└── oh-package.json5 # 项目级的依赖声明文件(类似 package.json)

核心文件详解:
1.Index.ets:

是什么:这是一个页面文件,由 ArkUI 组件和 ArkTS 逻辑组成。

干什么用:你在这里编写UI布局(按钮、文本、图片等)和页面交互逻辑(点击事件、数据更新等)。这是你未来花费时间最多的地方。

2.EntryAbility.ts:

是什么:这是一个 Ability 文件,代表一个应用组件(这里是UIAbility,即带UI界面的能力)。

干什么用:它负责管理这个应用界面的生命周期—— onCreate(创建)、onWindowStageCreate(窗口创建)、onForeground(切换到前台)、onBackground(切换到后台)、onDestroy(销毁)。你通常不需要修改它,但要理解它的存在。

3.module.json5:

是什么:模块的配置文件,包含了当前模块的所有信息。

干什么用:极其重要!它声明了:

这个模块里有哪些 Ability(如 EntryAbility)。

应用的图标、名称、权限。

哪个页面是第一个启动的页面(srcEntrance: ./ets/EntryAbility.ts`)。

定义路由规则,实现页面跳转。

4.resources 目录:

是什么:应用的资源仓库。

干什么用:将代码和资源分离,便于管理和国际化。

media/: 放图片、图标。

element/:

string.json: 定义所有文本,如 "hello_world": "Hello World",然后在代码中通过 $r('app.string.hello_world') 引用。这样做便于统一修改和做多语言。

color.json: 定义颜色值。

float.json: 定义尺寸。

profile/: 存放页面路由(main_pages.json)等配置。

5.oh-package.json5:

是什么:项目的依赖管理文件。

干什么用:如果你需要安装第三方库(例如网络请求库、UI组件库),就需要在这里声明依赖,然后DevEco Studio会自动从仓库存档中下载到 oh_modules 文件夹中。