AkiVaMu Just tiny things come to mind...

JAVA Static Code Analysis

This points out the differences among some tools:

Checkstyle PMD Findbugs
Enforce coding standards and conventions Find patterns that can lead to bugs Find bugs, yes
naming conventions, whitespace… duplicated code, unused variables, dead code… bad practices, design flaws…

Android Lint is another tool to find potential bugs in Android app code:

  • Missing translations (and unused translations)
  • Layout performance problems (all the issues the old layoutopt tool used to find, and more)
  • Unused resources
  • Inconsistent array sizes (when arrays are defined in multiple configurations)
  • Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
  • Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
  • Usability problems (like not specifying an input type on a text field)
  • Manifest errors

And this provides an example of using Checkstyle, PMD, Findbugs and Lint by Gradle build tool.