Har din favoritapp någonsin plötsligt kraschat på dig? Vill du hjälpa utvecklaren att felsöka vad som hände? Lär dig hur du fångar och filtrerar logcats med vår guide.
Kroaterna viftar med en EU-flagga när de firar Kroatiens anslutning till Europeiska unionen på Ban Jelesic-torget i Zagreb den 30 juni 2013. Tiotusentals kroater jublade landets inträde i Europeiska unionen vid midnatt söndag (2200 GMT), nästan två decennier efter att den före detta jugoslaviska republikens blodiga självständighetskrig tog slut. AFP FOTO / STRINGER
Det har hänt oss alla vid ett eller annat tillfälle. Det är ingen skam att erkänna det. Ibland kraschar Android-appar. Oavsett om du använder en helt vanlig enhet för att köra Google Maps eller en mycket anpassad ROM med en Xposed-modul för att förbättra Google Hangouts, programkrascher och andra problem kan uppstå och till och med bli ett stort hinder. Detta gäller särskilt i utvecklingen av mindre tweaks och applikationer som de många som finns på vår webbplats. När problem uppstår är en av de mest konstruktiva och användbara insikterna som användaren kan ge utvecklaren om kraschens natur genom att tillhandahålla en
Logcat. Även om det är extremt användbart för utvecklare, kan det verka lite skrämmande för en vanlig användare att få tag på denna information.Vanligtvis involverande kommandoradsverktyg via ADB, är Logcat utom räckhåll för många användare som har liten eller ingen erfarenhet av kommandoraden. Men lanseringen av vissa appar har eliminerat, eller åtminstone kraftigt minskat, inblandningen av ADB-kommandon för att hämta och skicka en Logcat, vilket gör det så enkelt som ett par skärmtryck. I vårt oändliga uppdrag att hjälpa utvecklare utveckling, här är en nybörjarguide för att lära användarna hur man skickar en Logcat.
Vad är en Logcat och hur drar vi en?
En Logcat är ett ADB Shell-verktyg som används för att dra en logg över alla systemhändelser. Detta inkluderar fel, varningar, stackspårningar och allmänna systemförekomster. När ett fel uppstår matas nyckelinformation som pekar mot felkällan ut genom denna logg, vilket gör den till ett mycket användbart verktyg för felsökning. Normalt dras och filtreras dessa genom ADB-kommandon. Däremot appar som t.ex aLogcat, Katalog, och vårt favoritverktyg för den här artikeln, Matlog, har sparat användarna ansträngningen genom att kompilera dessa kommandoverktyg i GUI av en Play-Store-nedladdningsbar app.
Som nämnts är Matlog det vi använder för att samla in Logcats. Matlog har valts ut för sitt okonerbara, men ändå användarvänliga gränssnitt, och gjordes av XDA Junior Member plusCubed och baserat på Nolan Lawsons öppen källkodsapp Catlog. Som Catlog, Matlog kan vara sammanställd från källan, eller laddas ner gratis från Google Play Butik. Även om rootad gör att du kan hoppa över ett steg under installationen, root-åtkomst krävs inte för att samla in Logcats. Om din enhet inte är rotad kommer ett enda ADB-skal-kommando att ge programmet åtkomst att läsa enhetens loggar. Har du ännu inte ställt in ADB på din maskin? Inga problem, följ bara dessa steg för att komma igång.
Obs: Huawei-telefoner har helt inaktiverat Logcat-utgången. Du måste ändra en dold inställning innan du fortsätter med resten av den här guiden.
Konfigurera ADB
Först, ladda ner ADB-binären direkt från Google för just ditt operativsystem och extrahera det till en separat katalog på din dator. Nästa, installera rätt drivrutin för just din telefon. Aktivera sedan "USB Debugging" i Inställningar --> Utvecklaralternativ. Om du inte ser Utvecklaralternativ måste du aktivera det genom att gå till Inställningar --> Om telefon och sedan trycka på Byggnummer 7 gånger. Slutligen, se till att ADB fungerar genom att starta en kommandotolk i samma katalog som ADB-binären (högerklicka --> "öppna kommandotolken här") och kör följande kommando:
adb devices
Om du ser enhetens serienummer (och det står inte obehörigt) är du gyllene. Om du ser ett popup-fönster på din telefon som ber dig att ge din dator ADB-åtkomst, säg ja. Om du inte ser någondera hända, försök sedan starta om din dator/telefon och koppla in den till din dator igen. Annars, försök att installera om drivrutinen.
Konfigurera Matlog
Nu när du har fått ADB igång (förhoppningsvis), allt du behöver göra för att aktivera Matlogs förmåga att fånga Logcats är att utfärda följande kommando i ett ADB-skal. Återigen, om din enhet redan är rotad behöver du inte köra det här kommandot eftersom det bara är nödvändigt för orootade telefoner.
adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
När det är aktiverat och öppnat kommer Matlog att visa systemhändelser i realtid. Du kan trycka på pausknappen för att stoppa detta, tryck sedan på ellipsmenyn och välj "rensa" för att befria fältet från främmande data. Det rekommenderas att göra detta som förberedelse för att logga den felaktiga appen för att minska loggstorleken. För att förkorta stegen, och därmed logglängden ytterligare, lägg till Matlog-widgeten på din startskärm bredvid den kraschar applikationen i fråga, som visas till höger. I det här fallet, Apktool X är vår felaktiga app.
Genom att trycka på widgeten kan du namnge och börja spela in en logg. Reproducera sedan helt enkelt felet omedelbart efter att du har börjat logga, vilket kommer att fylla Logcat med relevant information för ditt problem. När problemet har reproducerats trycker du helt enkelt på widgeten igen för att slutföra logginspelningen.
När du gör det öppnas Matlog för den fångade loggen. Tryck på ellipserna och välj "skicka" för att e-posta loggen som en bifogad textfil tillsammans med allmän enhetsinformation. Det är allt! Din Logcat har lyckats fångas och skickas till professor Oak.
I mitt exempel ovan kan jag säga att anledningen till att Apktool X kraschade är att min enhet är orootad. Doh! Jag borde ha fullt ut Läs artikeln innan du försöker använda appen.
Det var för lätt
Naturligtvis är inte alla problem så lätta att fånga. Ibland kan problem som handlar om uppstart, eller problem som sträcker sig över längre tidsperioder, kräva olika funktioner i appen för att fånga. I sådana fall vill du låta Matlog köras i bakgrunden (pausa eller rensa den inte) och använda loggnivå- och filterfunktionerna för att analysera data.
Även om det vanligtvis inte är den enda nödvändiga metoden för att samla in relevant data - kräver vissa situationer mer sammanhang – vart och ett av dessa verktyg kan användas på längre loggar för att sortera och specificera data för utvecklare. Detta beror naturligtvis på felets karaktär och vad utvecklaren begär. För att använda någon av dessa, kör bara Matlog, återskapa ditt problem, navigera tillbaka till Matlog, tryck på punktmenyn och välj en av dessa två sorteringsmetoder.
Loggnivå
Ett annat ADB-kommando förenklat av Matlog, Log Level-funktionen kan användas för att visa specifika typer av systemhändelser och meddelanden. Nedan finns en kort beskrivning av de olika meddelandetyperna, som beskrivs av Android Developers-webbplatsen och färgkodade för att matcha Matlogs märkning.
Från lägsta till högsta prioritet:
- V: Utförlig (Allmänna systemhändelser)
- D: Felsöka
- jag: Information
- W: Varning
- E: Fel
- F: Dödlig
- S: Tyst (högsta prioritet, där ingenting någonsin skrivs ut)
Loggnivåfunktionen har en motsvarande lista över dessa meddelanden, som kan filtrera loggen på varje prioritetsnivå. Om du väljer en loggnivå visas endast händelser på dess egen prioritetsnivå och högre, vilket underlättar identifiering och gruppering av fel snarare än att manuellt rulla igenom flera textrader – vilket ibland kan vara i tusentals – för att göra så.
Filter
Filter kan också användas för att sortera loggdata. Genom att initiera en nyckelordssökning kan användaren endast se meddelanden som hänvisar till detta nyckelord explicit. Användbara sökord kan involvera namnet på den felaktiga appen eller till och med ordet "fel" eftersom det omfattar instanser av termen på alla prioritetsnivåer, även om det gör inte omfattar alla "Log Level"-fel.
Om du hittar på att du söker/filtrerar efter vissa nyckelord mycket när du hjälper en utvecklare att felsöka en applikation (eller om utvecklaren har uttryckligen skapat en unik logghändelse som du kan söka efter), då kan du också spara ett filter som du kan återgå till i framtiden. Detta är användbart när du vet i förväg vad du letar efter, vilket om du arbetar tillsammans med en utvecklare kommer att hända ganska ofta.
Redo att felsöka?
Medan du kanske inte nu vara expert på att felsöka Android-appar, att lära sig hur man samlar in och skickar Logcats kan göra dig till en fantastisk resurs för utvecklarna av dina favoritappar. Att använda Matlog, och funktionerna som beskrivs ovan, har aldrig varit enklare att samla, sortera och skicka relevant information om en felaktig app.
Har du använt Matlog eller någon annan Logcat-app? Tyckte du att den här guiden var till hjälp? Låt oss veta i kommentarerna nedan!