public class AndroidPreFlightChecks
extends java.lang.Object
The android-model expects some configuration to be of specific settings to unfold it's full performance.
These checks may be run before building the CallGraph to verify everything is in place.
| Modifier and Type | Class and Description |
|---|---|
static class |
AndroidPreFlightChecks.Test |
| Constructor and Description |
|---|
AndroidPreFlightChecks(AndroidEntryPointManager manager,
com.ibm.wala.ipa.cha.IClassHierarchy cha) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
all()
Perform all checks defined in this class.
|
boolean |
allBut(java.util.Set<AndroidPreFlightChecks.Test> skip)
Perform all checks defined in this class but the listed ones.
|
boolean |
checkAllComponentsReuse()
In order to for the startComponent-calls to work components should be set reuse.
|
boolean |
checkIntentSpecs()
Is enough info present to resolve Intents.
|
boolean |
checkNoObjectInEntryPoints()
Check if an Entrypoint takes an object.
|
boolean |
checkOverridesInPlace()
The Overrides are needed to resolve intents in the startComponent-Calls.
|
boolean |
checkStubsVersion()
Checks whether stubs are recent enough to contain some used functions.
|
public AndroidPreFlightChecks(AndroidEntryPointManager manager, com.ibm.wala.ipa.cha.IClassHierarchy cha)
public boolean all()
public boolean allBut(java.util.Set<AndroidPreFlightChecks.Test> skip)
skip - checks not to performpublic boolean checkOverridesInPlace()
Without these overrides the startComponent-Calls will not be overridden. In a static analysis there won't be a way to resolve the actual target of the call.
IntentContextInterpreter,
IntentContextSelectorpublic boolean checkStubsVersion()
If the stubs are to old some parts that rely on these functions may be skipped entirely.
public boolean checkIntentSpecs()
This information is needed by the startComponent-functions in order to resolve the target of the call (if enough context is present).
If this information is unavailable the call will be resolved to the function AndroidModel.Class.startUNKNOWNComponent which will call all Components of the specific type (Activity, Service, ..) present in the application.
public boolean checkAllComponentsReuse()
If components are _not_ set reuse the following will happen:
* The caller context can not be set * No result will be transmitted back to onActivityResult
public boolean checkNoObjectInEntryPoints()