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
|
AddJavascriptInterfaceDetector |
Ensures that addJavascriptInterface is not called for API levels below 17.
|
AlarmDetector |
Makes sure that alarms are handled correctly
|
AllCapsDetector |
Checks for the combination of textAllCaps=true and using markup in
the string being formatted
|
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
|
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.
|
ApiPackage |
Represents a package and its classes
|
ApiParser |
Parser for the simplified XML API format version 1.
|
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
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.
|
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
|
AssertDetector |
Looks for assertion usages.
|
BadHostnameVerifierDetector | |
BatteryDetector |
Checks for issues that negatively affect battery life
|
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.
|
ChildCountDetector |
Check which makes sure that views have the expected number of declared
children (e.g.
|
ChromeOsDetector |
Detects various issues for Chrome OS devices.
|
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.
|
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.
|
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
|
ExifInterfaceDetector |
Checks for errors related to the Exif Interface
|
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.
|
FirebaseAnalyticsDetector | |
FirebaseMessagingDetector | |
FragmentDetector |
Checks that Fragment subclasses can be instantiated via
{link
Class.newInstance() }: the class is public, static, and has
a public null constructor. |
FullBackupContentDetector |
Check which makes sure that a full-backup-content descriptor file is valid and logical
|
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.
|
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
|
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.
|
JavaScriptInterfaceDetector |
Looks for addJavascriptInterface calls on interfaces have been properly annotated
with
@JavaScriptInterface |
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
|
LeakDetector |
Looks for leaks via static fields
|
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.
|
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
|
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 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
|
PreferenceActivityDetector |
Ensures that PreferenceActivity and its subclasses are never exported.
|
PrivateApiDetector |
Checks that the code is not using reflection to access hidden Android APIs
|
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.
|
RangeConstraint | |
ReadParcelableDetector |
Looks for Parcelable classes that are missing a CREATOR field
|
RecyclerViewDetector |
Checks related to RecyclerView usage.
|
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?
|
ResourceUsageModel |
A model for Android resource declarations and usages
|
ResourceUsageModel.Resource | |
RestrictionsDetector |
Check which makes sure that an application restrictions file is correct.
|
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.
|
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.
|
SupportAnnotationDetector |
Looks up annotations on method calls and enforces the various things they
express, e.g.
|
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 view hierarchy has too many views or has a suspiciously deep hierarchy
|
TranslationDetector |
Checks for incomplete translations - e.g.
|
TrustAllX509TrustManagerDetector | |
TypoDetector |
Check which looks for likely typos in Strings.
|
TypoDetector.TypoSuggestionInfo |
Simple data holder used to return several values from
TypoDetector.getSuggestions(String, TextFormat) |
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.
|
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 vector icon generation
|
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
|
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.
|
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).
|
WrongLocationDetector |
Looks for problems with XML files being placed in the wrong folder
|
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 |