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:
- Podzielony ekran to domyślna implementacja wielu okien, która zapewnia 2 panele aktywności, w których użytkownicy mogą umieszczać aplikacje.
- Tryb swobodny umożliwia użytkownikom dynamiczne zmienianie rozmiaru paneli aktywności i wyświetlanie na ekranie więcej niż 2 aplikacji.
- 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
.
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.
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
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>
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ń z Androidem TV, ale może być obsługiwana również na innych typach urządzeń.
Aby obsługiwać tryb obrazu w obrazie, włącz funkcję systemu PackageManager#FEATURE_PICTURE_IN_PICTURE
w /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 programistó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.
W przypadku Androida 7.0 testy są dostępne w sekcji
/platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
.
W Androidzie 8.0 lub nowszym testy są dostępne w sekcji
/platform/cts/tests/framework/base/activitymanager/src/android/server/am
.