Android Studio за начинаещи, Част 4: Инструменти за отстраняване на грешки и приставки за производителност

Актуализирано: януари 2020 г.

Android Studio предлага богата палитра от вградени инструменти за разработка и още по-богата екосистема на приставки. Първите три статии от тази поредица се фокусираха върху инсталирането и настройката и кодирането и стартирането на просто мобилно приложение с Android Studio. Сега ще се запознаете с някои от по-усъвършенстваните инструменти: три вградени инструмента и три приставки за отстраняване на грешки и подобряване на качеството и производителността на кода на вашето приложение за Android.

Тази статия представя следните инструменти за Android Studio:

Вградени инструменти за отстраняване на грешки

  • Logcat
  • Отстраняване на грешки
  • Власинки

Приставки за производителност на разработчици

  • ADB Idea
  • Кодота
  • Приставка Lombok

Какво ново в Android Studio 3.5

Разберете какво да търсите в най-новата версия на Android Studio, включително поддръжка за Kotlin и подобрения в управлението на паметта и отзивчивостта на потребителския интерфейс.

Регистрация и отстраняване на грешки на приложения за Android

Приложението бъги е сигурен начин да прогоните потенциалните клиенти. Logcat и Debug са два инструмента, вградени в Android Studio, които можете да използвате за идентифициране и отстраняване на грешки във вашия Android код.

Влизане в Android: Logcat

Може да не ви е необходим или да искате пълноценна програма за отстраняване на грешки за всеки сценарий "бъги". В някои случаи е достатъчно да регистрирате и коригирате стойностите на определени променливи. Logcat на Android Studio е идеален за тази задача.

Logcat е инструмент за команден ред (интегриран в Android Debug Bridge - ADB), който изхвърля дневник със системни съобщения, който може да ви помогне да намерите и отстраните проблеми във вашия код. Съобщенията включват следи от стека, когато устройството издава грешка, и съобщения в дневника, които целенасочено сте вградили в android.util.Logкласа. Logcat е толкова полезен, че е интегриран директно в Android Studio, където можете да получите достъп до него от менюто Изглед или лентата на прозореца на инструмента.

Джеф Фризън

Прозорецът Logcat е разделен на хоризонтален ред от падащи списъци и други контроли, последвани от област за съобщения. Отляво надясно контролите са:

  • Падащ списък, идентифициращ свързани устройства и емулатори. (Вижте фигура 1.)
  • Падащ списък, идентифициращ инсталираните APK пакети на избраното устройство.
  • Падащ списък с нива на регистриране:
    • Многословно: покажете всички съобщения.
    • Отстраняване на грешки: показва съобщения за регистрация за отстраняване на грешки, които са полезни само по време на разработката, както и нивата на съобщенията по-ниски в падащия списък.
    • Информация: покажете очакваните регистрационни съобщения за редовна употреба, както и нивата на съобщенията по-ниски в падащия списък.
    • Предупреждение: покажете възможни проблеми, които все още не са грешки, както и нивата на съобщенията по-ниско в падащия списък.
    • Грешка: покажете проблеми, които са причинили грешки - изхвърлени изключения, както и нивото на съобщение за заявяване.
    • Утвърждаване: покажете проблеми, които разработчикът очаква никога да не се случват.
  • Лента за търсене, където се появяват единствените съобщения, съдържащи текста, който въвеждате в тази контрола.
  • Поле за отметка, което ви позволява да използвате регулярни изрази в лентата за търсене. Например, в контекста на фигура 1, можете да посочите SystemClock | AlarmManager (т.е. съобщението трябва да съдържа или дума).
  • Падащ списък за филтриране на съобщения, включващ следните опции:
    • Без филтри (по подразбиране) причинява появата на всички съобщения за избраното устройство, независимо от избрания APK пакет.
    • Показване само на избраното приложение представя само тези съобщения за избрания APK пакет на избраното устройство, които са на съответното ниво на регистрационния файл или по-ниско.
    • Редактиране на конфигурацията на филтъра ви позволява да създадете персонализиран филтър.

В изходния код можете да вмъквате повиквания към различни android.util.Logметоди за регистриране на съобщения. Например можете да се обадите, за public static int i(String tag, String msg)да регистрирате INFOсъобщение на ниво или public static int w(String tag, String msg)да регистрирате WARNсъобщение на ниво.

И за двата метода низът, предаден към, tagидентифицира източника на съобщението (напр. Методът, в който е извикан този метод на регистриране), а низът, предаден към, msgидентифицира съобщението, което се регистрира.

Като алтернатива можете да извикате System.outSystem.err' print()и println()методи. Обажданията към System.outметодите изпълняват същото като log.i()повикванията; извикванията към System.errметодите постигат същото като log.w()повикванията.

Джеф Фризън

На фигура 2 единствените показани съобщения са за примерния процес на приложението, изпълняван на емулираното устройство Nexus 5X. Освен това тези съобщения трябва да съдържат onCreateи да бъдат приети от Покажи само избрания филтър за приложения .

Повече за Logcat

Вижте „Писане и преглед на регистрационни файлове с Logcat“ на Google, за да научите повече за Logcat. Също така изучете android.util.Logдокументацията на класа.

Отстраняване на грешки в Android: Отстраняване на грешки

Използването на Logcat за регистриране и корекция на код е добре за много прости приложения. За по-сложни приложения тази форма на отстраняване на грешки може да бъде досадна. Вместо това ще искате нещо, което ви позволява да отстранявате грешки в изпълнимия код на приложението. Вграденият инструмент за отстраняване на грешки в Android Studio предлага много възможности, включително следните:

  • Изберете устройство, на което да отстранявате грешки в приложението си.
  • Задайте точки на прекъсване в кода на вашето приложение (Java, Kotlin или C / C ++).
  • Проучете променливите и оценете изразите по време на изпълнение.

Има някои предпоставки преди да използвате този инструмент за отстраняване на грешки:

  1. Ако приложението ви включва C / C ++ изходен код, ще трябва да инсталирате LLDB от SDK Manager (вижте фигура 3). За щастие, примерното приложение за тази серия ( W2A ) не съдържа C / C ++ код, така че можем да игнорираме тази предпоставка.

    Джеф Фризън

  2. Трябва да активирате отстраняването на грешки на свързано устройство. Ако обаче използвате емулатор (какъвто сме ние за този пример), можете да игнорирате тази предпоставка. Отстраняването е разрешено по подразбиране на емулирани устройства.
  3. Трябва да стартирате вариант за изграждане, който може да бъде отстранен. По подразбиране това е създадено за вас, така че в много случаи (включително този пример) не е нужно да се притеснявате за това.

Нека да преминем през бърза сесия за отстраняване на грешки.

Обикновено отстраняване на грешки в Android

Ако приемем, че използвате Android Studio с отворен прозорец на редактора за примерното приложение ( W2A.java ), първата ви стъпка е да зададете точка на прекъсване на public void onCreate(Bundle savedInstanceState)линията. Задайте точката на прекъсване, като маркирате този ред и направите едно от следните:

  • Щракнете върху областта на канавката вляво от линията; линията трябва да стане розова в отговор.
  • Изберете Toggle Line Breakpoint от менюто Run .
  • Натиснете Ctrl и F8 едновременно.

Сега изберете Debug 'app' от менюто Run или щракнете върху съответната икона в лентата с инструменти. Ако емулаторът не работи, ще наблюдавате диалоговия прозорец Избор на цел за внедряване . Избрах Nexus 5X API 15 и са кликнали ОК .

Докато чакате емулираното устройство да се включи онлайн, щракнете върху бутона за отстраняване на грешки в лентата на прозореца на инструмента, за да се покаже прозорецът за отстраняване на грешки . В крайна сметка трябва да видите нещо подобно на Фигура 4.

Джеф Фризън

Прозорецът за отстраняване на грешки предоставя икони за преминаване, влизане и излизане от метод и др. Фигура 5 показва какво се случва, когато преминем през метод.

Джеф Фризън

Щракнете върху съответната икона и изберете Step Over от менюто Run или натиснете F8 . Това ни позволява да продължим по-дълбоко в onCreate()метода, като същевременно преминаваме през всяко извикване на метод.

Изберете реда със затварящия }символ за onCreate()метода, след което изберете Run to Cursor . Ще получите известие, че приложението работи. След отключване на устройството трябва да видите прозореца за активност на примерното приложение.

Джеф Фризън

Повече за отстраняване на грешки

Разгледайте „Отстраняване на грешки в приложението“ на Google, за да научите повече за отстраняване на грешки в Android Studio; например как да се използват различни видове точки на прекъсване.

Отстраняване на грешки с GAPID

Въпреки че не е обхванат тук, препоръчвам да разгледате GAPID: Графичен API Debugger, колекция от инструменти за отстраняване на грешки, които ви позволяват да проверявате, ощипвате и преигравате обаждания от приложение за Android към графичен драйвер.

Проверка на кода с Lint

Без значение колко внимателно го пишете, вашият изходен код вероятно ще съдържа грешки, стилистични проблеми и може да препраща към неактивни ресурси по една или друга причина. А Linter е вид инструмент, който сканира изходния код за доказване на тези и други части от гаден пух, което го съобщава на възложителя.

Lint е вграден линт за Android SDK. Можете да го използвате, за да намерите проблеми като остарели елементи и API повиквания, които не се поддържат от целевия ви API.

За да стартирате Lint от Android Studio, изберете Inspect Code ... от менюто Analyze . По този начин се активира диалоговият прозорец Задаване на обхват на проверка .

Джеф Фризън

От диалоговия прозорец изберете желания обхват (в този случай целият проект), след което щракнете върху OK, за да започнете проверката. Резултатите ще се покажат в прозореца Резултати от проверката , където са организирани по категории.

Джеф Фризън

Верен на своята природа, Lint е избрал няколко парчета пух, които иначе биха могли да затрупат кода на приложението. Веднъж забелязани, е лесно да поправите трите Java предупреждения, показани на Фигура 8: просто декларирайте androidAnimationprivateи премахнете отливките от двете findViewById()извиквания на метода.

Повече за Lint

Вижте „Подобрете кода си с проверки на влакна“, за да научите повече за използването на Lint в Android Studio и да научите за самостоятелния инструмент Lint на Android SDK.

Инсталиране и използване на приставки за Android Studio

Докато вградените инструменти имат своите предимства, много други инструменти се предлагат като приставки. В този раздел ще разгледаме три приставки за подобряване на производителността на вашето кодиране в Android Studio:

  • ADB Idea
  • Кодота
  • Приставка Lombok

Мениджър на приставки за Android Studio

Мениджърът на приставки на Android Studio улеснява намирането и инсталирането на приставки. Активирайте мениджъра на приставки, като изберете Файл > Настройки, последвани от Приставки от диалоговия прозорец Настройки :

Джеф Фризън

След това щракнете върху Преглед на хранилища ..., за да активирате диалоговия прозорец Преглед на хранилища , който представя пълен списък с поддържани приставки. Ще използваме този диалогов прозорец, за да изберем първия ни плъгин, ADB Idea.

Джеф Фризън

Увеличете производителността си на Android

Преки пътища на кода: ADB Idea

ADB Idea ускорява ежедневното разработване на Android, като осигурява бърз достъп до често използвани команди на ADB, като стартиране и деинсталиране на приложение.

Изберете ADB Idea в списъка с добавки на хранилището, след което щракнете върху бутона Инсталиране . Android Studio продължава с изтеглянето и инсталирането на приставката. След това той поставя етикети Инсталиране, за да рестартира Android Studio . За всеки плъгин трябваше да избирам повторно приставката, след като щракнах върху Рестартиране на Android Studio и след това щракнах този бутон втори път, за да рестартирам Android Studio.

Джеф Фризън

Веднъж инсталиран, Android Studio ви позволява достъп до ADB Idea от менюто си Инструменти . Изберете Инструменти> Идея за ADB и изберете съответната команда от изскачащото меню.

Джеф Фризън

След като избрах приложението за рестартиране на ADB , наблюдавах следните съобщения в прозореца на дневника на събитията, както и рестартираното приложение на устройството ми Amazon Kindle.

Джеф Фризън

Намерете използваем код: Codota

Можете да използвате приставката Codota за достъп до търсачката на Codota, която ви позволява да разгледате милиони публично достъпни фрагменти на изходния код на Java за решения на проблеми с кодирането на Android.

Джеф Фризън

Изберете Codota в списъка с добавки на хранилището и след това щракнете върху бутона Инсталиране . След като Android Studio изтегли и инсталира приставката, той ще постави отново етикета на бутона Инсталиране, за да рестартира Android Studio . Рестартирането активира Codota.

При рестартиране ще срещнете диалоговия прозорец удостоверяване на Codota . Щракнете върху връзката и следвайте инструкциите, за да получите токена. След това поставете маркера в гореспоменатия диалогов прозорец и щракнете върху Go .

Джеф Фризън

Android Studio ви позволява достъп до Codota, като щракнете с десния бутон върху Java кода в прозореца на редактора и изберете елемента от менюто Получаване на подходящи примери , както е показано на фигура 16.

Джеф Фризън

Кликването върху този елемент от менюто води до това, че браузърът показва страница с подходящи примери за код. Например, следващата страница представя примери, които са от значение за findViewById:

Джеф Фризън

Автоматично генериране на Java код: Lombok

Project Lombok предлага набор от анотации, които можете да използвате вместо кода на шаблона, като по този начин ви спестява време за ръчно изписване на този код.

Джеф Фризън

Изберете Lombok Plugin в списъка с добавки на хранилището, след което щракнете върху Install . След като Android Studio изтегли и инсталира приставката, той ще ви подкани да рестартирате Android Studio . Рестартирането активира приставката Lombok.