在 Android 7.0 及更高版本中,设备可以使用多窗口模式同时显示多个应用。Android 支持三种多窗口模式配置:
- 分屏是默认的多窗口模式实现,可为用户提供两个 activity 窗格来放置应用。
- Freeform允许用户动态调整 activity 窗格大小,并在屏幕上显示两个以上的应用。
- 画中画 (PIP) 允许 Android 设备在用户与其他应用互动时在小窗口中播放视频内容。
实现
Android 7.0 及更高版本中会默认启用多窗口模式支持。如需停用该功能,请在设备的 config.xml 文件中将 config_supportsMultiWindow
标志设置为 false
。
所有低内存设备(声明 ActivityManager.isLowRam()
的设备)默认停用多窗口模式。低内存设备会忽略 config_supportsMultiWindow
标志的值。
分屏
多窗口模式的默认体验是分屏模式,在这种模式下,系统会从设备中间以横向或纵向方式划分系统界面。用户可以根据设备的屏幕方向左右或上下拖动分界线来调整窗口大小。
启用分屏后,设备制造商可以选择是否启用自由窗口或“画中画”模式。
在 Android 8.0 及更高版本中,在用户点按主屏幕时,系统会压缩启动器的大小以改进分屏效果。如需了解实现方面的详细信息,请参阅分屏交互。
Freeform
通过 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
标志启用多窗口模式后,设备制造商可以支持画中画功能,以便用户在浏览其他 activity 的同时能够观看视频。虽然此功能针对的是 Android 电视设备,但其他设备类型也可以支持此功能。
如需支持画中画功能,请在 /android/frameworks/base/core/java/android/content/pm/PackageManager.java
中启用 PackageManager#FEATURE_PICTURE_IN_PICTURE
系统功能。
如需了解 Android 8.0 及更高版本设备的画中画实现详情,请参阅画中画页面。
系统界面
如多窗口模式开发者文档中所述,该功能支持所有标准系统界面。
应用
如需在预加载应用中提供多窗口模式支持,请参阅 Android 开发者文档。
验证
如需验证多窗口模式的实现情况,请运行相关 CTS 测试,并按照多窗口模式测试说明进行操作。
对于 Android 7.0,相关测试位于
/platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
。
在 Android 8.0 及更高版本中,相关测试位于
/platform/cts/tests/framework/base/activitymanager/src/android/server/am
。