生态桌面应用
协议规范
平台、事件、绘制和配置协议的当前版本、协商与兼容规则。
言台与言界把 ABI、事件、绘制和可读配置分别版本化:
| 协议 | 当前版本 | 数据路径 | 主版本规则 |
|---|---|---|---|
| 原生 ABI | 2 | 函数、资源、回调和原生值 | 必须精确匹配 |
| 平台协议 | 1.7 | 能力、平台原语、配额与诊断 | 主版本不匹配拒绝 |
| 事件协议 | 1.3 | 一批言序典/列/基础值 | 主版本不匹配拒绝 |
| 无障碍协议 | 1.0 | 有界语义树、焦点和动作 | 主版本不匹配拒绝 |
| 绘制协议 | YXDR 1.1 | 小端版本化二进制完整帧 | 主版本不匹配拒绝 |
| 主题配置 | 1 | 言据优先、JSON 兼容 | 主版本不匹配拒绝 |
1.0 机器契约还固定 50 个能力字段、39 个事件、38 个无障碍角色、18 个状态、15 个动作、 17 个绘制操作码、5 个路径操作码,以及 ABI v2 的 11 个函数、41 项操作和 5 类资源。
次版本兼容
- 典格式可以增加可选字段,旧消费者忽略未知字段;
- 事件协议可以增加名称,旧消费者忽略未知事件并继续处理批次;
- 无障碍协议可以在可忽略位置追加角色、状态或动作,既有编号和参数语义不可复用;
- YXDR 可以增加操作码,旧后端按负载长度安全跳过;
- 新消费者不能假设旧生产者提供较新的可选字段;
- 不得复用已有字段或操作码表达另一种单位或语义。
安全上限
事件队列容量为 4096。单个绘制帧限制 16 MiB、单命令 4 MiB、命令数 65536、状态栈 256; 单窗口无障碍树限制 16384 个节点、深度 64、文字 4 MiB。应用默认硬上限包括 4096 个 资源、64 个窗口、2048 个计时器、256 张图片和 64 个字体,应用可以在首次使用前下调。 剪贴板文字限制 16 MiB,RGBA8 图片单边限制 16384、总量 256 MiB。损坏长度、错误 UTF-8、 非有限数字、非零填充和超限输入都返回稳定错误。
规范原文见1.0 协议冻结、 事件协议、 无障碍协议、 绘制协议与 言据/JSON 决策。