Для разработчиков, ведущих кодирование в одиночку, статические анализаторы вещь вообще неоценимая. Ведь им некому показать код своего приложения. Так что "электронный помощник", способный грамотно выполнить "code review", может им здорово пригодится.
Вопрос - какие статические анализаторы кода доступны разработчику Android приложений? Для Java статических анализаторов существует множество (см. список lint приложений для Java в википедии), но не все они умеют работать с Android-приложениями и, тем более, учитывать их специфику.
Мне удалось отыскать следующие статические анализаторы кода, которые умеют работать с Android-приложениями:
- Lint. "Родной" анализатор кода для Android, входит в состав Android SDK начиная с r16.
- FindBugs (бесплатный).
- Checkstyle (бесплатный).
- CodePro Analytix (бесплатный).
- PMD (бесплатный)
- Motodev App Validator (бесплатный). Входит в состав среды разработки MOTODEV Studio for Android. Есть online вариант.
- Klocwork Solo (платный). Доступна триальная версия
- JTest от Parasoft (платный).
- Julia (платный).
Доступен бесплатный online вариант.
Чтобы было интереснее сравнивать, я "натравил" каждый из этих анализаторов на одно и то же тестовое приложение. В качестве такового я взял код одной из ранних версий моего приложения Animated Widget Contact Launcher. Версию я выбрал годичной давности, багов и проблем в ней было вагон (с FindBugs на тот момент я был не знаком). Так что "что поискать" в ней точно было.