Guida completa al debug delle applicazioni Android con Logcat

  • Utilizzo della classe Log e dei suoi diversi livelli di prioritĆ  per classificare i messaggi di sistema e per il debug.
  • Padronanza della finestra Logcat in Android Studio, inclusi i filtri avanzati tramite coppie chiave-valore ed espressioni regolari.
  • Analisi degli errori critici tramite tracciamento dello stack e rilevamento dei guasti in tempo reale.
  • Gestione di più visualizzazioni, schede e strumenti esterni per ottimizzare la lettura dei record.

Android con Logcat

Quando ci si addentra nel mondo dello sviluppo Android, prima o poi ci si imbatte in quell'errore generico che impedisce di progredire e fa impazzire. Per evitare di brancolare nel buio, lo strumento fondamentale è Logcat , una finestra essenziale di Android Studio che mostra in tempo reale tutto ciò che accade sul dispositivo, dai messaggi programmati agli avvisi di sistema.

Immaginate Logcat come la scatola nera di un aereo: registra ogni passaggio, ogni eccezione e ogni stack trace , permettendovi di risalire direttamente alla riga di codice che causa il problema. Se sapete come leggerlo e filtrarlo, passerete da ore a cercare un bug a risolverlo in un paio di clic.

Iniziamo: come avviare Logcat

Per iniziare a vedere cosa succede "dietro le quinte", il primo passo è compilare ed eseguire l'applicazione, su un emulatore o su un dispositivo mobile fisico. Fatto ciò, è sufficiente andare nel menu in alto e seguire il percorso Visualizza > Finestre degli strumenti > Logcat . Per impostazione predefinita, la console scorre automaticamente fino all'ultima riga, ma se si inizia a scorrere verso l'alto, questa funzione si interrompe. Per riprendere lo scorrimento automatico, fare clic sul pulsante Scorri fino alla fine nella barra degli strumenti.

Comprendere l'anatomia di un disco

Non tutti i messaggi in Logcat sono uguali. Ogni voce contiene una serie di dati: data, timestamp, ID del processo e del thread , un tag, il nome del pacchetto e, cosa molto importante, la prioritĆ . I ​​colori sono molto utili per identificare visivamente cosa ĆØ un avviso e cosa ĆØ un errore catastrofico.

Comandi ed esempi di Android Debug Bridge (ADB)-0
Articolo correlato:
Android Debug Bridge (ADB): guida completa ai comandi e agli esempi in spagnolo

Per quanto riguarda la priorità, abbiamo una scala che va dalla meno rilevante alla più grave: VERBOSE, DEBUG, INFO, WARNING, ERROR e ASSERT . Ad esempio, se vedi una voce di registro con priorità DEBUG ed etichetta ProfileInstaller, saprai che si tratta di informazioni tecniche di debug e non necessariamente di un errore di sistema.

Come generare i propri log

Per evitare di affidarsi esclusivamente ai messaggi di sistema, ĆØ possibile utilizzare la classe Log nel proprio codice. Si consiglia vivamente di definire una costante globale, solitamente chiamata TAG , contenente il nome della classe corrente; in questo modo si saprĆ  esattamente da dove proviene il messaggio. Per scrivere nel log, sono disponibili diversi metodi a seconda dell'urgenza: Log.v() per la modalitĆ  dettagliata , Log.d() per il debug, Log.i() per informazioni generali, Log.w() per avvisi e Log.e() per errori critici.

Visualizzazione della personalizzazione e della gestione

Se la quantitĆ  di dati ti sembra eccessiva, puoi passare alla visualizzazione compatta tramite le opzioni di formattazione di Logcat. Puoi anche andare su Modifica visualizzazioni per scegliere se nascondere gli ID di processo o i timestamp. Se i colori non ti piacciono, puoi modificarli nelle impostazioni dell'editor in Schema colori > Android Logcat.

Comandi ADB per identificare e risolvere gli errori di Android
Articolo correlato:
Comandi ADB per identificare e risolvere gli errori Android: guida completa

Per chi ha bisogno di analizzare più elementi contemporaneamente, Android Studio permette di aprire più schede di Logcat o persino di dividere lo schermo utilizzando l' opzione "Dividi pannelli" . Questa funzione è incredibilmente utile per confrontare due set di log diversi senza dover passare continuamente da una finestra all'altra.

L'arte del filtraggio: Ricerche avanzate

La ricerca di una parola chiave è basilare, ma il vero potere risiede nella coppie chiave-valoreSe premi Ctrl + Spazio nel campo di ricerca, vedrai alcuni suggerimenti molto utili. Alcune delle parole chiave più efficaci sono: etichetta: per filtrare per tag, pacchetto: per il nome dell'app, livello: per vedere gli errori solo al di sopra di un certo livello e età: per visualizzare i registri degli ultimi secondi, minuti o ore (ad esempio, age:5m).

Se vuoi essere più preciso, puoi usare il negazione mettendo un trattino prima (come -tag:MyTag) oppure utilizzare espressioni regolari aggiungendo un segno di accentotag~:My.*Tag). Inoltre, puoi combinare tutto questo con operatori logici come & (AND) e | (OR) insieme alle parentesi per creare filtri complessi, come (tag:foo | level:ERROR) & package:mine.

Trucchi speciali e strumenti esterni

Android con Logcat

Esistono query rapide che possono rivelarsi estremamente utili, come `package:mine` , che filtra automaticamente tutto ciò che è correlato al progetto aperto. È inoltre possibile utilizzare la parola chiave `is:crash` per accedere direttamente ai crash Java o nativi e ` is:stacktrace` per individuare le tracce dello stack. Se si utilizza una query quotidianamente, è possibile contrassegnarla con una stella nella cronologia per accedervi più facilmente.

Accesso alle segnalazioni di bug in Android-0
Articolo correlato:
Come accedere e comprendere le segnalazioni di bug su Android

A volte, l'ambiente di Android Studio non ĆØ sufficiente e si ha bisogno di strumenti esterni. Applicazioni come LogCat Analyzer consentono di importare file .logcat e rilevare automaticamente problemi di memoria (OutOfMemoryError), errori di rete o cicli infiniti. Esistono anche visualizzatori di logcat , sebbene molti richiedano i permessi di root per leggere tutti i log di sistema, consentendo di sospendere la lettura o personalizzare la dimensione del buffer dei log.

Padroneggiare il flusso di informazioni, dalla scrittura di un'istruzione Log.d() al filtraggio degli errori tramite espressioni regolari nella console, è ciò che distingue uno sviluppatore principiante da un esperto. Utilizzare correttamente i livelli di priorità , organizzare la visualizzazione in pannelli e sfruttare gli strumenti di analisi degli arresti anomali consente di rendere il debug un processo logico ed efficiente, anziché una disperata ricerca di bug. Condividi questa guida affinché anche altri utenti possano apprenderla.


Aggiungi come fonte preferita in Google