Obsługa wielu okien

W Androidzie 7.0 i nowszych można wyświetlać kilka aplikacji jednocześnie, korzystając z funkcji wielozadaniowości. Android obsługuje 3 konfiguracje wielu okien:

  • Tryb swobodny umożliwia użytkownikom dynamiczne zmienianie rozmiaru paneli aktywności i wyświetlanie na ekranie więcej niż 2 aplikacji.
  • Podzielony ekran to domyślna implementacja wielu okien, która zapewnia 2 panele aktywności, w których użytkownicy mogą umieszczać aplikacje.
  • Obraz w obrazie (PIP) umożliwia urządzeniom z Androidem odtwarzanie treści wideo w małym oknie, gdy użytkownik korzysta z innych aplikacji.

Implementacja

Obsługa wielu okien jest domyślnie włączona w Androidzie 7.0 i nowszych. Aby go wyłączyć, ustaw flagę config_supportsMultiWindow na false w pliku config.xml na urządzeniu.

Wieloknożnik jest domyślnie wyłączony na wszystkich urządzeniach z niewielką ilością pamięci RAM (na urządzeniach, które deklarują ActivityManager.isLowRam()). Urządzenia z niewielką ilością pamięci RAM ignorują wartość flagi config_supportsMultiWindow.

Freeform

Po włączeniu trybu wielu okien za pomocą flagi config_supportsMultiWindow producenci urządzeń mogą zezwolić na dowolny rozmiar okna. Ten tryb jest najbardziej przydatny na większych urządzeniach, takich jak tablety.

Aby obsługiwać tryb dowolnego kształtu, włącz funkcję systemu PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT/android/frameworks/base/core/java/android/content/pm/PackageManager.java i ustaw config_freeformWindowManagement na trueconfig.xml.

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

W Androidzie 16 producenci urządzeń mogą obsługiwać okna na komputerze na swoich urządzeniach w ramach konfiguracji dowolnego układu wielu okien za pomocą opcji Włączanie okien na komputerze.

Włączanie trybu okien na pulpicie

Aby włączyć okna pulpitu na urządzeniu:

  • Upewnij się, że Twoje urządzenie obsługuje okna swobodnego kształtu.
  • Ustaw flagę konfiguracji nakładki config_isDesktopModeSupported na true w config.xml:
        <bool name="config_isDesktopModeSupported">true</bool>
        
  • Aby włączyć dowolny rozmiar okna na ekranie wewnętrznym urządzenia, ustaw flagę konfiguracji nakładki config_canInternalDisplayHostDesktops na true w config.xml. Ta flaga jest ignorowana, jeśli config_isDesktopModeSupported ma wartość false:
          <bool name="config_canInternalDisplayHostDesktops">true</bool>
          
Włączanie limitów zadań

Aby skonfigurować maksymalną liczbę zadań obsługiwanych w trybie okna na komputerze:

  1. Włącz tryb okien na pulpicie.
  2. Ustaw flagę konfiguracji config_maxDesktopWindowingActiveTasksconfig.xml na maksymalną liczbę obsługiwanych zadań. Aby obsługiwać nieograniczoną liczbę zadań, ustaw flagę na wartość domyślną 0:
            <bool name="config_maxDesktopWindowingActiveTasks">4</integer>
            

Podzielony ekran

Domyślnie funkcja wielu okien działa w trybie podzielonego ekranu, w którym interfejs systemu jest podzielony na pół w orientacji poziomej lub pionowej. Użytkownicy mogą zmienić rozmiar okna, przeciągając linię podziału w poziomie lub w pionie, w zależności od orientacji urządzenia.

Po włączeniu trybu podzielonego ekranu producenci urządzeń mogą włączyć tryb dowolny lub tryb obrazu w obrazie.

Android 8.0 i nowsze wersje poprawiają działanie trybu podzielonego ekranu, kompresując wygaszacz, gdy użytkownik kliknie Początek. Szczegóły wdrażania znajdziesz w artykule Interakcje na podzielonym ekranie.

Obraz w obrazie

Po włączeniu trybu wielookiennego za pomocą flagi config_supportsMultiWindow producenci urządzeń mogą obsługiwać obraz w obrazie, który pozwala użytkownikom oglądać filmy, jednocześnie wykonując inne czynności. Ta funkcja jest przeznaczona dla urządzeń Android TV, ale inne typy urządzeń mogą ją obsługiwać.

Aby korzystać z PIP, włącz funkcję systemu PackageManager#FEATURE_PICTURE_IN_PICTURE/android/frameworks/base/core/java/android/content/pm/PackageManager.java.

Więcej informacji o wdrożeniu funkcji PIP na urządzeniach z Androidem w wersji 8.0 lub nowszej znajdziesz na stronie Obraz w obrazie.

interfejs systemu

Obsługa wszystkich standardowych interfejsów systemu zgodnie z dokumentacją dla deweloperów dotyczącą trybu wielu okien.

Aplikacje

Aby obsługiwać tryb wielookienkowy w wstępnie załadowanych aplikacjach, zapoznaj się z dokumentacją dla deweloperów Androida.

Weryfikacja

Aby sprawdzić implementację funkcji obsługi wielu okien, uruchom odpowiednie testy CTS i postępuj zgodnie z instrukcjami testowania obsługi wielu okien.

Wersja Androida Test CTS
7,0 /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
z Androidem 8.0 /platform/cts/hostsidetests/services/activityandwindowmanager/activitymanager/src/android/server/cts
9.0 /platform/cts/tests/framework/base/activitymanager/src/android/server/am
10.0 i nowsze /platform/cts/tests/framework/base/windowmanager/src/android/server/wm