Eseguire la migrazione delle app ad Android 11

A ogni release di Android introduciamo nuove funzionalità e cambiamenti di comportamento che mirano a rendere Android più utile, sicuro e con prestazioni migliore. In molti casi l'app funzionerà esattamente come previsto da subito, mentre in altri casi potrebbe essere necessario apportare modifiche all'app per adattarla ai cambiamenti della piattaforma.

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

Questo documento offre una visione generale delle fasi tipiche di sviluppo e test che possono aiutarti a elaborare un piano di idoneità che sia in linea con la cronologia di rilascio della piattaforma e garantisca un'esperienza ottimale agli utenti su Android 11.

Una migrazione tipica prevede due fasi che possono essere simultanee:

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

Questa pagina descrive i passaggi generali per ciascuna di queste fasi. Quando vuoi iniziare, leggi Scaricare 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 alla versione più recente di Android. Alcune modifiche apportate alla piattaforma possono influire sul funzionamento dell'app, quindi è importante testarla in modo tempestivo e approfondito e poi apportare le modifiche necessarie all'app.

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

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

Esegui test di compatibilità

Per lo più, i test di compatibilità con Android 11 sono simile al tipo di test che eseguirai altrimenti durante la preparazione al rilascio della tua app. È il momento giusto per leggere le norme sulla qualità principali delle app e le best practice per i test.

Devi solo installare l'app attualmente pubblicata su un dispositivo con Android 11 e svolgere tutti i flussi e le funzionalità per la ricerca di problemi. Per concentrarti sui test, esamina i cambiamenti del comportamento introdotti in Android 11 che possono influire sul funzionamento dell'app o causarne l'arresto anomalo. In particolare, assicurati di esaminare le modifiche principali relative alla privacy e di testare le correzioni implementate per adeguarle.

Assicurati inoltre di esaminare e verificare l'utilizzo di interfacce non SDK limitate e passare a SDK pubblici o equivalenti NDK. Controlla gli avvisi di 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 assicurarti che funzionino come previsto su Android 11 e di seguire le best practice relative a privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se rilevi un problema, prova a eseguire l'aggiornamento all'ultima versione dell'SDK o contatta lo sviluppatore dell'SDK per ricevere assistenza.

Al termine dei test e dopo aver apportato gli aggiornamenti, ti consigliamo di pubblicare immediatamente l'app compatibile. In questo modo, gli utenti potranno testare l'app in anticipo e consenti loro di offrire agli utenti una transizione senza problemi durante l'aggiornamento ad Android 11.

Aggiorna il targeting dell'app e creala con nuove API

Dopo aver pubblicato la versione compatibile dell'app come descritto in precedenza, il passaggio successivo consiste nell'aggiungere il supporto completo per Android 11 aggiornando il relativo targetSdkVersion e sfruttando nuovi API e funzionalità per Android 11. Puoi farlo non appena ti è possibile, tenendo presente il requisito di Google Play per il targeting della nuova piattaforma.

Quando pianifichi il tuo lavoro per supportare completamente Android 11, un buon punto di partenza è rivedere le modifiche del comportamento che si applicano alle app che hanno come target Android 11. Queste modifiche del comportamento mirato possono causare problemi funzionali che potresti dover risolvere. In alcuni casi possono richiedere uno sviluppo significativo, quindi è meglio conoscerli il prima possibile. Per valutare l'impatto, puoi anche utilizzare i comandi di attivazione/disattivazione relativi alla compatibilità per testare l'app corrente con le modifiche selezionate abilitate.

I passaggi seguenti spiegano come supportare completamente Android 11.

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

Per iniziare a usufruire del supporto completo di Android 11, scarica prima l'SDK per Android 11 (ed eventuali altri strumenti necessari) in Android Studio. Poi modifica i targetSdkVersion e i compileSdkVersion dell'app in "30"e compila di nuovo l'app. Consulta la guida alla configurazione per i dettagli.

Testare l'app Android 11

Dopo aver compilato l'app e averla installata su un dispositivo con Android 11, inizia a testarla per assicurarti che funzioni correttamente quando ha 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 le modifiche prima di iniziare.

Come per i test di compatibilità di base, analizza tutti i flussi e le funzionalità alla ricerca di problemi. Incentra i test sulle modifiche del comportamento per le app che hanno come target Android 11. In particolare, assicurati di esaminare le modifiche alla privacy e di testare le correzioni implementate per adattarle. È inoltre un buon momento per controllare la tua app in base alle norme sulla qualità principali delle app e alle best practice per i test.

Assicurati di esaminare e testare gli utilizzi di interfacce non SDK limitate che potrebbero essere applicabili. Controlla gli avvisi di 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 assicurarti che funzionino come previsto su Android 11 e di seguire le best practice relative a privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se rilevi un problema, prova a eseguire l'aggiornamento all'ultima versione dell'SDK o contatta lo sviluppatore dell'SDK per ricevere assistenza.

Eseguire test utilizzando i pulsanti di attivazione/disattivazione per la compatibilità delle app

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

  • Testa le modifiche target senza modificare effettivamente il valore targetSdkVersion dell'app. Puoi utilizzare i pulsanti di attivazione/disattivazione per forzare l'attivazione di modifiche di comportamenti mirati specifici e valutare l'impatto sull'app esistente.
  • Concentra i test solo su modifiche specifiche. Invece di dover gestire tutte le modifiche mirate contemporaneamente, i pulsanti di attivazione/disattivazione ti consentono di disabilitare tutte le modifiche scelte come target, tranne quelle su cui vuoi eseguire il test.
  • Gestisci i pulsanti di attivazione/disattivazione tramite ADB. Puoi utilizzare i comandi adb per abilitare e disabilitare le modifiche attivabili nel tuo ambiente di test automatico.
  • Esegui il debug più rapidamente utilizzando gli ID delle modifiche standard. Le modifiche attivabili hanno ciascuna un ID e un nome univoci che possono essere utilizzati per eseguire rapidamente il debug della causa principale nell'output del log.

I pulsanti di attivazione/disattivazione possono esserti utili mentre ti prepari a modificare il targeting della tua app o stai sviluppando attivamente il supporto di Android 11. Consulta la documentazione corrispondente per ulteriori dettagli.