首页 > 其他分享 >鸿蒙hvigor构建任务依赖与生命周期简介

鸿蒙hvigor构建任务依赖与生命周期简介

时间:2024-11-20 11:30:39浏览次数:1  
标签:插件 生命周期 鸿蒙 plugin 任务 构建 Hvigor hvigor

Hivgor脚本文件

在构建的生命周期中Hvigor使用两个脚本文件来完成插件、任务以及生命周期hook的注册:

  • hvigorconfig.ts:此文件在整个项目中只有根目录下存在一份,不是构建必须的文件并且默认不存在,如有需要可自行创建,此文件被解析执行的时间较早,可用于在Hvigor生命周期刚开始时操作某些数据。
  • hvigorfile.ts:此文件在每个node下都有一份,是构建的必须文件,在此文件中可以注册插件、任务以及生命周期hook等操作。

任务与任务依赖图

Hvigor是基于任务对您的项目进行自动化构建的,任务(Task)是Hvigor构建过程中的基本工作单元,它定义了构建项目时需要执行的具体工作。任务可以完成多种操作,比如源码编译任务,打包任务或签名任务等。每一种任务的执行逻辑由插件(plugin)提供,插件可以是由hvigor-ohos-plugin提供的默认任务逻辑,也可由您个性化定制。

需要注意的一点是,任务是存在依赖关系的,Hvigor在执行任何任务之前会构建任务依赖图,所有任务会形成一个有向无环图(DAG),如下示例图,任务之间的依赖关系用箭头进行表示:
img1
hvigor插件(hvigor-ohos-plugin)和hvigorfile.ts文件中的构建脚本都将通过任务依赖机制对任务依赖图做出影响。

hvigor-ohos-plugin

hvigor-ohos-plugin是默认的构建插件,为任务(Task)的完成提供业务逻辑支持,比如为Hvigor提供Hap、Har和Hsp打包服务等任务,每一种任务的具体执行逻辑由本模块中不同的插件来提供。

Hvigor与hvigor-ohos-plugin的关系

概述部分提到了Hvigor提供任务注册编排以及配置管理等任务管理机制,它负责控制任务的执行流程,但是并不包含每一个任务的具体业务逻辑,具体逻辑是由hvigor-ohos-plugin提供的。

Hvigor和hvigor-ohos-plugin的关系可以通过下图来说明,Hvigor接受任务的注册并编排任务执行顺序,并按照顺序依次调用hvigor-ohos-plugin中的插件来执行任务。如果您定制了自己的任务逻辑插件并将其注册,hvigor-ohos-plugin也会调用您的个性化插件来完成编译构建流程。

在Hvigor执行构建的过程中,hvigor-ohos-plugin会向Hvigor进行任务的注册,Hvigor会根据构建的任务执行有向图依次调用对应的插件来执行相应任务,在完成编译、打包、签名等一系列任务后,Hvigor也就正式完成了构建。
img2

Hvigor生命周期

生命周期展示了Hvigor编译构建系统如何进行一次完整的编译构建流程。Hvigor的编译构建过程有三个不同的阶段,分为初始化、配置和执行,Hvigor会按顺序运行这些阶段。

  • 初始化:此阶段主要目的为初始化项目的编译参数,构造出项目结构的树形数据模型,每个node为一个HvigorNode对象。
  • 配置:此阶段开始时,所有的node都已经加载完毕,但每个node中还没有加载插件(plugin)、任务(task)和DAG图,此阶段的主要目的就是加载出这些内容。
  • 执行:任务之间的依赖关系决定了任务执行顺序,任务可以并行执行

生命周期及hook点

在Hvigor的生命周期中,以下多个hook点可供您使用,便于您在对应的时机调用某些逻辑。在下图中所有绿色标记的线框为可以使用的hook点
img3

标签:插件,生命周期,鸿蒙,plugin,任务,构建,Hvigor,hvigor
From: https://www.cnblogs.com/zhaloe/p/18556536

相关文章

  • 鸿蒙NEXT开发案例:随机密码生成
     【引言】本案例将实现一个随机密码生成器。用户可以自定义密码的长度以及包含的字符类型(大写字母、小写字母、数字、特殊字符),最后通过点击按钮生成密码,并提供一键复制功能。【环境准备】•操作系统:Windows10•开发工具:DevEcoStudioNEXTBeta1BuildVersion:5.0.3.806......
  • 如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示
    本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕旋转。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568芯片,搭载四核A55处理器,主频2.0Ghz;1T算力NPU;现已发布全新OpenHarmony5.0Release固件。Linux旋......
  • 【鸿蒙开发】基础干货篇--7 “一篇带你掌握页面跳转”
    系列文章目录【鸿蒙开发】鸿蒙开发基础干货篇–1【鸿蒙开发】基础干货篇–2小白入门手册(内含DevEco安装教程和汉化插件安装)【鸿蒙开发】基础干货篇–3小白入门手册(内含模拟器保姆级安装使用教程)【鸿蒙开发】基础干货篇–4小白入门手册(内含Stage模型工程目录结构和U......
  • Pod生命周期
    文章目录Pod生命周期Pod生命周期概述Init容器容器探针事件处理函数Pod资源管理Pod资源管理资源管理概述资源配额资源限额全局资源管理全局配额概述ResourceQuotaPod生命周期Pod生命周期概述什么是Pod生命周期?Pod对象自从其创建开始至终止的时间范围称为生命周......
  • 鸿蒙HarmonyOS实战开发:hilog命令行查询
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)HiLog日......
  • HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信
    自研原生鸿蒙NEXT5.0API12ArkTS仿微信app聊天模板HarmonyOSChat。harmony-wechat原创重磅实战纯血鸿蒙OSArkUI+ArkTs仿微信App聊天实例。包括聊天、通讯录、我、朋友圈等模块,实现类似微信消息UI布局、编辑器光标处输入文字+emo表情图片/GIF动图、图片预览、红包、语音/位置UI......
  • Taro首个支持鸿蒙的 UI 库,同时还兼容 React Native、小程序、H5
    Taro4.0已经推出一段时间了,4.0版本主要是支持了鸿蒙端的开发以及Vite编译工具的支持。duxapp在这段时间也跟随Taro的脚步,实现的对鸿蒙端的支持,并且也将之前的duxui这个多端的UI库,对鸿蒙端实现了兼容。duxui组件库提供了60+的组件支持,能快速帮助你完成业务。现在......
  • 鸿蒙开发Hvigor任务简介
    编译构建工具DevEcoHvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排、工程模型管理、配置管理等关键能力,提供专用于构建和测试应用的流程和可配置设置。DevEcoStudio使用构建工具Hvigor来自动执行和管理构建流程,实现应用/服务构......
  • 鸿蒙项目实战(五):识别本地图片
    基本概念图片识码能力支持对图库中的码图进行扫描识别,并获取信息场景介绍图片识码能力支持对图库中的条形码、二维码、MULTIFUNCTIONALCODE进行识别,并获得码类型、码值、码位置信息该能力可用于一图单码和一图多码的识别,比如条形码、付款码等使用示例1、导入图片识码接......
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】绘制空心圆圈
    Androidjava绘制圆圈自定义CircleViewpackagecom.java.circle;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.view.View;publicclassCircleViewextendsView{privatePaintpaint;......