Sprievodca: Odoslanie Logcat na pomoc pri ladení vašej obľúbenej aplikácie

Stalo sa vám niekedy, že vám náhle spadla vaša obľúbená aplikácia? Chcete vývojárovi pomôcť s ladením toho, čo sa stalo? Naučte sa, ako zachytávať a filtrovať Logcats pomocou nášho sprievodcu.

Chorváti mávajú vlajkou EÚ pri oslavách vstupu Chorvátska do Európskej únie na námestí Ban Jelesic v Záhrebe 30. júna 2013. Desaťtisíce Chorvátov vítali vstup krajiny do Európskej únie o nedeľnej polnoci (22:00 SELČ), takmer dve desaťročia po skončení krvavej vojny za nezávislosť bývalej juhoslovanskej republiky. AFP FOTO / STRINGER

Stalo sa nám to v jednom alebo druhom bode. Nie je hanba si to priznať. Aplikácie pre Android niekedy zlyhávajú. Či už na spustenie Máp Google používate úplne skladové zariadenie alebo vysoko prispôsobenú ROM s modulom Xposed vylepšiť službu Google Hangouts, môže dôjsť k zlyhaniu aplikácie a iným problémom, ktoré sa dokonca stanú značnou prekážkou. Platí to najmä pri vývoji menších vylepšení a aplikácií, ako sú mnohé z našich webových stránok. Keď sa vyskytnú problémy, jedným z najkonštruktívnejších a najužitočnejších postrehov, ktoré môže používateľ vývojárovi prepožičať o povahe zlyhania, je poskytnutie

Logcat. Hoci sú pre vývojárov mimoriadne užitočné, získanie týchto informácií sa môže pre bežného používateľa zdať trochu skľučujúce.

Typicky zahŕňajúce nástroje príkazového riadku cez ADBLogcat je nedostupný pre mnohých používateľov, ktorí nemajú s príkazovým riadkom žiadne skúsenosti. Vydanie určitých aplikácií však eliminovalo alebo prinajmenšom výrazne znížilo zapojenie príkazov ADB do získavania a odosielania Logcatu, vďaka čomu je to jednoduché na niekoľko ťuknutí na obrazovku. V rámci našej nikdy nekončiacej misie pomáhať pri vývoji pre vývojárov je tu príručka pre začiatočníkov, ktorá používateľov naučí, ako posielať Logcat.


Čo je Logcat a ako ho vytiahneme?

Logcat je nástroj ADB Shell, ktorý sa používa na získanie denníka všetkých systémových udalostí. To zahŕňa chyby, varovania, sledovanie zásobníka a všeobecné systémové výskyty. Keď sa vyskytne chyba, cez tento protokol sa vypíšu kľúčové informácie smerujúce k zdroju zlyhania, čo z neho robí veľmi užitočný nástroj na riešenie problémov. Normálne sú tieto stiahnuté a filtrované cez príkazy ADB. Avšak aplikácie ako napr aLogcat, Catloga náš nástroj, ktorý sme si vybrali pre tento článok, Matlog, ušetrili používateľom námahu kompiláciou týchto príkazových nástrojov do GUI aplikácie na stiahnutie z Obchodu Play.

Ako už bolo spomenuté, Matlog je to, čo používame na zbieranie Logcatov. Matlog, ktorý bol vybraný pre jednoduché, no užívateľsky prívetivé rozhranie, vytvoril XDA Junior Member plusKocka a na základe Nolana Lawsona open-source aplikácia Catlog. Ako Catlog, Matlog môže byť skompilované zo zdroja, alebo stiahnuť zadarmo z obchodu Google Play. Hoci rootovanie vám umožňuje preskočiť krok počas nastavovania, root prístup nie je potrebný na zhromažďovanie Logcats. Ak vaše zariadenie nie je zakorenené, jeden príkaz prostredia ADB udelí aplikácii prístup na čítanie denníkov vášho zariadenia. Ešte ste na svojom počítači nenastavili ADB? Žiaden problém, stačí postupovať podľa týchto krokov a spustiť ho.

Poznámka: Telefóny Huawei majú úplne deaktivovaný výstup Logcat. Budete musieť zmeniť skryté nastavenie pred pokračovaním zvyškom tejto príručky.


Nastavenie ADB

Najprv, stiahnite si binárny súbor ADB priamo z Google pre váš konkrétny OS a extrahujte ho do samostatného adresára vo vašom počítači. Ďalšie, nainštalujte správny ovládač pre váš konkrétny telefón. Potom povoľte "Ladenie USB" v Nastaveniach --> Možnosti vývojára. Ak nevidíte Možnosti pre vývojárov, budete ich musieť povoliť tak, že prejdete na Nastavenia --> O telefóne a potom sedemkrát klepnete na Číslo zostavy. Nakoniec sa uistite, že ADB funguje spustením príkazového riadka v rovnakom adresári ako binárny ADB (kliknite pravým tlačidlom myši --> "tu otvorte príkazový riadok") a spustite nasledujúci príkaz:

adb devices

Ak vidíte sériové číslo svojho zariadenia (a nie je tam uvedené neautorizované), ste zlatí. Ak sa na telefóne zobrazí kontextové okno so žiadosťou, aby ste počítaču udelili prístup ADB, povedzte áno. Ak nevidíte ani jedno, ani druhé, skúste reštartovať počítač/telefón a znova ho zapojiť do počítača. V opačnom prípade skúste preinštalovať ovládač.


Nastavenie Matlogu

Teraz, keď máte ADB v prevádzke (dúfajme), všetko, čo musíte urobiť, aby ste umožnili Matlogu zachytiť Logcats, je zadať nasledujúci príkaz v prostredí ADB. Opäť platí, že ak je vaše zariadenie už zakorenené, nemusíte tento príkaz spúšťať, pretože je to potrebné iba pre nerootované telefóny.

adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
Matlog Record Widget popri nefunkčnej aplikácii

Po aktivácii a otvorení bude Matlog zobrazovať systémové udalosti v reálnom čase. Môžete klepnúť na tlačidlo pauzy, aby ste to zastavili, potom klepnite na ponuku elipsy a vyberte „vymazať“, čím sa pole zbaví nadbytočných údajov. Odporúča sa to urobiť pri príprave protokolovania nefunkčnej aplikácie, aby sa zmenšila veľkosť protokolu. Ak chcete kroky a tým aj dĺžku denníka skrátiť ešte viac, pridajte widget Matlog na svoju úvodnú obrazovku vedľa príslušnej zrútenej aplikácie, ako je znázornené vpravo. V tomto prípade, Apktool X je naša nefunkčná aplikácia.

Klepnutím na miniaplikáciu môžete pomenovať a začať zaznamenávať denník. Potom jednoducho zopakujte poruchu ihneď po spustení protokolovania, čím sa Logcat naplní príslušnými informáciami pre váš problém. Po reprodukovaní problému jednoducho znova klepnite na miniaplikáciu a dokončite záznam denníka.

Keď tak urobíte, Matlog otvorí zachytený protokol. Klepnutím na elipsy a výberom možnosti „odoslať“ odošlete protokol e-mailom ako priložený textový súbor spolu so všeobecnými informáciami o zariadení. To je všetko! Váš Logcat bol úspešne zachytený a odoslaný k profesorovi Oakovi.

V mojom príklade vyššie môžem povedať, že dôvodom zlyhania Apktool X je to, že moje zariadenie nie je rootované. Doh! Mal by som naplno prečítajte si článok pred pokusom o použitie aplikácie.

To bolo príliš jednoduché

Samozrejme, nie všetky problémy sa dajú tak ľahko zachytiť. Niekedy problémy súvisiace so zavádzaním alebo problémy, ktoré trvajú dlhšie časové obdobia, môžu vyžadovať zachytenie rôznych funkcií aplikácie. V takýchto prípadoch budete chcieť nechať Matlog bežať na pozadí (nepozastavujte ho ani ho nevymažte) a na analýzu údajov použite funkcie Log Level a Filter.

Hoci to zvyčajne nie je jediná potrebná metóda na zhromažďovanie príslušných údajov – niektoré situácie si to vyžadujú viac kontextu – každý z týchto nástrojov možno použiť na dlhších protokoloch na triedenie a špecifikovanie údajov pre vývojár. Prirodzene to závisí od povahy chyby a od toho, čo vývojár požaduje. Ak chcete použiť ktorýkoľvek z nich, jednoducho spustite Matlog, zopakujte svoj problém, prejdite späť do Matlogu, klepnite na bodkovú ponuku a vyberte jednu z týchto dvoch metód triedenia.

Výber úrovne denníka zobrazuje iba chyby

Úroveň denníka

Ďalší ADB príkaz zjednodušený Matlogom, funkcia Log Level sa dá použiť na zobrazenie špecifických typov systémových udalostí a správ. Nižšie je uvedený stručný popis rôznych typov správ, ako ich popisuje webová stránka Android Developers a sú farebne označené tak, aby zodpovedali označeniu Matlogu.

Od najnižšej po najvyššiu prioritu:

  • V: Podrobný (všeobecné systémové udalosti)
  • D: Ladenie
  • ja: Informácie
  • W: POZOR
  • E: Chyba
  • F: Smrteľné
  • S: Tichý (najvyššia priorita, na ktorú sa nikdy nič netlačí)

Funkcia Log Level má zodpovedajúci zoznam týchto správ, ktoré môžu filtrovať protokol na každej úrovni priority. Výber úrovne denníka zobrazí iba udalosti na úrovni vlastnej priority a vyššej, čo uľahčuje ich identifikáciu a zoskupovanie namiesto toho, aby ste museli manuálne posúvať početné riadky textu, ktorých môžu byť niekedy tisíce tak.

Sada filtrov vyhľadávania pre „Apktool“

Filtre

Filtre možno použiť aj na triedenie údajov protokolu. Spustením vyhľadávania podľa kľúčového slova môže používateľ vidieť iba správy, ktoré explicitne odkazujú na toto kľúčové slovo. Užitočné kľúčové slová môžu zahŕňať názov nefunkčnej aplikácie alebo dokonca slovo „chyba“, pretože zahŕňa výskyty výrazu na všetkých úrovniach priority, hoci nie zahŕňajú všetky chyby „Úroveň denníka“.

Ak zistíte, že často vyhľadávate/filtrujete určité kľúčové slová, keď pomáhate vývojárovi ladiť aplikáciu (alebo ak vývojár explicitne vytvoril jedinečnú udalosť denníka, ktorú môžete vyhľadať), potom môžete tiež uložiť filter, ku ktorému sa môžete vrátiť budúcnosť. Je to užitočné, keď vopred viete, čo hľadáte, čo sa v prípade, že pracujete v spojení s vývojárom, stáva pomerne často.

Ste pripravení na ladenie?

Aj keď možno nie teraz byť odborníkom na ladenie aplikácií pre Android, naučiť sa zhromažďovať a odosielať Logcats z vás môže urobiť skvelý zdroj pre vývojárov vašich obľúbených aplikácií. Používanie Matlogu a funkcií, ktoré sú načrtnuté vyššie, zhromažďovanie, triedenie a odosielanie relevantných informácií o nefunkčnej aplikácii nebolo nikdy jednoduchšie.


Použili ste Matlog alebo inú aplikáciu Logcat? Pomohla vám táto príručka? Dajte nám vedieť v komentároch nižšie!