| Interface | Description |
|---|---|
| PermissionHolder |
A PermissionHolder knows which permissions are held/granted and can look up
individual permissions and respond to queries about whether they are held or not.
|
| Class | Description |
|---|---|
| AccessibilityDetector |
Check which looks for accessibility problems like missing content descriptions
|
| AllowAllHostnameVerifierDetector | |
| 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.
|
| AndroidAutoDetector |
Detector for Android Auto issues.
|
| AndroidPatternMatcher |
A simple pattern matcher, which is safe to use on untrusted data: it does not provide full
reg-exp support, only simple globbing that can not be used maliciously.
|
| AndroidTvDetector |
Detects various issues for Android TV.
|
| AnnotationDetector |
Checks annotations to make sure they are valid
|
| ApiClass |
Represents a class and its methods/fields.
|
| ApiClassBase | |
| ApiClassOwner<C extends ApiClassBase> |
Represents a package or a class containing inner classes.
|
| ApiDatabase |
Database for API checking, providing efficient lookup for a given class, method or field.
|
| ApiLookup |
Database for API checking: Allows quick lookup of a given class, method or field to see in which
API level it was introduced, and possibly deprecated and/or removed.
|
| ApiMember |
Represents a method or a field.
|
| AppCompatCallDetector | |
| AppCompatCustomViewDetector |
Looks for subclasses of custom widgets in projects using app compat
|
| AppCompatResourceDetector |
Check that the right namespace is used for app compat menu items
|
| AppIndexingApiDetector |
Check if the usage of App Indexing is correct.
|
| AppLinksAutoVerifyDetector |
Check if the App Link which needs auto verification is correctly set.
|
| AppLinksValidDetector |
Checks for invalid app links URLs
|
| AppLinksValidDetector.UriInfo |
URL information from an intent filter
|
| ArraySizeDetector |
Checks for arrays with inconsistent item counts
|
| AutofillDetector | |
| BadHostnameVerifierDetector | |
| 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."
|
| ChromeOsDetector |
Detects various issues for Chrome OS devices.
|
| ClickableViewAccessibilityDetector |
Checks that views that override View#onTouchEvent also implement View#performClick and call
performClick when click detection occurs.
|
| CommentDetector |
Looks for issues in Java comments
|
| ConstraintLayoutDetector |
Check which looks for potential errors in declarations of ConstraintLayout, such as under
specifying constraints
|
| 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 |
| CordovaVersionDetector |
Checks to detect vulnerable versions of Apache Cordova.
|
| CordovaVersionDetector.JsVersionLineProcessor |
A
LineProcessor that matches a specific cordova pattern and if successful terminates
early. |
| 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.
|
| 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
|
| EllipsizeMaxLinesDetector |
Checks for the scenario which triggers https://issuetracker.google.com/issues/36950033
|
| ExifInterfaceDetector |
Checks for errors related to the Exif Interface
|
| FieldGetterDetector |
Looks for getter calls within the same class that could be replaced by direct field references
instead.
|
| FirebaseAnalyticsDetector | |
| FirebaseMessagingDetector | |
| FontDetector | |
| FullBackupContentDetector |
Check which makes sure that a full-backup-content descriptor file is valid and logical
|
| GetContentDescriptionOverrideDetector |
Check that looks for override of getContentDescription() in any class that descends from View.
|
| GetSignaturesDetector | |
| 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
|
| HardwareIdDetector |
Detect calls to get device Identifiers.
|
| 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.
|
| InstantAppDetector |
Checks related to instant apps.
|
| InvalidImeActionIdDetector |
Check android:imeActionId for valid values, as defined by EditorInfo
|
| InvalidPackageDetector |
Looks for usages of Java packages that are not included in Android.
|
| ItemDecoratorDetector |
Looks for copy/paste versions of the divider item decorator.
|
| JavaPerformanceDetector |
Looks for performance issues in Java files, such as memory allocations during drawing operations
and using HashMap instead of SparseArray.
|
| JobSchedulerDetector |
Checks looking for issues related to the JobScheduler API
|
| KeyboardNavigationDetector |
Check which looks at widgets that are declared as clickable and ensures that they are also
declared as focusable so that they can be reached via keyboard navigation.
|
| 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
|
| LocaleFolderDetector |
Checks for errors related to locale handling
|
| ManifestDetector |
Checks for issues in AndroidManifest files such as declaring elements in the wrong order.
|
| ManifestPermissionAttributeDetector |
Checks if the 'permission' attribute was set on a valid tag.
|
| ManifestResourceDetector |
Detects references to resources in the manifest that vary by configuration
|
| 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. |
| MergeMarkerDetector |
Looks for merge markers left behind in the source files.
|
| 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
|
| NegativeMarginDetector |
Checks for negative margins in the following scenarios:
In direct layout attribute usages, e.g.
|
| NestedScrollingWidgetDetector |
Checks whether a scroll view contains a nested scrolling widget
|
| NetworkSecurityConfigDetector |
Check which makes sure that a network-security-config descriptor file is valid and logical.
|
| 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.
|
| ObjectAnimatorDetector |
Looks for issues around ObjectAnimator usages
|
| 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
|
| PermissionFinder |
Utility for locating permissions required by an intent or content resolver
|
| PermissionFinder.Result |
A permission requirement given a name and operation
|
| PermissionHolder.SetPermissionLookup |
A convenience implementation of
PermissionHolder backed by a set |
| PermissionRequirement |
A permission requirement is a boolean expression of permission names that a caller must satisfy
for a given Android API.
|
| PluralsDatabase |
Database used by the
PluralsDetector to get information about plural forms for a given
language |
| PluralsDetector |
Checks for issues with quantity strings
|
| PowerManagerDetector | |
| 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.
|
| PxUsageDetector |
Check for px dimensions instead of dp dimensions.
|
| RangeConstraint | |
| ReadParcelableDetector |
Looks for Parcelable classes that are missing a CREATOR field
|
| 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
|
| ResourcePrefixDetector |
Ensure that resources in Gradle projects which specify a resource prefix conform to the given
name
|
| 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.
|
| SecureRandomGeneratorDetector |
Checks for pseudo random number generator initialization issues
|
| SecurityDetector |
Checks that exported services request a permission.
|
| ServiceCastDetector |
Detector looking for casts on the result of context.getSystemService which are suspect.
|
| SetJavaScriptEnabledDetector |
Looks for invocations of android.webkit.WebSettings.setJavaScriptEnabled.
|
| SetTextDetector |
Checks for errors related to TextView#setText and internationalization
|
| SignatureOrSystemDetector |
Checks if signatureOrSystem level permissions are set.
|
| SQLiteDetector |
Detector which looks for problems related to SQLite usage
|
| SslCertificateSocketFactoryDetector | |
| StateListDetector |
Checks for unreachable states in an Android state list definition
|
| StringAuthLeakDetector |
Detector that looks for leaked credentials in strings.
|
| 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: for example, omitting inputType.
|
| 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 view hierarchy has too many views or has a suspiciously deep hierarchy
|
| TrustAllX509TrustManagerDetector | |
| 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.
|
| UnpackedNativeCodeDetector |
Checks for extractNativeLibs flag in
AndroidManifest.xml when Native code is
present. |
| UnsafeBroadcastReceiverDetector | |
| UnsafeNativeCodeDetector | |
| 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
|
| VectorDetector |
Looks for issues with converting vector drawables to bitmaps for backward compatibility.
|
| VectorDrawableCompatDetector |
Finds all the vector drawables and checks references to them in layouts.
|
| VectorPathDetector |
Looks for issues with long vector paths
|
| VersionChecks |
Utility methods for checking whether a given element is surrounded (or preceded!) by an API check
using SDK_INT (or other version checking utilities such as BuildCompat#isAtLeastN)
|
| 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
|
| WakelockDetector |
Checks for problems with wakelocks (such as failing to release them) which can lead to
unnecessary battery usage.
|
| WearStandaloneAppDetector | |
| 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).
|
| Enum | Description |
|---|---|
| PermissionFinder.Operation |
Operation that has a permission requirement -- such as a method call, a content resolver read
or write operation, an intent, etc.
|
| PluralsDatabase.Quantity |