Multi-Window: Android 멀티태스킹 모드의 본질

저자: IT Sectr 게시일: 2026-06-08 읽는 시간: 10 분

Multi-Window는 Android에서 여러 앱을 동시에 화면에 실행할 수 있는 멀티태스킹 모드 세트입니다. 시스템에는 세 가지 모드가 있습니다. 화면을 두 부분으로 나누는 Split Screen, 미니 창에서 비디오를 보는 Picture-in-Picture, 대형 화면에서 임의 크기의 창을 사용하는 Freeform입니다. Android Developers (2025)에 따르면, 화면 폭이 600dp 이상인 기기에서는 Multi-Window 지원이 필수이며, 모든 개발자는 앱을 가능한 창 크기 변경에 적응시켜야 합니다.

핵심 요점

  • Multi-Window — 세 가지 모드(Split Screen, PiP, Freeform)를 갖춘 Android 멀티태스킹 시스템.
  • Split Screen — 두 개의 앱을 나란히, 구분선을 드래그 가능, 비율 변경 가능.
  • Picture-in-Picture — 다른 앱 위에 미니 창으로 비디오 표시.
  • Freeform — Android TV 및 대형 화면에서 임의 크기의 창.
  • ResizeableActivity — 멀티 윈도우 모드 지원을 선언하는 매니페스트 플래그.

Android에서 Multi-Window란?

Multi-Window는 Android 7.0 Nougat(API 24)에서 도입된 기능으로, 두 개 이상의 앱을 동시에 화면에서 실행할 수 있습니다. 이 모드는 단일 작업 모드가 생산성을 제한하는 태블릿 및 대형 화면 기기의 인기가 높아짐에 따라 Google이 내놓은 대응책이었습니다.

Android 7.0 이전에는 각 앱이 전체 화면을 차지했으며, 앱 간 전환 시 이전 앱이 최소화되었습니다. Multi-Window는 이 모델을 변경했습니다. 이제 앱은 활성 상태를 유지하면서 화면의 일부를 차지할 수 있습니다. 개발자에게 이는 onConfigurationChanged 및 크기 변경 처리가 필수가 됨을 의미합니다.

Android 12L(2022)에서 Google은 대형 화면 기기에서 Multi-Window를 기본 모드로 지정했습니다. 태블릿의 모든 앱은 멀티 윈도우를 허용하는 모드에서 실행됩니다. 유일한 예외는 매니페스트에서 명시적으로 금지한 앱입니다.

Multi-Window 모드: Split Screen, PiP, Freeform

Split Screen — 가장 일반적인 모드입니다. 화면이 가로 또는 세로로 두 부분으로 나뉘며, 사용자가 구분선을 드래그합니다. 휴대폰과 태블릿에서 사용 가능합니다. Overview(Recents)를 통해 앱 아이콘을 상단 또는 하단 가장자리로 드래그하여 활성화합니다.

Picture-in-Picture(PiP) — 비디오 및 내비게이션 앱을 위한 모드입니다. 콘텐츠가 이동 가능한 플로팅 미니 창(화면의 약 15~25%)에 표시됩니다. Android 8.0+에서 사용 가능합니다. 활성화하려면 Activity에서 enterPictureInPictureMode()를 사용하세요.

Freeform — 데스크톱 창 관리자와 유사한 임의 크기 창 모드입니다. Android TV 및 일부 제조사의 대형 화면 기기(Samsung DeX)에서 사용 가능합니다. 앱은 제목 표시줄과 제어 버튼이 있는 창에서 실행됩니다.

Multi-Window 작동 방식

사용자가 Multi-Window를 활성화하면 Android는 각 앱에 대해 새 Activity 인스턴스를 만들고 사용 가능한 화면 공간을 분배합니다. Activity는 별도의 Task에 배치되지만 그 사이에 구분선이 있는 동일한 StackView를 사용합니다.

시스템은 onConfigurationChanged()를 통해 각 Activity에 크기 변경을 알립니다. Activity가 이 이벤트를 처리하지 않으면 다시 생성됩니다. Split Screen의 경우 창 너비가 220dp까지 줄어들 수 있으며, 이는 플랫폼이 지원하는 최소 너비입니다.

Android는 앱이 매니페스트에서 android:minWidthandroid:minHeight를 통해 최소 너비를 선언할 수 있도록 허용합니다. 사용 가능한 공간이 이 값보다 작으면 Activity가 일시 중지됩니다.

Activity를 멀티 윈도우 모드에 적응시키기

Multi-Window를 지원하려면 매니페스트에서 android:resizeableActivity="true" 플래그를 설정해야 합니다. 이는 창이 변경될 때 앱이 크기를 조정할 수 있음을 의미합니다. Android 12L+에서는 기본적으로 모든 앱이 크기 조정 가능한 것으로 간주되어 플래그가 무시됩니다.

창 크기가 변경되면 Activity가 다시 생성되거나(기본값), 매니페스트에 configChanges="screenSize|smallestScreenSize"가 지정된 경우 onConfigurationChanged에서 이벤트를 처리할 수 있습니다. 상태 손실을 방지하려면 주요 Activity에 configChanges를 지정하는 것이 좋습니다.

xml
<activity
    android:name=".MainActivity"
    android:resizeableActivity="true"
    android:configChanges="screenSize|smallestScreenSize|orientation" />

크기 조정을 지원하지 않는 앱의 경우 Android는 경고 대화상자를 표시합니다. 이 경우 멀티 윈도우 모드로 전환하면 시스템이 Activity를 종료하고 다시 시작하라는 스낵바를 표시할 수 있습니다.

Multi-Window와 Activity 생명주기

Multi-Window는 표준 Activity 생명주기를 변경합니다. 인접한 창에서 다른 앱이 활성화되면 현재 Activity는 onPause()를 받지만 onStop()은 받지 않습니다. 포커스를 잃더라도 계속 표시됩니다. 이는 중요합니다. 비디오 플레이어는 onStop이 아닌 onPause에서 재생을 계속해야 합니다.

개발자는 상태를 구분해야 합니다. onPause + isInMultiWindowMode() = true는 포커스만 잃은 것이지 화면을 떠난 것이 아닙니다. 비디오 및 애니메이션의 경우 이는 재생을 중지하지 않고 제어 요소의 선택만 해제하라는 신호입니다.

Multi-Window를 종료하면 onMultiWindowModeChanged()가 onResume() 전에 호출됩니다. 이는 사용자가 상호작용을 시작하기 전에 전체 화면 모드에 맞게 인터페이스를 재구성할 기회를 제공합니다.

Multi-Window 모범 사례

첫 번째 규칙은 상태를 저장하는 것입니다. 멀티 윈도우 모드에서 Activity는 언제든지 다시 생성될 수 있습니다. 구성 변경 간에 유지되어야 하는 모든 데이터에는 ViewModel의 SavedStateHandle 또는 onSaveInstanceState를 사용하세요.

두 번째 규칙은 최소 너비 220dp에서 테스트하는 것입니다. 이 값은 Split Screen에서 가장 좁은 창으로 간주됩니다. 인터페이스는 읽기 쉽고 기능적으로 유지되어야 합니다. 일부 요소가 경계를 벗어나면 Window Size Class를 사용하여 레이아웃 간에 전환하세요.

세 번째 규칙은 Multi-Window에서 작동하지 않는 기능을 비활성화하는 것입니다. 예를 들어, 화면이 너무 작으면 카메라를 사용하지 못할 수 있습니다. 카메라 또는 기타 전체 화면 기능을 시작하기 전에 isInMultiWindowMode()를 확인하세요.

자주 묻는 질문

내 앱에서 Multi-Window를 비활성화하려면?

매니페스트에서 android:resizeableActivity="false"를 설정하세요. Android 12L+에서는 대형 화면 기기의 경우 플래그가 무시되므로 완전히 금지하려면 android:maxAspectRatio를 사용하세요.

앱이 Multi-Window에 있는지 확인하려면?

Activity에서 isInMultiWindowMode()를 호출하세요. 앱이 Split Screen, PiP 또는 Freeform에서 실행 중인 경우 메서드는 true를 반환합니다. onMultiWindowModeChanged()를 구독할 수도 있습니다.

Multi-Window가 Android TV에서 작동하나요?

Android TV에서는 Picture-in-Picture 모드만 사용할 수 있습니다. Split Screen과 Freeform은 지원되지 않습니다. TV는 모서리에 PiP 창이 있는 단일 메인 화면을 사용합니다.

Multi-Window에서 포그라운드 서비스는 어떻게 되나요?

포그라운드 서비스는 모드에 관계없이 계속 실행됩니다. 그러나 앱이 PiP로 전환되면 시스템이 리소스를 절약하기 위해 실행을 일시적으로 중지할 수 있습니다.

창 간 드래그 앤 드롭을 처리하려면?

Android는 ClipData 및 View.OnDragListener를 통해 Multi-Window에서 창 간 드래그 앤 드롭을 지원합니다. FLAG_GRANT_READ_URI_PERMISSION과 함께 ContentProvider 또는 Intent를 통해 데이터가 전송됩니다.

요약

  • Multi-Window — 동시 앱 작업을 위한 세 가지 모드의 Android 멀티태스킹.
  • Split Screen — 드래그 가능한 구분선으로 화면을 두 부분으로 분할.
  • Picture-in-Picture — Android 8.0+를 위한 미니 창 비디오.
  • Freeform — Android TV 및 Samsung DeX에서 임의 크기의 창.
  • resizeableActivity — 모드 지원을 위한 매니페스트 필수 플래그.
  • onMultiWindowModeChanged — 진입/종료 시 인터페이스 재구성을 위한 콜백.
  • 결론 — 2022년부터 대형 화면의 모든 앱에서 Multi-Window가 필수입니다.

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기