跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScript大前端

HarmonyOS Next DevEco Studio 构建任务指南

HarmonyOS Next 开发中 DevEco Studio 的构建任务体系。通过 hvigorw taskTree 命令可查看任务树及依赖关系。内容涵盖 Hook、ArkTS、JS、Resources、Package、Sign 等十四类任务的详细说明,包括编译、打包、签名及配置处理等核心流程,帮助开发者理解模块构建机制。

樱花落尽发布于 2026/3/27更新于 2026/6/430 浏览
HarmonyOS Next DevEco Studio 构建任务指南

1. 任务流程图

1.1 HAP 基础任务流程图

文章配图

1.2 HSP 基础任务流程图

文章配图

1.3 HAR 基础任务流程图

文章配图

2. 使用命令查看任务

在 DevEco Studio 中可以通过以下命令获得任务相关的信息:

hvigorw taskTree

获取任务树时会根据工程中的模块将模块中注册的任务树以下图形式输出:

文章配图

执行顺序举例说明:如图所示,assembleHap 依赖 signHap,signHap 依赖于 packageHap;则任务执行顺序则为 packageHap->signHap->assembleHap。

3. 任务详细说明

根据任务职能的不同主要分为以下几个类型的任务。

任务类别任务说明
Hookhook 任务
ArkTSArkTS 编译相关任务
JSJS 编译相关任务
Resources资源编译、处理、链接、合并相关的任务
Package打包相关的任务
Sign签名相关的任务
Verification验证项目或者依赖项设置等相关的任务
Generate生成和转换前置文件等相关的任务
Config生成,合并,处理配置文件等相关的任务
NativeNative 编译等相关的任务
Help查询 hvigor 帮助信息的相关任务
Other未分类的任务

3.1 Hook

  • assembleHap: 编译构建 hap 模块的 Hook 任务。
  • assembleHsp: 编译构建 hsp 模块的 Hook 任务。
  • assembleHar: 编译构建 har 模块的 Hook 任务。
  • assembleApp: 编译构建 app 模块的 Hook 任务。
  • assembleDevHqf: 支持增量部署的 Hook 任务。
  • HotReloadBuild: HotReloadArkTS 前置 Hook 任务。
  • PreviewBuild: PreviewArkTS 前置 Hook 任务。
  • buildHotReloadResource: 热加载资源相关前置 Hook 任务。
  • PreviewHookCompileResource: 预览时资源编译处理是否支持 Restool 增量方式编译的 Hook 任务。
  • GenerateBuildProfile: 生成 BuildProfile.ets 文件的 Hook 任务。
  • BuildUnitTestHook: 单元测试编译资源相关前置 Hook 任务。
  • buildPreviewerResource: 预览资源相关前置 Hook 任务。
  • compileNative: native 资源相关前置 Hook 任务。
  • UnitTestBuild: UnitTestArkTS 前置 Hook 任务。
  • test: 使用命令行执行 Local Test 的 Hook 任务。
  • onDeviceTest: 使用命令行执行 Instrument Test 的 Hook 任务。

3.2 ArkTS

  • CompileArkTS/BuildArkTS: 调用 loader 编译 ArkTS 源码。
  • PreviewArkTS: 预览模式下,调用 loader 编译 ArkTS 源码。
  • HotReloadArkTS: 热加载场景下,调用 loader 编译 ArkTS 源码。
  • OhosTestCompileArkTS/OhosTestBuildArkTS: ohos 测试场景下,调用 loader 编译 ArkTS 源码。
  • HarCompileArkTS/HarBuildArkTS: 构建 HAR 包场景下,调用 loader 编译 ArkTS 源码。
  • UnitTestArkTS: 单元测试场景下,调用 loader 编译 ArkTS 源码。

3.3 JS

  • CompileJS/BuildJS: 调用 loader 编译 js 源码。
  • OhosTestCompileJS/OhosTestCompileJS: ohos 测试场景下,调用 loader 编译 js 源码。

3.4 Resources

  • ProcessResource: 处理和生成用文件方式编译资源的中间文件。
  • PreviewProcessResource: 预览场景下,处理和生成用文件方式编译资源的中间文件。
  • CompileResource: 调用 restool 编译资源。
  • PreviewCompileResource: 预览场景下,调用 restool 编译资源。
  • ProcessLibs: 收集 hap 和 har 依赖中的.so 文件。

3.5 Package

  • PackageHap: 调用打包工具打 hap 包。
  • PackageHar: 调用打包工具打 har 包。
  • PackageHsp: 调用打包工具打 hsp 包。
  • PackageApp: 调用打包工具打 app 包。
  • PackageHqf: 调用打包工具打增量包。
  • PackageSharedHar: 调用打包工具打 hsp 模块的 har 包。
  • PackageSharedTgz: 调用打包工具将 hsp 模块生成的未签名 hap 和 har 包打包成 tgz 包。
  • PackageSignHar: 调用打包工具打带签名的 har 包,当前仅在 daemon 模式下生效。

3.6 Sign

  • SignHap: 调用签名工具给 hap 包签名。
  • SignHsp: 调用签名工具给 hsp 包签名。
  • SignApp: 调用签名工具给 app 包签名。
  • SignHqf: 调用签名工具给增量包签名。
  • SignModuleRemoteHsp: 调用签名工具给模块级 ohpm 仓上的 hsp 包签名。
  • SignProjectRemoteHsp: 调用签名工具给工程级 ohpm 仓上的 hsp 包签名。

3.7 Verification

  • PreBuild: 模块级预检查任务。
  • PreBuildApp: 工程级预检查任务。
  • PreCheckSyscap: syscap 相关配置预检查任务。

3.8 Generate

  • GenerateLoaderJson: 生成 loader.json 文件。
  • GenerateMetadata: 生成 metadata.json 文件。
  • SyscapTransform: syscap 转换任务。
  • MakePackInfo: 生成模块级别的 pack.info。
  • MakeProjectPackInfo: 生成工程级别的 pack.info。
  • ProcessPackageJson: 对 package.json 文件进行处理。
  • ProcessOHPackageJson: 对 oh_package.json5 文件进行处理。
  • GeneratePackRes: 生成 pack.res 文件。
  • CreateBuildProfile: 生成 hap/hsp 的 BuildProfile.ets 文件。
  • CreateHarBuildProfile: 生成 har 的 BuildProfile.ets 文件。
  • PrepareQuickfix: 通过校验获取增量文件并输出到 quiekfix.json 文件中。

3.9 Config

  • ProcessProfile: 处理 module.json5 文件。
  • PrepareSharedHarResource: 生成打包 shared library 的 package.json 和 module.json。
  • UnitTestProcessProfile: UnitTestBuild 场景处理构建中间产物 module.json 文件。
  • MergeProfile: 合并 module.json5 文件。
  • PreviewUpdateAssets: 预览模式下,Stage 模型在编译预览代码前更新前置任务生成的 module.json 和 main_pages.json 文件。

3.10 Native

  • BuildNativeWithNinja: 将 native 代码编译成 so 文件。
  • BuildNativeWithCmake: 用 CMake 编译 CPP 源码。

3.11 Help

  • tasks: 查看 hvigor 的全部任务及详情。
  • taskTree: 查看当前工程涉及的任务树。

3.12 Other

  • ReplaceUnitTestIndexFile: 单元测试替换入口文件。
  • ReplacePreviewerPage: 接受预览器提供的参数替换页面文件中的参数。
  • OhosTestCopyMockConfigJson: 测试框架执行 mock 时将 mock-config.json 拷贝到测试包中。
  • clean: 清理生成的 Build 目录。
  • collectCoverage: 基于仪表打点数据生成覆盖率统计报表。

3.13 Sync

  • init: 初始化工程。

3.14 Init

该任务类型与 Sync 下的 init 不同,该过程中无具体任务,主要负责执行调用 hvigor 前的准备工作。

目录

  1. 1. 任务流程图
  2. 1.1 HAP 基础任务流程图
  3. 1.2 HSP 基础任务流程图
  4. 1.3 HAR 基础任务流程图
  5. 2. 使用命令查看任务
  6. 3. 任务详细说明
  7. 3.1 Hook
  8. 3.2 ArkTS
  9. 3.3 JS
  10. 3.4 Resources
  11. 3.5 Package
  12. 3.6 Sign
  13. 3.7 Verification
  14. 3.8 Generate
  15. 3.9 Config
  16. 3.10 Native
  17. 3.11 Help
  18. 3.12 Other
  19. 3.13 Sync
  20. 3.14 Init
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • GTC 2026 前瞻:Rubin 平台与 AI 工厂化趋势
  • Vben Admin:基于 Vue 3 的企业级中后台管理系统框架
  • C++ 继承中同名成员的隐藏与重载规则解析
  • C++ 多线程:深入理解 Atomic 与 Volatile 的语义区别
  • Flutter 组件 Spry 适配鸿蒙 HarmonyOS 实战:轻量化端侧 Web 框架
  • OpenClaw 开源 AI 助手本地部署与实战指南
  • MySQL 动态分区管理:自动化与优化实践
  • 基于 UltraScale 架构 FPGA 的 System Manager Wizard 使用:温度与电压监测
  • Docker 本地部署 Dify 教程
  • C 语言 Web 开发实战:CGI、FastCGI 与 Nginx 模块详解
  • C++ 实现文本文件空行删除功能
  • 7 系列 FPGA 万兆以太网通信实现方案
  • 机器人运动学解算与逆解算法详解
  • text-generation-webui 本地大语言模型部署完整指南
  • 基于 LlamaFactory 微调 Qwen3.5-4B 模型指南
  • 使用 OpenClaw 与飞书搭建服务器运维机器人
  • Cursor 中配置与使用 MCP 服务指南
  • 通义万相 2.1 多模态 AI 生成技术解析与应用前景
  • AIGC 在现代教育技术中的应用实践
  • SpringBoot 项目启动报错 HikariPool-1 池初始化异常排查

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online