Class Summary |
AccessibilityDetector |
Check which looks for accessibility problems like missing content descriptions |
AddJavascriptInterfaceDetector |
Ensures that addJavascriptInterface is not called for API levels below 17. |
AlwaysShowActionDetector |
Check which looks for usage of showAsAction="always" in menus (or
MenuItem.SHOW_AS_ACTION_ALWAYS in code), which is usually a style guide violation. |
AnnotationDetector |
Checks annotations to make sure they are valid |
Api |
Main entry point for API description. |
ApiClass |
Represents a class and its methods/fields. |
ApiDetector |
Looks for usages of APIs that are not supported in all the versions targeted
by this application (according to its minimum API requirement in the manifest). |
ApiLookup |
Database for API checking: Allows quick lookup of a given class, method or field
to see which API level it was introduced in. |
ApiParser |
Parser for the simplified XML API format version 1. |
AppCompatCallDetector |
|
AppCompatResourceDetector |
Check that the right namespace is used for app compat menu items
Using app:showAsAction instead of android:showAsAction leads to problems, but
isn't caught by the API Detector since it's not in the Android namespace. |
ArraySizeDetector |
Checks for arrays with inconsistent item counts |
AssertDetector |
Looks for assertion usages. |
BuiltinIssueRegistry |
Registry which provides a list of checks to be performed on an Android project |
ButtonDetector |
Check which looks at the order of buttons in dialogs and makes sure that
"the dismissive action of a dialog is always on the left whereas the affirmative actions
are on the right." |
ByteOrderMarkDetector |
Checks that byte order marks do not appear in resource names |
CallSuperDetector |
Makes sure that methods call super when overriding methods. |
CheckPermissionDetector |
Ensures that calls to check permission use the result (otherwise they probably meant to call the
enforce permission methods instead) |
ChildCountDetector |
Check which makes sure that views have the expected number of declared
children (e.g. |
CipherGetInstanceDetector |
Ensures that Cipher.getInstance is not called with AES as the parameter. |
CleanupDetector |
Checks for missing recycle calls on resources that encourage it, and
for missing commit calls on FragmentTransactions, etc. |
ClickableViewAccessibilityDetector |
Checks that views that override View#onTouchEvent also implement View#performClick
and call performClick when click detection occurs. |
ColorUsageDetector |
Looks for cases where the code attempts to set a resource id, rather than
a resolved color, as the RGB int. |
CommentDetector |
Looks for issues in Java comments |
ControlFlowGraph |
A ControlFlowGraph is a graph containing a node for each
instruction in a method, and an edge for each possible control flow; usually
just "next" for the instruction following the current instruction, but in the
case of a branch such as an "if", multiple edges to each successive location,
or with a "goto", a single edge to the jumped-to instruction. |
ControlFlowGraph.Node |
A ControlFlowGraph.Node is a node in the control flow graph for a method, pointing to
the instruction and its possible successors |
CustomViewDetector |
Makes sure that custom views use a declare styleable that matches
the name of the custom view |
CutPasteDetector |
Detector looking for cut & paste issues |
DateFormatDetector |
Checks for errors related to Date Formats |
DeprecationDetector |
Check which looks for usage of deprecated tags, attributes, etc. |
DetectMissingPrefix |
Detects layout attributes on builtin Android widgets that do not specify
a prefix but probably should. |
DosLineEndingDetector |
Checks that the line endings in DOS files are consistent |
DuplicateIdDetector |
Checks for duplicate ids within a layout and within an included layout |
DuplicateResourceDetector |
This detector identifies cases where a resource is defined multiple times in the
same resource folder |
ExtraTextDetector |
Check which looks for invalid resources. |
FieldGetterDetector |
Looks for getter calls within the same class that could be replaced by
direct field references instead. |
FragmentDetector |
Checks that Fragment subclasses can be instantiated via
{link Class.newInstance() }: the class is public, static, and has
a public null constructor. |
GetSignaturesDetector |
|
GradleDetector |
Checks Gradle files for potential errors |
GridLayoutDetector |
Check which looks for potential errors in declarations of GridLayouts, such as specifying
row/column numbers outside the declared dimensions of the grid. |
HandlerDetector |
Checks that Handler implementations are top level classes or static. |
HardcodedDebugModeDetector |
Checks for hardcoded debug mode in manifest files |
HardcodedValuesDetector |
Check which looks at the children of ScrollViews and ensures that they fill/match
the parent width instead of setting wrap_content. |
IconDetector |
Checks for common icon problems, such as wrong icon sizes, placing icons in the
density independent drawable folder, etc. |
IncludeDetector |
Checks for problems with include tags, such as providing layout parameters
without specifying both layout_width and layout_height |
InefficientWeightDetector |
Checks whether a layout_weight is declared inefficiently. |
InvalidPackageDetector |
Looks for usages of Java packages that are not included in Android. |
JavaPerformanceDetector |
Looks for performance issues in Java files, such as memory allocations during
drawing operations and using HashMap instead of SparseArray. |
JavaScriptInterfaceDetector |
Looks for addJavascriptInterface calls on interfaces have been properly annotated
with @JavaScriptInterface |
LabelForDetector |
Detector which finds unlabeled text fields |
LayoutConsistencyDetector |
Checks for consistency in layouts across different resource folders |
LayoutInflationDetector |
Looks for layout inflation calls passing null as the view root |
LocaleDetector |
Checks for errors related to locale handling |
LocaleFolderDetector |
Checks for errors related to locale handling |
LogDetector |
Detector for finding inefficiencies and errors in logging calls. |
ManifestDetector |
Checks for issues in AndroidManifest files such as declaring elements in the
wrong order. |
ManifestTypoDetector |
Checks for typos in manifest files |
MathDetector |
Looks for usages of Math methods which can be replaced with
android.util.FloatMath methods to avoid casting. |
MergeRootFrameLayoutDetector |
Checks whether a root FrameLayout can be replaced with a <merge> tag. |
MissingClassDetector |
Checks to ensure that classes referenced in the manifest actually exist and are included |
MissingIdDetector |
Check which looks for missing id's in views where they are probably needed |
NamespaceDetector |
Checks for various issues related to XML namespaces |
NegativeMarginDetector |
Checks for negative margins in the following scenarios:
In direct layout attribute usages, e.g. |
NestedScrollingWidgetDetector |
Checks whether a root FrameLayout can be replaced with a <merge> tag. |
NfcTechListDetector |
Check which makes sure NFC tech lists do not include spaces around <tech> values
since that's not handled correctly by the inflater |
NonInternationalizedSmsDetector |
Detector looking for text messages sent to an unlocalized phone number. |
ObsoleteLayoutParamsDetector |
Looks for layout params on views that are "obsolete" - may have made sense
when the view was added but there is a different layout parent now which does
not use the given layout params. |
OnClickDetector |
Checks for missing onClick handlers |
OverdrawDetector |
Check which looks for overdraw problems where view areas are painted and then
painted over, meaning that the bottom paint operation is a waste of time. |
OverrideConcreteDetector |
Checks that subclasses of certain APIs are overriding all methods that were abstract
in one or more earlier API levels that are still targeted by the minSdkVersion
of this project. |
OverrideDetector |
Checks for accidental overrides |
ParcelDetector |
Looks for Parcelable classes that are missing a CREATOR field |
PluralsDatabase |
Database used by the PluralsDetector to get information
about plural forms for a given language |
PluralsDetector |
Checks for issues with quantity strings |
PreferenceActivityDetector |
Ensures that PreferenceActivity and its subclasses are never exported. |
PrivateKeyDetector |
Looks for packaged private key files. |
PrivateResourceDetector |
Check which looks for access of private resources. |
ProguardDetector |
Check which looks for errors in Proguard files. |
PropertyFileDetector |
Check for errors in .property files |
PxUsageDetector |
Check for px dimensions instead of dp dimensions. |
RegistrationDetector |
Checks for missing manifest registrations for activities, services etc
and also makes sure that they are registered with the correct tag |
RelativeOverlapDetector |
Check for potential item overlaps in a RelativeLayout when left- and
right-aligned text items are used. |
RequiredAttributeDetector |
Ensures that layout width and height attributes are specified |
ResourceCycleDetector |
Checks for cycles in resource definitions |
ResourcePrefixDetector |
Ensure that resources in Gradle projects which specify a resource prefix
conform to the given name
TODO: What about id's? |
RtlDetector |
Check which looks for RTL issues (right-to-left support) in layouts |
ScrollViewChildDetector |
Check which looks at the children of ScrollViews and ensures that they fill/match
the parent width instead of setting wrap_content. |
SdCardDetector |
Looks for hardcoded references to /sdcard/. |
SecureRandomDetector |
Checks for hardcoded seeds with random numbers. |
SecureRandomGeneratorDetector |
Checks for pseudo random number generator initialization issues |
SecurityDetector |
Checks that exported services request a permission. |
ServiceCastDetector |
Detector looking for casts on th result of context.getSystemService which are suspect |
SetJavaScriptEnabledDetector |
Looks for invocations of android.webkit.WebSettings.setJavaScriptEnabled. |
SharedPrefsDetector |
Detector looking for SharedPreferences.edit() calls without a corresponding
commit() or apply() call |
SignatureOrSystemDetector |
Checks if signatureOrSystem level permissions are set. |
StateListDetector |
Checks for unreachable states in an Android state list definition |
StringFormatDetector |
Check which looks for problems with formatting strings such as inconsistencies between
translations or between string declaration and string usage in Java. |
SystemPermissionsDetector |
Checks if an application wants to use permissions that can only be used by
system applications. |
TextFieldDetector |
Checks for usability problems in text fields: omitting inputType, or omitting a hint. |
TextViewDetector |
Checks for cases where a TextView should probably be an EditText instead |
TitleDetector |
Check which makes sure menu items specify a title |
ToastDetector |
Detector looking for Toast.makeText() without a corresponding show() call |
TooManyViewsDetector |
Checks whether a root FrameLayout can be replaced with a <merge> tag. |
TranslationDetector |
Checks for incomplete translations - e.g. |
TypoDetector |
Check which looks for likely typos in Strings. |
TypographyDetector |
Checks for various typographical issues in string definitions. |
TypographyDetector.ReplaceEdit |
An object describing a single edit to be made. |
TypoLookup |
Database of common typos / misspellings. |
UnusedResourceDetector |
Finds unused resources. |
UseCompoundDrawableDetector |
Checks whether the current node can be replaced by a TextView using compound
drawables. |
UselessViewDetector |
Checks whether the current node can be removed without affecting the layout. |
Utf8Detector |
Checks that the encoding used in resource files is always UTF-8 |
ViewConstructorDetector |
Looks for custom views that do not define the view constructors needed by UI builders |
ViewHolderDetector |
Looks for ListView scrolling performance: should use view holder pattern |
ViewTagDetector |
Checks for missing view tag detectors |
ViewTypeDetector |
Detector for finding inconsistent usage of views and casts |
WakelockDetector |
Checks for problems with wakelocks (such as failing to release them)
which can lead to unnecessary battery usage. |
WebViewDetector |
|
WrongCallDetector |
Checks for cases where the wrong call is being made |
WrongCaseDetector |
Check which looks for missing wrong case usage for certain layout tags. |
WrongIdDetector |
Checks for duplicate ids within a layout and within an included layout |
WrongImportDetector |
Checks for "import android.R", which seems to be a common source of confusion
(see for example http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error
and many other forums). |
WrongLocationDetector |
Looks for problems with XML files being placed in the wrong folder |