返回博客

Data Analysis / CLI / Game Tools

用资源清单快照判断一次更新是否影响 UI 图标资源

记录 NgsPacker 样本目录中一次资源更新差异分析。

资源更新后,最先需要回答的问题通常不是“改了多少文件”,而是“这些改动是否影响目标资源类型”。这次样本分析围绕 UI 图标资源展开,通过两份资源清单快照比较更新前后的成员变化。

项目概览

结构按日期保存 catalogsnapshotdiffunpack,每个目录分别承载成员清单、扫描快照、差异结果和解包输出。

用途是为资源更新判断提供可追踪证据。应用场景包括版本更新后判断 UI 资源是否变化、筛选需要解包的包、为后续资源转换准备清单。

快照结构

每份快照记录包、成员、扩展名、大小和修改时间。比较脚本先计算包级变化,再把变化包中的成员展开到资源级。UI 图标相关成员按扩展名和命名模式筛选,生成新增、删除、变化三张表。

这种方式避免每次都解包完整客户端。只有当快照显示目标资源包发生变化时,才进入批量解包阶段。

结果判断

分析输出分成包级摘要、成员级摘要和目标资源清单。包级摘要适合快速判断更新范围,成员级摘要适合追踪具体变化,目标资源清单用于后续人工检查或自动转换。

实现原理是先比较包级快照,再按成员清单筛选目标类型。这样可以减少完整解包次数,只在目标包发生变化时进入解包阶段。公开记录只保留统计方法、扩展名分布和判断过程。