当前位置: 首页 > news >正文

鸿蒙 构建效率提升:并行构建和增量构建

在鸿蒙应用开发中,构建效率直接影响开发体验。Hvigor提供了并行构建和增量构建两种优化机制,帮助缩短构建时间。

一、并行构建

大部分工程包含多个子工程,其中一些子工程相互独立(无状态共享)。通过并行构建可以有效减少多个子工程的整体构建时间。

注意:子工程之间存在大量依赖关系时,可能无法显著缩短构建时间,节省时间取决于工程结构和依赖关系。

Hvigor默认开启并行构建。

三种控制方式

控制方式操作
IDE设置File → Settings → Build, Execution, Deployment → Build Tools → Hvigor → 勾选/取消"Execute tasks in parallel mode"
命令行启用:hvigorw <task> --parallel
关闭:hvigorw <task> --no-parallel
配置文件hvigor-config.json5中配置execution.parallel选项

二、增量构建

增量构建是Hvigor执行任务的优化机制:如果在两次执行任务过程中,任务的输入和输出没有更改,Hvigor会跳过该任务的执行

Hvigor默认启用增量构建。

三种控制方式

控制方式操作
IDE设置File → Settings → Build, Execution, Deployment → Build Tools → Hvigor → 勾选/取消"Re-execute the task in incremental mode"
命令行启用:hvigorw <task> --incremental
关闭:hvigorw <task> --no-incremental
配置文件hvigor-config.json5中配置execution.incremental选项

增量构建标识

当控制台输出任务被标记为UP-TO-DATE时,说明增量构建正在工作,该任务被跳过。

全量构建 vs 增量构建

场景构建类型
执行Build → Clean Project后重新build全量构建
未执行Clean Project,直接重新build增量构建

任务的输入和输出

增量构建的核心是记录和比较任务的输入输出

概念说明
输入影响任务执行结果的属性(源文件、参数等)
输出任务执行产生的产物(编译文件、打包文件等)

规则说明

规则说明
至少定义一个输出否则增量构建无法工作
影响输出的属性必须注册为输入否则任务可能被错误跳过
不影响输出的属性不要注册为输入否则任务可能被不必要执行
非确定性任务不应配置为增量任务相同输入可能产生不同输出,最新检查无效

工作原理

第一次执行 ↓ 获取输入快照(文件名、路径、大小、修改时间、哈希值) ↓ 执行任务成功 ↓ 获取输出快照(文件名、路径、大小、修改时间、哈希值) ↓ 存储输入和输出快照信息 ↓ (任务快照也一并存储) 第二次执行前 ↓ 获取输入和输出的新快照信息 ↓ 比较新快照与之前存储的快照 ├── 相同 → 任务UP-TO-DATE,跳过执行 └── 不同 → 执行任务 → 存储新快照

鸿蒙提升构建效率通过并行构建(默认开启,多子工程独立时有效)和增量构建(默认开启,输入输出无变化时任务标记为UP-TO-DATE跳过执行)两种机制实现,均支持IDE设置、命令行参数(--parallel/--incremental)和hvigor-config.json5配置,增量构建需任务至少定义一个输出,影响输出的属性必须注册为输入。

http://www.cnnetsun.cn/news/3615860.html

相关文章:

  • 光伏电站智能巡检:无人机与AI技术的应用与优化
  • CC1101寄存器深度解析与RF1A接口实战:从原理到稳定通信
  • MSP430F5529 USB通信实践:从UART到CDC/HID-Datapipe的数据传输
  • Python从入门到实战(十八):协程与异步编程
  • 智能家居情感分析:NLP与机器学习的实践应用
  • 《计算机组成原理教程》全套PPT课件
  • XR技术在职业体育训练中的革命性应用
  • 深入解析MSP430 MPY32硬件乘法器:原理、模式与嵌入式DSP实战
  • AI论文写作工具实测:9款神器提升学术效率
  • AI技术栈解析:大模型、多模态与智能体实践
  • AGI与科学智能:上海方案的技术路径与应用前景
  • 证据驱动的术语自适应:解决同声传译中的专业术语难题
  • TI Edge AI Studio实战:从零构建工业视觉分类模型
  • AI多智能体系统在智能制造中的生产调度优化实践
  • 自适应电压调节(AVS)技术:芯片能效优化的闭环控制之道
  • 医疗票据OCR技术解析与API对接实战
  • 计算机毕业设计之基于位置管理的员工考勤打卡系统设计app
  • GPT-5与GPT-OSS:新一代AI智能体的架构与产业实践
  • WINUI3入门实战:从零构建现代化Windows桌面应用
  • 英伟达与GLM大模型的硬件算法协同设计突破
  • 发德国海运代理怎么选?双清包税派送到门指南
  • RAG技术解析:检索增强生成原理与实战应用
  • AI智能体如何革新生物医药研发决策流程
  • GitHub Dependabot更新策略大变 三天冷却期能拦住供应链攻击吗
  • 2026年AI Agent开发:从入门到生产级落地
  • 单目标追踪技术:算法选型与工程优化实践
  • 深度学习中的注意力机制原理与实现详解
  • 2026年六大AI写作平台深度评测与使用指南
  • Unity 2022 LTS下GameFramework资源模块实战:异步加载与内存管理
  • YOLOv10在猫狗品种识别中的高效应用与实践