Android Studio для начинающих, часть 4: Инструменты отладки и плагины для повышения производительности
Обновлено: январь 2020 г.
Android Studio предлагает богатую палитру встроенных инструментов разработки и еще более обширную экосистему плагинов. Первые три статьи этой серии были посвящены установке, настройке, написанию кода и запуску простого мобильного приложения с Android Studio. Теперь вы познакомитесь с некоторыми из более продвинутых инструментов: тремя встроенными инструментами и тремя плагинами для отладки и повышения качества и производительности кода вашего приложения Android.
В этой статье представлены следующие инструменты для Android Studio:
Встроенные инструменты отладки
- Logcat
- Отлаживать
- Линт
Плагины для повышения производительности разработчиков
- Идея АБР
- Кодота
- Плагин 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 на выбранном устройстве.
- Выпадающий список уровней ведения журнала:
- Подробно: показать все сообщения.
- Отладка: показывать сообщения журнала отладки, которые полезны только во время разработки, а также уровни сообщений ниже в раскрывающемся списке.
- Информация: показывать ожидаемые сообщения журнала для регулярного использования, а также уровни сообщений ниже в раскрывающемся списке.
- Предупреждать: показать возможные проблемы, которые еще не являются ошибками, а также уровни сообщений ниже в раскрывающемся списке.
- Ошибка: показать проблемы, которые привели к ошибкам - выброшенные исключения, а также уровень сообщения Assert.
- Утверждение: показать проблемы, которые, как ожидает разработчик, никогда не должны произойти.
- Панель поиска, в которой отображаются только сообщения, содержащие текст, введенный вами в этот элемент управления.
- Флажок, позволяющий использовать регулярные выражения в строке поиска. Например, в контексте рисунка 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
«s и System.err
» s print()
и println()
методы. Вызов System.out
методов выполняет то же самое, что и log.i()
вызовы; вызовы System.err
методов выполняют то же самое, что и log.w()
вызовы.

На рис. 2 отображаются только сообщения для примера процесса приложения, запущенного на эмулированном устройстве Nexus 5X. Кроме того, эти сообщения должны содержать onCreate
и приниматься фильтром Показать только выбранное приложение .
Подробнее о Logcat
Ознакомьтесь с разделом Google «Запись и просмотр журналов с помощью Logcat», чтобы узнать больше о 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 .
Теперь выберите « Отладка приложения» в меню « Выполнить» или щелкните соответствующий значок на панели инструментов. Если эмулятор не запущен, вы увидите диалоговое окно Select Deployment Target . Я выбрал Nexus 5X API 15 и нажал « ОК» .
Пока вы ждете, пока эмулируемое устройство подключится к сети, нажмите кнопку « Отладка» на панели инструментов, чтобы отобразить окно « Отладка» . В конце концов вы должны увидеть что-то похожее на рисунок 4.

В окне отладки есть значки для перехода, входа в метод, выхода из него и т. Д. На рисунке 5 показано, что происходит, когда мы переходим через метод.

Щелкните соответствующий значок и выберите « Перешагнуть» в меню « Выполнить» или нажмите F8 . Это позволяет нам углубляться в onCreate()
метод, переступая через каждый вызов метода.
Выберите строку с закрывающим }
символом для onCreate()
метода, затем выберите « Выполнить до курсора» . Вы получите уведомление о том, что приложение запущено. После разблокировки устройства вы должны увидеть окно активности примера приложения.

Подробнее об отладке
Ознакомьтесь с разделом Google «Отладка приложения», чтобы узнать больше об отладке в Android Studio; например, как использовать различные виды точек останова.
Отладка с GAPID
Хотя здесь это не рассматривается, я рекомендую проверить GAPID: Graphics API Debugger, набор инструментов отладки, которые позволяют вам проверять, настраивать и воспроизводить вызовы из приложения Android в графический драйвер.
Проверка кода с помощью Lint
Независимо от того, насколько тщательно вы его пишете, ваш исходный код может содержать ошибки, стилистические проблемы и может ссылаться на ресурсы, которые неактивны по той или иной причине. ЛИНТЕР является типом инструмента , который сканирует исходный код для доказательства этих и других бит противного пуха, который он сообщает разработчик.
Lint - это встроенный линтер для Android SDK. Вы можете использовать его для обнаружения таких проблем, как устаревшие элементы и вызовы API, которые не поддерживаются вашим целевым API.
Чтобы запустить Lint из Android Studio, выберите Inspect Code ... в меню Analyze . При этом активируется диалоговое окно « Указать объем проверки ».

В диалоговом окне выберите желаемый объем (в данном случае весь проект), затем нажмите OK, чтобы начать проверку. Результаты появятся в окне результатов проверки , где они сгруппированы по категориям.

Верный своей природе, Lint выбрал несколько мелочей, которые в противном случае могли бы загромождать код приложения. После обнаружения три предупреждения Java, показанные на рисунке 8, легко исправить: просто объявите androidAnimation
private
и удалите приведение типов из двух findViewById()
вызовов методов.
Подробнее о линте
Ознакомьтесь с разделом «Улучшите свой код с помощью проверки ворсинок», чтобы узнать больше об использовании Lint в Android Studio и узнать об отдельном инструменте Lint в Android SDK.
Установка и использование плагинов Android Studio
Хотя встроенные инструменты имеют свои достоинства, многие другие инструменты доступны в виде плагинов. В этом разделе мы рассмотрим три плагина для повышения продуктивности программирования в Android Studio:
- Идея АБР
- Кодота
- Плагин Lombok
Менеджер плагинов Android Studio
Менеджер плагинов Android Studio упрощает поиск и установку плагинов. Активируйте диспетчер плагинов, выбрав Файл > Настройки, а затем Плагины в диалоговом окне Настройки :

Затем нажмите « Обзор репозиториев ...», чтобы активировать диалоговое окно « Обзор репозиториев », в котором представлен полный список поддерживаемых подключаемых модулей. Мы будем использовать этот диалог, чтобы выбрать наш первый плагин, ADB Idea.

Повысьте производительность Android
Сочетания клавиш: идея ADB
ADB Idea ускоряет повседневную разработку Android, обеспечивая быстрый доступ к часто используемым командам ADB, таким как запуск и удаление приложения.
Выберите ADB Idea в списке плагинов репозитория, затем нажмите кнопку « Установить» . Android Studio приступает к загрузке и установке плагина. Затем он переименовывает Установить, чтобы перезапустить Android Studio . Для каждого плагина мне пришлось повторно выбрать плагин после нажатия « Перезапустить Android Studio» , а затем нажать эту кнопку второй раз, чтобы перезапустить Android Studio.

После установки Android Studio позволяет получить доступ к ADB Idea из меню « Инструменты» . Выберите « Инструменты»> «ADB Idea» и выберите соответствующую команду в появившемся всплывающем меню.

После того, как я выбрал приложение ADB Restart , я заметил следующие сообщения в окне журнала событий, а также перезапущенное приложение на моем устройстве Amazon Kindle.

Найдите подходящий код: Codota
Вы можете использовать плагин Codota для доступа к поисковой системе Codota, которая позволяет просматривать миллионы общедоступных фрагментов исходного кода Java для решения проблем с кодированием Android.

Выберите Codota в списке плагинов репозитория и нажмите кнопку « Установить» . После того, как Android Studio загрузит и установит плагин, кнопка « Установить» будет помечена как «Перезапустить Android Studio» . Перезапуск активирует Codota.
После перезапуска вы увидите диалоговое окно Codota Authentication . Щелкните ссылку и следуйте инструкциям, чтобы получить токен. Затем вставьте токен в вышеупомянутое диалоговое окно и нажмите « Перейти» .

Android Studio позволяет получить доступ к Codota, щелкнув правой кнопкой мыши код Java в окне редактора и выбрав пункт меню Получить соответствующие примеры , как показано на рисунке 16.

Щелчок по этому пункту меню приводит к тому, что браузер отображает страницу с соответствующими примерами кода. Например, на следующей странице представлены примеры, относящиеся к findViewById
:

Автоматически сгенерировать код Java: Lombok
Project Lombok предлагает набор аннотаций, которые вы можете использовать вместо стандартного кода, тем самым экономя ваше время на написание этого кода вручную.

Выберите Lombok Plugin в списке плагинов репозитория, затем нажмите Install . После того, как Android Studio загрузит и установит плагин, вам будет предложено перезапустить Android Studio . При перезапуске активируется плагин Lombok.