Skip to content
阅读进度

Display、Task 与 User 为什么需要分别建模? ​

返回 多屏互动项目 目录

标准回答 ​

Display 描述画面输出目标,Task 组织 Activity 历史,User 影响账户、应用数据和权限身份。这些对象可以关联,但没有一一对应关系。一个用户可以使用多个显示器,一个显示器也可能在系统策略下承载不同任务。

跨屏时至少核对源与目标 displayId、taskId、userId、调用 UID、目标应用实例和业务会话 ID。只比较包名会漏掉多任务和多用户差异;只比较 displayId 会漏掉同屏任务切换。

在单用户空间适配中,原先依赖用户隔离形成的业务边界可能需要显式重建,例如会话归属、数据订阅、回调路由和缓存键。这里是迁移分析方法,现有案例材料不足以确定某次迁移的具体根因或最终实现。

追问与回答 ​

一个屏幕变成黑屏,先检查哪个 ID ​

先锁定发生时间与实际显示目标,再关联任务、窗口、Surface 和会话。没有单一 ID 能解释整条链路。

系统 APK 是否拥有任意跨用户能力 ​

不能这样推导。签名权限、特权白名单、服务端检查及厂商策略共同决定能力,必须按目标系统核对。

易混淆点 ​

  • 把用户空间迁移简单理解为修改 displayId。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。