生态桌面应用

协议规范

平台、事件、绘制和配置协议的当前版本、协商与兼容规则。

言台与言界把 ABI、事件、绘制和可读配置分别版本化:

协议当前版本数据路径主版本规则
原生 ABI2函数、资源、回调和原生值必须精确匹配
平台协议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 决策。