|
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 |
| 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. |
| 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 |
| 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 |