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.