Le app per Android vengono eseguite su dispositivi di ogni tipo: smartphone, tablet, pieghevoli, dispositivi ChromeOS, auto, TV e persino XR. Per adattarsi a questo ambiente variegato, la tua app deve supportare tutti i fattori di forma dei dispositivi e le dimensioni di visualizzazione.
Android 16 (livello API 36) consente alle app di adattarsi a diversi fattori di forma e dimensioni di visualizzazione ignorando le limitazioni delle app per l'orientamento dello schermo, le proporzioni e la ridimensionabilità. Le sostituzioni si applicano ai dispositivi con larghezza minima >= 600 dp, che definisce quanto segue:
- Tablet
- Display interni di pieghevoli con schermi grandi
- Finestre delle app (su tutti i fattori di forma)
Le app che hanno come livello API target 36 sono ridimensionabili e possono entrare in modalità multi-finestra (equivalente a resizeableActivity="true") se la larghezza minima del display è >= 600 dp.
Android 16 applica un modello coerente di progettazione di app adattive che ottimizza l'esperienza utente rispettando le preferenze dell'utente per l'orientamento del dispositivo, le proporzioni e le dimensioni di visualizzazione.
Modifiche
I seguenti attributi e API del file manifest vengono ignorati per le app che hanno come target Android 16 (livello API 36) su schermi grandi:
| Attributo o API | Valori ignorati |
|---|---|
screenOrientation |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
resizeableActivity |
tutti |
minAspectRatio |
tutti |
maxAspectRatio |
tutti |
setRequestedOrientation()getRequestedOrientation() |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
Eccezioni
Le eccezioni alle modifiche di Android 16 includono quanto segue:
Display più piccoli di sw600dp (la maggior parte degli smartphone, dei pieghevoli e dei display esterni dei pieghevoli con schermi grandi)
Giochi, in base al
android:appCategoryflagPubblica il tuo gioco utilizzando Android App Bundle e la firma dell'app di Google Play, consentendo a Google Play di gestire il flag e fornire automaticamente i vantaggi degli app bundle. Vedi anche Panoramica del file manifest dell'app.
L'utente accetta il comportamento predefinito dell'app nelle impostazioni delle proporzioni
Disattiva
Per disattivare il comportamento del livello API 36, dichiara la proprietà manifestPROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.
Per disattivare un'attività specifica, imposta la proprietà nell'elemento <activity>:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
Per disattivare la funzionalità per l'intera app, imposta la proprietà nell'elemento <application>:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
Test
Per verificare se la tua app è interessata dalle modifiche di Android 16, utilizza gli emulatori della serie Pixel
Tablet e Pixel Fold in Android Studio e imposta
targetSdkPreview = "Baklava" nel file build.gradle del modulo dell'app.
In alternativa, utilizza il framework di compatibilità delle app sui dispositivi di test attivando il flag UNIVERSAL_RESIZABLE_BY_DEFAULT (vedi Strumenti del framework di compatibilità).
Puoi automatizzare i test con il framework di testEspresso e le API di test di Jetpack Compose.
Guida all'implementazione
Le app che limitano l'orientamento del dispositivo, le proporzioni o la ridimensionabilità dell'app potrebbero presentare problemi di visualizzazione su Android 16, ad esempio layout sovrapposti. Per offrire un'esperienza utente ottimale su smartphone, pieghevoli, tablet, dispositivi ChromeOS e altro ancora, crea un'app reattiva e adattiva.
Elenco di controllo relativo all'idoneità
Utilizza il seguente elenco di controllo per assicurarti che la tua app sia pronta per le modifiche di Android 16:
- Evita i componenti dell'interfaccia utente allungati: i layout progettati per gli schermi standard degli smartphone in verticale potrebbero non adattarsi ad altre proporzioni. Ad esempio, gli elementi dell'interfaccia utente che riempiono l'intera larghezza del display possono apparire allungati in orientamento orizzontale. Aggiungi una larghezza massima ai componenti per evitare l'allungamento.
- Consenti lo scorrimento dei layout: se i layout non scorrono, gli utenti potrebbero non essere in grado di accedere ai pulsanti o ad altri elementi dell'interfaccia utente che non sono visibili sullo schermo in orientamento orizzontale. Consenti lo scorrimento dei layout delle app per verificare che tutti i contenuti siano raggiungibili indipendentemente dall'altezza del display.
- Verifica la compatibilità della fotocamera in verticale e in orizzontale: le anteprime del mirino della fotocamera che presuppongono proporzioni e orientamento specifici rispetto al sensore della fotocamera possono comportare anteprime allungate o capovolte sui display non conformi. Verifica che i mirini ruotino correttamente con le modifiche dell'orientamento. Consenti ai mirini di adattarsi alle proporzioni dell'interfaccia utente diverse dalle proporzioni del sensore.
- Mantieni lo stato durante le modifiche delle dimensioni della finestra: la rimozione delle limitazioni relative all'orientamento e alle proporzioni può comportare frequenti modifiche delle dimensioni della finestra dell'app in risposta al modo in cui gli utenti preferiscono utilizzare un'app, ad esempio ruotando, piegando o aprendo un dispositivo o ridimensionando un'app in modalità multi-finestra o finestre delle app. Le modifiche alla configurazione, come le modifiche dell'orientamento e il ridimensionamento della finestra, causano la ricreazione dell'attività (per impostazione predefinita). Per offrire un'esperienza utente ottimale, mantieni lo stato dell'app in modo che l'app conservi i dati (ad esempio l'input del modulo) e gli utenti possano mantenere il contesto.
- Utilizza le classi di dimensioni della finestra: supporta diverse dimensioni della finestra e proporzioni senza personalizzazioni specifiche del dispositivo. Supponi che le dimensioni della finestra cambieranno frequentemente. Utilizza le classi di dimensioni della finestra per caratterizzare le dimensioni della finestra e poi applica un layout adattivo appropriato.
- Crea layout adattabili: all'interno delle classi di dimensioni della finestra, i layout adattabili si adattano alle modifiche delle dimensioni del display per creare sempre una presentazione ottimale dell'app.
Per una guida pratica alla creazione di layout adattivi in Compose, consulta il codelab Creare app adattive con Jetpack Compose. Se stai eseguendo la migrazione di un app che utilizza le visualizzazioni, consulta Strategia di adozione di Compose.
Cronologia
- Android 16 (2025): il supporto di tutti gli orientamenti e le proporzioni e della ridimensionabilità delle app è l'esperienza di base per i dispositivi con schermi grandi (larghezza minima dello schermo >= 600 dp) per le app che hanno come target il livello API 36. Tuttavia, gli sviluppatori possono disattivare questa opzione.
| Livello API target | Dispositivi applicabili | Disattivazione da parte dello sviluppatore consentita |
|---|---|---|
| 36 (Android 16) | Dispositivi con schermi grandi (larghezza minima dello schermo >= 600 dp) | Sì |
Le scadenze per il targeting di livelli API specifici sono specifiche per l'app store. A partire da agosto 2026, Google Play richiederà alle app di avere come target il livello API 36.
Risorse aggiuntive
- Modifiche al comportamento: app che hanno come target Android 16 o versioni successive
- Creare app adattive
- Cosa fare e cosa non fare con le app adattive