Debug delle app Android

In questo tutorial, esploreremo il set principale di strumenti di debug di cui i nuovi sviluppatori di app Android devono essere consapevoli per creare e perfezionare le loro app.


Parte 0: Introduzione

Questa serie di esercitazioni Android ha lo scopo di aiutarti a sviluppare le competenze e la sicurezza necessarie per creare app Android di alta qualità. Questo tutorial è per lo sviluppatore Java appena iniziato ad imparare lo sviluppo di app per Android, che ha una certa familiarità con Eclipse, e chi ha installato l'SDK Android e il plug-in per sviluppatori Android per Eclipse. Inoltre, dovresti sapere come creare una semplice applicazione Android (Hello World è sufficiente) per completare questo tutorial. Se non sei preparato, guarda le esercitazioni precedenti in questa serie.


Parte 1:
Creazione di configurazioni di debug in Eclipse

Nel tutorial App Android di esempio di questa serie, hai imparato come creare una configurazione Esegui in Eclipse. Le configurazioni di debug vengono create allo stesso modo, ma vengono utilizzate per configurare le opzioni per l'avvio e il debug delle applicazioni.

Per creare una configurazione di debug per la tua applicazione in Eclipse, scegli Esegui, debug configurazioni ... .

Fare doppio clic su Applicazione Android (o fare clic con il tasto destro e scegliere Nuovo). Nella prima scheda, selezionare il pulsante Sfoglia ..., selezionare il progetto Android che si desidera eseguire il debug, quindi fare clic su OK.

Ora compila il campo Nome. Di solito chiamiamo le nostre configurazioni di debug con il nome del progetto per evitare confusione, ma puoi chiamarlo come preferisci.

Nella scheda Destinazione, seleziona il pulsante di opzione "Chiedi sempre a scegliere il dispositivo".

Ora fai clic sul pulsante Debug. Dovresti ottenere la finestra di dialogo Scelta dispositivo Android. Questa finestra di dialogo mostrerà tutti i dispositivi Android attualmente connessi e le istanze dell'emulazione in esecuzione nella sezione superiore, oltre a offrire l'opzione di avviare una nuova istanza dell'emulatore tramite una configurazione AVD compatibile al volo.

Scegli l'emulatore che hai già in esecuzione e fai clic sul pulsante OK. Dopo un attimo, la tua app verrà avviata sull'emulatore o sul dispositivo e verrà visualizzata una finestra di dialogo che dice "Waiting for Debugger" mentre si collega.


Parte 2:
Esplorando la prospettiva di debug di Eclipse

Una volta che la tua applicazione è in esecuzione nell'emulatore o su un dispositivo, puoi iniziare a eseguirne il debug. La maggior parte delle funzionalità di debug di base di Eclipse e del plug-in ADT sono combinate nella prospettiva Debug per facilità d'uso.

La prospettiva Debug si apre spesso automaticamente all'avvio del debug di un'app Android, ma se non lo fa per qualche motivo, puoi sempre passare ad essa facendo clic sulla prospettiva Debug nell'angolo in alto a destra di Eclipse o andando a Finestra, Prospettiva aperta, Debug.

La prospettiva Debug ha diversi pannelli di informazioni. Puoi, ovviamente, spostarli se non ti piace come sono impostati.

Hai un pannello nell'angolo in alto a sinistra chiamato Debug, che mostra la tua applicazione, i thread. È qui che si trova la barra degli strumenti di debug che consente di collegare e scollegare il debugger e di eseguire il codice.

Nell'angolo a destra, hai un pannello che ti permette di controllare le variabili e gestire i punti di interruzione. I punti di interruzione sono posizioni nel codice in cui si contrassegna il punto in cui si desidera che il debugger sospenda l'esecuzione in modo da poter scorrere metodicamente il codice riga per riga e capire cosa sta succedendo.

Hai un pannello nel mezzo della prospettiva Debug che mostra il codice attualmente in esecuzione.

Nella parte inferiore della prospettiva Debug, hai due pannelli diagnostici: il pannello LogCat che mostra l'output di registrazione dall'emulatore o dispositivo, nonché il riquadro Console che mostra l'output della console di livello superiore da DDMS.


Parte 3:
Passaggio attraverso il codice in Eclipse

Lavoriamo attraverso un rapido esempio di debugging con Eclipse usando l'applicazione appena lanciata.

Per prima cosa, abbiamo bisogno di essere configurati poiché non c'è nulla di sbagliato nel nostro codice e il Debugger non si è fermato automaticamente a un problema. Passa alla prospettiva Java facendo clic sul pulsante Java nell'angolo in alto a destra di Eclipse. Fai doppio clic sul file della classe di attività associato alla tua applicazione per aprirlo, quindi torna alla prospettiva Debug e vedrai che il file viene visualizzato nel riquadro centrale della prospettiva Debug. Ok, ora siamo pronti per esaminare il nostro codice.

Per prima cosa, impostiamo un punto di interruzione nel codice. Ci sono molti modi per farlo. Mi piace trovare la linea su cui impostare un breakpoint, quindi fare clic con il pulsante destro del mouse sulla banda blu verticale a sinistra della riga di codice e selezionare Toggle Breakpoint dal menu o semplicemente fare clic sulla banda stessa per creare un breakpoint, attivarlo e quindi rimuoverlo. Puoi anche fare clic sulla linea su cui desideri creare un breakpoint e premere Control-Maiusc-B. Una piccola lente d'ingrandimento apparirà accanto alla riga di codice quando viene impostato il punto di interruzione. Un buon posto per impostare il tuo primo punto di interruzione sarebbe nel metodo onCreate () della tua attività.

Una volta impostato il punto di interruzione, riavviare l'applicazione in modalità di debug utilizzando la configurazione di Debug. Puoi farlo da dentro Eclipse usando la piccola icona bug sulla barra degli strumenti. Fai clic sulla freccia in giù accanto ad essa, scegli la configurazione Debug e verrà eseguita. Il debugger verrà allegato, l'applicazione verrà avviata e quindi interrotta al punto di interruzione. Vedrai una piccola freccia accanto alla linea di codice che sta per essere eseguita.

Ora puoi scorrere il tuo codice usando le funzionalità di debug di base. Queste funzioni sono disponibili nella barra degli strumenti del pannello Debug oppure è possibile utilizzare i tasti di scelta rapida associati a queste funzionalità.

Le funzionalità di debug più comuni di Eclipse di cui avrai bisogno per scorrere il tuo codice sono:

Entrare in: Utilizza questa funzione per approfondire il tuo codice passando al codice del metodo. Usalo se ritieni che il metodo che stai attualmente eseguendo necessiti di debug. Se questo metodo è ben testato e si sa che restituirà il risultato corretto, probabilmente non è necessario intervenire, ma piuttosto passare alla successiva riga di codice sullo stesso "livello" di quello precedente. Premere F5 per accedere al codice.

Scavalcare: Utilizzare questa funzione per passare alla riga di codice successiva allo stesso livello della precedente. Premere F6 per passare al codice.

Passo ritorno: Utilizzare questa funzione se si è nel mezzo del passaggio a un metodo e oltre l'area del metodo che si desidera esaminare. Il metodo corrente finirà e si aprirà la riga successiva di esecuzione dopo che è stato restituito il metodo in modo da poter continuare il debug. Premere F7 per tornare indietro.

Curriculum vitae: Fatto con questa piccola sessione di debug e vuoi che l'app ricominci a funzionare (fino al raggiungimento del prossimo punto di interruzione)? Quindi utilizzare la funzione Riprendi. Premere F8 per riprendere a correre senza fare un passo.

Terminare: Fatto con questa piccola sessione di debug e vuoi che l'app smetta di funzionare del tutto? Quindi utilizzare la funzione Termina. Premi Control-F2 per terminare l'esecuzione.


Parte 4:
Visualizzazione della registrazione diagnostica con Logcat

La registrazione o la stampa di informazioni diagnostiche dall'interno del codice può essere un modo utile per diagnosticare problemi, in particolare le condizioni di gara o problemi legati al tempo che non si verificano facilmente quando si procede con cautela nel codice. In questo caso, il tuo codice funziona come di consueto, ma puoi stampare tutte le informazioni che ti interessano mentre vengono eseguite. È possibile visualizzare queste informazioni diagnostiche dal riquadro LogCat della prospettiva Debug. È inoltre possibile accedere all'output di Logcat in diversi modi, dallo strumento DDMS, alla prospettiva DDMS all'interno di Eclipse o dallo strumento da riga di comando adb, ad esempio.

L'aggiunta dell'output di log LogCat all'applicazione è semplice ma richiede la modifica del codice Java dell'app e la ricompilazione. Inoltre, la registrazione rallenterà l'applicazione in una certa misura, quindi è sempre necessario rimuovere la registrazione dall'applicazione prima di rilasciarla al pubblico. Scopri di più sulla registrazione di Android in Android Essentials: Application Logging.


Conclusione

In questo tutorial, hai imparato le basi del debug delle applicazioni Android con Eclipse e il plugin ADT. Hai imparato come navigare in Eclipse in modalità di debug, usando la prospettiva Debug e come scorrere il codice e visualizzare l'output di log Logcat. Hai imparato a fare il debug su entrambi gli emulatori e i dispositivi. Ora hai una conoscenza delle competenze di base necessarie per iniziare a sviluppare applicazioni Android reali. Sei sulla buona strada per lo sviluppo di Android. Quali tipi di app non vedi l'ora di creare? Quale app di esempio è stata la tua preferita? Fateci sapere nei commenti!

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 (ora nella sua terza edizione come un set di due volumi), Sams ti insegna a sviluppare applicazioni Android in 24 ore, e Apprendimento della programmazione di applicazioni Android per Kindle Fire: una guida pratica per creare la tua prima applicazione Android. 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.

Hai bisogno di più aiuto nella scrittura di app per Android? Consulta i nostri ultimi libri e risorse!