Size Preset Profiles¶
本页把当前提供的几档 size 模板整理成可直接复用的起始配置,目标不是给出唯一答案,而是帮助用户快速选一个合理起点。
建议和以下文档一起看:
size_selection_guide.mdcanvas_feature_size_report.mdwidget_feature_size_report.mdhq_size_report.mdsize_preset_validation.md
对应模板文件位于:
example/HelloSizeAnalysis/ConfigProfiles/tiny_rom/app_egui_config.hexample/HelloSizeAnalysis/ConfigProfiles/basic_ui/app_egui_config.hexample/HelloSizeAnalysis/ConfigProfiles/dashboard/app_egui_config.hexample/HelloSizeAnalysis/ConfigProfiles/full_feature/app_egui_config.h
1. 使用原则¶
这些模板只负责“全局配置起点”,不负责替你决定业务代码里是否真的引用某个 widget 或绘制路径。
因此需要区分两层:
第一层:
EGUI_CONFIG_*这类全局开关,由模板直接给出。第二层:具体 widget、canvas path、HQ path 是否被引用,由应用代码自己决定。
也就是说:
有全局总开关的能力,优先用模板做裁剪。
没有全局总开关的能力,优先通过“不引用对应 API 或 widget”让编译器和链接器回收代码。
2. 四档模板总览¶
Profile |
目标 |
核心特点 |
|---|---|---|
|
极限 ROM 裁剪 |
关闭 mask、codec、增强绘制、阴影、图层、触摸、默认 HQ 和额外图片格式 |
|
常规 UI 页面 |
保留触摸、滚动条、快速文字绘制,关闭 mask、codec、图层和默认 HQ |
|
看板 / 仪表 / 展示页 |
打开 |
|
高配设备 / 演示工程 |
打开 mask、双 codec、图层、多点触控、焦点、额外图片格式,默认 HQ 仍保持关闭 |
3. tiny_rom¶
适合场景:
小屏
小 ROM
以状态显示和基础交互为主
当前模板直接关闭了这些开关:
EGUI_CONFIG_FUNCTION_SUPPORT_MASKEGUI_CONFIG_FUNCTION_IMAGE_CODEC_QOIEGUI_CONFIG_FUNCTION_IMAGE_CODEC_RLEEGUI_CONFIG_FUNCTION_WIDGET_ENHANCED_DRAWEGUI_CONFIG_FUNCTION_SUPPORT_SHADOWEGUI_CONFIG_FUNCTION_SUPPORT_LAYEREGUI_CONFIG_FUNCTION_SUPPORT_SCROLLBAREGUI_CONFIG_FUNCTION_SUPPORT_TOUCHEGUI_CONFIG_FUNCTION_SUPPORT_FOCUSEGUI_CONFIG_CIRCLE_DEFAULT_ALGO_HQEGUI_CONFIG_FUNCTION_FONT_STD_FAST_DRAWEGUI_CONFIG_FUNCTION_IMAGE_FORMAT_RGB565_8EGUI_CONFIG_FUNCTION_IMAGE_FORMAT_ALPHA_8
仍然保留:
EGUI_CONFIG_FUNCTION_SUPPORT_KEY
建议:
从这档开始时,不要默认引入重控件。
只有业务明确需要时,再向上加功能。
4. basic_ui¶
适合场景:
设置页
表单页
常规触摸交互
当前模板的特点:
打开
SCROLLBAR、TOUCH、EGUI_CONFIG_FUNCTION_FONT_STD_FAST_DRAW关闭
MASK、QOI、RLE、LAYER、FOCUS、默认 HQ仍然保持增强绘制和阴影关闭
建议:
这档适合作为绝大多数普通 UI 应用的起点。
如果项目后续没有压缩图片资源,可以继续保持 codec 关闭。
5. dashboard¶
适合场景:
看板
仪表
展示型页面
当前模板的特点:
打开
QOI、RLE打开
WIDGET_ENHANCED_DRAW打开
SHADOW保留
TOUCH和SCROLLBAR仍然关闭
MASK、LAYER、FOCUS、默认 HQ
建议:
这档适合已经接受更高视觉成本的项目。
如果实际项目并不使用压缩图片资源,可以回退关闭
QOI/RLE。
6. full_feature¶
适合场景:
高配 MCU
演示工程
不以极限 ROM 为目标的项目
当前模板额外打开了:
EGUI_CONFIG_FUNCTION_SUPPORT_MASKEGUI_CONFIG_FUNCTION_SUPPORT_LAYEREGUI_CONFIG_FUNCTION_SUPPORT_MULTI_TOUCHEGUI_CONFIG_FUNCTION_SUPPORT_KEYEGUI_CONFIG_FUNCTION_SUPPORT_FOCUSEGUI_CONFIG_FUNCTION_IMAGE_FORMAT_RGB565_8EGUI_CONFIG_FUNCTION_IMAGE_FORMAT_ALPHA_8
同时保留:
QOI / RLEWIDGET_ENHANCED_DRAWSHADOWTOUCHSCROLLBAR
注意:
即使是
full_feature,当前模板也没有把EGUI_CONFIG_CIRCLE_DEFAULT_ALGO_HQ改成1。HQ 仍建议按场景显式启用,而不是作为全局默认行为。
7. 这些模板已经不再依赖 USER_CFLAGS¶
当前 size 分析链路已经改为:
把模板内容写入应用本地的 override 头文件
再由应用自己的
app_egui_config.h体系接管
因此:
批量报告脚本不再依赖
USER_CFLAGS做 profile 切换模板的推荐用法是“复制到应用目录”或“作为应用本地 override 的来源”
8. 推荐使用顺序¶
建议这样使用这些模板:
先从最接近目标的 profile 起步。
先确认全局
EGUI_CONFIG_*是否合理。再根据业务代码决定是否真正引入某些 widget、canvas path 和
_hq路径。最后用
size_report.md和size_preset_validation.md做验证。
如果你现在没有明确判断,默认建议:
普通 UI 项目从
basic_ui起步小 ROM 项目从
tiny_rom起步仪表 / 看板项目从
dashboard起步演示或高配设备项目从
full_feature起步