嵌入式 UI 资源管理:让 XML 成为布局的单一真相源
嵌入式 UI 经常同时存在三份布局:设计稿中的坐标、XML 配置中的坐标,以及固件代码里的静态数组。只要其中一份被单独修改,图片错位、尺寸不一致和版本难追踪就会出现。
为什么需要单一真相源
让 XML 成为布局定义的唯一来源,可以把页面、控件、图片、坐标和资源标识集中描述。C 代码、预览图和校验报告都由 XML 自动生成,避免人工复制数据。
XML 应描述什么
- 页面尺寸、色彩格式和坐标系。
- 资源名称、文件路径、位置、宽高和对齐方式。
- 可见条件、状态变化和资源变体。
- 固件侧需要的 ID、枚举或索引。
生成流程
解析器先做结构和范围校验,再生成 C 头文件与静态表,同时输出一张布局预览图。CI 中比较生成结果,如果 XML 改动却没有同步提交生成文件,构建应直接失败。
必须自动检查的错误
包括资源文件不存在、坐标越界、尺寸为零、ID 重复、像素格式不匹配,以及控件重叠超过允许范围。把这些问题放到生成阶段处理,比烧录到设备后肉眼查找更高效。
保留可追踪性
生成文件头部记录 XML 版本和内容摘要,但不要允许直接手改。出现问题时,可以从固件中的摘要反查对应布局版本。
自动生成的价值不只是少写代码,而是让设计、资源和固件始终指向同一份事实。