Obsługa wielu okien

W systemie Android 7.0 i nowszych urządzeniach można wyświetlać wiele aplikacji jednocześnie, korzystając z wielu okien. Android obsługuje trzy konfiguracje wielu okien:

  • Podzielony ekran to domyślna implementacja wielu okien, która udostępnia dwa okienka aktywności, w których użytkownicy mogą umieszczać aplikacje.
  • Freeform umożliwia użytkownikom dynamiczną zmianę rozmiaru okienek aktywności i wyświetlanie na ekranie więcej niż dwóch aplikacji.
  • Funkcja obrazu w obrazie (PIP) umożliwia urządzeniom z systemem Android odtwarzanie treści wideo w małym oknie, podczas gdy użytkownik wchodzi w interakcję z innymi aplikacjami.

Realizacja

Obsługa wielu okien jest domyślnie włączona w systemie Android 7.0 i nowszych wersjach. Aby ją wyłączyć, ustaw flagę config_supportsMultiWindow na false w pliku config.xml urządzenia.

Obsługa wielu okien jest domyślnie wyłączona na wszystkich urządzeniach z małą ilością pamięci RAM (urządzeniach, które deklarują ActivityManager.isLowRam() ). Urządzenia z małą ilością pamięci RAM ignorują wartość flagi config_supportsMultiWindow .

Podzielony ekran

Domyślnym trybem pracy w wielu oknach jest tryb podzielonego ekranu, w którym interfejs użytkownika systemu jest podzielony na środku urządzenia w orientacji pionowej lub poziomej. Użytkownicy mogą zmieniać rozmiar okna, przeciągając linię podziału na boki lub z góry na dół, w zależności od orientacji urządzenia.

Po włączeniu podzielonego ekranu producenci urządzeń mogą wybrać opcję Freeform lub PIP.

Android 8.0 i nowsze usprawniają podział ekranu, kompresując program uruchamiający, gdy użytkownik dotknie strony głównej . Aby poznać szczegóły implementacji, zobacz Interakcje na podzielonym ekranie .

Dowolna forma

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

Aby obsługiwać tryb dowolny, włącz funkcję systemową PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT w /android/frameworks/base/core/java/android/content/pm/PackageManager.java i ustaw config_freeformWindowManagement na true w config.xml .

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

Obrazek w obrazku

Po włączeniu trybu wielu okien za pomocą flagi config_supportsMultiWindow producenci urządzeń mogą obsługiwać obraz w obrazie , który umożliwia użytkownikom oglądanie wideo podczas przeglądania innych aktywności. Chociaż ta funkcja jest przeznaczona dla urządzeń telewizyjnych z systemem Android, inne typy urządzeń mogą ją obsługiwać.

Aby obsługiwać PIP, włącz funkcję systemową PackageManager#FEATURE_PICTURE_IN_PICTURE w pliku /android/frameworks/base/core/java/android/content/pm/PackageManager.java .

Więcej szczegółów implementacji PIP na urządzeniach z systemem Android 8.0 i nowszym można znaleźć na stronie Obraz w obrazie .

Interfejs systemu

Obsługuje wszystkie standardowe interfejsy użytkownika systemu zgodnie z dokumentacją dla programistów obsługujących wiele okien .

Aplikacje

Informacje na temat obsługi trybu wielu okien w przypadku wstępnie załadowanych aplikacji można znaleźć w dokumentacji dla programistów Androida .

Walidacja

Aby sprawdzić poprawność implementacji wielu okien, uruchom powiązane testy CTS i postępuj zgodnie z instrukcjami testowania dla wielu okien .

W przypadku Androida 7.0 testy znajdują się w /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts . W Androidzie 8.0 i nowszych testy znajdują się w /platform/cts/tests/framework/base/activitymanager/src/android/server/am .