public class UnusedResourceDetector
extends com.android.tools.lint.detector.api.ResourceXmlDetector
implements com.android.tools.lint.detector.api.Detector.JavaScanner
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.
com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
Modifier and Type | Field and Description |
---|---|
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
|
Constructor and Description |
---|
UnusedResourceDetector()
Constructs a new
UnusedResourceDetector |
Modifier and Type | Method and Description |
---|---|
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) |
afterCheckFile, afterCheckLibraryProject, appliesToFolder, beforeCheckLibraryProject, checkCall, checkClass, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners, getApplicableFiles, getApplicableMethodNames, visitDocument, visitElementAfter, visitMethod
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public static final com.android.tools.lint.detector.api.Issue ISSUE
public static final com.android.tools.lint.detector.api.Issue ISSUE_IDS
public UnusedResourceDetector()
UnusedResourceDetector
public void run(@NonNull com.android.tools.lint.detector.api.Context context)
run
in class com.android.tools.lint.detector.api.ResourceXmlDetector
public boolean appliesTo(@NonNull com.android.tools.lint.detector.api.Context context, @NonNull java.io.File file)
appliesTo
in class com.android.tools.lint.detector.api.ResourceXmlDetector
public void beforeCheckProject(@NonNull com.android.tools.lint.detector.api.Context context)
beforeCheckProject
in class com.android.tools.lint.detector.api.Detector
public void beforeCheckFile(@NonNull com.android.tools.lint.detector.api.Context context)
beforeCheckFile
in class com.android.tools.lint.detector.api.Detector
public void afterCheckProject(@NonNull com.android.tools.lint.detector.api.Context context)
afterCheckProject
in class com.android.tools.lint.detector.api.Detector
public java.util.Collection<java.lang.String> getApplicableAttributes()
getApplicableAttributes
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableAttributes
in class com.android.tools.lint.detector.api.Detector
public java.util.Collection<java.lang.String> getApplicableElements()
getApplicableElements
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableElements
in class com.android.tools.lint.detector.api.Detector
public void visitElement(@NonNull com.android.tools.lint.detector.api.XmlContext context, @NonNull org.w3c.dom.Element element)
visitElement
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
visitElement
in class com.android.tools.lint.detector.api.Detector
public static boolean isAnalyticsFile(com.android.tools.lint.detector.api.Context context)
context
- the context used for scanningpublic void visitAttribute(@NonNull com.android.tools.lint.detector.api.XmlContext context, @NonNull org.w3c.dom.Attr attribute)
visitAttribute
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
visitAttribute
in class com.android.tools.lint.detector.api.Detector
@NonNull public com.android.tools.lint.detector.api.Speed getSpeed()
getSpeed
in class com.android.tools.lint.detector.api.Detector
public java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
getApplicableNodeTypes
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
getApplicableNodeTypes
in class com.android.tools.lint.detector.api.Detector
public boolean appliesToResourceRefs()
appliesToResourceRefs
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
appliesToResourceRefs
in class com.android.tools.lint.detector.api.Detector
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)
visitResourceReference
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
visitResourceReference
in class com.android.tools.lint.detector.api.Detector
public lombok.ast.AstVisitor createJavaVisitor(@NonNull com.android.tools.lint.detector.api.JavaContext context)
createJavaVisitor
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
createJavaVisitor
in class com.android.tools.lint.detector.api.Detector