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 ++).
  • Изучите переменные и оцените выражения во время выполнения.

Перед использованием этого инструмента отладки необходимо выполнить несколько предварительных условий:

  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 .

Теперь выберите « Отладка приложения» в меню « Выполнить» или щелкните соответствующий значок на панели инструментов. Если эмулятор не запущен, вы увидите диалоговое окно 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, легко исправить: просто объявите androidAnimationprivateи удалите приведение типов из двух 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.