DevEco Studio 工程管理全指南

2025-06-20 17:20:13
115次阅读
0个评论

一、工程概述(Project Overview)

1. 工程基本概念

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

2. 工程生命周期

28a02429f5e142a185984a3d84b24c68.png

二、工程结构(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##商务#

收藏00

登录 后评论。没有帐号? 注册 一个。