Android Studio per principianti, parte 4: strumenti di debug e plug-in di produttività

Aggiornato: gennaio 2020.

Android Studio offre una ricca tavolozza di strumenti di sviluppo integrati e un ecosistema di plug-in ancora più abbondante. I primi tre articoli di questa serie si sono concentrati sull'installazione, la configurazione, la codifica e l'esecuzione di una semplice app mobile con Android Studio. Ora conoscerai alcuni degli strumenti più avanzati: tre strumenti integrati e tre plug-in per il debug e il miglioramento della qualità e della produttività del codice dell'applicazione Android.

Questo articolo introduce i seguenti strumenti per Android Studio:

Strumenti di debug integrati

  • Logcat
  • Debug
  • Lint

Plugin per la produttività degli sviluppatori

  • Idea di ADB
  • Codota
  • Plugin Lombok

Novità di Android Studio 3.5

Scopri cosa cercare nell'ultima versione di Android Studio, incluso il supporto per Kotlin e miglioramenti alla gestione della memoria e alla reattività dell'interfaccia utente.

Registrazione e debug delle app Android

Un'app con bug è un modo sicuro per allontanare potenziali clienti. Logcat e Debug sono due strumenti integrati in Android Studio, che puoi utilizzare per identificare e correggere i bug nel tuo codice Android.

Registrazione di Android: Logcat

Potrebbe non essere necessario o non volere un debugger completo per ogni scenario di "bug". In alcuni casi è sufficiente registrare e correggere i valori di determinate variabili. Logcat di Android Studio è perfetto per questo compito.

Logcat è uno strumento da riga di comando (integrato in Android Debug Bridge - ADB) che scarica un registro dei messaggi di sistema che può aiutarti a trovare e risolvere i problemi nel tuo codice. I messaggi includono le tracce dello stack per quando il dispositivo genera un errore e i messaggi di registro che hai incorporato di proposito con la android.util.Logclasse. Logcat è così utile che è stato integrato direttamente in Android Studio, dove puoi accedervi dal menu Visualizza o dalla barra della finestra degli strumenti.

Jeff Friesen

La finestra Logcat è suddivisa in una riga orizzontale di elenchi a discesa e altri controlli seguiti da un'area dei messaggi. Da sinistra a destra, i controlli sono:

  • Un elenco a discesa che identifica i dispositivi collegati e gli emulatori. (Vedi figura 1.)
  • Un elenco a discesa che identifica i pacchetti APK installati sul dispositivo selezionato.
  • Un elenco a discesa dei livelli di registrazione:
    • Verbose: mostra tutti i messaggi.
    • Debug: mostra i messaggi del registro di debug che sono utili solo durante lo sviluppo, così come i livelli dei messaggi più in basso nell'elenco a discesa.
    • Informazioni: mostra i messaggi di registro previsti per un uso regolare, nonché i livelli dei messaggi più in basso nell'elenco a discesa.
    • Avvisa: mostra i possibili problemi che non sono ancora errori, nonché i livelli dei messaggi più in basso nell'elenco a discesa.
    • Errore: mostra i problemi che hanno causato errori, eccezioni generate, nonché il livello di messaggio di asserzione.
    • Afferma: mostra i problemi che lo sviluppatore si aspetta non dovrebbero mai verificarsi.
  • Una barra di ricerca in cui gli unici messaggi che compaiono sono quelli contenenti il ​​testo digitato in questo controllo.
  • Una casella di controllo che ti consente di utilizzare espressioni regolari nella barra di ricerca. Ad esempio, nel contesto della Figura 1, è possibile specificare SystemClock | AlarmManager (cioè, il messaggio deve contenere una delle due parole).
  • Un elenco a discesa per filtrare i messaggi, incluse le seguenti opzioni:
    • Nessun filtro (impostazione predefinita) fa sì che tutti i messaggi per il dispositivo selezionato vengano visualizzati, indipendentemente dal pacchetto APK selezionato.
    • Mostra solo l'applicazione selezionata presenta solo quei messaggi per il pacchetto APK selezionato sul dispositivo selezionato, che sono del livello di registro appropriato o inferiore.
    • Modifica configurazione filtro consente di creare un filtro personalizzato.

Nel codice sorgente è possibile inserire chiamate a vari android.util.Logmetodi per registrare i messaggi. Ad esempio, potresti chiamare public static int i(String tag, String msg)per registrare un INFOmessaggio di livello o public static int w(String tag, String msg)per registrare un WARNmessaggio di livello.

Per entrambi i metodi, la stringa passata a tagidentifica l'origine del messaggio (ad esempio, il metodo in cui è stato chiamato questo metodo di registrazione) e la stringa passata msgidentifica il messaggio che viene registrato.

In alternativa, si potrebbe chiamare System.out's e System.err' s print()e println()metodi. Le chiamate ai System.outmetodi hanno la stessa funzione delle log.i()chiamate; le chiamate ai System.errmetodi eseguono la stessa operazione delle log.w()chiamate.

Jeff Friesen

Nella Figura 2, gli unici messaggi visualizzati sono per il processo dell'app di esempio in esecuzione sul dispositivo Nexus 5X emulato. Inoltre, questi messaggi devono contenere onCreateed essere accettati dal filtro Mostra solo applicazioni selezionate .

Ulteriori informazioni su Logcat

Controlla "Scrivi e visualizza log con Logcat" di Google per saperne di più su Logcat. Studia anche la android.util.Logdocumentazione della classe.

Debug di Android: debug

L'utilizzo di Logcat per registrare e correggere il codice va bene per app molto semplici. Per app più complicate, questa forma di debug può essere noiosa. Invece vorrai qualcosa che ti consenta di eseguire il debug del codice eseguibile dell'app. Lo strumento di debug integrato di Android Studio offre molte funzionalità, incluse le seguenti:

  • Seleziona un dispositivo su cui eseguire il debug della tua app.
  • Imposta i punti di interruzione nel codice dell'applicazione (Java, Kotlin o C / C ++).
  • Esamina le variabili e valuta le espressioni in fase di esecuzione.

Esistono alcuni prerequisiti prima di utilizzare questo strumento di debug:

  1. Se la tua app include codice sorgente C / C ++, dovrai installare LLDB da SDK Manager (vedi Figura 3). Fortunatamente, l'app di esempio per questa serie ( W2A ) non contiene codice C / C ++, quindi possiamo ignorare questo prerequisito.

    Jeff Friesen

  2. È necessario abilitare il debug su un dispositivo connesso. Tuttavia, se stai usando un emulatore (che siamo per questo esempio), puoi ignorare questo prerequisito. Il debug è abilitato per impostazione predefinita sui dispositivi emulati.
  3. È necessario eseguire una variante di build debuggabile. Per impostazione predefinita, questo viene creato per te, quindi in molti casi (incluso questo esempio) non devi preoccupartene.

Esaminiamo una rapida sessione di debug.

Debug Android semplice

Supponendo che tu stia eseguendo Android Studio con la finestra dell'editor per l'app di esempio ( W2A.java ) aperta, il primo passaggio è impostare un punto di interruzione sulla public void onCreate(Bundle savedInstanceState)riga. Impostare il punto di interruzione evidenziando questa riga ed effettuando una delle seguenti operazioni:

  • Fare clic sull'area di rilegatura a sinistra della linea; la linea dovrebbe diventare rosa in risposta.
  • Seleziona Attiva / disattiva punto di interruzione di riga dal menu Esegui .
  • Premi contemporaneamente Ctrl e F8 .

Ora seleziona Debug "app" dal menu Esegui o fai clic sull'icona appropriata sulla barra degli strumenti. Se l'emulatore non è in esecuzione, osserverai la finestra di dialogo Seleziona destinazione di distribuzione . Ho selezionato Nexus 5X API 15 e ho fatto clic su OK .

Mentre aspetti che il dispositivo emulato sia online, fai clic sul pulsante Debug sulla barra della finestra degli strumenti per visualizzare la finestra Debug . Alla fine, dovresti vedere qualcosa di simile alla Figura 4.

Jeff Friesen

La finestra Debug fornisce icone per passare da un metodo all'altro, entrare e uscire e altro ancora. La Figura 5 mostra cosa succede quando si passa sopra a un metodo.

Jeff Friesen

Fare clic sull'icona appropriata e selezionare Step Over dal menu Esegui o premere F8 . Questo ci consente di procedere più in profondità nel onCreate()metodo mentre scavalchiamo ogni chiamata al metodo.

Seleziona la riga con il }carattere di chiusura per il onCreate()metodo, quindi seleziona Run to Cursor . Riceverai un avviso che l'applicazione è in esecuzione. Dopo aver sbloccato il dispositivo, dovresti vedere la finestra delle attività dell'app di esempio.

Jeff Friesen

Ulteriori informazioni sul debug

Controlla "Debug della tua app" di Google per ulteriori informazioni sul debug in Android Studio; ad esempio, come utilizzare vari tipi di punti di interruzione.

Debug con GAPID

Anche se non trattato qui, ti consiglio di controllare GAPID: Graphics API Debugger, una raccolta di strumenti di debug che ti consentono di ispezionare, modificare e riprodurre le chiamate da un'app Android a un driver grafico.

Ispezione del codice con Lint

Non importa quanto attentamente lo scrivi, è probabile che il tuo codice sorgente contenga bug, problemi stilistici e potrebbe fare riferimento a risorse che sono inattive per un motivo o per l'altro. Un linter è un tipo di strumento che esegue la scansione del codice sorgente per la prova di questi e altri pezzi di brutto pasticcio, che riporta allo sviluppatore.

Lint è un linter integrato per Android SDK. Puoi utilizzarlo per individuare problemi come elementi obsoleti e chiamate API che non sono supportati dall'API di destinazione.

Per eseguire Lint da Android Studio, seleziona Inspect Code ... dal menu Analizza . In questo modo si attiva la finestra di dialogo Specifica l'ambito di ispezione .

Jeff Friesen

Dalla finestra di dialogo, selezionare l'ambito desiderato (l'intero progetto, in questo caso), quindi fare clic su OK per iniziare l'ispezione. I risultati verranno visualizzati nella finestra Risultati dell'ispezione , dove sono organizzati per categoria.

Jeff Friesen

Fedele alla sua natura, Lint ha individuato alcuni pezzi di lanugine che altrimenti potrebbero ingombrare il codice dell'applicazione. Una volta individuati, è facile correggere i tre avvisi Java mostrati nella Figura 8: è sufficiente dichiarare androidAnimationprivatee rimuovere i cast dalle due findViewById()chiamate di metodo.

Ulteriori informazioni su Lint

Consulta "Migliora il tuo codice con i controlli di lanugine" per ulteriori informazioni sull'utilizzo di Lint in Android Studio e per conoscere lo strumento Lint autonomo di Android SDK.

Installazione e utilizzo dei plugin di Android Studio

Mentre gli strumenti integrati hanno il loro merito, molti altri strumenti sono disponibili come plugin. In questa sezione, esamineremo tre plugin per migliorare la produttività della tua codifica in Android Studio:

  • Idea di ADB
  • Codota
  • Plugin Lombok

Gestore dei plugin di Android Studio

Il gestore dei plug-in di Android Studio semplifica la ricerca e l'installazione dei plug-in. Attiva il gestore dei plugin selezionando File > Impostazioni seguito da Plugin dalla finestra di dialogo Impostazioni :

Jeff Friesen

Quindi, fare clic su Sfoglia repository ... per attivare la finestra di dialogo Sfoglia repository , che presenta un elenco completo dei plug-in supportati. Useremo questa finestra di dialogo per selezionare il nostro primo plugin, ADB Idea.

Jeff Friesen

Migliora la tua produttività Android

Scorciatoie del codice: ADB Idea

ADB Idea accelera lo sviluppo quotidiano di Android fornendo un accesso rapido ai comandi ADB di uso comune, come l'avvio e la disinstallazione di un'app.

Seleziona ADB Idea nell'elenco dei plug-in del repository, quindi fai clic sul pulsante Installa . Android Studio procede al download e all'installazione del plug-in. Quindi rinomina Installa per riavviare Android Studio . Per ogni plug-in, ho dovuto riselezionare il plug-in dopo aver fatto clic su Riavvia Android Studio , quindi fare clic su questo pulsante una seconda volta per riavviare Android Studio.

Jeff Friesen

Una volta installato, Android Studio ti consente di accedere a ADB Idea dal suo menu Strumenti . Seleziona Strumenti> Idea ADB e scegli il comando appropriato dal menu a comparsa risultante.

Jeff Friesen

Dopo aver selezionato l' app di riavvio ADB , ho osservato i seguenti messaggi nella finestra Registro eventi e l'app riavviata sul mio dispositivo Amazon Kindle.

Jeff Friesen

Trova codice utilizzabile: Codota

Puoi utilizzare il plug-in Codota per accedere al motore di ricerca Codota, che ti consente di cercare tra milioni di frammenti di codice sorgente Java disponibili pubblicamente per trovare soluzioni ai problemi di codifica di Android.

Jeff Friesen

Seleziona Codota nell'elenco dei plug-in del repository, quindi fai clic sul pulsante Installa . Dopo che Android Studio ha scaricato e installato il plug-in, verrà rinominato il pulsante Installa per riavviare Android Studio . Il riavvio attiva Codota.

Al riavvio, incontrerai la finestra di dialogo Autenticazione Codota . Fare clic sul collegamento e seguire le istruzioni per ricevere il token. Quindi, incolla il token nella suddetta finestra di dialogo e fai clic su Vai .

Jeff Friesen

Android Studio consente di accedere a Codota facendo clic con il pulsante destro del mouse sul codice Java nella finestra dell'editor e selezionando la voce di menu Ottieni esempi pertinenti , come mostrato nella Figura 16.

Jeff Friesen

Facendo clic su questa voce di menu, il browser presenta una pagina con esempi di codice pertinenti. Ad esempio, la pagina seguente presenta esempi rilevanti per findViewById:

Jeff Friesen

Genera automaticamente codice Java: Lombok

Project Lombok offre una serie di annotazioni che puoi utilizzare al posto del codice boilerplate, risparmiando così tempo scrivendo questo codice a mano.

Jeff Friesen

Seleziona Lombok Plugin nell'elenco dei plug-in del repository, quindi fai clic su Installa . Dopo che Android Studio ha scaricato e installato il plug-in, ti verrà chiesto di riavviare Android Studio . Il riavvio attiva il plugin Lombok.