支持多窗口模式

在 Android 7.0 及更高版本中,用户可以借助新的平台功能(多窗口模式)在设备屏幕上同时显示多个应用。除了默认实施的多窗口模式外,Android 还支持几个多窗口模式的变体:

  • 分屏是多窗口模式的基本实现方式,可为用户提供两个活动窗格来放置应用。
  • 自由窗口允许用户动态调整活动窗格大小,并在屏幕上显示两个以上的应用。
  • 画中画 (PIP) 允许用户在与其他 Android 设备应用交互的同时,继续在小窗口中播放视频内容。

为了实现多窗口模式功能,设备制造商在其设备的配置文件中设置了一个标记,用于启用或禁用多窗口模式支持。

实现

Android 7.0 及更高版本中默认启用多窗口模式支持要禁用此功能,请在 config.xml 文件中将 config_supportsMultiWindow 标记设置为 false。

对于声明 ActivityManager.isLowRam() 的设备,不论 config_supportsMultiWindow 标记为何值,都会禁用多窗口模式。

分屏

默认的多窗口模式体验是分屏模式,其中系统界面会从设备中间直接划分成两个横向或纵向屏幕。用户可以根据设备的屏幕方向左右或上下拖动分界线来调整窗口大小。

然后,设备制造商可以选择是否要启用“自由窗口”或“画中画”模式。

自由窗口

通过标记 config_supportsMultiWindow 启用标准多窗口模式后,设备制造商可以选择性允许启用自由窗口。此模式对于较大设备(如平板电脑)的制造商最为有用。

要支持自由窗口模式,请启用 /android/frameworks/base/core/java/android/content/pm/PackageManager.java 中的 PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT 系统功能,并在 config.xml 中将 config_freeformWindowManagement 设置为 true。

<bool name="config_freeformWindowManagement">true</bool>

画中画

通过 config_supportsMultiWindow 标记启用标准多窗口模式后,设备制造商可以选择支持画中画功能,以允许用户在浏览其他活动时继续观看视频。虽然此功能主要针对 Android 电视设备,但其他设备类型也可能支持此功能。

要支持画中画功能,请启用 /android/frameworks/base/core/java/android/content/pm/PackageManager.java 中的 PackageManager#FEATURE_PICTURE_IN_PICTURE 系统功能。

系统界面

https://developer.android.com/guide/topics/ui/multi-window.html#testing 中所述,该功能支持所有标准系统界面。

应用

要在预加载应用中提供多窗口模式支持,请参阅 Android 开发人员文档

验证

要验证多窗口模式的实现情况,设备制造商应运行 CTS 测试,并按照多窗口模式测试说明进行操作。