Aplikacje na Androida działają na urządzeniach wszystkich typów: telefonach, tabletach, składanych urządzeniach, Chromebookach, samochodach, telewizorach, a nawet na urządzeniach XR. Aby dostosować się do tak zróżnicowanego środowiska, Twoja aplikacja powinna obsługiwać wszystkie formaty i rozmiary ekranów.
Android 16 (poziom API 36) umożliwia aplikacjom dostosowanie się do różnych form czynników i rozmiarów wyświetlacza przez zastąpienie ograniczeń aplikacji dotyczących orientacji ekranu, proporcji i możliwości zmiany rozmiaru. Zastąpienia mają zastosowanie do urządzeń o najmniejszej szerokości >= 600 dp, które określają te wartości:
- Tablety
- wewnętrzne wyświetlacze składanych urządzeń z dużym ekranem;
- Tryb okien na pulpicie (na wszystkich urządzeniach)
Aplikacje kierowane na poziom interfejsu API 36 można zmieniać rozmiarem i przełączać w tryb wielookienkowy (odpowiadający resizeableActivity="true"
), jeśli najmniejsza szerokość wyświetlacza wynosi >= 600 dp.

Android 16 wymusza spójny model elastycznego projektowania aplikacji, który optymalizuje wrażenia użytkownika, uwzględniając jego preferencje dotyczące orientacji urządzenia, proporcji i rozmiaru wyświetlacza.
Zmiany
W przypadku aplikacji kierowanych na Androida 16 (poziom interfejsu API 36) na dużych ekranach następujące atrybuty i interfejsy API są ignorowane:
Atrybut lub interfejs API | Ignorowane wartości |
---|---|
screenOrientation |
portrait , landscape , reversePortrait , reverseLandscape , sensorPortrait , sensorLandscape , userPortrait , userLandscape |
resizeableActivity |
wszystkie |
minAspectRatio |
wszystkie |
maxAspectRatio |
wszystkie |
setRequestedOrientation() getRequestedOrientation() |
portrait , landscape , reversePortrait , reverseLandscape , sensorPortrait , sensorLandscape , userPortrait , userLandscape |
Wyjątki
Wyjątki od zmian w Androidzie 16:
Ekrany mniejsze niż 600 dp (większość telefonów, składanych telefonów i zewnętrznych ekranów składanych telefonów z dużym ekranem)
gry oparte na fladze
android:appCategory
,Opublikuj grę za pomocą pakietów Android App Bundle i podpisywania aplikacji przez Google Play, aby umożliwić Google Play zarządzanie flagą i automatyczne korzystanie z zalet pakietów aplikacji. Zobacz też omówienie manifestu aplikacji.
Użytkownik zgadza się na domyślne zachowanie aplikacji w ustawieniach proporcji obrazu
Zrezygnuj
Aby zrezygnować z zachowania na poziomie API 36, zadeklaruj właściwość pliku manifestu PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
.
Aby zrezygnować z określonej aktywności, ustaw odpowiednią właściwość w elemencie <activity>
:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
Aby zrezygnować z usług w całej aplikacji, ustaw odpowiednią usługę w elemencie <application>
:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
Testy
Aby sprawdzić, czy zmiany w Androidzie 16 mają wpływ na Twoją aplikację, użyj emulatorów serii Pixel Tablet i Pixel Fold w Android Studio i ustaw zmiennątargetSdkPreview = "Baklava"
w pliku modułu build.gradle
aplikacji.
Możesz też użyć na urządzeniach testowych ram zgodności aplikacji, włączając flagę UNIVERSAL_RESIZABLE_BY_DEFAULT (patrz Narzędzia ram zgodności).
Testy możesz zautomatyzować za pomocą platformy testowej Espresso i interfejsów API do testowania za pomocą Jetpack Compose.
Typowe problemy
Aplikacje, które ograniczają orientację urządzenia, proporcje lub możliwość zmiany rozmiaru, mogą mieć problemy z wyświetlaniem w Androidzie 16, np. nakładające się układy.
Aby zapewnić użytkownikom optymalne wrażenia na telefonach, składanych urządzeniach, tabletach, Chromebookach, wyświetlaczach samochodowych i urządzeniach XR, stwórz aplikację, która będzie responsywna i dostosowywać się do różnych rozmiarów ekranu:
Unikaj rozciągania elementów UI: układy zaprojektowane na standardowe ekrany w orientacji pionowej nie będą się prawidłowo wyświetlać w przypadku innych proporcji. Na przykład elementy interfejsu, które wypełniają całą szerokość ekranu, będą rozciągnięte w orientacji poziomej. Dodaj maksymalną szerokość do komponentów, aby uniknąć rozciągania.
Włącz przewijanie układów: jeśli układy nie będą się przewijać, użytkownicy mogą nie mieć dostępu do przycisków ani innych elementów interfejsu, które znajdują się poza ekranem w orientacji poziomej. Umożliw przewijanie układów aplikacji, aby zapewnić dostęp do wszystkich treści niezależnie od wysokości wyświetlacza.
Sprawdź, czy aparat jest zgodny z formatem pionowym i poprzecznym: podgląd w celowniku aparatu, który zakłada określony format obrazu i orientację względem czujnika aparatu, może spowodować rozciągnięcie lub odwrócenie podglądu na wyświetlaczach niezgodnych ze standardem. Sprawdź, czy wizjery obracają się prawidłowo wraz ze zmianą orientacji. Umożliwianie dostosowywania wizjerów do proporcji interfejsu, które różnią się od proporcji czujnika.
Zachowuj stan podczas zmiany rozmiaru okna: usunięcie ograniczeń dotyczących orientacji i formatu obrazu może powodować częste zmiany rozmiaru okna aplikacji w odpowiedzi na to, jak użytkownicy preferują korzystać z aplikacji, np. obracając, składając lub rozkładając urządzenie albo zmieniając rozmiar okna aplikacji w trybie wielookiennym lub trybie okna na komputerze. Zmiany konfiguracji, takie jak zmiana orientacji i rozmiaru okna, powodują (domyślnie) odtworzenie aktywności. Aby zapewnić użytkownikom optymalne wrażenia, zachowaj stan aplikacji podczas zmian konfiguracji, aby aplikacja zachowała dane (np. dane wprowadzone w formularzu), a użytkownicy mogli zachować kontekst.
Używanie klas rozmiarów okna: obsługa różnych rozmiarów okna i proporcji bez dostosowań związanych z konkretnym urządzeniem. Zakładamy, że rozmiary okien będą się często zmieniać. Użyj klas rozmiarów okien, aby scharakteryzować wymiary okna, a następnie zastosuj odpowiedni układ adaptacyjny.
Twórz elastyczne układy: w ramach klas rozmiarów okien elastyczne układy dostosowują się do zmian wymiarów wyświetlacza, aby zawsze zapewniać optymalną prezentację aplikacji.
Oś czasu
Android 16 (2025 r.): obsługa wszystkich orientacji i formatów obrazu oraz możliwość zmiany rozmiaru aplikacji to standardowe funkcje na urządzeniach z dużym ekranem (najmniejsza szerokość ekranu >= 600 dp) w przypadku aplikacji kierowanych na poziom interfejsu API 36. Deweloperzy mogą jednak zrezygnować z tej funkcji.
Wersja Androida w 2026 r.: obsługa wszystkich orientacji i formatów obrazu oraz możliwość zmiany rozmiaru aplikacji będą standardem w przypadku urządzeń z dużym ekranem (najmniejsza szerokość ekranu >= 600 dp) w przypadku aplikacji kierowanych na poziom interfejsu API 37. Deweloperzy nie będą mogli zrezygnować z tej funkcji.
Docelowy poziom interfejsu API | Odpowiednie urządzenia | Zezwalanie na rezygnację dewelopera |
---|---|---|
36 (Android 16) | Urządzenia z dużym ekranem (najmniejsza szerokość ekranu ≥ 600 dp) | Tak |
37 (przewidywane) | Urządzenia z dużym ekranem (najmniejsza szerokość ekranu ≥ 600 dp) | Nie |
Terminy kierowania na konkretne poziomy interfejsu API są różne w zależności od sklepu z aplikacjami. Od sierpnia 2026 r. Google Play będzie wymagać, aby aplikacje były kierowane na poziom interfejsu API 36, a od sierpnia 2027 r. na poziom API 37.
Dodatkowe materiały
- Zmiany zachowania: aplikacje kierowane na Androida 16 lub nowszego
- Tworzenie aplikacji dostosowanych do potrzeb użytkownika
- Co należy, a czego nie należy robić w przypadku adaptacji