2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
멀티 윈도우 지원
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android 7.0 이상에서는 기기가 멀티 윈도우를 사용하여 여러 개의 앱을 동시에 표시할 수 있습니다. Android는 세 가지 멀티 윈도우 구성을 지원합니다.
-
자유 형식을 사용하면 사용자가 동적으로 활동 창 크기를 조절하고 화면에 2개 이상의 앱을 표시할 수 있습니다.
-
화면 분할은 사용자가 앱을 배치할 수 있는 두 개의 활동 창을 제공하는 기본 멀티 윈도우 구현입니다.
- PIP 모드(PIP)는 Android 기기가 작은 창에서 동영상 콘텐츠를 재생하는 동안 사용자가 다른 앱과 상호작용할 수 있게 해줍니다.
구현
멀티 윈도우 지원은 Android 7.0 이상에서 기본으로 사용 설정됩니다.
사용 중지하려면 기기의 config.xml 파일에서 config_supportsMultiWindow
플래그를 false
로 설정합니다.
멀티 윈도우는 RAM이 적은 모든 기기(ActivityManager.isLowRam()
을 선언한 기기)에서 기본으로 사용 중지됩니다. RAM이 적은 기기는 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>
Android 16에서는 OEM이 데스크톱 창 지정 사용 설정을 사용하여 기기에서 자유 형식 멀티 윈도우 구성을 위한 데스크톱 창 지정을 지원할 수 있습니다.
데스크톱 창 사용 설정
기기에서 데스크톱 창을 사용 설정하려면 다음 단계를 따르세요.
-
기기에서 자유형 창을 지원하는지 확인합니다.
-
config.xml
에서 구성 오버레이 플래그 config_isDesktopModeSupported
플래그를 true
로 설정합니다.
<bool name="config_isDesktopModeSupported">true</bool>
-
기기의 내부 디스플레이에서 자유 형식 창 모드를 사용 설정하려면
config.xml
에서 구성 오버레이 플래그 config_canInternalDisplayHostDesktops
를 true
로 설정합니다.
config_isDesktopModeSupported
이 false
인 경우 이 플래그는 무시됩니다.
<bool name="config_canInternalDisplayHostDesktops">true</bool>
태스크 한도 사용 설정
데스크톱 창에서 지원되는 최대 작업 수를 구성하려면 다음 단계를 따르세요.
-
데스크톱 창 모드 사용 설정
-
config.xml
에서 구성 오버레이 플래그 config_maxDesktopWindowingActiveTasks
를 지원되는 최대 태스크 수로 설정합니다. 무제한 태스크를 지원하려면 플래그를 기본값 0
로 설정합니다.
<bool name="config_maxDesktopWindowingActiveTasks">4</integer>
화면 분할
멀티 윈도우의 기본 환경은 시스템 UI가 세로 또는 가로 모드의 기기 중간에서 분할되는 화면 분할 모드입니다.
사용자는 기기 방향에 따라 구분선을 측면에서 측면으로 또는 상단에서 하단으로 드래그하여 창 크기를 조절할 수 있습니다.
화면 분할을 사용 설정한 후에는 기기 제조업체에서 자유 형식 또는 PIP를 선택해 사용 설정할 수 있습니다.
Android 8.0 이상에서는 사용자가 홈을 탭할 때 런처를 압축하여 화면 분할을 개선합니다. 구현 세부정보는 화면 분할 상호작용을 참고하세요.
PIP 모드
config_supportsMultiWindow
플래그로 멀티 윈도우 모드를 사용 설정한 후 기기 제조업체는 PIP 모드를 지원할 수 있으며 이 모드를 사용하면 사용자가 다른 활동을 탐색하면서 동영상을 시청할 수 있습니다. 이 기능은 Android 텔레비전 기기에 타겟팅되지만 다른 기기 유형도 이 기능을 지원할 수 있습니다.
PIP를 지원하려면 /android/frameworks/base/core/java/android/content/pm/PackageManager.java
에서 PackageManager#FEATURE_PICTURE_IN_PICTURE
시스템 기능을 사용 설정합니다.
Android 8.0 이상을 실행하는 기기의 PIP 구현 세부정보는 PIP 모드 페이지를 참고하세요.
시스템 UI
멀티 윈도우 개발자 문서에 따라 모든 표준 시스템 UI를 지원합니다.
앱
미리 로드된 앱의 멀티 윈도우 모드를 지원하려면 Android 개발자 문서를 참고하세요.
유효성 검사
멀티 윈도우 구현의 유효성을 검사하려면 관련 CTS 테스트를 실행하고 멀티 윈도우 테스트 안내를 따르세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(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-07-27(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) |"]]