Guide: Send en Logcat for at hjælpe med at fejlfinde din favoritapp

Har din yndlingsapp nogensinde pludselig styrtet ned på dig? Vil du hjælpe udvikleren med at fejlsøge, hvad der skete? Lær, hvordan du fanger og filtrerer logcats med vores guide.

Kroaterne vifter med et EU-flag, når de fejrer Kroatiens tiltrædelse af Den Europæiske Union på Ban Jelesic-pladsen i Zagreb den 30. juni 2013. Titusindvis af kroatere jublede over landets indtræden i Den Europæiske Union ved midnat søndag (kl. 2200 GMT), næsten to årtier efter, at den tidligere jugoslaviske republiks blodige uafhængighedskrig sluttede. AFP FOTO / STRINGER

Det er sket for os alle på et eller andet tidspunkt. Der er ingen skam i at indrømme det. Nogle gange går Android-apps ned. Uanset om du bruger en helt almindelig enhed til at køre Google Maps eller en meget tilpasset ROM med et Xposed-modul til forbedre Google Hangouts, kan programnedbrud og andre problemer opstå og endda blive en stor hindring. Dette gælder især i udviklingen af ​​mindre tweaks og applikationer som de mange, der findes på vores hjemmeside. Når der opstår problemer, er en af ​​de mest konstruktive og nyttige indsigter, som brugeren kan give udvikleren i karakteren af ​​nedbruddet, ved at give en

Logcat. Selvom det er yderst nyttigt for udviklere, kan det virke noget skræmmende for en almindelig bruger at få disse oplysninger.

Typisk involverende kommandolinjeværktøjer gennem ADB, Logcat er uden for rækkevidde for mange brugere, der har ringe eller ingen erfaring med kommandolinjen. Udgivelsen af ​​visse apps har dog elimineret, eller i det mindste kraftigt reduceret, inddragelsen af ​​ADB-kommandoer i at hente og sende en Logcat, hvilket gør det så nemt som et par skærmtryk. I vores uendelige mission for at hjælpe udviklere med udvikling, er her en begyndervejledning til at lære brugere, hvordan man sender en Logcat.


Hvad er en Logcat, og hvordan trækker vi en?

En Logcat er et ADB Shell-værktøj, der bruges til at trække en log over alle systemhændelser. Dette inkluderer fejl, advarsler, stakspor og generelle systemhændelser. Når der opstår en fejl, udlæses nøgleoplysninger, der peger mod fejlkilden, gennem denne log, hvilket gør den til et meget nyttigt værktøj til fejlfinding. Normalt trækkes og filtreres disse gennem ADB-kommandoer. Dog kan apps som f.eks aLogcat, Katalog, og vores foretrukne værktøj til denne artikel, Matlog, har sparet brugerne for besværet ved at kompilere disse kommandoværktøjer i GUI'en af ​​en Play-Store-downloadbar app.

Som nævnt er Matlog det, vi bruger til at indsamle Logcats. Matlog blev valgt på grund af sin enkle, men alligevel brugervenlige grænseflade, og blev lavet af XDA Junior Member plusCubed og baseret på Nolan Lawsons open source app Catlog. Ligesom Catlog, Matlog kan være kompileret fra kilden, eller downloades gratis fra Google Play Butik. Selvom rootet giver dig mulighed for at springe et trin over under opsætningen, root-adgang er ikke nødvendig for at indsamle Logcats. Hvis din enhed ikke er rootet, vil en enkelt ADB-shell-kommando give applikationen adgang til at læse din enheds logfiler. Har du endnu ikke sat ADB op på din maskine? Intet problem, bare følg disse trin for at få det op at køre.

Bemærk: Huawei-telefoner har helt deaktiveret Logcat-output. Du skal ændre en skjult indstilling før du fortsætter med resten af ​​denne vejledning.


Opsætning af ADB

Først, download ADB-binæren direkte fra Google til dit bestemte operativsystem og udpak det til en separat mappe på din computer. Næste, installere den rigtige driver til netop din telefon. Aktiver derefter "USB Debugging" i Indstillinger --> Udviklerindstillinger. Hvis du ikke kan se Udviklerindstillinger, skal du aktivere det ved at gå til Indstillinger --> Om telefon og derefter trykke på Byg nummer 7 gange. Sørg endelig for, at ADB fungerer ved at starte en kommandoprompt i samme mappe som ADB-binæren (højreklik --> "åbn kommandoprompt her") og kør følgende kommando:

adb devices

Hvis du ser din enheds serienummer (og der ikke står uautoriseret), er du gylden. Hvis du ser en pop-up på din telefon, der beder dig om at give din computer ADB-adgang, så sig ja. Hvis du ikke ser nogen af ​​dem ske, så prøv at genstarte din computer/telefon og tilslut den igen til din computer. Ellers prøv at geninstallere driveren.


Opsætning af Matlog

Nu hvor du har fået ADB op at køre (forhåbentlig), er alt hvad du skal gøre for at aktivere Matlogs evne til at fange Logcats at udstede følgende kommando i en ADB-skal. Igen, hvis din enhed allerede er rootet, behøver du ikke at køre denne kommando, da dette kun er nødvendigt for urodede telefoner.

adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
Matlog Record Widget ved siden af ​​den funktionsfejlende app

Når den er aktiveret og åben, viser Matlog systembegivenheder i realtid. Du kan trykke på pauseknappen for at stoppe dette, og derefter trykke på ellipsemenuen og vælge "Ryd" for at befri feltet for uvedkommende data. Det anbefales at gøre dette som forberedelse til at logge den defekte app for at skære ned på logstørrelsen. For at forkorte trinene, og dermed loglængden endnu mere, skal du tilføje Matlog-widgetten til din startskærm ved siden af ​​den pågældende applikation, der går ned, som vist til højre. I dette tilfælde, Apktool X er vores defekte app.

Ved at trykke på widgetten kan du navngive og begynde at optage en log. Derefter skal du blot genskabe fejlen umiddelbart efter påbegyndelse af logning, hvilket vil fylde Logcat med relevante oplysninger til dit problem. Når problemet er gengivet, skal du blot trykke på widgetten igen for at fuldføre logoptagelsen.

Når du gør det, vil Matlog åbne for den registrerede log. Tryk på ellipserne, og vælg "send" for at e-maile loggen som en vedhæftet tekstfil sammen med generelle enhedsoplysninger. Det er det! Din Logcat er blevet fanget og sendt til professor Oak.

I mit eksempel ovenfor kan jeg fortælle, at årsagen til, at Apktool X gik ned, er, at min enhed er unrooted. Doh! Jeg burde have fuldt ud Læs artiklen før du prøver at bruge appen.

Det var for nemt

Selvfølgelig er ikke alle problemer så lette at fange. Nogle gange kan problemer, der omhandler opstart, eller problemer, der strækker sig over længere perioder, kræve forskellige funktioner i appen at fange. I sådanne tilfælde vil du lade Matlog køre i baggrunden (må ikke sætte den på pause eller rydde den) og bruge logniveau- og filterfunktionerne til at analysere data.

Selvom det typisk ikke er den eneste nødvendige metode til at indsamle relevante data - kræver nogle situationer mere kontekst – hvert af disse værktøjer kan bruges på længere logfiler til at sortere og specificere data for Udvikler. Dette afhænger naturligvis af fejlens art og hvad udvikleren efterspørger. For at bruge en af ​​disse skal du blot køre Matlog, genskabe dit problem, navigere tilbage til Matlog, trykke på prikmenuen og vælge en af ​​disse to sorteringsmetoder.

Logniveauvalg viser kun fejl

Log niveau

En anden ADB-kommando forenklet af Matlog, Log Level-funktionen kan bruges til at se specifikke typer systemhændelser og -meddelelser. Nedenfor er en kort beskrivelse af de forskellige meddelelsestyper, som beskrevet af Android Developers-webstedet og farvekodet til at matche Matlogs mærkning.

Fra laveste til højeste prioritet:

  • V: Verbose (generelle systemhændelser)
  • D: Fejlfinde
  • jeg: Information
  • W: Advarsel
  • E: Fejl
  • F: Fatal
  • S: Lydløs (Højeste prioritet, hvor der aldrig er udskrevet noget)

Logniveau-funktionen har en tilsvarende liste over disse meddelelser, som kan filtrere loggen på hvert prioritetsniveau. Valg af et logniveau vil kun vise hændelser på dets eget prioritetsniveau og højere, hvilket letter identifikation og gruppering af fejl snarere end at kræve manuel scrollning gennem adskillige tekstlinjer – som nogle gange kan være i tusindvis – for at gøre så.

Søgefiltersæt til "Apktool"

Filtre

Filtre kan også bruges til at sortere logdata. Ved at starte en søgeordssøgning, er brugeren i stand til kun at se meddelelser, som eksplicit henviser til dette søgeord. Nyttige søgeord kan involvere navnet på den defekte app eller endda ordet "fejl", da det omfatter forekomster af udtrykket på alle prioritetsniveauer, selvom det gør ikke omfatter alle "Log Level"-fejl.

Hvis du finder dig selv i at søge/filtrere efter bestemte søgeord meget, når du hjælper en udvikler med at fejlsøge en applikation (eller hvis udvikler har eksplicit oprettet en unik loghændelse, du kan søge efter), så kan du også gemme et filter, som du kan vende tilbage til i fremtiden. Dette er nyttigt, når du på forhånd ved, hvad du leder efter, hvilket, hvis du arbejder sammen med en udvikler, vil ske ret ofte.

Klar til at fejlfinde?

Mens du måske ikke nu være ekspert i fejlfinding af Android-apps, at lære at samle og sende Logcats kan gøre dig til en fantastisk ressource for udviklerne af dine yndlingsapps. Det har aldrig været nemmere at bruge Matlog, og de funktioner, som er beskrevet ovenfor, at indsamle, sortere og sende relevant information om en app, der ikke fungerer.


Har du brugt Matlog eller en anden Logcat-app? Fandt du denne vejledning nyttig? Fortæl os det i kommentarerne nedenfor!