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
.