com.android.tools.lint.checks
Class ManifestDetector

java.lang.Object
  extended by com.android.tools.lint.detector.api.Detector
      extended by com.android.tools.lint.checks.ManifestDetector
All Implemented Interfaces:
com.android.tools.lint.detector.api.Detector.XmlScanner

public class ManifestDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.XmlScanner

Checks for issues in AndroidManifest files such as declaring elements in the wrong order.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.tools.lint.detector.api.Detector
com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
 
Field Summary
static com.android.tools.lint.detector.api.Issue ALLOW_BACKUP
          Not explicitly defining allowBackup
static com.android.tools.lint.detector.api.Issue APPLICATION_ICON
          Not explicitly defining application icon
static com.android.tools.lint.detector.api.Issue DEVICE_ADMIN
          Malformed Device Admin
static com.android.tools.lint.detector.api.Issue DUPLICATE_ACTIVITY
          Missing a <uses-sdk> element
static com.android.tools.lint.detector.api.Issue DUPLICATE_USES_FEATURE
          Declaring a uses-feature multiple time
static com.android.tools.lint.detector.api.Issue GRADLE_OVERRIDES
          Defining a value that is overridden by Gradle
static com.android.tools.lint.detector.api.Issue ILLEGAL_REFERENCE
          Using a resource for attributes that do not allow it
static com.android.tools.lint.detector.api.Issue MIPMAP
          Using drawable rather than mipmap launcher icons
static com.android.tools.lint.detector.api.Issue MOCK_LOCATION
          Using a mock location in a non-debug-specific manifest file
static java.lang.String MOCK_LOCATION_PERMISSION
          Permission name of mock location permission
static com.android.tools.lint.detector.api.Issue MULTIPLE_USES_SDK
          Using multiple <uses-sdk> elements
static com.android.tools.lint.detector.api.Issue ORDER
          Wrong order of elements in the manifest
static com.android.tools.lint.detector.api.Issue SET_VERSION
          Using a resource for attributes that do not allow it
static com.android.tools.lint.detector.api.Issue TARGET_NEWER
          Using a targetSdkVersion that isn't recent
static com.android.tools.lint.detector.api.Issue UNIQUE_PERMISSION
          Conflicting permission names
static com.android.tools.lint.detector.api.Issue USES_SDK
          Missing a <uses-sdk> element
static com.android.tools.lint.detector.api.Issue WRONG_PARENT
          Missing a <uses-sdk> element
 
Fields inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
ALL
 
Constructor Summary
ManifestDetector()
          Constructs a new ManifestDetector check
 
Method Summary
 void afterCheckFile(com.android.tools.lint.detector.api.Context context)
           
 void afterCheckProject(com.android.tools.lint.detector.api.Context context)
           
 boolean appliesTo(com.android.tools.lint.detector.api.Context context, java.io.File file)
           
 void beforeCheckFile(com.android.tools.lint.detector.api.Context context)
           
 java.util.Collection<java.lang.String> getApplicableElements()
           
 com.android.tools.lint.detector.api.Speed getSpeed()
           
 void visitElement(com.android.tools.lint.detector.api.XmlContext context, org.w3c.dom.Element element)
           
 
Methods inherited from class com.android.tools.lint.detector.api.Detector
afterCheckLibraryProject, applicableSuperClasses, appliesTo, appliesToFolder, appliesToResourceRefs, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkClass, checkFolder, checkInstruction, createJavaVisitor, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableFiles, getApplicableMethodNames, getApplicableNodeTypes, getSpeed, run, visitAttribute, visitBuildScript, visitConstructor, visitDocument, visitElementAfter, visitMethod, visitResourceReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableAttributes, visitAttribute, visitDocument, visitElementAfter
 

Field Detail

ORDER

public static final com.android.tools.lint.detector.api.Issue ORDER
Wrong order of elements in the manifest


USES_SDK

public static final com.android.tools.lint.detector.api.Issue USES_SDK
Missing a <uses-sdk> element


TARGET_NEWER

public static final com.android.tools.lint.detector.api.Issue TARGET_NEWER
Using a targetSdkVersion that isn't recent


MULTIPLE_USES_SDK

public static final com.android.tools.lint.detector.api.Issue MULTIPLE_USES_SDK
Using multiple <uses-sdk> elements


WRONG_PARENT

public static final com.android.tools.lint.detector.api.Issue WRONG_PARENT
Missing a <uses-sdk> element


DUPLICATE_ACTIVITY

public static final com.android.tools.lint.detector.api.Issue DUPLICATE_ACTIVITY
Missing a <uses-sdk> element


ALLOW_BACKUP

public static final com.android.tools.lint.detector.api.Issue ALLOW_BACKUP
Not explicitly defining allowBackup


UNIQUE_PERMISSION

public static final com.android.tools.lint.detector.api.Issue UNIQUE_PERMISSION
Conflicting permission names


SET_VERSION

public static final com.android.tools.lint.detector.api.Issue SET_VERSION
Using a resource for attributes that do not allow it


ILLEGAL_REFERENCE

public static final com.android.tools.lint.detector.api.Issue ILLEGAL_REFERENCE
Using a resource for attributes that do not allow it


DUPLICATE_USES_FEATURE

public static final com.android.tools.lint.detector.api.Issue DUPLICATE_USES_FEATURE
Declaring a uses-feature multiple time


APPLICATION_ICON

public static final com.android.tools.lint.detector.api.Issue APPLICATION_ICON
Not explicitly defining application icon


DEVICE_ADMIN

public static final com.android.tools.lint.detector.api.Issue DEVICE_ADMIN
Malformed Device Admin


MOCK_LOCATION

public static final com.android.tools.lint.detector.api.Issue MOCK_LOCATION
Using a mock location in a non-debug-specific manifest file


GRADLE_OVERRIDES

public static final com.android.tools.lint.detector.api.Issue GRADLE_OVERRIDES
Defining a value that is overridden by Gradle


MIPMAP

public static final com.android.tools.lint.detector.api.Issue MIPMAP
Using drawable rather than mipmap launcher icons


MOCK_LOCATION_PERMISSION

public static final java.lang.String MOCK_LOCATION_PERMISSION
Permission name of mock location permission

See Also:
Constant Field Values
Constructor Detail

ManifestDetector

public ManifestDetector()
Constructs a new ManifestDetector check

Method Detail

getSpeed

@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed()
Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector

appliesTo

public boolean appliesTo(@NonNull
                         com.android.tools.lint.detector.api.Context context,
                         @NonNull
                         java.io.File file)
Overrides:
appliesTo in class com.android.tools.lint.detector.api.Detector

beforeCheckFile

public void beforeCheckFile(@NonNull
                            com.android.tools.lint.detector.api.Context context)
Overrides:
beforeCheckFile in class com.android.tools.lint.detector.api.Detector

afterCheckFile

public void afterCheckFile(@NonNull
                           com.android.tools.lint.detector.api.Context context)
Overrides:
afterCheckFile in class com.android.tools.lint.detector.api.Detector

afterCheckProject

public void afterCheckProject(@NonNull
                              com.android.tools.lint.detector.api.Context context)
Overrides:
afterCheckProject in class com.android.tools.lint.detector.api.Detector

getApplicableElements

public java.util.Collection<java.lang.String> getApplicableElements()
Specified by:
getApplicableElements in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
getApplicableElements in class com.android.tools.lint.detector.api.Detector

visitElement

public void visitElement(@NonNull
                         com.android.tools.lint.detector.api.XmlContext context,
                         @NonNull
                         org.w3c.dom.Element element)
Specified by:
visitElement in interface com.android.tools.lint.detector.api.Detector.XmlScanner
Overrides:
visitElement in class com.android.tools.lint.detector.api.Detector