Guida al test di Android 6.0

Android 6.0 ti offre l'opportunità di assicurarti che le tue app funzionino con la versione successiva della piattaforma. Questa release include una serie di API e modifiche del comportamento che possono influire sulla tua app, come descritto nella Panoramica delle API e nelle Modifiche del comportamento. Durante il test della tua app con questa release, sono previste alcune modifiche specifiche di sistema su cui devi concentrarti per garantire agli utenti un'esperienza positiva.

Questa guida descrive cosa e come testare le funzionalità di Android 6.0 con la tua app. Dovresti dare la priorità ai test di queste funzionalità specifiche, dato il loro elevato impatto potenziale sul comportamento della tua app:

Test delle autorizzazioni

Il nuovo modello Autorizzazioni cambia il modo in cui l'utente assegna le autorizzazioni alla tua app. Anziché concedere tutte le autorizzazioni durante la procedura di installazione, l'app deve chiedere all'utente singole autorizzazioni in fase di runtime. Per gli utenti questo comportamento fornisce un controllo più granulare sulle attività di ogni app, nonché un contesto migliore per capire perché l'app richiede un'autorizzazione specifica. Gli utenti possono concedere o revocare le autorizzazioni concesse a una singola app in qualsiasi momento. È molto probabile che questa funzionalità della release abbia un impatto sul comportamento della tua app e potrebbe impedire il funzionamento di alcune funzionalità dell'app oppure avere una qualità ridotta.

Questa modifica interessa tutte le app in esecuzione sulla nuova piattaforma, anche quelle che non hanno come target la nuova versione della piattaforma. La piattaforma offre un comportamento di compatibilità limitato per le app legacy, ma ti consigliamo di iniziare subito a pianificare la migrazione della tua app al nuovo modello di autorizzazioni, con l'obiettivo di pubblicare una versione aggiornata della tua app in occasione del lancio ufficiale della piattaforma.

Suggerimenti per il test

Utilizza i seguenti suggerimenti per i test che ti aiuteranno a pianificare ed eseguire test della tua app con il nuovo comportamento delle autorizzazioni.

  • Identifica le autorizzazioni attuali della tua app e i relativi percorsi di codice.
  • Testare i flussi utente tra servizi e dati protetti da autorizzazione.
  • Esegui test con varie combinazioni di autorizzazioni concesse/revocate.
  • Utilizza lo strumento adb per gestire le autorizzazioni dalla riga di comando:
    • Elenca le autorizzazioni e lo stato per gruppo:
      adb shell pm list permissions -d -g
    • Concedi o revoca una o più autorizzazioni utilizzando la seguente sintassi:
      adb shell pm [grant|revoke] <permission.name> ...
  • Analizza la tua app per individuare i servizi che utilizzano autorizzazioni.

Strategia di test

La modifica delle autorizzazioni influisce sulla struttura e sul design della tua app, nonché sull'esperienza utente e sui flussi che offri agli utenti. Dovresti valutare l'utilizzo attuale delle autorizzazioni della tua app e iniziare a pianificare i nuovi flussi che vuoi offrire. La release ufficiale della piattaforma fornisce comportamenti di compatibilità, ma è consigliabile aggiornare l'app e non fare affidamento su questi comportamenti.

Identifica le autorizzazioni effettivamente necessarie e utilizzate dalla tua app, quindi trova i vari percorsi di codice che utilizzano i servizi protetti da autorizzazioni. A tal fine, puoi utilizzare una combinazione di test sulla nuova piattaforma e analisi del codice. Durante i test, dovresti concentrarti sull'attivazione delle autorizzazioni di runtime modificando targetSdkVersion dell'app al livello API 23.

Esegui test con varie combinazioni di autorizzazioni revocate e aggiunte, per evidenziare i flussi utente che dipendono dalle autorizzazioni. Se una dipendenza non è ovvia o logica, dovresti considerare il refactoring o la compartimentazione del flusso per eliminarla o chiarire perché è necessaria l'autorizzazione.

Per maggiori informazioni sul comportamento delle autorizzazioni di runtime, sui test e sulle best practice, consulta la pagina per gli sviluppatori sull'utilizzo delle autorizzazioni di sistema.

Test di sospensione e standby delle app

Le funzionalità di risparmio energetico di Sospensione e Standby delle app limitano la quantità di elaborazione in background che la tua app può eseguire quando un dispositivo è in stato inattivo o quando l'app non è attiva. Le limitazioni che il sistema potrebbe imporre alle app includono accesso alla rete limitato o nullo, attività in background sospese, notifiche sospese, richieste di riattivazione ignorate e sveglie. Per assicurarti che la tua app funzioni correttamente con queste ottimizzazioni di risparmio energetico, devi testare l'app simulando questi stati a bassa potenza.

Test dell'app con Sospensione

Per testare la funzionalità Sospensione con l'app:

  1. Configura un dispositivo hardware o un dispositivo virtuale con un'immagine di sistema Android 7.0 (livello API 24).
  2. Collega il dispositivo al tuo computer di sviluppo e installa l'app.
  3. Esegui l'app e lasciala attiva.
  4. Simula l'attivazione della modalità Sospensione con il dispositivo eseguendo questi comandi:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Osserva il comportamento della tua app quando il dispositivo viene riattivato. Assicurati che il ripristino avvenga correttamente quando il dispositivo esce dalla modalità Sospensione.

Test delle app con standby delle app

Per testare la modalità standby dell'app con la tua app:

  1. Configura un dispositivo hardware o un dispositivo virtuale con un'immagine di sistema Android 7.0 (livello API 24).
  2. Collega il dispositivo al tuo computer di sviluppo e installa l'app.
  3. Esegui l'app e lasciala attiva.
  4. Simula l'attivazione della modalità standby dell'app eseguendo questi comandi:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Simula il ripristino dell'app utilizzando il seguente comando:
    $ adb shell am set-idle <packageName> false
  6. Osserva il comportamento dell'app quando viene attivata. Assicurati che venga ripristinato correttamente dalla modalità standby. In particolare, devi controllare se le notifiche e i job in background dell'app continuano a funzionare come previsto.

Backup automatico per app e identificatori specifici dei dispositivi

Se nella memoria interna vengono mantenuti identificatori specifici del dispositivo, ad esempio l'ID di registrazione di Google Cloud Messaging, segui le best practice per escludere la posizione di archiviazione dal backup automatico, come descritto in Effettuare il backup dei dati utente con il backup automatico.