483 lines
30 KiB
Markdown
483 lines
30 KiB
Markdown
# 显示与音频资产台账
|
||
|
||
## 范围、日期与计量口径
|
||
|
||
这是 2026-10-09 lucky-cat 工作区的核对快照;初始采集时 listening 素材尚未提交,
|
||
两个历史待机 C 资产未跟踪;本次已追加 HUD 字形/电池素材及构建结果。
|
||
它不是构建输入或自动生成的实时报告。
|
||
新增、替换、移出固件或经授权清理资产时,应同步更新此表及指南。
|
||
|
||
范围包含平台图片/图层/音频、生成 GFX C 文件、旧音频副本、领域内嵌网页和项目
|
||
显示预览;不逐个列第三方库的内部样例/字体、ESP-IDF 文件或 build 缓存。
|
||
语音模型作为独立构建产物在后文单列,不冒充项目图片资产。
|
||
|
||
- 文件字节为文件逻辑长度;分配字节来自本机 stat 的 st_blocks×512,可能随文件
|
||
系统、压缩、克隆共享而改变,不能当作唯一物理磁盘成本或固件占用。
|
||
- C 文件是十六进制数组的文本,文本长度不等于 Flash。Flash 载荷必须按数组
|
||
字节统计;描述结构、代码、对齐和其他数据最终以应用镜像为准。
|
||
- 源图、图层、预览、manifest、旧副本不因出现在仓库中就自动进入固件。
|
||
- PNG/Opus 素材包与六份 GFX RLE 都已包含在应用镜像里,不能重复加算。
|
||
- 本文只记录分类,不授权删除任何文件。后备保留与清理条件见
|
||
[GFX 开发指南](GFX表情显示应用与开发指南.md#旧资源保留整理与迁移完成条件)。
|
||
|
||
## 目录汇总
|
||
|
||
| 类别 | 文件数 | 文件字节合计 | 本机分配字节合计 | 当前用途 |
|
||
| --- | ---: | ---: | ---: | --- |
|
||
| 原始 LCD 图片 | 76 | 1,168,722 | 1,290,240 | 源图/历史 GIF,不直接入固件 |
|
||
| 优化 PNG 与清单 | 76 | 465,933 | 593,920 | 按 PNG 白名单入包;manifest 不入包 |
|
||
| 提示音 | 32 | 385,758 | 450,560 | 本目录 Opus 入包 |
|
||
| 待机拆分图层及预览 | 8 | 74,585 | 94,208 | 制作输入/预览,不入包 |
|
||
| 聆听拆分图层及预览 | 16 | 272,605 | 303,104 | 制作输入/预览,不入包 |
|
||
| GFX 压缩 C 资产 | 8 | 1,232,250 | 1,253,376 | 六份参与编译;历史两份未参与 |
|
||
| 旧音频副本 | 30 | 378,918 | 442,368 | 本目录不入包,不自动删除 |
|
||
| 领域网页资源 | 1 | 5,373 | 8,192 | user_config.html 单独 EMBED_TXTFILES,不在素材包 |
|
||
| 文档中的独立显示预览 | 2 | 98,302 | 102,400 | 仅电脑预览,不入固件 |
|
||
|
||
以下同名文件跨目录是不同用途,不应直接合并或重复计入 Flash。当前没有独立中文字体包;时间 HUD 已改为 Montserrat 14 数字子集,电量仅显示素材图标,不意味着已支持任意中文字形。
|
||
|
||
## 原始 LCD 图片
|
||
|
||
目录:`components/platform/assets/lcd_source/`。源图/历史 GIF,不直接入固件。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `OTA.gif` | 40,441 | 40,960 | 320×240 | 不直接入固件 |
|
||
| `buyunqian1.png` | 20,467 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `charging.png` | 3,018 | 4,096 | 50×70 | 不直接入固件 |
|
||
| `chouqian_buyun0.png` | 16,883 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_buyun1.png` | 20,467 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_buyun2.png` | 27,971 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `chouqian_heping0.png` | 17,146 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_heping1.png` | 20,975 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `chouqian_heping2.png` | 28,152 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `chouqian_qianzhi0.png` | 13,739 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `chouqian_qianzhi1.png` | 16,425 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_qianzhi2.png` | 15,559 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `chouqian_shangshang0.png` | 17,377 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_shangshang1.png` | 20,582 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `chouqian_shangshang2.png` | 28,046 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `chouqian_xiaoji0.png` | 17,071 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_xiaoji1.png` | 20,313 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_xiaoji2.png` | 27,354 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `chouqian_zhongshang0.png` | 16,995 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_zhongshang1.png` | 19,968 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `chouqian_zhongshang2.png` | 26,989 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `east0.png` | 19,981 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `huo0.png` | 19,143 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `huo1.png` | 19,706 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `icon_huo0.png` | 2,028 | 4,096 | 56×58 | 不直接入固件 |
|
||
| `icon_jin0.png` | 2,369 | 4,096 | 65×44 | 不直接入固件 |
|
||
| `icon_mu0.png` | 3,741 | 4,096 | 86×50 | 不直接入固件 |
|
||
| `icon_shui0.png` | 2,239 | 4,096 | 60×56 | 不直接入固件 |
|
||
| `icon_tu0.png` | 2,873 | 4,096 | 75×42 | 不直接入固件 |
|
||
| `jichubiaoqing0.png` | 20,645 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `jichubiaoqing1.png` | 16,355 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `jichubiaoqing2.png` | 14,340 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `jin0.png` | 17,398 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `jin1.png` | 19,311 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `lcdtest00.png` | 3,321 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest01.png` | 3,574 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest02.png` | 3,767 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest03.png` | 3,903 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest04.png` | 3,579 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest05.png` | 3,996 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest06.png` | 4,089 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest07.png` | 3,753 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest08.png` | 3,860 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest09.png` | 4,008 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest10.png` | 3,545 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest11.png` | 3,169 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest12.png` | 3,453 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest13.png` | 3,710 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest14.png` | 3,443 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `lcdtest15.png` | 3,646 | 4,096 | 320×240 | 不直接入固件 |
|
||
| `listening0.png` | 19,615 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `listening1.png` | 15,072 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `listening2.png` | 10,758 | 12,288 | 320×240 | 不直接入固件 |
|
||
| `lowbat.png` | 10,222 | 12,288 | 232×36 | 不直接入固件 |
|
||
| `mu0.png` | 19,742 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `mu1.png` | 19,483 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `muyu0.png` | 17,340 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `muyu1.png` | 21,462 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `muyu2.png` | 34,079 | 36,864 | 320×240 | 不直接入固件 |
|
||
| `north0.png` | 19,314 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `northeast0.png` | 21,808 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `northwest0.png` | 19,143 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `ota1.png` | 25,911 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `ota2.png` | 22,397 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `ota3.png` | 22,079 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `qianzhiwuxing0.png` | 16,670 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `qrcode.png` | 18,971 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `shui0.png` | 18,086 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `shui1.png` | 18,478 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `south0.png` | 22,767 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `southeast0.png` | 24,902 | 28,672 | 320×240 | 不直接入固件 |
|
||
| `southwest0.png` | 22,298 | 24,576 | 320×240 | 不直接入固件 |
|
||
| `spin0.png` | 17,071 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `tu0.png` | 18,101 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `tu1.png` | 20,059 | 20,480 | 320×240 | 不直接入固件 |
|
||
| `west0.png` | 18,011 | 20,480 | 320×240 | 不直接入固件 |
|
||
|
||
## 优化 PNG 与清单
|
||
|
||
目录:`components/platform/assets/lcd_optimized/`。按 PNG 白名单入包;manifest 不入包。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `buyunqian1.png` | 7,598 | 8,192 | 320×240 | 入包 PNG |
|
||
| `charging.png` | 1,254 | 4,096 | 50×70 | 入包 PNG |
|
||
| `chouqian_buyun0.png` | 6,536 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_buyun1.png` | 7,598 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_buyun2.png` | 9,986 | 12,288 | 320×240 | 入包 PNG |
|
||
| `chouqian_heping0.png` | 6,590 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_heping1.png` | 7,701 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_heping2.png` | 10,120 | 12,288 | 320×240 | 入包 PNG |
|
||
| `chouqian_qianzhi0.png` | 5,203 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_qianzhi1.png` | 6,119 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_qianzhi2.png` | 5,984 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_shangshang0.png` | 6,578 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_shangshang1.png` | 7,519 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_shangshang2.png` | 9,804 | 12,288 | 320×240 | 入包 PNG |
|
||
| `chouqian_xiaoji0.png` | 6,447 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_xiaoji1.png` | 7,424 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_xiaoji2.png` | 9,715 | 12,288 | 320×240 | 入包 PNG |
|
||
| `chouqian_zhongshang0.png` | 6,291 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_zhongshang1.png` | 7,224 | 8,192 | 320×240 | 入包 PNG |
|
||
| `chouqian_zhongshang2.png` | 9,387 | 12,288 | 320×240 | 入包 PNG |
|
||
| `east0.png` | 5,681 | 8,192 | 320×240 | 入包 PNG |
|
||
| `huo0.png` | 7,023 | 8,192 | 320×240 | 入包 PNG |
|
||
| `huo1.png` | 7,269 | 8,192 | 320×240 | 入包 PNG |
|
||
| `icon_huo0.png` | 1,422 | 4,096 | 56×58 | 入包 PNG |
|
||
| `icon_jin0.png` | 1,509 | 4,096 | 65×44 | 入包 PNG |
|
||
| `icon_mu0.png` | 1,866 | 4,096 | 86×50 | 入包 PNG |
|
||
| `icon_shui0.png` | 1,457 | 4,096 | 60×56 | 入包 PNG |
|
||
| `icon_tu0.png` | 1,643 | 4,096 | 75×42 | 入包 PNG |
|
||
| `jichubiaoqing0.png` | 6,467 | 8,192 | 320×240 | 入包 PNG |
|
||
| `jichubiaoqing1.png` | 5,306 | 8,192 | 320×240 | 入包 PNG |
|
||
| `jichubiaoqing2.png` | 4,482 | 8,192 | 320×240 | 入包 PNG |
|
||
| `jin0.png` | 6,488 | 8,192 | 320×240 | 入包 PNG |
|
||
| `jin1.png` | 7,077 | 8,192 | 320×240 | 入包 PNG |
|
||
| `lcdtest00.png` | 2,885 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest01.png` | 2,965 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest02.png` | 2,982 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest03.png` | 3,043 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest04.png` | 2,949 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest05.png` | 3,225 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest06.png` | 3,431 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest07.png` | 3,369 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest08.png` | 3,299 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest09.png` | 3,458 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest10.png` | 3,229 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest11.png` | 2,966 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest12.png` | 2,921 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest13.png` | 3,020 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest14.png` | 2,986 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lcdtest15.png` | 3,033 | 4,096 | 320×240 | 入包 PNG |
|
||
| `listening0.png` | 6,165 | 8,192 | 320×240 | 入包 PNG |
|
||
| `listening1.png` | 4,939 | 8,192 | 320×240 | 入包 PNG |
|
||
| `listening2.png` | 3,577 | 4,096 | 320×240 | 入包 PNG |
|
||
| `lowbat.png` | 3,527 | 4,096 | 232×36 | 入包 PNG |
|
||
| `manifest.json` | 34,788 | 36,864 | — | 不入包,校验清单/非白名单 |
|
||
| `mu0.png` | 7,270 | 8,192 | 320×240 | 入包 PNG |
|
||
| `mu1.png` | 7,208 | 8,192 | 320×240 | 入包 PNG |
|
||
| `muyu0.png` | 6,924 | 8,192 | 320×240 | 入包 PNG |
|
||
| `muyu1.png` | 8,325 | 12,288 | 320×240 | 入包 PNG |
|
||
| `muyu2.png` | 12,523 | 16,384 | 320×240 | 入包 PNG |
|
||
| `north0.png` | 5,527 | 8,192 | 320×240 | 入包 PNG |
|
||
| `northeast0.png` | 6,276 | 8,192 | 320×240 | 入包 PNG |
|
||
| `northwest0.png` | 5,496 | 8,192 | 320×240 | 入包 PNG |
|
||
| `ota1.png` | 8,745 | 12,288 | 320×240 | 入包 PNG |
|
||
| `ota2.png` | 7,585 | 8,192 | 320×240 | 入包 PNG |
|
||
| `ota3.png` | 7,525 | 8,192 | 320×240 | 入包 PNG |
|
||
| `qianzhiwuxing0.png` | 5,811 | 8,192 | 320×240 | 入包 PNG |
|
||
| `qrcode.png` | 11,039 | 12,288 | 320×240 | 入包 PNG |
|
||
| `shui0.png` | 6,640 | 8,192 | 320×240 | 入包 PNG |
|
||
| `shui1.png` | 6,932 | 8,192 | 320×240 | 入包 PNG |
|
||
| `south0.png` | 6,609 | 8,192 | 320×240 | 入包 PNG |
|
||
| `southeast0.png` | 7,354 | 8,192 | 320×240 | 入包 PNG |
|
||
| `southwest0.png` | 6,599 | 8,192 | 320×240 | 入包 PNG |
|
||
| `spin0.png` | 6,447 | 8,192 | 320×240 | 入包 PNG |
|
||
| `tu0.png` | 7,028 | 8,192 | 320×240 | 入包 PNG |
|
||
| `tu1.png` | 7,381 | 8,192 | 320×240 | 入包 PNG |
|
||
| `west0.png` | 5,164 | 8,192 | 320×240 | 入包 PNG |
|
||
|
||
## 提示音
|
||
|
||
目录:`components/platform/assets/audio_prompts/`。本目录 Opus 入包。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `battery_checking.opus` | 4,366 | 8,192 | — | 入包 Opus |
|
||
| `battery_low_20.opus` | 6,582 | 8,192 | — | 入包 Opus |
|
||
| `battery_low_energy_warning.opus` | 26,369 | 28,672 | — | 入包 Opus |
|
||
| `boot.opus` | 2,296 | 4,096 | — | 入包 Opus |
|
||
| `button_interrupt_listening.opus` | 2,911 | 4,096 | — | 入包 Opus |
|
||
| `charge_complete.opus` | 22,329 | 24,576 | — | 入包 Opus |
|
||
| `daily_first_wake.opus` | 14,798 | 16,384 | — | 入包 Opus |
|
||
| `daily_wake.opus` | 7,111 | 8,192 | — | 入包 Opus |
|
||
| `enter_provisioning.opus` | 6,701 | 8,192 | — | 入包 Opus |
|
||
| `intro_first_setup_success.opus` | 23,813 | 24,576 | — | 入包 Opus |
|
||
| `local_wake_response.opus` | 3,680 | 4,096 | — | 入包 Opus |
|
||
| `luck_flow_lost_help_find.opus` | 14,658 | 16,384 | — | 入包 Opus |
|
||
| `muyu.opus` | 3,160 | 4,096 | — | 入包 Opus |
|
||
| `network_connect_failed.opus` | 4,388 | 8,192 | — | 入包 Opus |
|
||
| `network_connect_success.opus` | 4,778 | 8,192 | — | 入包 Opus |
|
||
| `network_connecting.opus` | 2,836 | 4,096 | — | 入包 Opus |
|
||
| `network_interrupted_repairing.opus` | 13,887 | 16,384 | — | 入包 Opus |
|
||
| `network_unstable.opus` | 13,910 | 16,384 | — | 入包 Opus |
|
||
| `server_abnormal_interrupted.opus` | 24,764 | 28,672 | — | 入包 Opus |
|
||
| `server_connect_failed.opus` | 5,690 | 8,192 | — | 入包 Opus |
|
||
| `server_connect_success.opus` | 6,302 | 8,192 | — | 入包 Opus |
|
||
| `server_repair_wait_open.opus` | 17,193 | 20,480 | — | 入包 Opus |
|
||
| `server_repair_wait_reopen.opus` | 17,829 | 20,480 | — | 入包 Opus |
|
||
| `shutdown.opus` | 3,160 | 4,096 | — | 入包 Opus |
|
||
| `shutdown_normal_goodbye.opus` | 6,396 | 8,192 | — | 入包 Opus |
|
||
| `shutdown_power_empty.opus` | 19,970 | 20,480 | — | 入包 Opus |
|
||
| `signal_restored_business_resume.opus` | 10,996 | 12,288 | — | 入包 Opus |
|
||
| `standby_5min.opus` | 21,429 | 24,576 | — | 入包 Opus |
|
||
| `system_update_complete.opus` | 12,396 | 16,384 | — | 入包 Opus |
|
||
| `system_upgrading.opus` | 23,754 | 24,576 | — | 入包 Opus |
|
||
| `welcome_luck_ready.opus` | 25,325 | 28,672 | — | 入包 Opus |
|
||
| `wifi_password_wrong.opus` | 11,981 | 12,288 | — | 入包 Opus |
|
||
|
||
## 待机拆分图层及预览
|
||
|
||
目录:`components/platform/assets/lcd_layers/jichubiaoqing/`。制作输入/预览,不入包。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `idle_base.png` | 5,321 | 8,192 | 320×240 | 不直接入固件 |
|
||
| `idle_eyes_closed.png` | 5,896 | 8,192 | 238×93 | 不直接入固件 |
|
||
| `idle_eyes_half.png` | 8,791 | 12,288 | 238×93 | 不直接入固件 |
|
||
| `idle_eyes_open.png` | 12,161 | 12,288 | 238×93 | 不直接入固件 |
|
||
| `layout.json` | 387 | 4,096 | — | 不直接入固件 |
|
||
| `preview_closed.png` | 10,881 | 12,288 | 320×240 | 不直接入固件 |
|
||
| `preview_half.png` | 13,832 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_open.png` | 17,316 | 20,480 | 320×240 | 不直接入固件 |
|
||
|
||
## 聆听拆分图层及预览
|
||
|
||
目录:`components/platform/assets/lcd_layers/listening/`。制作输入/预览,不入包。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `layout.json` | 346 | 4,096 | — | 不直接入固件 |
|
||
| `listening_base.png` | 6,234 | 8,192 | 320×240 | 不直接入固件 |
|
||
| `listening_eyes_closed.png` | 2,875 | 4,096 | 242×77 | 不直接入固件 |
|
||
| `listening_eyes_half.png` | 6,460 | 8,192 | 242×77 | 不直接入固件 |
|
||
| `listening_eyes_open.png` | 9,866 | 12,288 | 242×77 | 不直接入固件 |
|
||
| `preview.gif` | 53,952 | 57,344 | 320×240 | 不直接入固件 |
|
||
| `preview_000.png` | 13,633 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_016.png` | 15,577 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_024.png` | 15,540 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_064.png` | 14,802 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_080.png` | 14,347 | 16,384 | 320×240 | 不直接入固件 |
|
||
| `preview_128.png` | 10,641 | 12,288 | 320×240 | 不直接入固件 |
|
||
| `preview_160.png` | 10,937 | 12,288 | 320×240 | 不直接入固件 |
|
||
| `preview_192.png` | 9,820 | 12,288 | 320×240 | 不直接入固件 |
|
||
| `preview_232.png` | 7,674 | 8,192 | 320×240 | 不直接入固件 |
|
||
| `preview_sheet.png` | 79,901 | 81,920 | 960×720 | 不直接入固件 |
|
||
|
||
## GFX 压缩 C 资产
|
||
|
||
目录:`components/platform/src/generated/emote_gfx/`。六份参与编译;历史两份未参与。
|
||
|
||
| 文件 | 文本文件字节 | 本机分配字节 | 图层尺寸 | 数组载荷字节 | RGB565+A8 像素字节 | 参与编译 |
|
||
| --- | ---: | ---: | --- | ---: | ---: | --- |
|
||
| `idle_base.c` | 29,698 | 32,768 | 284×37 | 4,764(RLE) | 31,524 | 是,GFX 开关开启时 |
|
||
| `idle_eyes_closed.c` | 400,750 | 401,408 | 238×93 | 66,402(历史未压缩像素) | 66,402 | 否,历史文件,仅保留 |
|
||
| `idle_eyes_half.c` | 400,744 | 401,408 | 238×93 | 66,402(历史未压缩像素) | 66,402 | 否,历史文件,仅保留 |
|
||
| `idle_eyes_open.c` | 90,201 | 94,208 | 238×93 | 14,572(RLE) | 66,402 | 是,GFX 开关开启时 |
|
||
| `listening_base.c` | 54,190 | 57,344 | 287×102 | 8,732(RLE) | 87,822 | 是,GFX 开关开启时 |
|
||
| `listening_eyes_closed.c` | 26,097 | 28,672 | 242×77 | 4,172(RLE) | 55,902 | 是,GFX 开关开启时 |
|
||
| `listening_eyes_half.c` | 81,985 | 86,016 | 242×77 | 13,236(RLE) | 55,902 | 是,GFX 开关开启时 |
|
||
| `listening_eyes_open.c` | 148,585 | 151,552 | 242×77 | 24,036(RLE) | 55,902 | 是,GFX 开关开启时 |
|
||
|
||
## 旧音频副本
|
||
|
||
目录:`defaultAudio/`。本目录不入包,不自动删除。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `battery_checking.opus` | 4,366 | 8,192 | — | 不直接入固件 |
|
||
| `battery_low_20.opus` | 6,582 | 8,192 | — | 不直接入固件 |
|
||
| `battery_low_energy_warning.opus` | 26,369 | 28,672 | — | 不直接入固件 |
|
||
| `boot.opus` | 2,296 | 4,096 | — | 不直接入固件 |
|
||
| `button_interrupt_listening.opus` | 2,911 | 4,096 | — | 不直接入固件 |
|
||
| `charge_complete.opus` | 22,329 | 24,576 | — | 不直接入固件 |
|
||
| `daily_first_wake.opus` | 14,798 | 16,384 | — | 不直接入固件 |
|
||
| `daily_wake.opus` | 7,111 | 8,192 | — | 不直接入固件 |
|
||
| `enter_provisioning.opus` | 6,701 | 8,192 | — | 不直接入固件 |
|
||
| `intro_first_setup_success.opus` | 23,813 | 24,576 | — | 不直接入固件 |
|
||
| `luck_flow_lost_help_find.opus` | 14,658 | 16,384 | — | 不直接入固件 |
|
||
| `network_connect_failed.opus` | 4,388 | 8,192 | — | 不直接入固件 |
|
||
| `network_connect_success.opus` | 4,778 | 8,192 | — | 不直接入固件 |
|
||
| `network_connecting.opus` | 2,836 | 4,096 | — | 不直接入固件 |
|
||
| `network_interrupted_repairing.opus` | 13,887 | 16,384 | — | 不直接入固件 |
|
||
| `network_unstable.opus` | 13,910 | 16,384 | — | 不直接入固件 |
|
||
| `server_abnormal_interrupted.opus` | 24,764 | 28,672 | — | 不直接入固件 |
|
||
| `server_connect_failed.opus` | 5,690 | 8,192 | — | 不直接入固件 |
|
||
| `server_connect_success.opus` | 6,302 | 8,192 | — | 不直接入固件 |
|
||
| `server_repair_wait_open.opus` | 17,193 | 20,480 | — | 不直接入固件 |
|
||
| `server_repair_wait_reopen.opus` | 17,829 | 20,480 | — | 不直接入固件 |
|
||
| `shutdown.opus` | 3,160 | 4,096 | — | 不直接入固件 |
|
||
| `shutdown_normal_goodbye.opus` | 6,396 | 8,192 | — | 不直接入固件 |
|
||
| `shutdown_power_empty.opus` | 19,970 | 20,480 | — | 不直接入固件 |
|
||
| `signal_restored_business_resume.opus` | 10,996 | 12,288 | — | 不直接入固件 |
|
||
| `standby_5min.opus` | 21,429 | 24,576 | — | 不直接入固件 |
|
||
| `system_update_complete.opus` | 12,396 | 16,384 | — | 不直接入固件 |
|
||
| `system_upgrading.opus` | 23,754 | 24,576 | — | 不直接入固件 |
|
||
| `welcome_luck_ready.opus` | 25,325 | 28,672 | — | 不直接入固件 |
|
||
| `wifi_password_wrong.opus` | 11,981 | 12,288 | — | 不直接入固件 |
|
||
|
||
## 领域网页资源
|
||
|
||
目录:`components/domain/assets/`。user_config.html 单独 EMBED_TXTFILES,不在素材包。
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 尺寸 | 固件用途 |
|
||
| --- | ---: | ---: | --- | --- |
|
||
| `user_config.html` | 5,373 | 8,192 | — | 单独嵌入应用,文本尾部追加 NUL |
|
||
|
||
## 独立显示预览
|
||
|
||
| 文件 | 文件字节 | 本机分配字节 | 用途 |
|
||
| --- | ---: | ---: | --- |
|
||
| `docs/cat-face-screen-preview.html` | 5,225 | 8,192 | 文档/浏览器预览,不入固件 |
|
||
| `docs/lcd-boundary-test-preview.gif` | 93,077 | 94,208 | 文档/浏览器预览,不入固件 |
|
||
|
||
## 实际入固件与构建快照
|
||
|
||
当前 PNG 白名单为 75 项,提示音为 32 项;已逐项对照
|
||
现有素材包名称及字节,确认本次台账快照与该包一致。资源变化后需重新核对构建,
|
||
不能只改本文数字。
|
||
|
||
| 项目 | 字节 | 计量说明 |
|
||
| --- | ---: | --- |
|
||
| 白名单优化 PNG 载荷 | 431,145 | 素材包内部像素文件 |
|
||
| Opus 提示音载荷 | 385,758 | 素材包内部音频文件 |
|
||
| 包头、条目头及名称 | 3,222 | 打包元数据 |
|
||
| platform_assets.pack | 820,125 | 上述三项之和,包含于应用 |
|
||
| 六份在用 RLE 载荷 | 69,512 | 独立 C 数组链接入应用,不在素材包内 |
|
||
| 应用镜像 | 3,105,872 | HUD 更新后的本次构建,包含 PNG、Opus、RLE、网页、代码及其他链接数据 |
|
||
| 单个 OTA 槽 | 4,718,592 | 应用余量 1,612,720 字节;不能把两个槽余量合并供一次 OTA 使用 |
|
||
| 独立语音模型镜像 | 2,681,351 | model 分区容量 3,145,728 字节,不属于应用内图片包 |
|
||
|
||
文件总大小不能当作“当前整个 Flash 用量”;NVS、分区表、引导程序、模型和
|
||
其他分区另计,设备内容还取决于实际烧录/OTA。临时构建产物不应提交。
|
||
|
||
## listening 压缩与旧方案对照
|
||
|
||
旧三张原 PNG 共 45,445 字节;旧优化 PNG 共 14,681 字节;新四份图层原始
|
||
RGB565+A8 像素共 255,528 字节,新 RLE 载荷共 50,176 字节。相对原始像素
|
||
减少约 80.4%,但比旧优化 PNG 多 35,495 字节,不能称为“比旧方案省 Flash”。
|
||
原旧 PNG 后备没有移出素材包,所以实际固件增量为 53,696 字节,不是仅比较
|
||
新旧素材大小的差。九张局部缓存共 335,412 字节 PSRAM,静态底图 87,822 字节,
|
||
常驻像素共 423,234 字节;初始化额外关键图 167,706 字节,随后释放。
|
||
当前没有新增 DMA 暂存区、合成缓冲或任务。它是用户已接受的空间换流畅度方案。
|
||
|
||
## 新增时间字形与电池图标(2026-10-09 HUD 更新)
|
||
|
||
素材来自用户提供的 `battery_icons.zip`,只导入 `out/40x20/` 中明确列出的十张 PNG,
|
||
80×40 版本不入工程。源图与优化 PNG 均不加入 `platform_assets.pack`,避免重复计费;
|
||
实际链接生成的 C 只读数组。以下新增项不包含在上面的旧目录汇总里。
|
||
|
||
| 源图名称 | 原 PNG 字节 | 优化 PNG 字节 | 调色板+游程载荷字节 |
|
||
| --- | ---: | ---: | ---: |
|
||
| `battery_1.png` | 704 | 687 | 805 |
|
||
| `battery_25.png` | 815 | 800 | 995 |
|
||
| `battery_50.png` | 594 | 571 | 927 |
|
||
| `battery_75.png` | 601 | 574 | 919 |
|
||
| `battery_100.png` | 543 | 524 | 806 |
|
||
| `battery_charging_1.png` | 1,206 | 1,197 | 1,300 |
|
||
| `battery_charging_25.png` | 1,367 | 1,344 | 1,500 |
|
||
| `battery_charging_50.png` | 1,333 | 1,319 | 1,363 |
|
||
| `battery_charging_75.png` | 1,451 | 1,437 | 1,477 |
|
||
| `battery_charging_100.png` | 1,359 | 1,353 | 1,350 |
|
||
| 合计 | 9,973 | 9,806 | 11,442 |
|
||
|
||
源 PNG:`components/platform/assets/status_hud/battery_source/`,十文件分配空间共
|
||
40,960 B;优化 PNG:同目录 `battery_optimized/`,十文件分配空间共 40,960 B。
|
||
颜色先按现有 RGB565 精度转换,完整保留 A8;调色板编码对 RGB565+A8 无损,
|
||
不等于 RGB888 转 RGB565 无损。游程往返与 PNG 优化像素一致性由生成脚本验证。
|
||
十图标原始 RGB565+A8 为 24,000 B,索引游程为 11,442 B,减少约 52.3%;
|
||
但比优化 PNG 大 1,636 B。这里选的是无需运行时解码缓存的折中,不是最小文件编码。
|
||
|
||
时间字形来自已安装 LVGL 的 `lv_font_montserrat_14.c`,只提取数字、冒号、横线,
|
||
4-bit Alpha 位图 425 B,十二个描述共 96 B(ESP32-S3 对象验证),原始字号不放大。
|
||
许可说明保留在 `status_hud/LVGL-LICENSE.txt`(不入固件)。
|
||
生成脚本 `tools/prepare_status_hud_assets.py`,验证用 `--check`;输入字体版本/格式
|
||
变化会触发断言,不能静默生成错误字形。
|
||
|
||
实际编译 `components/platform/src/generated/lcd_status_assets.c`:文本文件 75,630 B,
|
||
目标对象只读载荷 12,083 B,包括 425 B 字形、96 B 字形描述、11,442 B 图标数据、
|
||
120 B 图标描述;目标对象可写 data/BSS 为 0。它不属于上面的六份表情 RLE。
|
||
PNG 包仍为 820,125 B、75 PNG/32 Opus;只读资产已包含于整个应用,不再重复相加。
|
||
|
||
完整应用从 3,094,176 B 增至 3,105,872 B,净增 11,696 B(包含旧字形/绘制代码
|
||
移除和段对齐变化),OTA 槽剩余 1,612,720 B。新增常驻/初始化像素 PSRAM、普通堆、
|
||
内部/DMA 专用缓冲及静态可写数据均为 0;复用既有 HUD 和行缓冲。
|
||
局部栈、CPU 耗时和设备最低内存尚未新增实机测量,不应写成整体资源零成本。
|
||
|
||
## 新增抽签分层资产(2026-10-10)
|
||
|
||
以下新增项不合并进上面的历史目录汇总。旧抽签十八张源 PNG 共 372,012 B、
|
||
优化 PNG 共 136,226 B,全部保留且后备仍入包。PNG 包仍 820,125 B,不重复
|
||
加入本次拆分层。生成器使用优化 PNG 保存拆分层,但实际编译 LZ4,不是 RLE。
|
||
|
||
图层目录:`components/platform/assets/lcd_layers/chouqian/`。
|
||
|
||
| 图层 | 尺寸 | 优化 PNG B | 本机分配 B | RGB565+A8 B | LZ4 载荷 B |
|
||
| --- | --- | ---: | ---: | ---: | ---: |
|
||
| `pile.png` | 208×76 | 9,594 | 12,288 | 47,424 | 9,417 |
|
||
| `back.png` | 63×113 | 2,999 | 4,096 | 21,357 | 4,179 |
|
||
| `edge.png` | 41×110 | 2,957 | 4,096 | 13,530 | 4,389 |
|
||
| `front.png` | 100×190 | 7,579 | 8,192 | 57,000 | 10,774 |
|
||
| `question.png` | 27×50 | 730 | 4,096 | 4,050 | 817 |
|
||
| `rod.png` | 169×56 | 1,584 | 4,096 | 28,392 | 2,094 |
|
||
| `text_buyun.png` | 48×104 | 2,502 | 4,096 | 14,976 | 2,638 |
|
||
| `text_heping.png` | 48×104 | 2,784 | 4,096 | 14,976 | 2,851 |
|
||
| `text_shangshang.png` | 48×104 | 2,132 | 4,096 | 14,976 | 2,069 |
|
||
| `text_xiaoji.png` | 48×104 | 2,091 | 4,096 | 14,976 | 2,210 |
|
||
| `text_zhongshang.png` | 48×104 | 2,094 | 4,096 | 14,976 | 2,109 |
|
||
| 合计 | 十一图层 | 37,046 | 57,344 | 246,633 | 43,547 |
|
||
|
||
`layout.json` 1,929 B、分配 4,096 B,不入固件;目录共十二文件 38,975 B、
|
||
分配 61,440 B。预览工具默认输出 `/tmp/lucky-fortune-preview`,不是编译资产。
|
||
源十八 PNG 与本次拆分层不是相同数量的无损比较;背景/几何做了小幅性能适配。
|
||
LZ4 对转换后的 RGB565+A8 无损且完整保留 Alpha,但比拆分 PNG 多 6,501 B,
|
||
不能称为压得最小。生成器及实际 C 解码均做往返校验,原旧 PNG 不覆盖。
|
||
|
||
生成 C:`components/platform/src/generated/emote_gfx/fortune_assets.c`,文本
|
||
270,251 B、分配 270,336 B;目标对象只读段总计 43,831 B(载荷、176 B 资产
|
||
描述、20 B 目录指针、88 B 目录名),可写 data/BSS 为 0。生成 C 不手改。
|
||
|
||
本次完整应用 3,157,728 B,较 HUD 提交 3,105,872 B 增加 51,856 B,包含
|
||
资产、几何/解码、播放与 UART 显示测试命令的代码及对齐;单 OTA 槽余量
|
||
1,560,864 B。所有只读资源已经包含在应用里,不能再相加。
|
||
|
||
六共享层解压 171,753 B、一次仅选一份签文 14,976 B、208×220 RGB565
|
||
局部光栅缓冲 91,520 B,像素峰值合计 278,249 B PSRAM;目标编译器场景
|
||
描述 148 B 也在 PSRAM,明确申请峰值 278,397 B,不含堆管理。
|
||
正常结束/取消后释放,新增常驻像素为 0。临时 GFX 图片对象/状态/链节点
|
||
普通堆请求合计 96 B,不含分配器;LCD 静态可写数据增加 4 B 指针,
|
||
无新增内部/DMA 缓冲、合成整屏缓冲或任务;局部栈/CPU/实际最低余量另测。
|
||
解绑故障时保留绑定资源到重启,不冒充完整释放。
|
||
|
||
五签主机回归、IDF 5.5.4、日志关闭/GFX 关闭编译与应用烧录校验通过。
|
||
设备启动确认缓存成功、25 秒采样无显示锁/传输/崩溃错误;未捕获抽签运动
|
||
日志,FPS/五签观感/并行负载最低内存仍待实机验收。详见
|
||
[抽签开发说明](抽签分层动画开发说明.zh-CN.md)。
|
||
|
||
## 维护与后续清理(通用)
|
||
|
||
1. PNG 新增/替换按 [图片优化流程](lcd-image-asset-optimization.zh-CN.md) 生成并验证,
|
||
不能编辑优化产物代替修改源图。GFX 新增/替换使用对应压缩脚本和编码往返测试。
|
||
2. 改白名单、图层、生成 C、音频或预览时更新分类、文件字节及载荷;重新构建时
|
||
同步镜像/包快照,记录常驻与峰值内存。不要把本文静态表当自动一致性校验。
|
||
3. 当前后备 PNG 全保留;历史 C 与旧副本只标记,未授权不删。删除前核对引用、
|
||
GFX 关闭/故障后备以及收益,经过用户确认并完成迁移验收后再修改构建及资源表。
|
||
4. 清理优先区分“不再入固件”与“删除可编辑源文件”。前者有 Flash 收益,后者
|
||
可能仅省开发机空间,不能混为一谈。保留 Git 可恢复记录,并验证正常/故障路径。
|
||
5. 这里没有安排立即清理、批量迁移所有表情或加入完整字库;当前仅按用户要求提取 Montserrat 数字子集。
|