Eseguire la migrazione delle app ad Android 11

Con ogni release di Android introduciamo nuove funzionalità e cambiamenti del comportamento volti a rendere Android più utile, sicuro e con prestazioni migliori. In molti casi l'app funzionerà esattamente come previsto, mentre in altri casi potresti dover apportare modifiche all'app per adattarsi 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, possano sfruttare le nuove funzionalità e le nuove API per ottenere il massimo dalla nuova piattaforma.

Questo documento offre una visione generale delle fasi tipiche di sviluppo e test che può aiutarti a definire un piano di preparazione che sia ben allineato alle tempistiche di rilascio della piattaforma e che garantisca un'ottima esperienza per gli utenti su Android 11.

In genere, una migrazione è suddivisa in due fasi, che possono essere simultanee:

  • Garanzia della compatibilità delle app (per la release finale di Android 11)
  • Targeting delle nuove funzionalità e API della piattaforma (non appena possibile dopo il rilascio finale)

In questa pagina vengono descritti i passaggi generali per ciascuna di queste fasi. Quando vuoi iniziare, leggi l'articolo Acquistare Android 11.

Garantire la compatibilità con Android 11

È importante testare la funzionalità della tua app esistente rispetto ad Android 11 per garantire un'esperienza ottimale agli utenti che eseguono l'aggiornamento alla versione più recente di Android. Alcune modifiche alla piattaforma possono influire sul comportamento dell'app, pertanto è importante testare l'app 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 modificare il valore targetSdkVersion dell'app. Allo stesso modo, non dovresti utilizzare nuove API o modificare il compileSdkVersion dell'app, anche se ciò può dipendere dal modo in cui viene creata l'app e dalla funzionalità della piattaforma che utilizza. Le seguenti sezioni descrivono i passaggi.

Prima di iniziare, assicurati di acquisire familiarità con le modifiche del comportamento che potrebbero influire sulla tua app, anche se non ne modifichi targetSdkVersion.

Esegui test di compatibilità

In gran parte, il test della compatibilità con Android 11 è simile al tipo di test che esegui altrimenti quando ti prepari a rilasciare l'app. È un buon momento per rivedere le norme sulla qualità principali delle app e le best practice per i test.

Devi semplicemente installare l'attuale app pubblicata su un dispositivo con Android 11 e svolgere tutti i flussi e le funzionalità per individuare eventuali problemi. Per ottimizzare i test, esamina le modifiche al comportamento introdotte in Android 11 che possono influire sulla funzione della tua app o causare l'arresto anomalo dell'app. In particolare, assicurati di esaminare le principali modifiche alla privacy e di testare le eventuali correzioni implementate per apportare le modifiche.

Inoltre, assicurati di esaminare e testare gli utilizzi di interfacce non SDK limitate e di passare all'SDK pubblico o agli equivalenti NDK. Controlla gli avvisi logcat che evidenziano questi accessi e utilizza il metodo StrictMode detectNonSdkApiUsage() per intercettarli 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 segui le best practice per privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se riscontri un problema, prova a eseguire l'aggiornamento all'ultima versione dell'SDK o contatta lo sviluppatore dell'SDK per ricevere assistenza.

Una volta terminato il test e apportato gli eventuali aggiornamenti, ti consigliamo di pubblicare subito la tua app compatibile. In questo modo gli utenti possono testare l'app in anticipo e offrire una transizione senza problemi agli utenti che eseguono l'aggiornamento ad Android 11.

Aggiorna il targeting dell'app e crea 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 targetSdkVersion e sfruttando le nuove API e le funzionalità di Android 11. Puoi farlo non appena è tutto pronto, tenendo presente il requisito di Google Play per scegliere come target la nuova piattaforma.

Se pianifichi il tuo lavoro per supportare appieno Android 11, un buon punto di partenza è esaminare le modifiche del comportamento che si applicano alle app che hanno come target Android 11. Queste modifiche al comportamento mirato possono causare problemi funzionali che potresti dover risolvere. In alcuni casi, possono richiedere uno sviluppo significativo, quindi è meglio conoscerli prima. Per valutare più facilmente gli impatti, puoi anche utilizzare i dispositivi di attivazione/disattivazione della compatibilità per testare l'app attuale con le modifiche selezionate abilitate.

I passaggi seguenti spiegano come supportare completamente Android 11.

Scarica l'SDK, cambia 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 i targetSdkVersion e le compileSdkVersion dell'app in "30" e compila di nuovo l'app. Per i dettagli, consulta la guida alla configurazione.

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 l'app funzioni correttamente quando scegli come target Android 11. Alcune modifiche al comportamento vengono applicate solo quando la tua app ha come target la nuova piattaforma, pertanto ti consigliamo di esaminare tali modifiche prima di iniziare.

Come per i test di compatibilità di base, esamina tutti i flussi e tutte le funzionalità per individuare eventuali problemi. Concentra i tuoi test sulle modifiche del comportamento per le app destinate ad Android 11. In particolare, assicurati di esaminare le modifiche alla privacy e di verificare le eventuali correzioni implementate per apportare le modifiche. È anche un buon momento per controllare la tua app in base alle norme sulla qualità di base 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 se sono presenti 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 assicurarti che funzionino come previsto su Android 11 e segui le best practice per privacy, prestazioni, UX, gestione dei dati e autorizzazioni. Se riscontri un problema, prova a eseguire l'aggiornamento all'ultima versione dell'SDK o contatta lo sviluppatore dell'SDK per ricevere assistenza.

Esegui dei test utilizzando i pulsanti di attivazione/disattivazione della 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 è possibile eseguire il debug, i pulsanti di attivazione/disattivazione ti consentono di:

  • Testa modifiche mirate senza modificare effettivamente il valore targetSdkVersion dell'app. Puoi utilizzare i pulsanti di attivazione/disattivazione per forzare l'attivazione di modifiche specifiche del comportamento mirato al fine di valutare l'impatto sulla tua app esistente.
  • Esegui i test solo su modifiche specifiche. Invece di dover risolvere tutte le modifiche mirate contemporaneamente, le opzioni 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 usare i comandi adb per abilitare e disabilitare le modifiche attivabili nell'ambiente di test automatizzato.
  • Esegui il debug più velocemente utilizzando gli ID modifica standard. Le modifiche che possono essere attivate 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 sei in fase di sviluppo attivo per il supporto di Android 11, i pulsanti di attivazione/disattivazione possono aiutarti. Per ulteriori dettagli, consulta la documentazione corrispondente.