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 WearableArkTS

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##商务#

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容