W Androidzie 7.0 i nowszym urządzenia mogą wyświetlać wiele aplikacji jednocześnie w trybie wielu okien. Android obsługuje 3 konfiguracje wielu okien:
- Dowolny: umożliwia użytkownikom dynamiczne zmienianie rozmiaru paneli aktywności i wyświetlanie na ekranie więcej niż 2 aplikacji. W przypadku trybu okien na pulpicie użytkownicy mogą tworzyć dowolne okna na pulpicie, które oferują interakcje w stylu komputerowym.
- Podzielony ekran: domyślna implementacja wielu okien, która zapewnia 2 panele aktywności, w których użytkownicy mogą umieszczać aplikacje.
- Obraz w obrazie: umożliwia urządzeniom z Androidem odtwarzanie treści wideo w małym oknie, gdy użytkownik korzysta z innych aplikacji.
Wymagania dotyczące urządzeń z wieloma oknami
Obsługa wielu okien jest domyślnie włączona na urządzeniach z Androidem 7.0 i nowszymi wersjami.
Aby ją wyłączyć, ustaw w pliku config.xml na urządzeniu wartość config_supportsMultiWindow jako false.
Na wszystkich urządzeniach z niewielką ilością pamięci RAM (urządzeniach, które deklarują ActivityManager.isLowRam) funkcja wielu okien jest domyślnie wyłączona. Urządzenia z niewielką ilością pamięci RAM ignorują wartość flagi config_supportsMultiWindow.
Dowolny
Swobodne okna umożliwiają użytkownikowi tworzenie okien, których rozmiar można dowolnie zmieniać. Dowolny rozmiar okien jest wymagany w przypadku trybu okien na pulpicie. Wymagania dotyczące urządzenia, które musi spełniać, aby można było włączyć okna o dowolnym rozmiarze:
-
Włącz flagę
config_supportsMultiWindow. -
Włącz zarządzanie oknami o dowolnym rozmiarze na jeden z tych sposobów:
-
Włącz flagę
config_freeformWindowManagementwconfig.xml:<feature name="android.software.freeform_window_management" /> -
W pliku makefile urządzenia uwzględnij te elementy:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.freeform_window_management.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.software.freeform_window_management.xml
-
Włącz flagę
W Androidzie 16 producenci OEM mogą włączyć na swoich urządzeniach obsługę trybu okien na pulpicie w konfiguracji z wieloma oknami o dowolnym rozmiarze za pomocą opcji Włącz okna na pulpicie.
Tryb okien na pulpicie
Tryb okien na pulpicie zapewnia przestrzeń roboczą do pracy wielozadaniowej na dużych ekranach, opartą na oknach o dowolnym kształcie. Obszar roboczy działa równolegle z trybem pełnoekranowym i ma dodatkowe elementy interfejsu oraz zachowania, które zapewniają użytkownikowi większą elastyczność podczas wykonywania wielu zadań:
- Interakcja z klawiaturą lub myszą: obsługuje interakcje oparte na dotyku oraz interakcje oparte na klawiaturze lub myszy.
- Dowolny rozmiar okien: uruchamia aplikacje w oknach o zmienianym rozmiarze, które można przenosić i które mają paski tytułu i elementy sterujące.
- Ulepszony pasek zadań: zapewnia łatwy dostęp do uruchomionych i przypiętych aplikacji.
- Optymalizacja wyświetlaczy zewnętrznych: przekształca podłączone monitory w środowiska komputerowe na obsługiwanych urządzeniach.
- Wirtualne biurka: umożliwiają użytkownikom porządkowanie aplikacji w wielu obszarach roboczych.
Aby skonfigurować urządzenie do wyświetlania w oknach na komputerze, musisz spełnić te wymagania wstępne:
-
Włącz te flagi:
- Wszystkie wymagania wstępne dotyczące okien w Freeform
- Globalna flaga trybu okien na pulpicie
config_isDesktopModeSupported
- Interfejs systemu wymaga ekranu o szerokości co najmniej 600 dp. Tryb okien na pulpicie może nie działać zgodnie z oczekiwaniami na mniejszych ekranach.
-
Urządzenie nie może mieć małej ilości pamięci RAM.
ActivityManager.isLowRammusi zwrócićfalse, ponieważ urządzenia z małą ilością pamięci RAM nie kwalifikują się do korzystania z żadnych funkcji wielookienkowych.
W tabeli poniżej znajdziesz konfiguracje, w których urządzenie może być skonfigurowane do trybu okien na pulpicie, w zależności od rozmiaru ekranu i przeznaczenia urządzenia:
| Tryb | Urządzenie przenośne tylko z pełnym ekranem | Wyświetlanie na pełnym ekranie na podłączonym wyświetlaczu | Duży ekran na pełnym ekranie rozszerzony na podłączony wyświetlacz | Tryb okien na pulpicie – pierwszy duży ekran |
|---|---|---|---|---|
| Przykładowy format | Telefon komórkowy | telefon komórkowy obsługujący HDMI do wyświetlacza zewnętrznego, | tablet obsługujący HDMI do wyświetlacza zewnętrznego, | Tablet z klawiaturą obsługujący HDMI do wyświetlacza zewnętrznego |
| Wyświetlacz wewnętrzny | Obsługa pełnego ekranu, podzielonego ekranu, obrazu w obrazie i trybu swobodnego na urządzeniach innych niż komputery | Obsługa pełnego ekranu, podzielonego ekranu i obrazu w obrazie | Obsługa pełnego ekranu, podzielonego ekranu i obrazu w obrazie w trybie okien na pulpicie dzięki oddzielnym pulpitom | Tryb okien na pulpicie jest domyślnym trybem okien (obsługuje oddzielne pulpity); użytkownicy mogą włączyć tryb okien na pulpicie na pełnym ekranie lub w trybie dotykowym za pomocą oddzielnych pulpitów. |
| Obsługa połączonego wyświetlacza | Klonowanie tylko na wyświetlaczu wewnętrznym | Tryb okien na pulpicie tylko na podłączonych wyświetlaczach | Tryb okien na pulpicie rozszerza biurka; dostępny na wyświetlaczach wewnętrznych | Tryb okien na pulpicie rozszerza biurka; dostępny na wyświetlaczach wewnętrznych |
| Ustawienia konfiguracji | ||||
config_supportsMultiWindow |
true |
true |
true |
true |
config_freeformWindowManagement |
true |
true |
true |
true |
config_isDesktopModeSupported |
false |
true |
true |
true |
config_canInternalDisplayHostDesktops |
Ignorowany | false |
true |
true |
config_enterDesktopByDefaultOnFreeformDisplay |
Ignorowany | false |
false |
true |
config_isDesktopModeSupported
Flaga nakładki konfiguracji config_isDesktopModeSupported to flaga najwyższego poziomu, która umożliwia korzystanie z trybu okien na pulpicie. Jeśli ta opcja nie jest włączona, wszystkie inne ustawienia konfiguracji są ignorowane.
Ustaw wartość true w config.xml:
<!-- Globally enable Desktop windowing logic -->
<bool name="config_isDesktopModeSupported">true</bool>
Gdy wartość config_isDesktopModeSupported to true, system automatycznie traktuje kwalifikujące się wyświetlacze zewnętrzne (np. podłączone przez DisplayPort lub HDMI) jako kandydatów do trybu okien na pulpicie.
Wyświetlacz musi być uznany za kwalifikujący się przez Menedżera okien (co najmniej publiczny i zaufany, patrz Tryb okien na pulpicie).
System domyślnie próbuje uruchamiać zadania w trybie dowolnego rozmiaru okien na tych wyświetlaczach.
config_canInternalDisplayHostDesktops
Flaga nakładki konfiguracji config_canInternalDisplayHostDesktops włącza tryb okien na pulpicie na wewnętrznym wyświetlaczu urządzenia. Ustaw wartość true w polu config.xml:
<!-- Allow the primary internal display to host desktop sessions -->
<bool name="config_canInternalDisplayHostDesktops">true</bool>Tryb okien na pulpicie działa najlepiej na urządzeniach z dużym ekranem, takich jak tablety, w porównaniu z mniejszymi telefonami komórkowymi. Jeśli ta opcja nie jest włączona, tryb okien na pulpicie jest obsługiwany tylko na wyświetlaczu zewnętrznym (zakładając, że urządzenie obsługuje HDMI).
config_enterDesktopByDefaultOnFreeformDisplay
Flaga nakładki konfiguracyjnej config_enterDesktopByDefaultOnFreeformDisplay ustawia tryb okien na pulpicie jako domyślny tryb okien na wewnętrznym wyświetlaczu urządzenia. Jeśli nie jest włączony, domyślnym trybem okien jest tryb pełnoekranowy, w którym pulpity współistnieją. Ustaw wartość true w config.xml:
<!-- Enable Desktop windowing as the default windowing mode on the internal display -->
<bool name="config_enterDesktopByDefaultOnFreeformDisplay">true</bool>Włączanie limitów zadań
Aby skonfigurować maksymalną liczbę zadań obsługiwanych w trybie okien na pulpicie, ustaw flagę nakładki konfiguracyjnej config_maxDesktopWindowingActiveTasks w config.xml na maksymalną liczbę obsługiwanych zadań. Aby obsługiwać nieograniczoną liczbę zadań, ustaw wartość flagi na 0:
<!-- Maximum number of tasks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingActiveTasks">4</integer>Włączanie limitów biurek
Aby skonfigurować maksymalną liczbę wirtualnych biurek obsługiwanych w trybie okien na pulpicie, ustaw flagę nakładki konfiguracyjnej config_maxDesktopWindowingDesks w config.xml na maksymalną liczbę obsługiwanych biurek. Aby obsługiwać nieograniczoną liczbę biurek, ustaw wartość flagi na 0:
<!-- Maximum number of virtual desks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingDesks">4</integer>Podzielony ekran
Domyślnym trybem wielookienkowości jest tryb podzielonego ekranu, w którym interfejs systemu jest podzielony na pół w pionie lub poziomie. Użytkownicy mogą zmieniać rozmiar okna, przeciągając linię podziału w bok lub w górę i w dół w zależności od orientacji urządzenia.
Po włączeniu trybu podzielonego ekranu producenci urządzeń mogą włączyć tryb swobodny lub obraz w obrazie.
Android 8.0 i nowsze wersje poprawiają działanie podzielonego ekranu, kompresując program uruchamiający, gdy użytkownik naciśnie Ekran główny. Szczegóły wdrażania znajdziesz w sekcji Interakcje na podzielonym ekranie.
Obraz w obrazie
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 filmów podczas korzystania z innych funkcji. Ta funkcja jest przeznaczona dla urządzeń z Androidem TV, ale może być obsługiwana także na innych urządzeniach.
Aby obsługiwać tryb obrazu w obrazie, włącz funkcję systemową PackageManager#FEATURE_PICTURE_IN_PICTURE w /android/frameworks/base/core/java/android/content/pm/PackageManager.java.
Więcej informacji o wdrażaniu funkcji obraz w obrazie na urządzeniach z Androidem 8.0 i nowszym znajdziesz w artykule Obraz w obrazie.
interfejs systemu
Obsługuj wszystkie standardowe interfejsy systemowe zgodnie z weryfikacją trybu wielu okien.
Aplikacje
Aby obsługiwać tryb wielu okien w przypadku wstępnie załadowanych aplikacji, zapoznaj się z artykułem Obsługa trybu wielu okien.
Weryfikacja
Aby sprawdzić, czy implementacja trybu wielu okien jest prawidłowa, uruchom odpowiednie testy CTS i postępuj zgodnie z instrukcjami w sekcji Weryfikacja trybu wielu okien.