Programmering

Android Studio til begyndere, del 4: Fejlfindingsværktøjer og produktivitets plugins

Opdateret: januar 2020.

Android Studio tilbyder en rig palet med indbyggede udviklingsværktøjer og et endnu mere rigeligt plugin-økosystem. De første tre artikler i denne serie fokuserede på installation og opsætning og kodning og kørsel af en simpel mobilapp med Android Studio. Nu bliver du bekendt med nogle af de mere avancerede værktøjer: tre indbyggede værktøjer og tre plugins til fejlfinding og forbedring af kvaliteten og produktiviteten af ​​din Android-applikationskode.

Denne artikel introducerer følgende værktøjer til Android Studio:

Indbyggede fejlfindingsværktøjer

  • Logcat
  • Fejlfinde
  • Fnug

Plugins til udviklerproduktivitet

  • ADB-idé
  • Codota
  • Lombok-plugin

Hvad er nyt i Android Studio 3.5

Find ud af, hvad du skal se efter i den nyeste version af Android Studio, herunder support til Kotlin og forbedringer af hukommelsesstyring og UI-respons.

Logning og fejlretning af Android-apps

En buggy-app er en sikker måde at drive potentielle kunder væk. Logcat og Debug er to værktøjer, der kommer indbygget i Android Studio, som du kan bruge til at identificere og rette fejl i din Android-kode.

Logning af Android: Logcat

Du har muligvis ikke brug for eller ønsker en fuldstændig debugger til hvert "buggy" -scenarie. I nogle tilfælde er det tilstrækkeligt at logge og korrigere værdierne for visse variabler. Android Studios Logcat er perfekt til denne opgave.

Logcat er et kommandolinjeværktøj (integreret i Android Debug Bridge - ADB), der dumper en log af systemmeddelelser, der kan hjælpe dig med at finde og løse problemer i din kode. Beskeder inkluderer stakspor for, hvornår enheden kaster en fejl, og logmeddelelser, som du målrettet har integreret med android.util.Log klasse. Logcat er så nyttig, at det er blevet integreret direkte i Android Studio, hvor du kan få adgang til det fra Udsigt menuen eller værktøjsvinduets bjælke.

Jeff Friesen

Det Logcat vinduet er opdelt i en vandret række af rullelister og andre kontroller efterfulgt af et meddelelsesområde. Fra venstre mod højre er kontrollerne:

  • En rulleliste, der identificerer tilsluttede enheder og emulatorer. (Se figur 1.)
  • En rulleliste, der identificerer installerede APK-pakker på den valgte enhed.
  • En rulleliste over logningsniveauer:
    • Udtalt: Vis alle meddelelser.
    • Fejlfinding: Vis fejlfindingslogbeskeder, der kun er nyttige under udvikling, samt meddelelsesniveauerne lavere på rullelisten.
    • Info: Vis forventede logbeskeder til regelmæssig brug samt meddelelsesniveauerne lavere i rullelisten.
    • Advarsel: Vis mulige problemer, der endnu ikke er fejl, samt meddelelsesniveauerne lavere i rullelisten.
    • Fejl: Vis problemer, der har forårsaget fejl - kastede undtagelser samt niveauet Assert-meddelelse.
    • Påstå: Vis problemer, som udvikleren forventer, bør aldrig ske.
  • En søgefelt, hvor de eneste meddelelser, der vises, er dem, der indeholder teksten, du skriver i dette kontrolelement.
  • Et afkrydsningsfelt, der giver dig mulighed for at bruge regulære udtryk i søgefeltet. For eksempel i forbindelse med figur 1 kan du specificere SystemClock | AlarmManager (dvs. meddelelsen skal indeholde et af ordene).
  • En rulleliste til filtrering af meddelelser, herunder følgende muligheder:
    • Ingen filtre (standard) får alle meddelelser til den valgte enhed til at vises, uanset den valgte APK-pakke.
    • Vis kun den valgte applikation præsenterer kun de meddelelser for den valgte APK-pakke på den valgte enhed, der har det rette logniveau eller lavere.
    • Rediger filterkonfiguration lader dig oprette et brugerdefineret filter.

I kildekoden kan du indsætte opkald til forskellige android.util.Log metoder til at logge beskeder. For eksempel kan du ringe offentlig statisk int i (String tag, String msg) at logge en INFO-niveau besked, eller offentlig statisk int w (String tag, String msg) at logge en ADVARE-niveau besked.

For begge metoder sendes strengen til tag identificerer meddelelsens kilde (f.eks. metoden, hvor denne logningsmetode blev kaldt), og strengen sendt til msg identificerer den besked, der logges.

Alternativt kan du ringe System.out's og System.err's Print() og println () metoder. Opkald til System.out metoder opnår det samme som log.i () opkald; opfordrer til System.err metoder opnår det samme som log.w () opkald.

Jeff Friesen

I figur 2 er de eneste viste meddelelser til app-eksemplet, der kører på den emulerede Nexus 5X-enhed. Desuden skal disse meddelelser indeholde onCreate og blive accepteret af Vis kun den valgte applikation filter.

Mere om Logcat

Se Googles "Skriv og se logfiler med Logcat" for at lære mere om Logcat. Undersøg også android.util.Log klassens dokumentation.

Fejlfinding af Android: Fejlfinding

Brug af Logcat til at logge og rette kode er okay for meget enkle apps. For mere komplicerede apps kan denne form for fejlfinding være kedelig. I stedet vil du have noget, der lader dig debugge appens eksekverbare kode. Android Studios indbyggede fejlfindingsværktøj tilbyder mange muligheder, herunder følgende:

  • Vælg en enhed, hvor din app skal fejles.
  • Indstil breakpoints i din applikationskode (Java, Kotlin eller C / C ++).
  • Undersøg variabler og evaluer udtryk ved runtime.

Der er nogle forudsætninger, før du bruger dette fejlfindingsværktøj:

  1. Hvis din app indeholder C / C ++ kildekode, skal du installere LLDB fra SDK Manager (se figur 3). Heldigvis er eksempelappen til denne serie (W2A) indeholder ikke C / C ++ - kode, så vi kan ignorere denne forudsætning.

    Jeff Friesen

  2. Du skal aktivere fejlretning på en tilsluttet enhed. Men hvis du bruger en emulator (som vi er i dette eksempel), kan du ignorere denne forudsætning. Fejlfinding er som standard aktiveret på emulerede enheder.
  3. Du skal køre en version, der kan debugges. Som standard oprettes dette for dig, så i mange tilfælde (inklusive dette eksempel) behøver du ikke bekymre dig om det.

Lad os gennemgå en hurtig debugging-session.

Enkel Android-fejlretning

Forudsat at du kører Android Studio med editorvinduet til eksempelappen (W2A.java) Åbn, dit første trin er at indstille et brudpunkt på offentligt tomrum onCreate (Bundle savedInstanceState) linje. Indstil brudpunktet ved at fremhæve denne linje og gøre et af følgende:

  • Klik på tagrenderområdet til venstre for linjen; linjen skulle blive lyserød som svar.
  • Vælg Skift linjeskiftpunkt fra Løb menu.
  • Trykke Ctrl og F8 samtidigt.

Vælg nu Fejlret 'app' fra Løb menu, eller klik på det relevante ikon på værktøjslinjen. Hvis emulatoren ikke kører, kan du observere Vælg Implementeringsmål dialog boks. Jeg valgte Nexus 5X API 15 og klikkede Okay.

Mens du venter på, at den emulerede enhed kommer online, skal du klikke på Fejlfinde knappen på værktøjsvindu-bjælken for at få vist Fejlfinde vindue. Til sidst skal du se noget, der ligner figur 4.

Jeff Friesen

Det Fejlfinde vindue indeholder ikoner til at træde over, ind i og ud af en metode og mere. Figur 5 viser, hvad der sker, når vi Træd over en metode.

Jeff Friesen

Klik på det relevante ikon, og vælg Træd over fra Løb menu, eller tryk på F8. Dette lader os gå dybere ind i onCreate () metode, mens du træder over hvert metodeopkald.

Vælg linjen med lukningen } karakter til onCreate () metode, og vælg derefter Kør til markøren. Du modtager en meddelelse om, at applikationen kører. Når du har låst enheden op, skal du se eksempelappens aktivitetsvindue.

Jeff Friesen

Mere om fejlfinding

Tjek Googles "Fejlret din app" for at lære mere om fejlfinding i Android Studio; for eksempel hvordan man bruger forskellige slags breakpoints.

Fejlfinding med GAPID

Selvom det ikke er dækket her, anbefaler jeg at tjekke GAPID: Graphics API Debugger, en samling af fejlfindingsværktøjer, der giver dig mulighed for at inspicere, tilpasse og afspille opkald fra en Android-app til en grafikdriver.

Kodeinspektion med Lint

Uanset hvor omhyggeligt du skriver det, vil din kildekode sandsynligvis indeholde fejl, stilistiske problemer og muligvis henvise til ressourcer, der er inaktive af en eller anden grund. EN linter er en type værktøj, der scanner kildekoden for bevis for disse og andre bit af grim fnug, som den rapporterer til udvikleren.

Fnug er en indbygget linter til Android SDK. Du kan bruge den til at finde problemer som forældede elementer og API-opkald, der ikke understøttes af din mål-API.

For at køre Lint fra Android Studio skal du vælge Undersøg kode ... fra Analysere menu. Hvis du gør det, aktiveres Angiv inspektionsomfang dialog boks.

Jeff Friesen

I dialogboksen skal du vælge det ønskede omfang (hele projektet, i dette tilfælde) og derefter klikke på Okay for at starte inspektionen. Resultaterne vises i Inspektionsresultater vindue, hvor de er organiseret efter kategori.

Jeff Friesen

I overensstemmelse med sin natur har Lint valgt et par fluff stykker, der ellers kunne rodet i applikationskoden. Når det er set, er det nemt at rette de tre Java-advarsler vist i figur 8: erklær simpelthen androidAnimationprivat og fjern kasterne fra de to findViewById () metodeopkald.

Mere om Lint

Tjek "Forbedre din kode med fnugchecks" for at lære mere om brug af Lint i Android Studio og for at lære om Android SDK's uafhængige Lint-værktøj.

Installation og brug af Android Studio-plugins

Mens indbyggede værktøjer har deres fortjeneste, er mange andre værktøjer tilgængelige som plugins. I dette afsnit ser vi på tre plugins til forbedring af produktiviteten af ​​din kodning i Android Studio:

  • ADB-idé
  • Codota
  • Lombok-plugin

Android Studio plugins manager

Android Studios plugins manager gør det meget nemt at finde og installere plugins. Aktiver plugins manager ved at vælge Fil >Indstillinger efterfulgt af Plugins fra Indstillinger dialog boks:

Jeff Friesen

Klik derefter på Gennemse arkiver ... for at aktivere Gennemse arkiver dialogboks, der viser en komplet liste over understøttede plugins. Vi bruger denne dialog til at vælge vores første plugin, ADB Idea.

Jeff Friesen

Øg din Android-produktivitet

Kode genveje: ADB Idé

ADB-idé fremskynder den daglige Android-udvikling ved at give hurtig adgang til almindeligt anvendte ADB-kommandoer, såsom start og afinstallation af en app.

Vælg ADB-idé på lagerlisten over plugins, og klik derefter på Installere knap. Android Studio fortsætter med at downloade og installere pluginet. Derefter mærkes det igen Installere til Genstart Android Studio. For hvert plugin måtte jeg genvælge pluginet efter at have klikket Genstart Android Studio, og klik derefter på denne knap endnu en gang for at genstarte Android Studio.

Jeff Friesen

Når det er installeret, giver Android Studio dig adgang til ADB Idea fra dets Værktøjer menu. Vælg Værktøjer> ADB-idé og vælg den relevante kommando fra den resulterende pop op-menu.

Jeff Friesen

Efter at jeg valgte ADB Genstart app, Observerede jeg følgende meddelelser i Hændelseslog vindue samt den genstartede app på min Amazon Kindle-enhed.

Jeff Friesen

Find brugbar kode: Codota

Du kan bruge Codota plugin for at få adgang til Codota-søgemaskinen, som giver dig mulighed for at kigge igennem millioner af offentligt tilgængelige Java-kildekodestykker efter løsninger på Android-kodningsproblemer.

Jeff Friesen

Vælg Codota i lagerlisten over plugins, og klik derefter på Installere knap. Når Android Studio har downloadet og installeret pluginet, mærker det igen Installere knap til Genstart Android Studio. Genstart aktiverer Codota.

Ved genstart vil du støde på Codota-godkendelse dialog boks. Klik på linket og følg instruktionerne for at modtage tokenet. Indsæt derefter tokenet i den ovennævnte dialogboks, og klik .

Jeff Friesen

Android Studio giver dig adgang til Codota ved at højreklikke på Java-kode i editorvinduet og vælge Få relevante eksempler menupunkt som vist i figur 16.

Jeff Friesen

Klik på dette menupunkt resulterer i, at browseren præsenterer en side med relevante kodeeksempler. For eksempel præsenterer den følgende side eksempler, der er relevante for findViewById:

Jeff Friesen

Autogenerer Java-kode: Lombok

Projekt Lombok tilbyder et sæt kommentarer, som du kan bruge i stedet for kedelpladekode, hvilket sparer dig tid til at skrive denne kode manuelt.

Jeff Friesen

Vælg Lombok-plugin i lagerlisten over plugins, og klik derefter på Installere. Når Android Studio har downloadet og installeret pluginet, beder det dig om det Genstart Android Studio. Genstart aktiverer Lombok Plugin.

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