Programmering

Android Studio for nybegynnere, del 4: Feilsøkingsverktøy og produktivitetstillegg

Oppdatert: januar 2020.

Android Studio tilbyr en rik palett med innebygde utviklingsverktøy, og et enda rikere plugin-økosystem. De tre første artiklene i denne serien fokuserte på installasjon og oppsett og koding og kjøring av en enkel mobilapp med Android Studio. Nå blir du kjent med noen av de mer avanserte verktøyene: tre innebygde verktøy og tre plugins for feilsøking og forbedring av kvaliteten og produktiviteten til Android-applikasjonskoden.

Denne artikkelen introduserer følgende verktøy for Android Studio:

Innebygde feilsøkingsverktøy

  • Logcat
  • Feilsøk
  • Lint

Plugins for utviklerproduktivitet

  • ADB-idé
  • Codota
  • Lombok Plugin

Hva er nytt i Android Studio 3.5

Finn ut hva du skal se etter i den nyeste versjonen av Android Studio, inkludert støtte for Kotlin og forbedringer av minneadministrasjon og UI-respons.

Logge og feilsøke Android-apper

En buggy-app er en sikker måte å drive potensielle kunder bort. Logcat og Debug er to verktøy som er innebygd i Android Studio, som du kan bruke til å identifisere og fikse feil i Android-koden din.

Logging Android: Logcat

Du trenger kanskje ikke eller vil ha en fullverdig feilsøking for hvert "buggy" -scenario. I noen tilfeller er det tilstrekkelig å logge og korrigere verdiene til visse variabler. Android Studios Logcat er perfekt for denne oppgaven.

Logcat er et kommandolinjeverktøy (integrert i Android Debug Bridge - ADB) som dumper a Logg av systemmeldinger som kan hjelpe deg med å finne og løse problemer i koden din. Meldinger inkluderer stakkspor for når enheten kaster en feil, og loggmeldinger som du målrettet har innebygd med android.util.Log klasse. Logcat er så nyttig at den er integrert direkte i Android Studio, hvor du kan få tilgang til den fra Utsikt menyen eller verktøylinjelinjen.

Jeff Friesen

De Logcat vinduet er delt inn i en horisontal rad med rullegardinlister og andre kontroller etterfulgt av et meldingsområde. Fra venstre til høyre er kontrollene:

  • En rullegardinliste som identifiserer tilkoblede enheter og emulatorer. (Se figur 1.)
  • En rullegardinliste som identifiserer installerte APK-pakker på den valgte enheten.
  • En rullegardinliste over loggningsnivåer:
    • Utdypende: Vis alle meldinger.
    • Feilsøking: viser feilsøkingsloggmeldinger som bare er nyttige under utvikling, samt meldingsnivåene lavere i rullegardinlisten.
    • Info: viser forventede loggmeldinger for vanlig bruk, samt meldingsnivåene lavere i rullegardinlisten.
    • Advarsel: Vis mulige problemer som ennå ikke er feil, samt meldingsnivåene lavere i rullegardinlisten.
    • Feil: Vis problemer som har forårsaket feil - kastede unntak, så vel som meldingsnivået Assert.
    • Påstand: Vis problemer som utvikleren forventer at aldri skal skje.
  • En søkefelt der de eneste meldingene som vises er de som inneholder teksten du skriver inn i denne kontrollen.
  • En avkrysningsrute som lar deg bruke vanlige uttrykk i søkefeltet. For eksempel, i sammenheng med figur 1, kan du spesifisere SystemClock | AlarmManager (dvs. meldingen må inneholde et av ordene).
  • En rullegardinliste for filtrering av meldinger, inkludert følgende alternativer:
    • Ingen filtre (standard) får alle meldinger til den valgte enheten til å vises, uavhengig av valgt APK-pakke.
    • Vis bare valgt program presenterer bare de meldingene for den valgte APK-pakken på den valgte enheten, som har riktig loggnivå eller lavere.
    • Rediger filterkonfigurasjon lar deg lage et tilpasset filter.

I kildekoden kan du sette inn samtaler til forskjellige android.util.Log metoder for å logge meldinger. For eksempel kan du ringe offentlig statisk int i (String tag, String msg) for å logge en INFO-nivåmelding, eller offentlig statisk int w (String tag, String msg) å logge a VARSLE-nivåmelding.

For begge metodene sendes strengen til stikkord identifiserer meldingens kilde (f.eks. metoden som denne loggningsmetoden ble kalt til), og strengen sendt til msg identifiserer meldingen som logges.

Alternativt kan du ringe System.outog System.errs skrive ut() og println () metoder. Ringer til System.out metoder oppnår det samme som log.i () samtaler; ringer til System.err metoder oppnår det samme som log.w () ringer.

Jeff Friesen

I figur 2 er de eneste meldingene som vises for app-prosessen som kjører på den emulerte Nexus 5X-enheten. Videre må disse meldingene inneholde onCreate og bli akseptert av Vis bare valgt program filter.

Mer om Logcat

Ta en titt på Googles "Skriv og vis logger med Logcat" for å lære mer om Logcat. Studer også android.util.Log klassens dokumentasjon.

Feilsøking Android: Feilsøking

Å bruke Logcat til å logge og korrigere kode er greit for veldig enkle apper. For mer kompliserte apper kan denne formen for feilsøking være kjedelig. I stedet vil du ha noe som lar deg feilsøke appens kjørbare kode. Android Studios innebygde feilsøkingsverktøy tilbyr mange muligheter, inkludert følgende:

  • Velg en enhet du vil feilsøke appen din på.
  • Sett brytepunkter i applikasjonskoden (Java, Kotlin eller C / C ++).
  • Undersøk variabler og vurder uttrykk ved kjøretid.

Det er noen forutsetninger før du bruker dette feilsøkingsverktøyet:

  1. Hvis appen din inneholder C / C ++ kildekode, må du installere LLDB fra SDK Manager (se figur 3). Heldigvis er eksempelappen for denne serien (W2A) inneholder ikke C / C ++ - kode, så vi kan ignorere denne forutsetningen.

    Jeff Friesen

  2. Du må aktivere feilsøking på en tilkoblet enhet. Imidlertid, hvis du bruker en emulator (som vi er for dette eksemplet), kan du ignorere denne forutsetningen. Feilsøking er aktivert som standard på emulerte enheter.
  3. Du må kjøre en variant som kan feilsøkes. Som standard er dette opprettet for deg, så i mange tilfeller (inkludert dette eksemplet) trenger du ikke å bekymre deg for det.

La oss gå gjennom en rask feilsøkingsøkt.

Enkel Android-feilsøking

Forutsatt at du kjører Android Studio med redigeringsvinduet for eksempelappen (W2A.java) Åpne, ditt første trinn er å sette et brytpunkt på public void onCreate (Bundle savedInstanceState) linje. Sett brytepunktet ved å markere denne linjen og gjøre ett av følgende:

  • Klikk på takrenneområdet til venstre for linjen; linjen skal bli rosa som svar.
  • Å velge Bytt linjens brytpunkt fra Løpe Meny.
  • trykk Ctrl og F8 samtidig.

Velg nå Feilsøk 'app' fra Løpe menyen, eller klikk på det aktuelle ikonet på verktøylinjen. Hvis emulatoren ikke kjører, vil du observere Velg Distribusjonsmål dialogboks. Jeg valgte Nexus 5X API 15 og klikket OK.

Mens du venter på at den emulerte enheten skal komme online, klikker du på Feilsøk -knappen på verktøylinjelinjen for å vise Feilsøk vindu. Til slutt bør du se noe som ligner på figur 4.

Jeff Friesen

De Feilsøk vinduet gir ikoner for å gå over, inn og ut av en metode og mer. Figur 5 viser hva som skjer når vi tråkke over en metode.

Jeff Friesen

Klikk på det aktuelle ikonet og velg Tråkke over fra Løpe menyen, eller trykk på F8. Dette lar oss gå dypere inn i onCreate () metode mens du går over hver metodeanrop.

Velg linjen med avslutningen } karakter for onCreate () metode, og velg deretter Løp til markøren. Du vil motta et varsel om at applikasjonen kjører. Etter at du har låst opp enheten, bør du se aktivitetsvinduet til app-appen.

Jeff Friesen

Mer om Debug

Ta en titt på Googles "Feilsøk appen din" for å lære mer om feilsøking i Android Studio; for eksempel hvordan du bruker forskjellige typer brytepunkter.

Feilsøking med GAPID

Selv om det ikke er dekket her, anbefaler jeg å sjekke ut GAPID: Graphics API Debugger, en samling feilsøkingsverktøy som lar deg inspisere, tilpasse og spille av samtaler fra en Android-app til en grafikkdriver.

Kodeinspeksjon med Lint

Uansett hvor nøye du skriver det, vil kildekoden sannsynligvis inneholde feil, stilistiske problemer og kan referere til ressurser som er inaktive av en eller annen grunn. EN linter er en type verktøy som skanner kildekoden for bevis på disse og andre stykker stygg fluff, som den rapporterer til utvikleren.

Lint er en innebygd linter for Android SDK. Du kan bruke den til å finne problemer som foreldede elementer og API-anrop som ikke støttes av mål-API-et.

For å kjøre Lint fra Android Studio, velg Inspiser koden ... fra Analysere Meny. Å gjøre det aktiverer Spesifiser inspeksjonsomfang dialogboks.

Jeff Friesen

Velg ønsket omfang (i dette tilfellet i hele prosjektet) i dialogboksen, og klikk deretter OK for å starte inspeksjonen. Resultatene vises i Inspeksjonsresultater vindu, der de er organisert etter kategori.

Jeff Friesen

I samsvar med sin natur har Lint plukket ut noen fluffstykker som ellers kan rote applikasjonskoden. Når det er oppdaget, er det enkelt å fikse de tre Java-advarslene som vises i figur 8: bare erklær androidAnimationprivat og fjern kastene fra de to findViewById () metode samtaler.

Mer om Lint

Ta en titt på "Forbedre koden din med lofront" for å lære mer om bruk av Lint i Android Studio, og for å lære om Android SDKs frittstående Lint-verktøy.

Installere og bruke Android Studio-plugins

Mens innebygde verktøy har sin fordel, er mange andre verktøy tilgjengelige som plugins. I denne delen ser vi på tre plugins for å forbedre produktiviteten til kodingen din i Android Studio:

  • ADB-idé
  • Codota
  • Lombok Plugin

Android Studio plugins manager

Android Studios plugins manager gjør det veldig enkelt å finne og installere plugins. Aktiver programvarebehandleren ved å velge Fil >Innstillinger etterfulgt av Plugins fra Innstillinger dialogboks:

Jeff Friesen

Klikk deretter på Bla gjennom arkiver ... for å aktivere Bla gjennom arkiver dialogboksen, som presenterer en full liste over støttede plugins. Vi bruker denne dialogen til å velge vårt første plugin, ADB Idea.

Jeff Friesen

Øk Android-produktiviteten din

Kode snarveier: ADB Idea

ADB-idé fremskynder den daglige Android-utviklingen ved å gi rask tilgang til ofte brukte ADB-kommandoer, for eksempel å starte og avinstallere en app.

Å velge ADB-idé i depotlisten over plugins, og klikk deretter på Installere knapp. Android Studio fortsetter å laste ned og installere programtillegget. Den merker deretter Installere til Start Android Studio på nytt. For hvert plugin måtte jeg velge pluginet på nytt etter å ha klikket Start Android Studio på nytt, og klikk deretter på denne knappen en gang til for å starte Android Studio på nytt.

Jeff Friesen

Når Android Studio er installert, kan du få tilgang til ADB Idea fra sin Verktøy Meny. Å velge Verktøy> ADB-idé og velg riktig kommando fra den resulterende lokalmenyen.

Jeff Friesen

Etter at jeg valgte ADB Start app på nytt, Jeg observerte følgende meldinger i Hendelsesloggen vinduet samt den omstartede appen på Amazon Kindle-enheten min.

Jeff Friesen

Finn brukbar kode: Codota

Du kan bruke Codota plugin for å få tilgang til Codota-søkemotoren, som lar deg se gjennom millioner av offentlig tilgjengelige Java-kildekodebiter for løsninger på Android-kodingsproblemer.

Jeff Friesen

Å velge Codota i depotlisten over plugins, og klikk deretter på Installere knapp. Etter at Android Studio har lastet ned og installert programtillegget, merkes det på nytt Installere knappen til Start Android Studio på nytt. Å starte på nytt aktiverer Codota.

Ved omstart vil du møte Codota-godkjenning dialogboks. Klikk på lenken og følg instruksjonene for å motta tokenet. Lim deretter inn tokenet i den nevnte dialogboksen og klikk .

Jeff Friesen

Android Studio lar deg få tilgang til Codota ved å høyreklikke på Java-kode i redigeringsvinduet og velge Få relevante eksempler menyelement, som vist i figur 16.

Jeff Friesen

Ved å klikke på dette menyelementet blir nettleseren presentert for en side med relevante kodeeksempler. For eksempel presenterer den neste siden eksempler som er relevante for findViewById:

Jeff Friesen

Autogenerer Java-kode: Lombok

Prosjekt Lombok tilbyr et sett med merknader som du kan bruke i stedet for kjelekode, og sparer deg dermed tid til å skrive ut denne koden for hånd.

Jeff Friesen

Å velge Lombok Plugin i depotlisten over plugins, og klikk deretter Installere. Etter at Android Studio har lastet ned og installert pluginet, vil det be deg om det Start Android Studio på nytt. Omstart aktiverer Lombok Plugin.

$config[zx-auto] not found$config[zx-overlay] not found