public class WakelockDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.UastScanner
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.JavaPsiScanner, 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.UastScanner, com.android.tools.lint.detector.api.Detector.XmlScanner| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ANDROID_APP_ACTIVITY |
static com.android.tools.lint.detector.api.Issue |
ISSUE
Problems using wakelocks
|
static com.android.tools.lint.detector.api.Issue |
TIMEOUT
Using non-timeout version of wakelock acquire
|
| Constructor and Description |
|---|
WakelockDetector()
Constructs a new
WakelockDetector |
| Modifier and Type | Method and Description |
|---|---|
void |
afterCheckProject(com.android.tools.lint.detector.api.Context context) |
void |
checkCall(com.android.tools.lint.detector.api.ClassContext context,
org.objectweb.asm.tree.ClassNode classNode,
org.objectweb.asm.tree.MethodNode method,
org.objectweb.asm.tree.MethodInsnNode call) |
protected static int |
dfs(ControlFlowGraph.Node node)
Search from the given node towards the target; return false if we reach
an exit point such as a return or a call on the way there that is not within
a try/catch clause.
|
java.util.List<java.lang.String> |
getApplicableCallNames() |
java.util.List<java.lang.String> |
getApplicableMethodNames() |
void |
visitMethod(com.android.tools.lint.detector.api.JavaContext context,
org.jetbrains.uast.UCallExpression call,
com.intellij.psi.PsiMethod method) |
afterCheckFile, afterCheckLibraryProject, applicableSuperClasses, appliesTo, appliesTo, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkClass, checkClass, checkClass, checkFolder, checkInstruction, createJavaVisitor, createPsiVisitor, createUastHandler, fix, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableElements, getApplicableFiles, getApplicableNodeTypes, getApplicablePsiTypes, getApplicableReferenceNames, getApplicableUastTypes, getSpeed, getSpeed, run, visitAttribute, visitBuildScript, visitClass, visitClass, visitConstructor, visitConstructor, visitConstructor, visitDocument, visitElement, visitElementAfter, visitMethod, visitMethod, visitReference, visitReference, visitResourceReference, visitResourceReference, visitResourceReferenceclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckClass, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallOwnersapplicableSuperClasses, appliesToResourceRefs, createUastHandler, getApplicableConstructorTypes, getApplicableReferenceNames, getApplicableUastTypes, visitClass, visitClass, visitConstructor, visitReference, visitResourceReferencepublic static final java.lang.String ANDROID_APP_ACTIVITY
public static final com.android.tools.lint.detector.api.Issue ISSUE
public static final com.android.tools.lint.detector.api.Issue TIMEOUT
public WakelockDetector()
WakelockDetectorpublic void afterCheckProject(@NonNull
com.android.tools.lint.detector.api.Context context)
afterCheckProject in class com.android.tools.lint.detector.api.Detector@Nullable public java.util.List<java.lang.String> getApplicableCallNames()
getApplicableCallNames in interface com.android.tools.lint.detector.api.Detector.ClassScannergetApplicableCallNames in class com.android.tools.lint.detector.api.Detectorpublic void checkCall(@NonNull
com.android.tools.lint.detector.api.ClassContext context,
@NonNull
org.objectweb.asm.tree.ClassNode classNode,
@NonNull
org.objectweb.asm.tree.MethodNode method,
@NonNull
org.objectweb.asm.tree.MethodInsnNode call)
checkCall in interface com.android.tools.lint.detector.api.Detector.ClassScannercheckCall in class com.android.tools.lint.detector.api.Detectorprotected static int dfs(ControlFlowGraph.Node node)
node - the current node@Nullable public java.util.List<java.lang.String> getApplicableMethodNames()
getApplicableMethodNames in interface com.android.tools.lint.detector.api.Detector.UastScannergetApplicableMethodNames in class com.android.tools.lint.detector.api.Detectorpublic void visitMethod(@NonNull
com.android.tools.lint.detector.api.JavaContext context,
@NonNull
org.jetbrains.uast.UCallExpression call,
@NonNull
com.intellij.psi.PsiMethod method)
visitMethod in interface com.android.tools.lint.detector.api.Detector.UastScannervisitMethod in class com.android.tools.lint.detector.api.Detector