Guida ai 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 al comportamento che possono influire sulla tua app, come descritto nella Panoramica delle API e nelle Modifiche del comportamento. Quando testi la tua app con questa release, devi apportare alcune modifiche specifiche al sistema per garantire agli utenti un'esperienza positiva.

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

Test delle autorizzazioni

Il nuovo modello Autorizzazioni cambia il modo in cui le autorizzazioni vengono assegnate alla tua app da parte dell'utente. Anziché concedere tutte le autorizzazioni durante la procedura di installazione, l'app deve chiedere all'utente le singole autorizzazioni in fase di runtime. Per gli utenti questo comportamento offre un controllo più granulare sulle attività di ogni app, nonché un contesto migliore per comprendere 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 le prestazioni potrebbero essere ridotte.

Questa modifica interessa tutte le app in esecuzione sulla nuova piattaforma, anche quelle che non hanno come target la nuova versione. 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 al lancio ufficiale della piattaforma.

Suggerimenti per il test

Utilizza i seguenti suggerimenti di test per pianificare ed eseguire test della tua app con il nuovo comportamento relativo alle 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 autorizzazioni e 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 le autorizzazioni.

Strategia di test

La modifica delle autorizzazioni influisce sulla struttura e sul design della tua app, nonché sull'esperienza e sui flussi che fornisci 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 la tua app e non fare affidamento su questi comportamenti.

Identifica le autorizzazioni effettivamente necessarie e utilizzate dalla tua app, quindi trova i vari percorsi del codice che utilizzano i servizi protetti da autorizzazioni. A tale scopo, puoi utilizzare una combinazione di test sulla nuova piattaforma e analisi del codice. Nei test, dovresti concentrarti sull'attivazione delle autorizzazioni di runtime modificando targetSdkVersion dell'app in 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 ulteriori informazioni sul comportamento delle autorizzazioni di runtime, sui test e sulle best practice, consulta la pagina relativa all'utilizzo delle autorizzazioni di sistema per lo sviluppatore.

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 l'app può eseguire quando un dispositivo è in stato di inattività o quando l'app non è attiva. Le restrizioni che il sistema potrebbe imporre alle app includono accesso alla rete limitato o assente, 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 testarla simulando questi stati di bassa potenza.

Test dell'app con Sospensione

Per provare la funzione Sospensione 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 computer di sviluppo e installa l'app.
  3. Esegui l'app e lasciala attiva.
  4. Simula l'attivazione della modalità Sospensione del dispositivo eseguendo questi comandi:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Osserva il comportamento dell'app quando il dispositivo viene riattivato. Assicurati che il ripristino venga eseguito correttamente quando il dispositivo esce dalla modalità Sospensione.

Test delle app con standby 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 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 attivazione 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 automaticamente 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 dell'app vengono mantenuti identificatori specifici del dispositivo, ad esempio l'ID di registrazione di Google Cloud Messaging, segui le best practice per escludere la località di archiviazione dal backup automatico, come descritto in Effettuare il backup dei dati utente con il backup automatico.