Eseguire la migrazione delle app ad Android 11

Con ogni release di Android, introduciamo nuove funzionalità e modifiche al comportamento finalizzate a rendere Android più utile, più sicuro e con un rendimento migliore. In molti casi, l'app funzionerà esattamente come previsto, mentre in altri casi potrebbe essere necessario apportare modifiche per adattarla alle modifiche della piattaforma.

Poiché gli utenti possono iniziare a ricevere la nuova piattaforma non appena il codice sorgente viene rilasciato in AOSP (Android Open Source Project), è importante che le app siano pronte, funzionino come previsto per gli utenti e, idealmente, sfruttino nuove funzionalità e API per ottenere il massimo dalla nuova piattaforma.

Questo documento offre una visione di alto livello delle fasi di sviluppo e test comuni che possono aiutarti a creare un piano di idoneità ben allineato alle tempistiche di rilascio della piattaforma e a garantire un'esperienza eccezionale per i tuoi utenti su Android 11.

Una migrazione tipica prevede due fasi, che possono essere concorrenti:

  • Garantire la compatibilità delle app (entro la release finale di Android 11)
  • Scegli come target le nuove funzionalità e API della piattaforma (il prima possibile dopo la release finale)

Questa pagina illustra i passaggi generali per ciascuna di queste fasi. Quando è tutto pronto per iniziare, consulta l'articolo Installare Android 11.

Garantire la compatibilità con Android 11

È importante testare la funzionalità della tua app esistente su Android 11 per garantire un'esperienza ottimale agli utenti che eseguono l'aggiornamento all'ultima versione di Android. Alcune modifiche alla piattaforma possono influire sul comportamento della tua app, pertanto è importante eseguire test in anticipo e in modo approfondito, quindi apportare le modifiche necessarie all'app.

In genere, puoi modificare l'app e pubblicare un aggiornamento senza dover cambiare il targetSdkVersion dell'app. Analogamente, non dovresti dover utilizzare nuove API o modificare il compileSdkVersion dell'app, anche se questo può dipendere dal modo in cui l'app è stata creata e dalla funzionalità della piattaforma che utilizza. Le sezioni seguenti descrivono i passaggi.

Prima di iniziare, assicurati di acquisire familiarità con le modifiche al comportamento che potrebbero interessare la tua app, anche se non modifichi il suo targetSdkVersion.

Esegui test di compatibilità

Per la maggior parte, il test della compatibilità con Android 11 è simile al tipo di test che esegui normalmente quando ti prepari a rilasciare la tua app. È un buon momento per rivedere le norme di base sulla qualità delle app e le best practice per i test.

Basta installare l'app attualmente pubblicata su un dispositivo con Android 11 e verificare tutti i flussi e le funzionalità alla ricerca di problemi. Per aiutarti a concentrare i test, esamina le modifiche al comportamento introdotte in Android 11 che possono influire sul funzionamento della tua app o causarne l'arresto anomalo. In particolare, assicurati di esaminare le modifiche principali alla privacy e di testare le correzioni che implementi per adattarti alle modifiche.

Inoltre, assicurati di esaminare e verificare l'utilizzo di interfacce non SDK con limitazioni e di passare agli equivalenti SDK o NDK pubblici. Fai attenzione agli avvisi logcat che evidenziano questi accessi e utilizza il metodo StrictMode detectNonSdkApiUsage() per rilevarli in modo programmatico.

Infine, assicurati di testare completamente le librerie e gli SDK nella tua app per verificare che funzionino come previsto su Android 11 e che seguano le best practice per privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se riscontri un problema, prova ad aggiornare l'SDK all'ultima versione o rivolgiti allo sviluppatore dell'SDK per ricevere assistenza.

Al termine dei test e dopo aver apportato gli aggiornamenti, ti consigliamo di pubblicare subito la tua app compatibile. In questo modo, gli utenti possono testare l'app in anteprima e puoi offrire loro una transizione agevole durante l'aggiornamento ad Android 11.

Aggiorna il targeting e la compilazione dell'app con nuove API

Dopo aver pubblicato la versione compatibile della tua app come descritto in precedenza, il passaggio successivo consiste nell'aggiungere il supporto completo per Android 11 aggiornando il targetSdkVersion e sfruttando le nuove API e funzionalità di Android 11. Puoi farlo non appena è tutto pronto, tenendo presente il requisito di Google Play per scegliere come target la nuova piattaforma.

Quando pianifichi il lavoro per supportare completamente Android 11, un buon punto di partenza è esaminare le modifiche al comportamento che si applicano alle app destinate ad Android 11. Queste modifiche al comportamento mirate potrebbero causare problemi di funzionalità che potresti dover risolvere. In alcuni casi, possono richiedere un miglioramento significativo, quindi è meglio conoscerli in anticipo. Per aiutarti a valutare l'impatto, puoi anche utilizzare i pulsanti di attivazione/disattivazione della compatibilità per testare la tua app attuale con le modifiche selezionate attivate.

I passaggi riportati di seguito descrivono come supportare completamente Android 11.

Ottieni l'SDK, modifica il targeting, crea con nuove API

Per iniziare a utilizzare il supporto completo di Android 11, scarica prima l'SDK Android 11 (e tutti gli altri strumenti necessari) in Android Studio. Poi, modifica targetSdkVersion e compileSdkVersion dell'app in "30" e ricompila l'app. Per maggiori dettagli, consulta la guida alla configurazione.

Testare l'app per Android 11

Dopo aver compilato l'app e averla installata su un dispositivo con Android 11, inizia a eseguire test per assicurarti che funzioni correttamente quando scegli come target Android 11. Alcune modifiche al comportamento si applicano solo quando la tua app ha come target la nuova piattaforma, quindi ti consigliamo di esaminare queste modifiche prima di iniziare.

Come per i test di compatibilità di base, esamina tutti i flussi e le funzionalità per rilevare eventuali problemi. Concentra i test sulle modifiche al comportamento per le app che hanno come target Android 11. In particolare, assicurati di esaminare le modifiche relative alla privacy e di testare le correzioni che implementi per adattarti alle modifiche. È anche un buon momento per verificare la tua app in base alle norme sulla qualità principali delle app e alle best practice per i test.

Assicurati di esaminare e verificare l'utilizzo di interfacce non SDK limitate che potrebbero essere applicabili. Fai attenzione agli avvisi logcat che evidenziano questi accessi e utilizza il metodo StrictMode detectNonSdkApiUsage() per rilevarli in modo programmatico.

Infine, assicurati di testare completamente le librerie e gli SDK nella tua app per verificare che funzionino come previsto su Android 11 e che seguano le best practice per privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se riscontri un problema, prova ad aggiornare l'SDK all'ultima versione o rivolgiti allo sviluppatore dell'SDK per ricevere assistenza.

Eseguire test utilizzando gli switch di compatibilità delle app

Android 11 introduce una nuova funzionalità per gli sviluppatori che semplifica il test della tua app con modifiche del comportamento mirate. Per un'app di cui è possibile eseguire il debug, i pulsanti di attivazione/disattivazione ti consentono di:

  • Testa le modifiche mirate senza modificare effettivamente la versione SDK di destinazione dell'app. Puoi utilizzare gli switch per attivare forzatamente modifiche specifiche del comportamento in base al target per valutare l'impatto sulla tua app esistente.
  • Concentra i test solo su modifiche specifiche. Anziché dover gestire tutte le modifiche prese di mira contemporaneamente, i pulsanti di attivazione/disattivazione ti consentono di disattivare tutte le modifiche prese di mira, ad eccezione di quelle rispetto alle quali vuoi eseguire il test.
  • Gestisci i pulsanti di attivazione/disattivazione tramite adb. Puoi utilizzare i comandi adb per attivare e disattivare le modifiche attivabili/disattivabili nell'ambiente di test automatico.
  • Esegui il debug più velocemente utilizzando gli ID modifica standard. Le modifiche attivabili disattivabili hanno ciascuna un ID e un nome univoci che puoi utilizzare per eseguire rapidamente il debug della causa principale nell'output del log.

Mentre ti prepari a modificare il targeting della tua app o durante lo sviluppo attivo per il supporto di Android 11, i pulsanti di attivazione/disattivazione possono essere utili. Per ulteriori dettagli, consulta la documentazione corrispondente.