Acquisisci e leggi le segnalazioni di bug

Una segnalazione di bug contiene log del dispositivo, analisi dello stack e altre informazioni diagnostiche per aiutarti a trovare e correggere i bug nella tua app. Per acquisire una segnalazione di bug dal tuo dispositivo, usa l'opzione per sviluppatori Crea segnalazione di bug sul dispositivo, il menu dell'emulatore Android o il comando adb bugreport sulla macchina di sviluppo.

Figura 1. Opzioni sviluppatore su un dispositivo.

Per creare una segnalazione di bug, devi attivare le Opzioni sviluppatore sul dispositivo per accedere all'opzione Crea segnalazione di bug.

Acquisire una segnalazione di bug da un dispositivo

Figura 2. La segnalazione di bug è pronta.

Per ricevere una segnalazione di bug direttamente dal tuo dispositivo:

  1. Abilita le Opzioni sviluppatore.
  2. In Opzioni sviluppatore, tocca Crea segnalazione di bug.
  3. Seleziona il tipo di segnalazione di bug che vuoi e tocca Segnala.

    Dopo qualche istante, riceverai una notifica che ti informa che la segnalazione di bug è pronta, come mostrato nella Figura 2.

  4. Per condividere la segnalazione di bug, tocca la notifica.

Acquisire una segnalazione di bug dall'emulatore Android

Dall'emulatore di Android, puoi utilizzare la funzionalità Segnala un bug nei controlli estesi:

  1. Fai clic su Altro nel riquadro Emulatore.
  2. Nella finestra Controlli estesi, seleziona Segnalazione di bug.

    Viene visualizzata una schermata in cui puoi vedere i dettagli della segnalazione di bug, ad esempio lo screenshot, le informazioni di configurazione della durata di visualizzazione media e il log della segnalazione di bug. Puoi anche digitare un messaggio con i passaggi di riproduzione per salvarlo insieme al report.

  3. Attendi il completamento della raccolta della segnalazione di bug, poi fai clic su Salva segnalazione.

Acquisisci una segnalazione di bug utilizzando adb

Se hai collegato un solo dispositivo, puoi ricevere una segnalazione di bug utilizzando adb, come indicato di seguito:

$ adb bugreport E:\Reports\MyBugReports

Se non specifichi un percorso per la segnalazione di bug, questa viene salvata nella directory locale.

Se hai più dispositivi connessi, devi specificare il dispositivo tramite l'opzione -s. Esegui i comandi adb seguenti per ottenere il numero di serie del dispositivo e generare la segnalazione di bug:

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

Salva una segnalazione di bug precedente

Per impostazione predefinita, le segnalazioni di bug vengono salvate all'indirizzo /bugreports e possono essere visualizzate utilizzando il seguente comando:

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

Puoi quindi estrarre il file ZIP tramite adb pull:

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

Esamina il file ZIP della segnalazione di bug

Per impostazione predefinita, il file ZIP è denominato bugreport-BUILD_ID-DATE.zip. Il file ZIP può contenere più file, ma il file più importante è bugreport-BUILD_ID-DATE.txt. Questa è la segnalazione di bug, che contiene gli output diagnostici per i servizi di sistema (dumpsys), i log degli errori (dumpstate) e i log dei messaggi di sistema (logcat). I messaggi di sistema includono analisi dello stack quando il dispositivo genera un errore e i messaggi scritti da tutte le app con la classe Log.

Il file ZIP contiene un file di metadati version.txt che contiene la lettera di rilascio di Android. Quando systrace è abilitato, il file ZIP contiene anche un file systrace.txt. Lo strumento Systrace aiuta ad analizzare le prestazioni dell'app acquisendo e visualizzando i tempi di esecuzione dei processi dell'app e di altri processi di sistema Android.

Lo strumento dumpstate copia i file dal file system del dispositivo nel file ZIP che si trova nella cartella FS in modo da potervi fare riferimento. Ad esempio, un file /dirA/dirB/fileC nel dispositivo genera una voce FS/dirA/dirB/fileC nel file ZIP.

Figura 3. La struttura del file della segnalazione di bug.

Per ulteriori informazioni, consulta la sezione Lettura delle segnalazioni di bug.

Ricevi report dagli utenti

L'acquisizione di segnalazioni di bug è utile quando utilizzi l'app autonomamente, ma gli utenti finali non possono condividere facilmente questi tipi di segnalazioni di bug con te. Per ottenere report sugli arresti anomali con analisi dello stack di utenti reali, sfrutta le funzionalità di Crash Reporting di Google Play e Firebase.

Google Play Console

Puoi ricevere report da Google Play Console per visualizzare i dati relativi agli errori di applicazioni che non rispondono (ANR) e ad arresti anomali degli utenti che hanno installato la tua app da Google Play. Sono disponibili i dati relativi ai sei mesi precedenti.

Per ulteriori informazioni, consulta la pagina Visualizzare gli errori relativi ad applicazioni che non rispondono (ANR) e arresti anomali nella guida di Play Console.

Firebase Crash Reporting

I report di Firebase Crashlytics creano report dettagliati sugli errori nella tua app. Gli errori vengono raggruppati in problemi in base ad analisi dello stack simili e suddivisi in base alla gravità dell'impatto sugli utenti. Oltre ai report automatici, puoi registrare eventi personalizzati per acquisire i passaggi che hanno portato a un arresto anomalo.

Per iniziare a ricevere report sugli arresti anomali da qualsiasi utente, aggiungi le dipendenze di Firebase al file build.gradle. Per ulteriori informazioni, consulta Firebase Crashlytics.