Инструменты анализа кода для Android

Есть ли какие-либо инструменты для анализа статического кода для Android, которые собирают простые вещи, такие как NullPointerExceptions, из попыток доступа к объекту, который может быть пустым (не проверяя его в первую очередь)...

Инструменты, такие как resharper на проектах С#, делают это довольно хорошо, поэтому я предполагаю, что есть аналогичные инструменты для Android Java...

Ответы

Ответ 1

Это не очень специфический Android, он специфичен для Java.

Несколько инструментов, о которых я знаю:


Более полный список инструментов можно найти на wikipedia.

Ответ 2

С ADT 16 существует инструмент build-int Android Lint для статического анализа кода. http://tools.android.com/tips/lint/

Ответ 3

Для статического анализа приложений для Android вы можете использовать следующую комбинацию:

  • Используйте DED, чтобы сначала декомпилировать приложения и получить исходные файлы Java.
  • Используйте SOOT для статического анализа исходных файлов Java, полученных с шага выше

Ответ 4

Специфические для Android:

DidFail

FlowDroid

IccTA (от создателей FlowDroid)

Ответ 6

AndroidStudio - это тонкий слой поверх IntelliJ IDEA, который, по словам zloyrobot, имеет множество проверок. Проблема в том, что существует так много проверок, что сложно сузить ваши запросы, чтобы подобрать только действительно хорошие вещи. Я разработал профиль для этой цели и описал, как его использовать здесь: http://superliminal.com/computing/idea_static_analysis.html