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 工程(可选):
- 创建 HarmonyOS 工程后,修改工程级
build-profile.json5
:
"products": [ { "name": "default", "compileSdkVersion": 11, // OpenHarmony 编译版本(整数) "compatibleSdkVersion": 11, // 最低兼容版本(整数) "runtimeOS": "OpenHarmony" // 运行时系统改为 OpenHarmony } ]
- 同步工程,删除不支持的设备类型(如 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##商务#
#鸿蒙开发工具#