На практике в коде очень часто можно встретить очевидные ошибки, спустя какое-то время. Это может происходить из-за невнимательности при написании кода. Что бы свести такие ошибки к минимуму могут помочь статические анализаторы кода. Одним из таких анализаторов является Lint.

Lint - это статический анализатор кода, который сообщает о подозрительных или критических выражениях в коде. По факту это слово стало нарицательным и им называют анализаторы, которые сканируют код на наличие ошибок.

В Android Studio уже есть встроенные анализаторы кода, который дают подсказки “налету”.

Однако подсказки подсвечивают ошибки достаточно ненавязчиво и поэтому их легко пропустить. Но можно запустить проверку несколькими способами.

Способы запуска Lint.

Запуск через меню в Android Studio

Самый простой и удобный способ запуска проверки - это через Android Studio. Для этого в меню необходимо выбрать пункты Analyze -> Inspect Code. В появившемся окне можно ограничить область сканирования кода. Можно проверить весь проект, определённый модуль или отдельный взятый класс. На мой взгляд самый полезных из пунктов - это проверка не закоммиченых файлов. Так же можно выбрать профиль с набором правил для проверки.

После выбора настроек можно начать проверку по нажатию на кнопку Ок. Когда проверка закончиться то появиться окно в котором все ошибки, и предупреждения будут выведены в специальном окне. Все замечания удобно собраны по типам с кратким описание причины и решением проблемы.

Запуск через командную строку

Так же проверку можно запустить через gradle выполнив в консоли команду:

./gradlew lint

После проверки сформируется отчёт в формате html, который можно посмотреть по следующему пути:

/путь_к_проекту/app/build/reports/lint-results.html

Этот способ менее удобный чем первый, так как отчёт формируется в отрыве от студии и для правки ошибок нужно постоянно переключаться между отчётом и IDE. Зато этот способ прекрасно подходит для случаев если проверку осуществляется на сервере, а в случае обнаружение ошибок, прикреплять файл с отчётом к письму.

Запуск при сборке проекта.

Можно автоматизировать запуск проверки lint, который будет осуществлять при каждой сборке проекта. Для этого необходимо зайти в настройки запуска проекта:

Добавить следующую строку:

:app:check

Этот способ менее предпочтительный так как значительно замедлит скорость сборки и разработки.

Настройка gradle сборки

Так же lint проверку можно настроить в gradle файле.

lintOptions {
    abortOnError false
    warningsAsErrors true
    lintConfig file('./code_quality_tools/lint.xml')
}
  • abortOnError: В случае обнаружение ошибки прекращается проверка.
  • warningsAsErrors: определяет предупреждения как ошибки.
  • lintConfig: путь к файлу проекта с настройками lint.

Если опция abortOnError включена, то при запуске сборки через gradle в случае обнаружении ошибки произойдёт исключение:

Настройка правил проверки lint

Отредактировать правила lint можно в настройках Android studio. Там же можно сделать отдельный конфигурационный профиль и использовать его.

Отключение проверки Lint с помощью анотаций в коде

Иногда бывают исключения, и может сложиться ситуация что необходимо отключить проверку какого-либо правила проверки для класса или метода. В Java коде это делается через аннотацию @SuppressLint(“NewApi”). В качестве параметра принимает строку названия проверки которую нужно исключить. Если нужно исключить все правила, то можно использовать следующую аннотацию:

@SuppressLint("all")

Так же проверку можно обойти в xml файлах с помощью аттрибута tools:ignore=“NewApi,StringFormatInvalid”.

Выводы

В данной статье мы рассмотрели основные способы запуска проверки кода. Lint очень полезный инструмент для контроля за качеством кода, которым можно и нужно пользоваться.