一、工程概述(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##商务#