2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
マルチウィンドウをサポートする
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 7.0 以降のデバイスでは、マルチウィンドウを使用して複数のアプリを同時に表示できます。Android は次の 3 つのマルチウィンドウ構成をサポートしています。
- 分割画面は、デフォルトのマルチウィンドウの実装で、ユーザーが 2 つのアクティビティ ペインにアプリを配置できるようにします。
- フリーフォームは、ユーザーが動的にアクティビティ ペインのサイズを変更し、2 つ以上のアプリを画面に表示できるようにします。
- ピクチャー イン ピクチャー(PIP)により、Android デバイスは、ユーザーが他のアプリを操作する間に小さなウィンドウで動画コンテンツを再生できます。
実装
Android 7.0 以降では、マルチウィンドウはデフォルトでサポートされています。
無効にするには、デバイスの config.xml ファイルで config_supportsMultiWindow
フラグを false
に設定します。
すべての低 RAM デバイス(ActivityManager.isLowRam()
を宣言するデバイス)で、マルチウィンドウはデフォルトで無効になっています。低 RAM デバイスは、config_supportsMultiWindow
フラグの値を無視します。
分割画面
マルチウィンドウのデフォルトの設定は分割画面モードです。システム UI は、デバイスの中央で縦または横に分割されます。デバイスの向きに応じて、横の分割線または縦の分割線をドラッグすることでウィンドウのサイズを変更できます。
分割画面を有効にすると、デバイスのメーカーはフリーフォームまたは PIP を有効にできます。
Android 8.0 以降では、ユーザーが [ホーム] をタップしたときにランチャーを圧縮することで、分割画面を改善しています。実装の詳細については、分割画面の操作をご覧ください。
マルチウィンドウ モードを 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 TV デバイスを対象としていますが、他のタイプのデバイスでも使用できます。
PIP をサポートするには、/android/frameworks/base/core/java/android/content/pm/PackageManager.java
の PackageManager#FEATURE_PICTURE_IN_PICTURE
のシステム機能を有効化します。
Android 8.0 以降を搭載するデバイスの PIP 実装の詳細については、ピクチャー イン ピクチャーのページをご覧ください。
システム UI
マルチウィンドウ デベロッパー向けドキュメントに従って、すべての標準システム UI をサポートします。
アプリ
プリロードされたアプリのマルチウィンドウ モードをサポートするには、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
にあります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-04-04 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-04-04 UTC。"],[],[],null,["# Support multi-window\n\nIn Android 7.0 and higher, devices can display multiple apps\nsimultaneously using multi-window. Android supports three\nmulti-window configurations:\n\n- **Freeform** allows users to dynamically resize the activity panes and have more than two apps visible on their screen.\n- **Split-screen** is the default multi-window implementation, which provides two activity panes where users can place apps.\n- **Picture-in-picture (PIP)** allows Android devices to play video content in a small window while the user interacts with other apps.\n\nImplementation\n--------------\n\n\nMulti-window support is enabled by default in Android 7.0 and higher.\nTo disable it, set the `config_supportsMultiWindow` flag to\n`false` in your device's\n[config.xml](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/res/res/values/config.xml) file.\n\n\nMulti-window is disabled by default on all low-RAM devices (devices that\ndeclare `ActivityManager.isLowRam()`). Low-RAM devices\nignore the value of the `config_supportsMultiWindow` flag.\n\n### Freeform\n\n\nAfter enabling multi-window mode with the\n`config_supportsMultiWindow` flag, device manufacturers can\nallow freeform windowing. This mode is most useful on larger devices,\nsuch as tablets.\n\n\nTo support freeform mode, enable the\n`PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT` system\nfeature in\n[/android/frameworks/base/core/java/android/content/pm/PackageManager.java](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/content/pm/PackageManager.java)\nand set `config_freeformWindowManagement` to `true` in\n[config.xml](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/res/res/values/config.xml)`.` \n\n```\n \u003cbool name=\"config_freeformWindowManagement\"\u003etrue\u003c/bool\u003e\n \n```\n\n\nIn Android 16, OEMs can support desktop windowing on their device for a\nfreeform multi-window configuration using [Enable desktop windowing](/docs/core/display/multi-window#enable-desktop-windowing).\n\n#### Enable desktop windowing\n\n\nFollow these steps to enable desktop windowing on your device:\n\n- Make sure your device supports [freeform](/docs/core/display/multi-window#freeform) windowing.\n- Set the config overlay flag `config_isDesktopModeSupported` flag to `true` in [`config.xml`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/res/res/values/config.xml): \n\n ```\n \u003cbool name=\"config_isDesktopModeSupported\"\u003etrue\u003c/bool\u003e\n \n ```\n- To enable freeform windowing on the internal display of your device, set the config overlay flag `config_canInternalDisplayHostDesktops` to `true` in `config.xml`. This flag is ignored if `config_isDesktopModeSupported` is `false`: \n\n ```\n \u003cbool name=\"config_canInternalDisplayHostDesktops\"\u003etrue\u003c/bool\u003e\n \n ```\n\n##### Enable task limits\n\n\nFollow these steps to configure the maximum number of tasks supported in desktop\nwindowing:\n\n1. [Enable desktop windowing](#enable-desktop-windowing).\n2. Set the config overlay flag `config_maxDesktopWindowingActiveTasks` in [`config.xml`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/res/res/values/config.xml) to the maximum number of supported tasks. To support an unlimited number of tasks, set the flag to the default value of `0`: \n\n ```\n \u003cbool name=\"config_maxDesktopWindowingActiveTasks\"\u003e4\u003c/integer\u003e\n \n ```\n\n### Split-screen\n\n\nMulti-window's default experience is split-screen mode, where the System\nUI is divided down the middle of the device in portrait or landscape.\nUsers can resize the window by dragging the dividing line side to side\nor top to bottom, depending on the device orientation.\n\n\nAfter enabling split-screen, device manufacturers can choose to enable\nfreeform or PIP.\n\n\nAndroid 8.0 and higher improves split-screen by compressing the launcher\nwhen the user taps **Home** . For implementation details, see\n[Split-screen interactions](/docs/core/display/split-screen).\n\n### Picture-in-picture\n\n\nAfter enabling multi-window mode with the\n`config_supportsMultiWindow` flag, device manufacturers can\nsupport\n[picture-in-picture](https://developer.android.com/training/tv/playback/picture-in-picture.html), which allows users to watch\nvideo while browsing other activities. While this feature is targeted at\nAndroid Television devices, other device types may support this feature.\n\n\nTo support PIP, enable the\n`PackageManager#FEATURE_PICTURE_IN_PICTURE` system feature in\n[/android/frameworks/base/core/java/android/content/pm/PackageManager.java](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/content/pm/PackageManager.java).\n\n\nFor more PIP implementation details for devices running Android 8.0 and\nhigher,see the [Picture-in-picture](/docs/core/display/pip)\npage.\n\n### System UI\n\n\nSupport all standard System UIs according to\n[Multi-window developer documentation](https://developer.android.com/guide/topics/ui/multi-window.html#testing).\n\n### Apps\n\n\nTo support multi-window mode for preloaded apps, consult the\n[Android developer documentation](https://developer.android.com/guide/topics/ui/multi-window.html).\n\nValidation\n----------\n\n\nTo validate your implementation of multi-window, run the related CTS\ntests and follow the\n[testing instructions for multi-window](https://developer.android.com/guide/topics/ui/multi-window.html#testing).\n\n| Android version | CTS test |\n|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 7.0 | [/platform/cts/hostsidetests/services/activitymanager/src/android/server/cts](https://android.googlesource.com/platform/cts/+/refs/heads/nougat-cts-release/hostsidetests/services/activitymanager/src/android/server/cts) |\n| 8.0 | [/platform/cts/hostsidetests/services/activityandwindowmanager/activitymanager/src/android/server/cts](https://android.googlesource.com/platform/cts/+/refs/heads/oreo-cts-release/hostsidetests/services/activityandwindowmanager/activitymanager/src/android/server/cts) |\n| 9.0 | [/platform/cts/tests/framework/base/activitymanager/src/android/server/am](https://android.googlesource.com/platform/cts/+/refs/heads/pie-cts-release/tests/framework/base/activitymanager/src/android/server/am) |\n| 10.0 and above | [/platform/cts/tests/framework/base/windowmanager/src/android/server/wm](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/framework/base/windowmanager/src/android/server/wm) |"]]