常见问题解答

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Android 10 是否支持每屏幕 VSYNC?

目前还不支持。Android 10 中默认屏幕的 VSYNC 驱动所有屏幕。

多个屏幕是否可以单独打开或关闭?

在 Android 10 中,设备电源状态的实现主要是全局的,并由默认屏幕的电源状态决定。 只能通过将 Surface 设置为 null 来单独开启/关闭虚拟屏幕。activity/WindowManager 会响应此状态变化。

如何动态配置输入-屏幕关联?

在 Android 10 中,无法通过内置方式动态配置输入和设备之间的关联,但在大多数情况下可以采用一些权宜之计。如需了解详情,请参阅输入转接

如何在屏幕上启用系统装饰?

对于测试,最直接的方法是使用“强制使用桌面模式”这种开发者选项。通过该选项,可在所有辅助屏幕上启用系统装饰和 IME 支持。这适用于系统拥有的屏幕(例如物理面板或模拟屏幕),但对应用拥有的虚拟屏幕可能受限。

对于生产,请提供默认配置文件。如需了解详情,请参阅:

如何为特定屏幕配置 activity?

使用 LaunchParamsController,它可拦截所有 activity 启动并允许系统组件修改用于启动的参数。目前,可在 system_server内使用。

设备是否可以从辅助屏幕解锁?

Android 10 中锁定屏幕的默认实现不是交互式,不允许解锁。如果保持基本安全要求,OEM 可以实现自己的锁定屏幕。

  • 设备锁定状态是全局的。
  • 适用于所有屏幕。

如何在与目标不同的屏幕上显示 IME?

IME 只能显示在 DisplayWindowSettings 中配置的屏幕上。如果未对请求输入的屏幕启用配置,则 IME 会显示在默认屏幕上。

如何始终将按键事件发送到特定屏幕?

键盘被视为非目标输入源,因此输入会转到系统中最顶层的聚焦窗口。如需查看指定按键输入的示例,请参阅 PhoneWindowManager 类中的返回/主屏幕按钮实现。这些按键仅针对屏幕,而它们显示在 Android 10 中。

音频是如何处理的?

Android 10 在这方面没有重大改进。 Android 10 中添加了对 Auto 的多区域音频支持,但用于处理单独目标音频流的通用解决方案仍处于待定状态。

能否在多个屏幕上显示同一个应用?

如果应用支持,则可以创建应用 activity 的多个实例。默认情况下,每个实例都在相同的进程下运行。Chrome 便是这样一款应用。使用启动器示例进行测试很方便,允许有针对性的 activity 启动和新实例请求。

能否为不同的屏幕/用户创建同一应用的多个实例?

AOSP 不允许为同一用户创建同一应用的多个单独的沙盒和进程。与此请求关联的用例需要并发多用户支持,而不是应用级分离。

如果不同的用户想要使用同一应用,则应该使用他们的个人资料登录。应用级分离需要针对每个会话登录应用。 否则,其他用户的数据可能仍然存在。

Android 10 是否支持多个用户?

不支持。Android 10 支持单个登录用户。