Resource Limits and Configuration / 资源上限与配置
PixelUI 用固定容量换取可预测的内存。“满了怎么办”是 API 契约的一部分。
| 公开配置 | 默认 | 影响 |
|---|---|---|
PIXELUI_MAX_ANIMATION_COUNT |
35 | 内联动画槽位 |
PIXELUI_MAX_APP_NUM |
11 | AppManager 注册数 |
PIXELUI_MAX_VIEW_DEPTH |
8 | 存活 App 层数和 metadata |
PIXELUI_APPLICATION_ARENA_SIZE |
4096 B | 所有存活 App 共享的存储 |
PIXELUI_APPLICATION_ARENA_MAX_ALIGNMENT |
64 | App 最大对齐 |
PIXELUI_CALLBACK_STORAGE_SIZE |
32 B | ETL lambda 内联容量 |
PIXELUI_MAX_ICONVIEW_ITEMS |
11 | IconView 项数 |
PIXELUI_MAX_LISTVIEW_SLOT_NUM |
30 | ListView 固定表 |
PIXELUI_MAX_LISTVIEW_DEPTH |
6 | 子菜单历史深度 |
PIXELUI_MAX_POPUP_NUM |
3 | active + pending Popup |
PIXELUI_MAX_ONSCREEN_WIDGET_NUM |
6 | FocusManager 根节点数 |
PIXELUI_MAX_INT_FIXED_WIDTH |
6 | PopupValueDigits 最大位数 |
PIXELUI_MAX_COROUTINE_NUM |
10 | CoroutineScheduler 容量 |
功能开关和字体
PIXELUI_USE_ANIMATION、PIXELUI_USE_POPUP、PIXELUI_USE_COROUTINE 和 PIXELUI_USE_FOCUS 决定核心模块是否编译。Popup 还可分别关闭 Info、Progress 和 ValueDigits。
PIXELUI_FONT_TEXT/SMALL/TINY/NUMERIC/CHART 定义组件字体角色。默认正文字体包含 GB2312 字形;不需要中文时,替换它通常能显著减少 flash。
外部配置
可在整个 library 和 firmware 中统一定义 PIXELUI_CONFIG_PATH,指向一份完整配置文件。不能让不同翻译单元看到不同容量或开关,否则会造成 ABI/ODR 问题。
调参顺序
- 统计同时存活的 App、动画、Popup 和根 Widget。
- 为峰值留余量,同时处理
false/LaunchResult失败。 - 在目标编译器上重新测量
sizeof、对齐和 linker map。 - 一次只调整一类容量,比较
.bss/.data变化。
ViewManager、App arena 和其他 manager 都是 PixelUI 的内联成员。增加上限会直接放大固定 RAM,不需要等对象真正被使用才占用。
