Android Essentials Application Logging

In questa esercitazione rapida, imparerai come utilizzare il supporto di registrazione delle applicazioni nelle tue applicazioni Android per scopi diagnostici.

Questo suggerimento rapido mostra i passaggi per incorporare il supporto di registrazione nelle applicazioni e quindi utilizzare l'utilità di registrazione LogCat per monitorare l'output del registro dell'applicazione, sull'emulatore o su un dispositivo collegato a Eclipse tramite il debugger. Questa abilità è inestimabile per i problemi di debug, anche quando sono disponibili grandi debugger per l'analisi del codice.

Passaggio 1: crea un'applicazione Android

Inizia creando un progetto Android. Implementa la tua applicazione Android normalmente. Una volta impostato il tuo progetto Android, sei pronto per procedere con questo suggerimento rapido.

Passaggio 2: Opzioni di registrazione per applicazioni Android

L'SDK di Android include una utile utility di registrazione chiamata android.util.Log. I messaggi di registrazione sono classificati in base alla severità (e alla verbosità), con gli errori più severi, quindi gli avvisi, i messaggi informativi, i messaggi di debug ei messaggi dettagliati sono i meno gravi. Ogni tipo di messaggio di registrazione ha il proprio metodo. Basta chiamare il metodo e viene creato un messaggio di registro. I tipi di messaggi e le relative chiamate di metodo sono:

  • Il metodo Log.e () viene utilizzato per registrare gli errori.
  • Il metodo Log.w () viene utilizzato per registrare gli avvisi.
  • Il metodo Log.i () viene utilizzato per registrare i messaggi informativi.
  • Il metodo Log.d () viene utilizzato per registrare i messaggi di debug.
  • Il metodo Log.v () viene utilizzato per registrare messaggi dettagliati.
  • Il metodo Log.wtf () viene utilizzato per registrare errori terribili che non dovrebbero mai accadere. ("WTF" sta per "What a Terrible Failure!", Ovviamente.)

Il primo parametro di ciascun metodo Log è una stringa denominata tag. È prassi comune definire una stringa statica globale per rappresentare l'applicazione generale o l'attività specifica all'interno dell'applicazione in modo tale che i filtri di registro possano essere creati per limitare l'output del registro a dati specifici. Ad esempio, è possibile definire una stringa denominata TAG come segue:

private static final string TAG = "MyApp"; 

Troverai spesso che il tag è definito come la classe in cui si verifica l'istruzione Log. Questa è una convenzione ragionevole, ma qualsiasi cosa possa essere identificabile o utile a te.

Ora ogni volta che usi un metodo Log, fornisci questo tag. Un messaggio di registrazione informativo potrebbe essere simile a questo:

Log.i (TAG, "Sto registrando qualcosa di informativo!"); 

È anche possibile passare un oggetto Throwable, in genere su Exception, che consentirà al log di stampare una traccia stack o altre informazioni utili.

provare  //?  catch (Eccezione eccezione) Log.e (TAG, "Ricevuta un'eccezione", eccezione);  

NOTA: la chiamata al metodo Log.wtf () stampa sempre una traccia dello stack e può causare la fine del processo con un messaggio di errore. È realmente inteso solo per errori estremi. Per la registrazione standard delle eccezioni, si consiglia di utilizzare il metodo Log.e (). Il metodo Log.wtf () è disponibile solo in Android 2.2 o versioni successive. Il resto è disponibile in tutte le versioni di Android.

Passaggio 3: aggiunta del supporto log a una classe di attività

Ora aggiungiamo alcune registrazioni alla tua classe di attività. Innanzitutto, aggiungi l'istruzione import appropriata per la classe di registrazione android.util.Log. Quindi, dichiarare un tag di registrazione da utilizzare all'interno della classe (o dell'intera applicazione); in questo caso, chiamiamo questa variabile DEBUG_TAG. Infine, aggiungi le chiamate al metodo di registrazione ovunque tu voglia l'output di registrazione. Ad esempio, è possibile aggiungere un messaggio di registro informativo nel metodo onCreate () della classe Attività.

Di seguito è riportato un esempio di codice che illustra come tutti questi passaggi si incontrano:

pacchetto com.mamlambo.simpleapp; importare android.app.Activity; importare android.os.Bundle; import android.util.Log; public class MySimpleAppActivity estende Activity string statico finale privata DEBUG_TAG = "MySimpleAppLogging"; @Override public void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.main); Log.i (DEBUG_TAG, "Informazioni su MySimpleAppActivity.");  

Passaggio 4: monitoraggio dell'output del registro dell'applicazione: la modalità semplificata

È possibile utilizzare l'utilità LogCat da Eclipse per visualizzare l'output del registro da un emulatore o dispositivo. LogCat è integrato in Eclipse utilizzando il plug-in di sviluppo Android. Troverai il pannello LogCat integrato nelle prospettive DDMS e Debug di Eclipse.

Passaggio 5: monitoraggio dell'output del registro dell'applicazione: creazione dei filtri di registro

Come si può vedere, l'output di registrazione di base di LogCat include dati di registro da molte fonti diverse. Per motivi di debug, può essere utile filtrare l'output solo sui tag per la tua applicazione specifica. In questo modo, è possibile concentrarsi sull'output del registro dell'applicazione, in mezzo a tutti gli ingombri.

È possibile utilizzare l'utilità LogCat da Eclipse per filtrare i messaggi di registro nella stringa di tag fornita per l'applicazione. Per aggiungere un nuovo filtro, fare clic sul pulsante segno più verde nel riquadro LogCat di Eclipse. Assegna un nome al filtro, magari utilizzando il nome del tag, e inserisci il tag su cui desideri filtrare. Una nuova scheda viene creata in LogCat che mostrerà solo i messaggi di log che contengono questo tag. È possibile creare filtri che visualizzano gli articoli per livello di gravità.

Considerazioni sulle prestazioni con il log

L'output della registrazione riduce le prestazioni dell'applicazione. L'uso eccessivo può comportare una riduzione delle prestazioni dell'applicazione. Al minimo, la registrazione debug e dettagliata deve essere utilizzata solo a scopo di sviluppo e rimossa prima del rilascio. È anche una buona idea rivedere altri output di registrazione prima della pubblicazione.

Conclusione

La registrazione è una tecnica di debug e diagnostica molto utile utilizzata dagli sviluppatori. Utilizza la classe di registrazione fornita come parte dell'SDK di Android per registrare informazioni importanti sulla tua applicazione in LogCat, ma assicurati di rivedere l'implementazione della registrazione dell'applicazione prima della pubblicazione, poiché la registrazione presenta inconvenienti in termini di prestazioni.

Riguardo agli Autori

Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams TeachYourself Sviluppo di applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.