• 0
增量补丁修正功用,让鸿蒙使用的用 Dev
统计阅读时间大约4分钟

2025-07-04 08:51:18增量补丁修正功用,让鸿蒙使用的用 Dev

来源:房十
调试功率大增。在鸿蒙运用开发的快节奏赛道上,每一秒的开发功率提高都至关重要。怎么更快地看到代码更改后的作用?怎么尽或许缩短开发、调试和验证的周期?怎么做到在某大厂 180 万行 + 项目中将代码修正即

调试功率大增。用D用让

在鸿蒙运用开发的增正功快节奏赛道上 ,每一秒的量补开发功率提高都至关重要。怎么更快地看到代码更改后的丁修作用 ?怎么尽或许缩短开发 、调试和验证的鸿蒙周期 ?怎么做到在某大厂 180 万行 + 项目中将代码修正即时收效 ?这些问题在 DevEco Studio 中得到了很好的回答,而增量补丁修正就是使用其间的中心特性之一。今日 ,用D用让咱们要深入探讨鸿蒙运用增量补丁修正及其两个可以大幅加快开发进度的增正功强壮功用 ——Hot Reload 和 Apply Changes。它们就好像给你的量补开发旅程中加入了超级引擎 ,让你的丁修代码更新功率大增 。

增量补丁修正是鸿蒙代码修正快速收效的特性总称,包括增量补丁构建及补丁修正两个进程 。使用望文生义 ,用D用让增量补丁构建是增正功在开发者修正代码后 ,仅对代码的量补修正部分进行增量产品构建并打成补丁包 ,而不是绵长的全量编译 ,这一进程可以节约开发者很多的时刻。而补丁修正则是替换并更新运转时中对应办法或文件偏重载到运用中,最终从头构建界面烘托树,依据收效场景不同,又可分为热修正和冷修正,热修正就是在补丁包完结修正后无需重启运用 (ability) 即可使修正收效,并可坚持运用其时的运转状况 ,如变量、页面方位等 ,而冷修正则是需求重启运用 (ability) 才可使修正收效 。是否需求重启首要取决于修正的办法或特色是否可以被从头改写,即有些办法或特色的生命周期只会在发动运用时初始化 ,并在运用的整个生命周期中坚持 ,如全局变量。

图片 1

▲ 图 1 增量补丁修正原理图。

其时鸿蒙运用开发支撑多种修正场景,包括 ArkTS  、TS、C++、SO 、资源文件的修正,相应的增量补丁修正也别离针对不同的修正场景,发生了两种不同的增量补丁修正方法 ,别离为强力支撑 ArkTS 开发的 Hot Reload 和支撑才干更为广泛的 Apply Changes 。那么这两种补丁修正有哪些运用场景 ,又别离是何种原理 ?且听下文分化  。

Hot Reload:ArkTS 开发加快神器 。

ArkTS 是 HarmonyOS 运用开发的官方高档言语 ,在鸿蒙运用的界面和交互开发上具有天然生成优势。而鸿蒙运用开发工具 DevEco Studio 中的 Hot Reload 特性则是针对 ArkTS 深度定制的开发功率提高才干 ,快速的增量补丁构建加无需重启即可使修正收效,使得 Hot Reload 定位为 ArkTS 开发加快神器 。

运用 Hot Reload 非常的快捷 ,在 IDE 右上角挑选热重载运转装备及进口模块后 ,运转项目并进行代码修正,点击 Hot Reload 按钮即可使修正收效 。

图片 17

▲ 图 2 Hot Reload 运用方位 。

除此之外,Hot Reload 还可以与保存动作进行相关,修正后保存代码即可主动履行 Hot Reload,可以非常大程度提高开发的流通度 。

图片 2

▲ 图 3 保存履行 Hot Reload 开关方位  。

Hot Reload 有三大明显优势:及时反应、坚持运用状况  、开发更流通,下面将别离介绍这些优势 。

及时反应:在运用开发中 ,UI 的频频调整是粗茶淡饭 。无论是修正按钮的色彩 、调整字体大小 ,仍是从头布局组件 ,传统的开发方法一般需求从头运转工程才干看到作用。在万行级 ArkTS 代码项目中 ,Hot Reload 修正收效速度可以比全量构建收效速度快 70% 以上,而在十万行级以上 ArkTS 代码项目中 ,Hot Reload 修正收效速度可以比全量构建收效速度快 50% 以上。Hot Reload 让这一切变得无比高效,无需频频进行耗时长的从头运转工程,立刻就能看到逻辑 、款式的更改作用,开发进程中的试错本钱大幅下降。

图片 5

▲ 图 4 运用 Hot Reload 快速调整款式  。

坚持运用状况:与彻底重启运用不同,Hot Reload 的技能理念是热修正 ,无需重启运用即可使代码修正收效,这就使得 Hot Reload 在大多数情况下会保存运用的运转状况 ,这关于演示和共享运用发展 、调试需求杂乱导航(如登录后操作)等场景尤为重要,防止了从头发动运用后手动康复状况的费事 。

图片 6

▲ 图 5 可保存运用状况检查修正作用 。

开发更流通 :经过敞开保存主动履行 Hot Reload ,无需感知收效方法和进程,保存后主动快速看到修正作用,大幅削减了开发进程中的连续感 。依据仅对修正代码的增量构建 ,你可以像在纸上快速涂抹相同 ,敏捷调整代码,立刻看到作用,而不必每次都从头制作整张纸,削减等待时刻意味着更多的开发时刻 。开发者可以更高效地完结任务,将时刻花在真实重要的工作上 。

图片 7

▲ 图 6 Hot Reload 支撑对资源引证的修正。

Hot Reload 的原理从初次发动运转开端,DevEco Studio 会在运用初次编译构建时生成增量所需的 map 文件,记载初次全量编译的相关信息,依据这个 map 文件 ,针对后续的修正 ,IDE 可以辨认修正的文件,调用方舟编译器只编译修正的文件 ,得到增量字节码文件,再打包经过 HDC 发送到设备 ,由包办理进行装置,虚拟机更新字节码 ,最终由 ArkUI 重建界面烘托树。

图片 3

▲ 图 7 Hot Reload 流程概览图  。

几个有用小 Tips 共享给我们  :

  • 小步快跑 :分化更改为小块,每次修正后运用 Hot Reload 检查作用。

  • 结合状况办理  :运用状况办理工具(如 State、Prop)可以更好地操控状况,保证 Hot Reload 后状况的正确性。

  • 定时重启运用:在长时刻开发后 ,主张偶然彻底重启运用 ,以保证代码和状况的一致性。

尽管 Hot Reload 可以给 ArkTS 代码开发带来愉快的体会 ,但它也有一些约束性 ,首要体现在如下几个方面 :

一是无法运用某些更改 ,为保存运用状况以及更快速的编译,Hot Reload 存在以下不支撑场景 :

  • import 新增未运用过的文件;

  • Entry 润饰的进口文件内 struct 成员函数、成员变量的新增 、修正;

  • Entry 润饰的进口文件内枚举键和值  、接口目标的修正;

获取更详细的运用束缚可见 HotReload 运用说明。

二是状况保存的约束 ,某些杂乱场景下,运用的状况或许无法正保证存,尤其是当状况办理不其时 。别的还有运用范围有限 ,Hot Reload 仅支撑 ArkTS 、TS 代码的更改,关于 C++ 、资源文件 、SO 文件的更改 ,可挑选运用相同快速可是需求重启运用的 Apply Changes 或彻底重启。

Apply Changes :三头六臂的多面手。

为满意其他言语 、文件快速开发的需求,Apply Changes 特性应运而生 ,相较于 Hot Reload ,Apply Changes 相同针对修正的增量部分进行编译,具有快速收效的长处,可是为支撑 C++、资源、SO 等杂乱的加载场景,Apply Changes 还会进行重启设备上运用的动作。即以献身运用状况坚持为价值 ,取得更为广泛的支撑才干 ,Apply Changes 现在可以支撑 C++ 、SO、资源文件的修正,是名副其实的多面手 。

运用 Apply Changes 与运用 Hot Reload 相似 ,差异在于 Apply Changes 的按钮在一般运转装备下。

图片 23

▲ 

Apply Changes 的明显优势也有三个,详细如下 :

一是支撑更多样的文件修正  :

现在 Apply Changes 可以一起支撑 C++、SO、资源文件的一种或多种修正快速收效,且修正场景约束较小。

图片 8

▲ 图 9 Apply Changes 支撑 C++ 代码修正收效 。

二是仅需一次推包,封闭运用后也可直接进行 Apply Changes :

关于 C++ 、SO 以及资源文件的增量编译及打包都是与工程的运转状况解耦的,只需设备中现已装置工程对应的运用 ,那么无需运转工程 ,直接修正代码点击 Apply Changes 即可主动拉起运用,使修正收效  ,防止再一次全量构建。

图片 12

▲ 图 10 中止运转后无需再次运转 ,即可 Apply Changes。

三是稳定性更高 :

因为 Apply Changes 可以重启运用 ,可以及时进行增量补丁的从头加载,防止了潜在的状况不一致问题,修正因状况污染或许导致的逻辑反常。

图片 13

▲ 图 11 Apply Changes 支撑资源文件修正收效 。

与 Hot Reload 相似,IDE 在初次全量运转后会缓存部分信息用于后续差异比较,后续修正 C++ 代码后,点击 Apply Changes 会依据缓存信息构建增量补丁包 ,详细而言是 ,发动 SO 的 cmake 流程构建 SO,经过与缓存信息比较 ,辨认出差异 SO 再构建增量包 。构建完结后 IDE 会封闭设备上的运用  ,进行修正更新 ,完毕后再从头拉起运用 ,完结代码收效。

图片 21

▲ 图 12 Apply Changes 流程概览图 。

Apply Changes 的几个有用小 Tips 也共享一下 :

  • 优先运用 Hot Reload 快速验证 UI 和 ArkTS 代码逻辑;

  • 遇到杂乱修正,及非 ArkTS 代码修正时再运用 Apply Changes;

  • 定时经过全量运转保证运用全体稳定性;

相同 Apply Changes 也有约束性,首要体现在如下两个方面 :

首先是运用的状况无法保存 ,Apply Changes 选用冷修正的技能道路 ,会进行运用重启行为  ,因而无法对运用状况进行保存,如丢掉输入内容、路由栈会被重置到初始页面。然后是暂时无法支撑 ArkTS  、TS 代码文件的修正 ,现在 Apply Changes 未能做到一起支撑 ArkTS、TS 代码的增量编译 ,无法支撑 ArkTS、TS 代码的修正收效。

在鸿蒙运用开发中,Hot Reload 和 Apply Changes 各有偏重,Hot Reload 可以快速调整 UI 及 ArkTS 代码逻辑,一起可以保存运用状况,具有快而轻的特色 。而 Apply Changes 是针对非 ArkTS 代码的修正利器 ,具有全而稳的特色 ,可以进行杂乱的修正,一起防止长时刻运转或许发生的过错 。依据需求灵敏挑选,才干进一步提高开发功率 ,尽快为用户供给更好的体会 。

广告声明 :文内含有的对外跳转链接(包括不限于超链接、二维码、口令等方式),用于传递更多信息 ,节约甄选时刻  ,成果仅供参考,一切文章均包括本声明 。

1、房十原创文章未经授权转载必究,如需转载请联系官方微信号进行授权。
2、转载时须在文章头部明确注明出处、保留官方微信、作者和原文超链接。如转自房十
)字样。
3、房十报道中所涉及的融资金额均由创业公司提供,仅供参考,房十不对真实性背书。