Актуализирано: януари 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.out
'и System.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 ++).
- Проучете променливите и оценете изразите по време на изпълнение.
Има някои предпоставки преди да използвате този инструмент за отстраняване на грешки:
- Ако приложението ви включва C / C ++ изходен код, ще трябва да инсталирате LLDB от SDK Manager (вижте фигура 3). За щастие, примерното приложение за тази серия ( W2A ) не съдържа C / C ++ код, така че можем да игнорираме тази предпоставка.
Джеф Фризън
- Трябва да активирате отстраняването на грешки на свързано устройство. Ако обаче използвате емулатор (какъвто сме ние за този пример), можете да игнорирате тази предпоставка. Отстраняването е разрешено по подразбиране на емулирани устройства.
- Трябва да стартирате вариант за изграждане, който може да бъде отстранен. По подразбиране това е създадено за вас, така че в много случаи (включително този пример) не е нужно да се притеснявате за това.
Нека да преминем през бърза сесия за отстраняване на грешки.
Обикновено отстраняване на грешки в 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: просто декларирайте androidAnimation
private
и премахнете отливките от двете 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.