com.android.tools.lint.checks
Class UnusedResourceDetector
java.lang.Object
com.android.tools.lint.detector.api.Detector
com.android.tools.lint.detector.api.ResourceXmlDetector
com.android.tools.lint.checks.UnusedResourceDetector
- All Implemented Interfaces:
- com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
public class UnusedResourceDetector
- extends com.android.tools.lint.detector.api.ResourceXmlDetector
- implements com.android.tools.lint.detector.api.Detector.JavaScanner
Finds unused resources.
Note: This detector currently performs *string* analysis to check Java files.
The Lint API needs an official Java AST API (or map to an existing one like
BCEL for bytecode analysis etc) and once it does this should be updated to
use it.
| 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 |
ISSUE
Unused resources (other than ids). |
static com.android.tools.lint.detector.api.Issue |
ISSUE_IDS
Unused id's |
| Fields inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner |
ALL |
|
Method Summary |
void |
afterCheckProject(com.android.tools.lint.detector.api.Context context)
|
boolean |
appliesTo(com.android.tools.lint.detector.api.Context context,
java.io.File file)
|
boolean |
appliesToResourceRefs()
|
void |
beforeCheckFile(com.android.tools.lint.detector.api.Context context)
|
void |
beforeCheckProject(com.android.tools.lint.detector.api.Context context)
|
lombok.ast.AstVisitor |
createJavaVisitor(com.android.tools.lint.detector.api.JavaContext context)
|
java.util.Collection<java.lang.String> |
getApplicableAttributes()
|
java.util.Collection<java.lang.String> |
getApplicableElements()
|
java.util.List<java.lang.Class<? extends lombok.ast.Node>> |
getApplicableNodeTypes()
|
com.android.tools.lint.detector.api.Speed |
getSpeed()
|
static boolean |
isAnalyticsFile(com.android.tools.lint.detector.api.Context context)
Returns true if this XML file corresponds to an Analytics configuration file;
these contain some attributes read by the library which won't be flagged as
used by the application |
void |
run(com.android.tools.lint.detector.api.Context context)
|
void |
visitAttribute(com.android.tools.lint.detector.api.XmlContext context,
org.w3c.dom.Attr attribute)
|
void |
visitElement(com.android.tools.lint.detector.api.XmlContext context,
org.w3c.dom.Element element)
|
void |
visitResourceReference(com.android.tools.lint.detector.api.JavaContext context,
lombok.ast.AstVisitor visitor,
lombok.ast.Node node,
java.lang.String type,
java.lang.String name,
boolean isFramework)
|
| Methods inherited from class com.android.tools.lint.detector.api.ResourceXmlDetector |
appliesTo |
| Methods inherited from class com.android.tools.lint.detector.api.Detector |
afterCheckFile, afterCheckLibraryProject, applicableSuperClasses, appliesToFolder, beforeCheckLibraryProject, checkBinaryResource, checkCall, checkClass, checkClass, checkFolder, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableFiles, getApplicableMethodNames, getSpeed, visitBuildScript, visitConstructor, visitDocument, visitElementAfter, visitMethod |
| 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.JavaScanner |
applicableSuperClasses, checkClass, getApplicableConstructorTypes, getApplicableMethodNames, visitConstructor, visitMethod |
| Methods inherited from interface com.android.tools.lint.detector.api.Detector.XmlScanner |
visitDocument, visitElementAfter |
ISSUE
public static final com.android.tools.lint.detector.api.Issue ISSUE
- Unused resources (other than ids).
ISSUE_IDS
public static final com.android.tools.lint.detector.api.Issue ISSUE_IDS
- Unused id's
UnusedResourceDetector
public UnusedResourceDetector()
- Constructs a new
UnusedResourceDetector
run
public void run(@NonNull
com.android.tools.lint.detector.api.Context context)
- Overrides:
run in class com.android.tools.lint.detector.api.ResourceXmlDetector
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.ResourceXmlDetector
beforeCheckProject
public void beforeCheckProject(@NonNull
com.android.tools.lint.detector.api.Context context)
- Overrides:
beforeCheckProject 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
afterCheckProject
public void afterCheckProject(@NonNull
com.android.tools.lint.detector.api.Context context)
- Overrides:
afterCheckProject in class com.android.tools.lint.detector.api.Detector
getApplicableAttributes
public java.util.Collection<java.lang.String> getApplicableAttributes()
- Specified by:
getApplicableAttributes in interface com.android.tools.lint.detector.api.Detector.XmlScanner- Overrides:
getApplicableAttributes 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
isAnalyticsFile
public static boolean isAnalyticsFile(com.android.tools.lint.detector.api.Context context)
- Returns true if this XML file corresponds to an Analytics configuration file;
these contain some attributes read by the library which won't be flagged as
used by the application
- Parameters:
context - the context used for scanning
- Returns:
- true if the file represents an analytics file
visitAttribute
public void visitAttribute(@NonNull
com.android.tools.lint.detector.api.XmlContext context,
@NonNull
org.w3c.dom.Attr attribute)
- Specified by:
visitAttribute in interface com.android.tools.lint.detector.api.Detector.XmlScanner- Overrides:
visitAttribute in class com.android.tools.lint.detector.api.Detector
getSpeed
@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed()
- Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector
getApplicableNodeTypes
public java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
- Specified by:
getApplicableNodeTypes in interface com.android.tools.lint.detector.api.Detector.JavaScanner- Overrides:
getApplicableNodeTypes in class com.android.tools.lint.detector.api.Detector
appliesToResourceRefs
public boolean appliesToResourceRefs()
- Specified by:
appliesToResourceRefs in interface com.android.tools.lint.detector.api.Detector.JavaScanner- Overrides:
appliesToResourceRefs in class com.android.tools.lint.detector.api.Detector
visitResourceReference
public void visitResourceReference(@NonNull
com.android.tools.lint.detector.api.JavaContext context,
@Nullable
lombok.ast.AstVisitor visitor,
@NonNull
lombok.ast.Node node,
@NonNull
java.lang.String type,
@NonNull
java.lang.String name,
boolean isFramework)
- Specified by:
visitResourceReference in interface com.android.tools.lint.detector.api.Detector.JavaScanner- Overrides:
visitResourceReference in class com.android.tools.lint.detector.api.Detector
createJavaVisitor
public lombok.ast.AstVisitor createJavaVisitor(@NonNull
com.android.tools.lint.detector.api.JavaContext context)
- Specified by:
createJavaVisitor in interface com.android.tools.lint.detector.api.Detector.JavaScanner- Overrides:
createJavaVisitor in class com.android.tools.lint.detector.api.Detector