Eseguire la migrazione delle app ad Android 12

Questo documento offre una visione di alto livello delle fasi di sviluppo e test comuni che può 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 12.

A ogni release di Android introduciamo nuove funzionalità e cambiamenti di comportamento che mirano a rendere Android più utile, sicuro e performante. In molti casi l'app funzionerà esattamente come previsto, mentre in altri potrebbe essere necessario aggiornarla per adattarla alle modifiche della piattaforma.

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

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

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

Assicura la compatibilità con Android 12

È importante testare la funzionalità della tua app esistente su Android 12 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 della tua app, pertanto è importante eseguire test in anticipo e in modo approfondito e apportare gli aggiustamenti necessari all'app.

In genere, puoi modificare l'app e pubblicare un aggiornamento senza dover cambiare targetSdkVersion dell'app. Analogamente, non dovrebbe essere necessario 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 utilizzate.

Prima di iniziare i test, assicurati di acquisire familiarità con le modifiche al comportamento per tutte le app. Queste modifiche potrebbero influire sulla tua app, anche se non cambi il suo targetSdkVersion.

Ottenere Android 12

Esegui il flashing di un'immagine di sistema Android 12 sul tuo dispositivo oppure scarica un'immagine di sistema per l'emulatore Android.

Esaminare le modifiche

Esamina le modifiche al comportamento del sistema per identificare le aree in cui la tua app potrebbe essere interessata.

Test

Installa l'app sul tuo dispositivo o nell'emulatore ed esegui i test. Concentrati sulle modifiche del comportamento del sistema ed esamina tutti i flussi dell'app.

Aggiornamento

Apporta solo le modifiche al codice necessarie per adattarti alle modifiche del comportamento o per risolvere i problemi. Ricompila con lo stesso livello API scelto come target originale per la tua app, senza bisogno di scegliere come target Android 12.

Pubblica

Firma, carica e pubblica l'Android App Bundle o l'APK aggiornato.

Esegui test di compatibilità

I test di compatibilità con Android 12 sono in gran parte simile ai normali test delle app. È un buon momento per rivedere le linee guida per la qualità delle app di base e le best practice per i test.

Per eseguire il test, installa l'app attualmente pubblicata su un dispositivo con Android 12 e segui tutti i flussi e le funzionalità alla ricerca di problemi. Per aiutarti a concentrare i test, esamina le modifiche al comportamento per tutte le app introdotte in Android 12 che possono influire sul funzionamento della tua app o causare il suo arresto anomalo.

Inoltre, assicurati di esaminare e verificare l'utilizzo di interfacce non SDK limitate. Devi sostituire qualsiasi interfaccia con limitazioni utilizzata dalla tua app con un SDK pubblico o un NDK equivalente. Fai attenzione agli 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 verificare che funzionino come previsto su Android 12 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 contribuisci a garantire una transizione agevole durante l'aggiornamento ad Android 12.

Aggiorna il targeting dell'app e creala con nuove API

Dopo aver pubblicato una versione compatibile della tua app, il passaggio successivo consiste nell'aggiungere il supporto completo per Android 12 aggiornandone il targetSdkVersion e sfruttando le nuove API e funzionalità di Android 12. Puoi apportare questi aggiornamenti non appena vuoi, tenendo presente i requisiti di Google Play per il targeting della nuova piattaforma.

Quando pianifichi il lavoro per supportare completamente Android 12, esamina le modifiche al comportamento che interessano le app che hanno come target Android 12. Queste modifiche del comportamento mirate potrebbero causare problemi funzionali che dovrai risolvere. In alcuni casi, questi cambiamenti richiedono uno sviluppo significativo, pertanto consigliamo di informarli e intervenire il prima possibile. Per aiutarti a identificare modifiche specifiche del comportamento che influiscono sulla tua app, utilizza i pulsanti di attivazione/disattivazione della compatibilità per testare l'app con le modifiche selezionate attivate.

I passaggi seguenti spiegano come supportare completamente Android 12.

Ottieni l'SDK Android 12

Installa la versione più recente di Android Studio Preview per eseguire la compilazione con Android 12. Assicurati di avere un dispositivo o un emulatore Android 12.
Aggiorna targetSdkVersion e altre configurazioni di compilazione.

Esaminare le modifiche del comportamento

Esamina le modifiche del comportamento applicabili alle app che hanno come target Android 12. Identifica le aree in cui la tua app potrebbe essere interessata e pianifica come supportarle.

Verificare le nuove modifiche alla privacy

Apporta le modifiche al codice e all'architettura necessarie per supportare le modifiche alla privacy dell'utente di Android 12.

Adottare le funzionalità di Android 12

Sfrutta le API di Android 12 per aggiungere nuove funzionalità alle tue app. Esegui la ricompilazione per Android 12.

Test

Esegui il test su un dispositivo o un emulatore Android 12. Concentrati sulle aree in cui le modifiche al comportamento potrebbero influire sulla tua app. Prova le funzionalità che utilizzano nuove API. Fornisci feedback sulla piattaforma e sull'API. Segnala eventuali problemi relativi a piattaforme, API o SDK di terze parti.

Aggiornamento finale

Una volta che le API di Android 12 saranno definitive, aggiorna nuovamente targetSdkVersion e le altre configurazioni di build, apporta eventuali aggiornamenti aggiuntivi e testa la tua app.

Pubblica

Firma, carica e pubblica l'Android App Bundle o l'APK aggiornato.

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

Per iniziare a testare il supporto completo di Android 12, utilizza la versione di anteprima più recente di Android Studio per scaricare l'SDK Android 12 e tutti gli altri strumenti di cui hai bisogno. Dopodiché aggiorna i targetSdkVersion e gli compileSdkVersion dell'app e ricompila l'app. Per maggiori dettagli, consulta la guida alla configurazione dell'SDK.

Testare l'app per Android 12

Dopo aver compilato l'app e averla installata su un dispositivo con Android 12, inizia a testarla per assicurarti che funzioni correttamente quando scegli come target Android 12. 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 12. È 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 assicurarti che funzionino come previsto su Android 12 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 oppure contatta lo sviluppatore dell'SDK per ricevere assistenza.

Eseguire test utilizzando gli switch di compatibilità delle app

Android 12 include pulsanti di attivazione/disattivazione di compatibilità che semplificano il test della tua app con modifiche del comportamento target. Per un'app di cui è possibile eseguire il debug, i pulsanti di attivazione/disattivazione ti consentono di:

  • Testa le modifiche target senza modificare effettivamente il valore targetSdkVersion 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 che vuoi testare.
  • 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ù rapidamente utilizzando gli ID delle modifiche 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 12, i pulsanti di attivazione/disattivazione possono essere utili. Per maggiori informazioni, vedi Modifiche al framework di compatibilità (Android 12).