DevEco Studio 工程管理全指南

一、工程概述(Project Overview)

1. 工程基本概念

  • 工程(Project):开发应用的基本组织单位
  • 模块(Module):工程的功能组成部分
  • Ability:应用的功能单元(UIAbility 或 ServiceAbility)
  • HAP(Harmony Ability Package):应用的部署包

2. 工程生命周期

二、工程结构(Project Structure)

1. 典型工程结构

MyProject/
├── .deveco/             # IDE 配置文件
├── entry/               # 主模块
│   ├── src/
│   │   ├── main/
│   │   │   ├── ets/     # ArkTS 代码
│   │   │   │   ├── pages/       # 页面组件
│   │   │   │   ├── app.ets      # 应用入口
│   │   │   │   └── ... 
│   │   │   ├── resources/       # 资源文件
│   │   │   │   ├── base/
│   │   │   │   ├── en_US/
│   │   │   │   └── ... 
│   │   │   └── module.json5     # 模块配置
│   ├── build-profile.json5      # 模块构建配置
│   └── hvigorfile.ts            # 构建脚本
├── library/            # 共享库模块(可选)
├── build-profile.json5 # 工程级构建配置
├── hvigorfile.ts       # 工程级构建脚本
└── oh-package.json5    # 依赖管理

2、工程目录结构:Stage 与 FA 模型对比

 1. Stage 模型(ArkTS 开发,推荐)

Project
├─ .hvigor/               # 构建脚本(自动生成)
├─ AppScope/              # 应用全局配置
│  └─ app.json5           # 应用级配置(多模块管理、权限声明)
├─ entry/                 # 主模块(必选,生成 Entry.hap)
│  ├─ src/main/ets/       # ArkTS 源码
│  │  ├─ entryability/    # 应用入口(生命周期管理)
│  │  └─ pages/           # 页面组件(如 Index.ets)
│  ├─ src/main/resources/  # 资源文件(图形、字符串、布局)
│  │  ├─ base/element/    # 结构化资源(color.json、string.json)
│  │  └─ rawfile/         # 原始资源(不自动适配设备,如字体文件)
│  └─ module.json5        # 模块配置(HAP 信息、设备适配)
├─ featureA/              # 动态特性模块(可选,生成 FeatureA.hap)
│  └─ ...                 # 结构同 entry 模块
├─ oh_modules/            # 三方库依赖(通过 ohpm 安装)
└─ oh-package.json5       # 全局依赖配置(管理三方包版本)

2. FA 模型(JS 开发,兼容旧项目)

Project
├─ entry/                 # 主模块
│  ├─ src/main/js/        # JS 源码
│  │  ├─ MainAbility/     # 入口组件(生命周期)
│  │  └─ pages/           # 页面(如 index.js)
│  └─ config.json         # 模块配置(类似 module.json5)
└─ ...                    # 资源与依赖结构同 Stage 模型

三、工程模板(Templates)

1. 选择工程类型与模板

入口路径

  • 欢迎页点击Create Project,或菜单File > New > Create Project
  • 模板分类

模板名称

适用场景

支持设备

开发语言

Empty Ability

基础 Hello World(推荐新手入门)

Phone、Tablet、车机等

ArkTS/JS

Native C++

需调用 C++ 代码的场景(如高性能计算)

同上

C++ + ArkTS

[CloudDev]Empty

端云一体化开发(集成云端服务)

全设备

ArkTS

[Lite]Empty Ability

轻量级穿戴设备(如手环、手表)

Lite Wearable

ArkTS

Embeddable Ability

开发可嵌入其他应用的元服务(如小组件)

手机、平板

ArkTS

关键配置项

  • Bundle Name:应用唯一标识(格式:​​com.example.项目名​​​,需符合三段式规则,如​​com.harmony.demo​​)。
  • Device Type:根据目标设备选择(如 Phone、Tablet、Car),可多选。
  • Compile SDK:编译目标 API 版本(建议选最新稳定版,如 API 11+)。

2. 创建 HarmonyOS 与 OpenHarmony 工程

  • HarmonyOS 工程:直接选择模板并完成配置,默认生成Stage 模型工程(推荐)。
  • OpenHarmony 工程(可选)
  1. 创建 HarmonyOS 工程后,修改工程级 build-profile.json5​:
"products": [
  {
    "name": "default",
    "compileSdkVersion": 11,       // OpenHarmony 编译版本(整数)
    "compatibleSdkVersion": 11,     // 最低兼容版本(整数)
    "runtimeOS": "OpenHarmony"      // 运行时系统改为 OpenHarmony
  }
]
  1. 同步工程,删除不支持的设备类型(如 Phone),保留​​default​​​ 或​​tablet​​。

四、工程管理技巧

1. 多模块开发(Stage 模型)

  • 创建 Feature 模块:菜单File > New > Module,选择Feature Ability,用于扩展功能(如插件化模块)。
  • 模块间通信
  • 通过EventBus全局状态管理(如​​@AppStorage​​)实现跨模块数据传递。
  • 在​​app.json5​​ 中配置模块依赖关系。

2. 资源管理最佳实践

  • 结构化资源:将颜色、字符串等放入​​​base/element​​​ 目录,通过​​$r('app.element.xxx')​​ 引用,便于多语言 / 主题切换。
  • 原始资源(rawfile):直接通过路径引用(如​​​FileUtil.getRawFileContent('rawfile/test.txt')​​),适用于不参与编译的文件。

3. 编译与构建配置

  • 签名配置:菜单File > Project Structure > Signing Configs,勾选Automatically generate signature,使用华为账号自动签名(调试阶段)。
  • 构建产物
  • HAP 包:主模块编译生成​​entry/build/outputs/hap/debug/entry.hap​​。
  • APP Pack:多模块工程生成​​app/dist/xxx.app​​​(包含所有 HAP 与​​pack.info​​)。

4. 切换开发语言

  • ArkTS 与 JS 混用:创建新模块时选择不同语言(如主模块用 ArkTS,插件模块用 JS),通过JS-TS 互调实现协同。
  • C++ 集成:使用Native C++ 模板,在 ArkTS 中通过​​@Native​​ 装饰器调用 C++ 接口。

##鸿蒙开发工具##DevEco Studio##商务#

#鸿蒙开发工具#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务