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

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

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


person Mike Hudgell    schedule 30.06.2011    source источник
comment
Оцените Sonarqube - androidlearnersite.wordpress.com / 2017/02/21 /   -  person Android Developer    schedule 21.02.2017


Ответы (6)


Это не совсем для Android, это для Java.

Я знаю несколько инструментов:

  1. PMD - официальный сайт
  2. FindBugs - официальный сайт

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

person inazaruk    schedule 30.06.2011
comment
Скажите, пожалуйста, как я могу выполнить проверку кода для проекта студии Android на основе Gradle. Есть ли способ сделать это с помощью командной строки. Я бы предпочел инструмент, которым можно управлять из командной строки, поскольку его можно использовать для непрерывной интеграции. - person Nevin Raj Victor; 20.04.2015

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

person fones    schedule 19.07.2012
comment
Эта ссылка все еще действительна; это еще один, который кажется более новым; developer.android.com/studio/write/lint.html - person AnneTheAgile; 09.08.2017

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

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

Специально для Android:

DidFail

FlowDroid

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

person Lonzak    schedule 05.11.2014

Попробуйте IntelliJ IDEA от Jetbrains (создателя resharper). Он имеет множество проверок кода Java, таких как resharper, и поддерживает разработку приложений для Android.

person zloyrobot    schedule 30.06.2011

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

person Community    schedule 19.06.2014