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.
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.out
og System.err
s 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.
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:
- 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
- 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.
- 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 FriesenDe 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 FriesenKlikk 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.
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 FriesenVelg ø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 FriesenI 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 androidAnimation
privat
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 FriesenKlikk 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 FriesenNå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 FriesenEtter 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 FriesenFinn 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 Gå.
Jeff FriesenAndroid 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 FriesenVed å 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
:
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.