D5.06.6System-level arbitration设计研究
跨应用的仲裁通常由系统层而非单个应用决定
别名: system layer · cross-app · platform policy
概念解释
跨应用的仲裁通常由系统层完成。当多个应用同时产生反馈时,只有系统层能看到全局情况;单个应用只能知道自己内部的事件,因此无法判断自己的事件与其他应用相比是否更紧迫。应用层的仲裁只有在系统没有提供机制时才作为权宜之计。
机制
系统层仲裁的必要性来自信息范围:仲裁需要比较事件之间的相对紧迫程度,而各应用互相不可见,只有系统层能汇总。若各应用自行决定是否输出,结果是它们在同一时刻争抢通道,实际效果是最先触发者获得注意,与后果等级无关。系统层仲裁还便于保持跨应用的一致性,使用户在不同应用中面对同一等级的事件得到相同的处理方式。代价是应用需要把事件等级信息传递给系统,这要求约定的接口与分级标准。
怎么研究
可测量跨应用并发下的表现:在同一设备上让多个应用同时产生不同等级的事件,比较系统层仲裁与应用层自行输出的差异,记录关键事件的延迟与丢失。变量包括并发应用数量、等级分布与系统版本。因变量应包括用户对事件来源的判断能力,因为混乱的并发输出会使用户无法确认发生了什么。
边界
若应用使用独立通道(例如各自的音频会话),系统可以为每个应用分配独立的资源,此时跨应用仲裁的紧迫性下降,但注意力层面的冲突仍然存在。当系统没有提供仲裁接口时,应用只能在有限范围内自保,例如自行降低输出频率。若所有应用都使用同一等级标准,系统层仲裁的效果最好;标准不统一时,仲裁结果仍需按统一的用户响应层级映射。
怎么落地
- 优先使用系统提供的仲裁机制,并把应用内的事件等级映射到统一的响应层级。
- 在系统未提供机制时,至少限制本应用的并发输出,避免争抢通道。
- 保持跨应用的等级语义一致,使用户面对同一等级得到相同处理。
- 验证方式:在多个应用并发输出的条件下测量关键事件的延迟与丢失,并与单应用条件对照,确认并发未导致关键事件被掩盖。