Android Studio za početnike, 4. dio: Alati za uklanjanje pogrešaka i dodaci za produktivnost

Ažurirano: siječanj 2020.

Android Studio nudi bogatu paletu ugrađenih razvojnih alata i još bogatiji ekosustav dodataka. Prva tri članka iz ove serije usredotočila su se na instalaciju i postavljanje te kodiranje i pokretanje jednostavne mobilne aplikacije s Android Studiom. Sada ćete se upoznati s nekim naprednijim alatima: tri ugrađena alata i tri dodatka za uklanjanje pogrešaka i poboljšanje kvalitete i produktivnosti koda vaše Android aplikacije.

Ovaj članak predstavlja sljedeće alate za Android Studio:

Ugrađeni alati za uklanjanje pogrešaka

  • Logcat
  • Otklanjanje pogrešaka
  • Lint

Dodaci za produktivnost programera

  • ADB Ideja
  • Codota
  • Dodatak Lombok

Što je novo u Android Studiju 3.5

Otkrijte na što treba paziti u najnovijoj verziji Android Studija, uključujući podršku za Kotlin i poboljšanja upravljanja memorijom i odzivom korisničkog sučelja.

Zapisivanje i uklanjanje pogrešaka za Android aplikacije

Buggy aplikacija siguran je način da otjerate potencijalne kupce. Logcat i Debug dva su alata ugrađena u Android Studio pomoću kojih možete identificirati i ispraviti pogreške u Android kodu.

Prijava Androida: Logcat

Možda vam neće trebati ili želite cjeloviti program za pronalaženje pogrešaka za svaki scenarij "buggy". U nekim je slučajevima dovoljno zabilježiti i ispraviti vrijednosti određenih varijabli. Logcat Android Studija savršen je za ovaj zadatak.

Logcat je alat naredbenog retka (integriran u Android Debug Bridge - ADB) koji izbacuje zapisnik sistemskih poruka koji vam mogu pomoći u pronalaženju i rješavanju problema u kodu. Poruke uključuju tragove snopa kada uređaj pošalje pogrešku i zapise poruka koje ste namjerno ugradili u android.util.Lograzred. Logcat je toliko koristan da je integriran izravno u Android Studio, gdje mu možete pristupiti s izbornika Pogled ili s trake prozora alata.

Jeff Friesen

Prozor Logcat podijeljen je u vodoravni red padajućih popisa i ostalih kontrola praćenih područjem za poruke. S lijeva na desno, kontrole su:

  • Padajući popis koji identificira povezane uređaje i emulatore. (Vidi sliku 1.)
  • Padajući popis koji identificira instalirane APK pakete na odabranom uređaju.
  • Padajući popis razina zapisivanja:
    • Opširno: prikaži sve poruke.
    • Otklanjanje pogrešaka: prikazuju poruke dnevnika otklanjanja pogrešaka koje su korisne samo tijekom razvoja, kao i razine poruka niže na padajućem popisu.
    • Informacije: prikazuju se očekivane poruke dnevnika za redovnu upotrebu, kao i razine poruka niže na padajućem popisu.
    • Upozorenje: pokažite moguće probleme koji još nisu pogreške, kao i razine poruka niže na padajućem popisu.
    • Pogreška: prikaži probleme koji su uzrokovali pogreške - izbačene iznimke, kao i razinu poruke Assert.
    • Tvrdite: pokažite probleme za koje programer očekuje da se nikada ne bi trebali dogoditi.
  • Traka za pretraživanje u kojoj se pojavljuju jedine poruke koje sadrže tekst koji upisujete u ovu kontrolu.
  • Potvrdni okvir koji vam omogućuje upotrebu regularnih izraza u traci za pretraživanje. Na primjer, u kontekstu slike 1, možete odrediti SystemClock | AlarmManager (tj. Poruka mora sadržavati bilo koju riječ).
  • Padajući popis za filtriranje poruka, uključujući sljedeće opcije:
    • Bez filtara (zadani) uzrokuje pojavljivanje svih poruka za odabrani uređaj, bez obzira na odabrani APK paket.
    • Prikaži samo odabranu aplikaciju predstavljaju samo one poruke za odabrani paket APK-a na odabranom uređaju koje su odgovarajuće razine zapisnika ili niže.
    • Uredi konfiguraciju filtra omogućuje vam stvaranje prilagođenog filtra.

U izvorni kôd možete umetati pozive raznim android.util.Logmetodama za bilježenje poruka. Na primjer, možete nazvati public static int i(String tag, String msg)za bilježenje INFOporuke na razini ili public static int w(String tag, String msg)za prijavu WARNporuke na razini.

Za bilo koju metodu, niz prosljeđen tagidentificira izvor poruke (npr. Metoda u kojoj je pozvana ova metoda zapisivanja), a niz prosljeđen msgidentificira poruku koja se bilježi.

Možete i nazvati System.out'i System.err' print()i println()metode. Pozivi System.outmetodama ostvaruju isto što i log.i()pozivi; pozivi System.errmetodama postižu isto što i log.w()pozivi.

Jeff Friesen

Na slici 2, jedine prikazane poruke su za primjer postupka aplikacije koji se izvodi na emuliranom Nexus 5X uređaju. Nadalje, ove poruke moraju sadržavati onCreatei prihvatiti filtar Prikaži samo odabrani program .

Više o Logcat-u

Pogledajte Googleov "Napišite i pregledajte zapisnike s Logcatom" da biste saznali više o Logcatu. Također proučite android.util.Logdokumentaciju predavanja.

Otklanjanje pogrešaka u sustavu Android: Otklanjanje pogrešaka

Korištenje Logcata za prijavu i ispravak koda u redu je za vrlo jednostavne aplikacije. Za složenije aplikacije ovaj oblik otklanjanja pogrešaka može biti dosadan. Umjesto toga, poželjet ćete nešto što vam omogućuje otklanjanje pogrešaka u izvršnom kodu aplikacije. Ugrađeni alat za uklanjanje pogrešaka u Android Studio nudi brojne mogućnosti, uključujući sljedeće:

  • Odaberite uređaj na kojem ćete otkloniti pogreške u aplikaciji.
  • Postavite točke prekida u kodu aplikacije (Java, Kotlin ili C / C ++).
  • Ispitajte varijable i procijenite izraze tijekom izvođenja.

Postoje neki preduvjeti prije upotrebe ovog alata za uklanjanje pogrešaka:

  1. Ako vaša aplikacija uključuje izvorni kod C / C ++, morat ćete instalirati LLDB iz SDK upravitelja (pogledajte sliku 3). Srećom, primjer aplikacije za ovu seriju ( W2A ) ne sadrži C / C ++ kôd, tako da možemo zanemariti taj preduvjet.

    Jeff Friesen

  2. Morate omogućiti ispravljanje pogrešaka na povezanom uređaju. Međutim, ako koristite emulator (što smo mi za ovaj primjer), možete zanemariti taj preduvjet. Otklanjanje pogrešaka omogućeno je prema zadanim postavkama na emuliranim uređajima.
  3. Morate pokrenuti verziju gradnje koja se može ispraviti. Prema zadanim postavkama ovo je stvoreno za vas, tako da u mnogim slučajevima (uključujući ovaj primjer) ne morate brinuti o tome.

Krenimo kroz brzu sesiju ispravljanja pogrešaka.

Jednostavno otklanjanje pogrešaka na Androidu

Pod pretpostavkom da koristite Android Studio s otvorenim prozorom uređivača za primjer aplikacije ( W2A.java ), vaš prvi korak je postavljanje točke prekida na public void onCreate(Bundle savedInstanceState)liniji. Postavite točku prekida istaknuvši ovu liniju i učinivši jedno od sljedećeg:

  • Kliknite područje žlijeba lijevo od crte; crta bi kao odgovor trebala postati ružičasta.
  • Odaberite Toggle Line Breakpoint iz izbornika Run .
  • Pritisnite Ctrl i F8 istovremeno.

Sada odaberite Debug 'app' s izbornika Run ili kliknite odgovarajuću ikonu na alatnoj traci. Ako se emulator ne izvodi, primijetit ćete dijaloški okvir Select Deployment Target . Odabrao sam Nexus 5X API 15 i kliknuo U redu .

Dok čekate da se emulirani uređaj poveže s mrežom, kliknite gumb Otklanjanje pogrešaka na traci s alatima da biste prikazali prozor za otklanjanje pogrešaka . Na kraju biste trebali vidjeti nešto slično slici 4.

Jeff Friesen

Prozor za otklanjanje pogrešaka pruža ikone za prelazak, ulazak i izlazak iz metode i još mnogo toga. Slika 5 prikazuje što se događa kada prijeđemo preko neke metode.

Jeff Friesen

Kliknite odgovarajuću ikonu i na izborniku Pokreni odaberite Step Over ili pritisnite F8 . To nam omogućuje da dublje ulazimo u metodu dok prelazimo preko svakog poziva metode.onCreate()

Odaberite liniju sa završnim }znakom za onCreate()metodu, a zatim odaberite Pokreni do kursora . Primit ćete obavijest da je aplikacija pokrenuta. Nakon otključavanja uređaja, trebali biste vidjeti prozor aktivnosti aplikacije za primjer.

Jeff Friesen

Više o otklanjanju pogrešaka

Pogledajte Googleov "Otklanjanje pogrešaka u aplikaciji" da biste saznali više o otklanjanju pogrešaka u Android Studiju; na primjer, kako koristiti razne vrste prijelaznih točaka.

Otklanjanje pogrešaka pomoću GAPID-a

Iako ovdje nije obuhvaćen, preporučujem provjeru GAPID: programa za ispravljanje pogrešaka grafičkog API-ja, zbirke alata za uklanjanje pogrešaka koji vam omogućuju pregled, dotjerivanje i ponovnu reprodukciju poziva iz Android aplikacije na grafički upravljački program.

Pregled koda s Lintom

Bez obzira koliko ga pažljivo napisali, vaš izvorni kôd vjerojatno sadrži bugove, stilske probleme i može se pozivati ​​na resurse koji su neaktivni iz jednog ili drugog razloga. Linter je vrsta alat koji skenira izvorni kod za dokaz ove i drugih bitova gadan dlake, koje se izvješćuje nositelja zahvata.

Lint je ugrađeni linter za Android SDK. Pomoću njega možete locirati probleme kao što su zastarjeli elementi i API pozivi koje vaš ciljni API ne podržava.

Da biste pokrenuli Lint iz Android Studija, odaberite Inspect Code ... s izbornika Analyze . Time se aktivira dijaloški okvir Određivanje opsega pregleda .

Jeff Friesen

Iz dijaloškog okvira odaberite željeni opseg (u ovom slučaju cijeli projekt), a zatim kliknite U redu da biste započeli inspekciju. Rezultati će se pojaviti u prozoru Rezultati inspekcije , gdje su organizirani po kategorijama.

Jeff Friesen

Vjeran svojoj prirodi, Lint je odabrao nekoliko komada dlake koji bi inače mogli pretrpati kod aplikacije. Jednom uočeno, lako je popraviti tri Java upozorenja prikazana na slici 8: jednostavno prijavite androidAnimationprivatei uklonite prebacivanja iz dva findViewById()poziva metode.

Više o Lintu

Pogledajte "Poboljšajte svoj kôd provjerom linta" da biste saznali više o korištenju Linta u Android Studiju i kako biste saznali više o samostalnom alatu Lint za Android SDK.

Instaliranje i korištenje dodataka za Android Studio

Iako ugrađeni alati imaju svoju prednost, mnogi drugi alati dostupni su kao dodaci. U ovom ćemo odjeljku pogledati tri dodatka za poboljšanje produktivnosti kodiranja u Android Studiju:

  • ADB Ideja
  • Codota
  • Dodatak Lombok

Upravitelj dodataka za Android Studio

Upravitelj dodataka za Android Studio olakšava pronalaženje i instaliranje dodataka. Aktivirajte upravitelja dodataka odabirom Datoteka > Postavke, a zatim Dodaci iz dijaloškog okvira Postavke :

Jeff Friesen

Dalje, kliknite Pregledaj spremišta ... da biste aktivirali dijaloški okvir Pregledaj spremišta , koji predstavlja puni popis podržanih dodataka. Ovim ćemo dijaloškim okvirom odabrati svoj prvi dodatak, ADB Idea.

Jeff Friesen

Povećajte svoju Android produktivnost

Prečaci koda: ADB Ideja

ADB Idea ubrzava svakodnevni razvoj Androida pružajući brz pristup uobičajenim ADB naredbama, poput pokretanja i deinstaliranja aplikacije.

Odaberite ADB Idea na popisu spremišta dodataka, a zatim kliknite gumb Instaliraj . Android Studio nastavlja s preuzimanjem i instaliranjem dodatka. Zatim se ponovo označi Instaliranje za ponovno pokretanje Android Studija . Za svaki dodatak morao sam ponovno odabrati dodatak nakon što sam kliknuo Restart Android Studio , a zatim kliknite ovaj gumb drugi put kako bih ponovno pokrenuo Android Studio.

Jeff Friesen

Jednom instaliran, Android Studio vam omogućuje pristup ADB Ideji iz izbornika Alati . Odaberite Alati> Ideja za ADB i odaberite odgovarajuću naredbu iz rezultirajućeg skočnog izbornika.

Jeff Friesen

Nakon što sam odabrao ADB Restart App , primijetio sam sljedeće poruke u prozoru Dnevnik događaja, kao i ponovno pokrenutu aplikaciju na svom uređaju Amazon Kindle.

Jeff Friesen

Pronađite korisni kod: Codota

Dodatak Codota možete koristiti za pristup pretraživaču Codota, koji vam omogućuje da kroz milijune javno dostupnih isječaka izvornog koda Java potražite rješenja za probleme s kodiranjem Androida.

Jeff Friesen

Odaberite Codota s popisa spremišta dodataka, a zatim kliknite gumb Instaliraj . Nakon što je Android Studio preuzeo i instalirao dodatak, ponovno će označiti gumb Instaliraj za ponovno pokretanje Android Studija . Ponovnim pokretanjem aktivira se Codota.

Nakon ponovnog pokretanja naići ćete na dijaloški okvir Provjera autentičnosti Codota . Kliknite vezu i slijedite upute za primanje tokena. Zatim zalijepite žeton u gore spomenuti dijaloški okvir i kliknite Idi .

Jeff Friesen

Android Studio omogućuje vam pristup Codoti klikom desne tipke miša na Java kod u prozoru uređivača i odabirom stavke izbornika Dobivanje relevantnih primjera , kao što je prikazano na slici 16.

Jeff Friesen

Klikom na ovu stavku izbornika preglednik će prikazati stranicu s relevantnim primjerima koda. Na primjer, sljedeća stranica predstavlja primjere koji su relevantni za findViewById:

Jeff Friesen

Automatski generiraj Java kôd: Lombok

Projekt Lombok nudi niz bilješki koje možete koristiti umjesto šifre uzorka, čime štedite vrijeme pri ručnom ispisivanju ovog koda.

Jeff Friesen

Odaberite Lombok dodatak na popisu spremišta dodataka, a zatim kliknite Instaliraj . Nakon što Android Studio preuzme i instalira dodatak, zatražit će da ponovno pokrenete Android Studio . Ponovnim pokretanjem aktivira se dodatak Lombok.