HarmonyOS鸿蒙Next中应用的项目目录结构是怎样的?AppScope、entry、resources各目录的作用是什么?

HarmonyOS鸿蒙Next中应用的项目目录结构是怎样的?AppScope、entry、resources各目录的作用是什么? 我正在使用 DevEco Studio 5.0 开发 HarmonyOS 5.0 应用,创建 ArkTS 项目后发现目录结构比较复杂,包含 AppScope、entry、hvigor 等多个目录。想了解:

  1. 各个目录(AppScope、entry/src/main/ets、resources)分别承担什么职责?

  2. ets 目录下的 pages、components、model、services 等子目录如何组织代码?

  3. 模块化架构设计有什么优势?

希望能获取完整的目录结构说明和代码组织的最佳实践。


更多关于HarmonyOS鸿蒙Next中应用的项目目录结构是怎样的?AppScope、entry、resources各目录的作用是什么?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

实现思路:

  1. 鸿蒙应用采用模块化架构设计,标准项目结构如下:

项目根目录/ ├── AppScope/ # 应用级配置目录 │ ├── app.json5 # 应用全局配置(包名、版本、图标) │ └── resources/ # 应用级资源 ├── entry/ # 入口模块 │ ├── src/main/ │ │ ├── ets/ # ArkTS 源代码 │ │ │ ├── entryability/ # Ability 入口类 │ │ │ ├── pages/ # 页面组件 │ │ │ ├── components/ # 自定义组件 │ │ │ ├── model/ # 数据模型 │ │ │ ├── services/ # 业务服务 │ │ │ └── common/ # 公共工具 │ │ ├── resources/ # 模块级资源 │ │ └── module.json5 # 模块配置 │ └── oh-package.json5 # 模块依赖 ├── oh-package.json5 # 项目依赖管理 └── build-profile.json5 # 项目构建配置

  1. 各目录职责说明:AppScope 存放应用级配置,entry/ets/pages 存放页面组件,entry/ets/components 存放可复用 UI 组件,entry/ets/model 存放数据模型定义,entry/ets/common 存放常量和工具类。

  2. 完整示例:

// 项目的 ets 目录组织示例 xiangmu/entry/src/main/ets/ ├── common/ │ ├── constants/ │ │ ├── AppConstants.ets // 应用常量 │ │ └── ColorConstants.ets // 颜色常量 │ └── utils/ │ ├── RouterUtil.ets // 路由工具类 │ └── StorageUtil.ets // 存储工具类 ├── components/ │ ├── GlassCard.ets // 毛玻璃卡片组件 │ └── SearchBar.ets // 搜索栏组件 ├── database/ │ ├── DbHelper.ets // 数据库帮助类 │ └── CaseDao.ets // 数据访问对象 ├── model/ │ └── CaseModel.ets // 案例数据模型 ├── pages/ │ ├── MainPage.ets // 主页面 │ ├── DetailPage.ets // 详情页 │ └── SearchPage.ets // 搜索页 └── entryability/ └── EntryAbility.ets // 应用入口

更多关于HarmonyOS鸿蒙Next中应用的项目目录结构是怎样的?AppScope、entry、resources各目录的作用是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS Next应用项目目录结构

AppScope目录存放全局资源与配置,包括全局资源文件、应用图标和标签等。

entry目录是应用主模块,包含业务代码、页面文件、模块级资源及配置文件。

resources目录用于存放模块级资源,如图片、字符串、颜色值等,支持多设备适配。

这种结构实现了资源与代码的分离管理,便于模块化开发和维护。

在HarmonyOS Next的ArkTS项目中,目录结构遵循模块化设计,旨在提升代码复用性、可维护性和并行开发效率。以下是核心目录的职责说明:

  1. AppScope:应用全局资源目录,存放整个应用共享的配置和资源。

    • app.json5:应用级配置文件,声明应用名称、版本、图标、权限等。
    • resources:应用全局资源,如图片、字符串、颜色等,可在所有模块中调用。
  2. entry:应用主模块,作为应用入口,编译后生成HAP包。

    • src/main/ets:ArkTS代码主目录,包含业务逻辑。
      • pages:存放UI页面,每个页面通常由.ets文件(页面逻辑)和.css文件(样式)组成。
      • components:存放自定义组件,可被多个页面复用。
      • model:存放数据模型、状态管理(如使用@State)或业务逻辑抽象。
      • services:存放服务类,如网络请求、工具函数等。
    • src/main/resources:模块级资源,优先级高于AppScope中的资源。
    • module.json5:模块级配置,声明模块能力、页面路由、组件信息等。
  3. hvigor:构建脚本目录,用于配置模块依赖和构建任务(类似Gradle)。

代码组织建议:在ets目录下,按功能分层(如UI、业务、数据)划分子目录,例如将通用组件放入components,页面放入pages,数据操作放入model。这种结构支持模块独立编译和团队协作。

模块化优势

  • 解耦与复用:功能模块可独立开发、测试,便于跨项目复用。
  • 并行开发:多个团队可同时开发不同模块,提升效率。
  • 动态部署:支持按需加载模块,减少初始包体积。

实际开发中,可根据项目复杂度扩展目录(如添加utilsconstants),但需保持结构清晰。

回到顶部