public class XposedHelpers
extends java.lang.Object
| 限定符和类型 | 类和说明 |
|---|---|
static class |
XposedHelpers.ClassNotFoundError |
static class |
XposedHelpers.InvocationTargetError |
| 构造器和说明 |
|---|
XposedHelpers() |
| 限定符和类型 | 方法和说明 |
|---|---|
static byte[] |
assetAsByteArray(android.content.res.Resources res,
java.lang.String path)
Load an asset from a resource and return the content as byte array.
|
static java.lang.Object |
callMethod(java.lang.Object obj,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args)
Call instance or static method
methodName for object obj with the arguments
args. |
static java.lang.Object |
callMethod(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
Call instance or static method
methodName for object obj with the arguments
args. |
static java.lang.Object |
callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args)
Call static method
methodName for class clazz with the arguments
args. |
static java.lang.Object |
callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... args)
Call static method
methodName for class clazz with the arguments
args. |
static java.lang.Class<?> |
findClass(java.lang.String className,
java.lang.ClassLoader classLoader)
Look up a class with the specified class loader (or the boot class loader if
classLoader is null). |
static java.lang.reflect.Constructor<?> |
findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Class<?>... parameterTypes) |
static java.lang.reflect.Constructor<?> |
findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] args) |
static java.lang.reflect.Constructor<?> |
findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Object... args) |
static java.lang.reflect.Constructor<?> |
findConstructorExact(java.lang.Class<?> clazz,
java.lang.Class<?>... parameterTypes) |
static java.lang.reflect.Field |
findField(java.lang.Class<?> clazz,
java.lang.String fieldName)
Look up a field in a class and set it to accessible.
|
static java.lang.reflect.Field |
findFirstFieldByExactType(java.lang.Class<?> clazz,
java.lang.Class<?> type)
Returns the first field of the given type in a class.
|
static java.lang.reflect.Method |
findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
Look up a method in a class and set it to accessible.
|
static java.lang.reflect.Method |
findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] args)
Look up a method in a class and set it to accessible.
|
static java.lang.reflect.Method |
findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... args)
Look up a method in a class and set it to accessible.
|
static java.lang.reflect.Method |
findMethodExact(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
Look up a method in a class and set it to accessible.
|
static java.lang.reflect.Method |
findMethodExact(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... parameterTypes)
Look up a method in a class and set it to accessible.
|
static java.lang.reflect.Method |
findMethodExact(java.lang.String className,
java.lang.ClassLoader classLoader,
java.lang.String methodName,
java.lang.Object... parameterTypes) |
static java.lang.reflect.Method[] |
findMethodsByExactParameters(java.lang.Class<?> clazz,
java.lang.Class<?> returnType,
java.lang.Class<?>... parameterTypes)
Returns an array of all methods in a class with the specified parameter types.
|
static java.lang.Object |
getAdditionalInstanceField(java.lang.Object obj,
java.lang.String key) |
static java.lang.Object |
getAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key) |
static java.lang.Object |
getAdditionalStaticField(java.lang.Object obj,
java.lang.String key) |
static boolean |
getBooleanField(java.lang.Object obj,
java.lang.String fieldName) |
static byte |
getByteField(java.lang.Object obj,
java.lang.String fieldName) |
static char |
getCharField(java.lang.Object obj,
java.lang.String fieldName) |
static java.lang.Class<?>[] |
getClassesAsArray(java.lang.Class<?>... clazzes)
Return an array with the classes of the given objects
|
static double |
getDoubleField(java.lang.Object obj,
java.lang.String fieldName) |
static float |
getFloatField(java.lang.Object obj,
java.lang.String fieldName) |
static int |
getIntField(java.lang.Object obj,
java.lang.String fieldName) |
static long |
getLongField(java.lang.Object obj,
java.lang.String fieldName) |
static java.lang.String |
getMD5Sum(java.lang.String file)
Returns the lowercase string representation of the file's MD5 sum.
|
static java.lang.Object |
getObjectField(java.lang.Object obj,
java.lang.String fieldName) |
static java.lang.Class<?>[] |
getParameterTypes(java.lang.Object... args)
Return an array with the classes of the given objects
|
static short |
getShortField(java.lang.Object obj,
java.lang.String fieldName) |
static boolean |
getStaticBooleanField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static byte |
getStaticByteField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static char |
getStaticCharField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static double |
getStaticDoubleField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static float |
getStaticFloatField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static int |
getStaticIntField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static long |
getStaticLongField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static java.lang.Object |
getStaticObjectField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static short |
getStaticShortField(java.lang.Class<?> clazz,
java.lang.String fieldName) |
static java.lang.Object |
getSurroundingThis(java.lang.Object obj)
For inner classes, return the "this" reference of the surrounding class
|
static java.lang.Object |
newInstance(java.lang.Class<?> clazz,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args) |
static java.lang.Object |
newInstance(java.lang.Class<?> clazz,
java.lang.Object... args) |
static java.lang.Object |
removeAdditionalInstanceField(java.lang.Object obj,
java.lang.String key) |
static java.lang.Object |
removeAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key) |
static java.lang.Object |
removeAdditionalStaticField(java.lang.Object obj,
java.lang.String key) |
static java.lang.Object |
setAdditionalInstanceField(java.lang.Object obj,
java.lang.String key,
java.lang.Object value) |
static java.lang.Object |
setAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key,
java.lang.Object value) |
static java.lang.Object |
setAdditionalStaticField(java.lang.Object obj,
java.lang.String key,
java.lang.Object value) |
static void |
setBooleanField(java.lang.Object obj,
java.lang.String fieldName,
boolean value) |
static void |
setByteField(java.lang.Object obj,
java.lang.String fieldName,
byte value) |
static void |
setCharField(java.lang.Object obj,
java.lang.String fieldName,
char value) |
static void |
setDoubleField(java.lang.Object obj,
java.lang.String fieldName,
double value) |
static void |
setFloatField(java.lang.Object obj,
java.lang.String fieldName,
float value) |
static void |
setIntField(java.lang.Object obj,
java.lang.String fieldName,
int value) |
static void |
setLongField(java.lang.Object obj,
java.lang.String fieldName,
long value) |
static void |
setObjectField(java.lang.Object obj,
java.lang.String fieldName,
java.lang.Object value) |
static void |
setShortField(java.lang.Object obj,
java.lang.String fieldName,
short value) |
static void |
setStaticBooleanField(java.lang.Class<?> clazz,
java.lang.String fieldName,
boolean value) |
static void |
setStaticByteField(java.lang.Class<?> clazz,
java.lang.String fieldName,
byte value) |
static void |
setStaticCharField(java.lang.Class<?> clazz,
java.lang.String fieldName,
char value) |
static void |
setStaticDoubleField(java.lang.Class<?> clazz,
java.lang.String fieldName,
double value) |
static void |
setStaticFloatField(java.lang.Class<?> clazz,
java.lang.String fieldName,
float value) |
static void |
setStaticIntField(java.lang.Class<?> clazz,
java.lang.String fieldName,
int value) |
static void |
setStaticLongField(java.lang.Class<?> clazz,
java.lang.String fieldName,
long value) |
static void |
setStaticObjectField(java.lang.Class<?> clazz,
java.lang.String fieldName,
java.lang.Object value) |
static void |
setStaticShortField(java.lang.Class<?> clazz,
java.lang.String fieldName,
short value) |
public static java.lang.Class<?> findClass(java.lang.String className,
java.lang.ClassLoader classLoader)
classLoader is null).
Class names can be specified in different formats:
A XposedHelpers.ClassNotFoundError is thrown in case the class was not found.
public static java.lang.reflect.Field findField(java.lang.Class<?> clazz,
java.lang.String fieldName)
NoSuchFieldError will be thrown.public static java.lang.reflect.Field findFirstFieldByExactType(java.lang.Class<?> clazz,
java.lang.Class<?> type)
NoSuchFieldError will be thrown.public static java.lang.reflect.Method findMethodExact(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... parameterTypes)
NoSuchMethodError will be thrown.
The parameter types may either be specified as Class or String
objects. In the latter case, the class is looked up using findClass(java.lang.String, java.lang.ClassLoader) with the same
class loader as the method's class.
public static java.lang.reflect.Method findMethodExact(java.lang.String className,
java.lang.ClassLoader classLoader,
java.lang.String methodName,
java.lang.Object... parameterTypes)
public static java.lang.reflect.Method findMethodExact(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
NoSuchMethodError will be thrown.public static java.lang.reflect.Method[] findMethodsByExactParameters(java.lang.Class<?> clazz,
java.lang.Class<?> returnType,
java.lang.Class<?>... parameterTypes)
null.
Use void.class if you want to search for methods returning nothing.public static java.lang.reflect.Method findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
NoSuchMethodError will be thrown.public static java.lang.reflect.Method findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... args)
args for the method call. The result is cached.
This does not only look for exact matches, but for the closest match.
If the method was not found, a NoSuchMethodError will be thrown.public static java.lang.reflect.Method findMethodBestMatch(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] args)
parameterTypes. Any item in this array that
is null is determined from the corresponding item in args.
The result is cached.
This does not only look for exact matches, but for the closest match.
If the method was not found, a NoSuchMethodError will be thrown.public static java.lang.Class<?>[] getParameterTypes(java.lang.Object... args)
public static java.lang.Class<?>[] getClassesAsArray(java.lang.Class<?>... clazzes)
public static java.lang.reflect.Constructor<?> findConstructorExact(java.lang.Class<?> clazz,
java.lang.Class<?>... parameterTypes)
public static java.lang.reflect.Constructor<?> findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Class<?>... parameterTypes)
public static java.lang.reflect.Constructor<?> findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Object... args)
public static java.lang.reflect.Constructor<?> findConstructorBestMatch(java.lang.Class<?> clazz,
java.lang.Class<?>[] parameterTypes,
java.lang.Object[] args)
public static void setObjectField(java.lang.Object obj,
java.lang.String fieldName,
java.lang.Object value)
public static void setBooleanField(java.lang.Object obj,
java.lang.String fieldName,
boolean value)
public static void setByteField(java.lang.Object obj,
java.lang.String fieldName,
byte value)
public static void setCharField(java.lang.Object obj,
java.lang.String fieldName,
char value)
public static void setDoubleField(java.lang.Object obj,
java.lang.String fieldName,
double value)
public static void setFloatField(java.lang.Object obj,
java.lang.String fieldName,
float value)
public static void setIntField(java.lang.Object obj,
java.lang.String fieldName,
int value)
public static void setLongField(java.lang.Object obj,
java.lang.String fieldName,
long value)
public static void setShortField(java.lang.Object obj,
java.lang.String fieldName,
short value)
public static java.lang.Object getObjectField(java.lang.Object obj,
java.lang.String fieldName)
public static java.lang.Object getSurroundingThis(java.lang.Object obj)
public static boolean getBooleanField(java.lang.Object obj,
java.lang.String fieldName)
public static byte getByteField(java.lang.Object obj,
java.lang.String fieldName)
public static char getCharField(java.lang.Object obj,
java.lang.String fieldName)
public static double getDoubleField(java.lang.Object obj,
java.lang.String fieldName)
public static float getFloatField(java.lang.Object obj,
java.lang.String fieldName)
public static int getIntField(java.lang.Object obj,
java.lang.String fieldName)
public static long getLongField(java.lang.Object obj,
java.lang.String fieldName)
public static short getShortField(java.lang.Object obj,
java.lang.String fieldName)
public static void setStaticObjectField(java.lang.Class<?> clazz,
java.lang.String fieldName,
java.lang.Object value)
public static void setStaticBooleanField(java.lang.Class<?> clazz,
java.lang.String fieldName,
boolean value)
public static void setStaticByteField(java.lang.Class<?> clazz,
java.lang.String fieldName,
byte value)
public static void setStaticCharField(java.lang.Class<?> clazz,
java.lang.String fieldName,
char value)
public static void setStaticDoubleField(java.lang.Class<?> clazz,
java.lang.String fieldName,
double value)
public static void setStaticFloatField(java.lang.Class<?> clazz,
java.lang.String fieldName,
float value)
public static void setStaticIntField(java.lang.Class<?> clazz,
java.lang.String fieldName,
int value)
public static void setStaticLongField(java.lang.Class<?> clazz,
java.lang.String fieldName,
long value)
public static void setStaticShortField(java.lang.Class<?> clazz,
java.lang.String fieldName,
short value)
public static java.lang.Object getStaticObjectField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static boolean getStaticBooleanField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static byte getStaticByteField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static char getStaticCharField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static double getStaticDoubleField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static float getStaticFloatField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static int getStaticIntField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static long getStaticLongField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static short getStaticShortField(java.lang.Class<?> clazz,
java.lang.String fieldName)
public static java.lang.Object callMethod(java.lang.Object obj,
java.lang.String methodName,
java.lang.Object... args)
methodName for object obj with the arguments
args. The types for the arguments will be determined automaticall from argspublic static java.lang.Object callMethod(java.lang.Object obj,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args)
methodName for object obj with the arguments
args. The types for the arguments will be taken from parameterTypes.
This array can have items that are null. In this case, the type for this parameter
is determined from args.public static java.lang.Object callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Object... args)
methodName for class clazz with the arguments
args. The types for the arguments will be determined automaticall from argspublic static java.lang.Object callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args)
methodName for class clazz with the arguments
args. The types for the arguments will be taken from parameterTypes.
This array can have items that are null. In this case, the type for this parameter
is determined from args.public static java.lang.Object newInstance(java.lang.Class<?> clazz,
java.lang.Object... args)
public static java.lang.Object newInstance(java.lang.Class<?> clazz,
java.lang.Class<?>[] parameterTypes,
java.lang.Object... args)
public static java.lang.Object setAdditionalInstanceField(java.lang.Object obj,
java.lang.String key,
java.lang.Object value)
public static java.lang.Object getAdditionalInstanceField(java.lang.Object obj,
java.lang.String key)
public static java.lang.Object removeAdditionalInstanceField(java.lang.Object obj,
java.lang.String key)
public static java.lang.Object setAdditionalStaticField(java.lang.Object obj,
java.lang.String key,
java.lang.Object value)
public static java.lang.Object getAdditionalStaticField(java.lang.Object obj,
java.lang.String key)
public static java.lang.Object removeAdditionalStaticField(java.lang.Object obj,
java.lang.String key)
public static java.lang.Object setAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key,
java.lang.Object value)
public static java.lang.Object getAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key)
public static java.lang.Object removeAdditionalStaticField(java.lang.Class<?> clazz,
java.lang.String key)
public static byte[] assetAsByteArray(android.content.res.Resources res,
java.lang.String path)
throws java.io.IOException
java.io.IOExceptionpublic static java.lang.String getMD5Sum(java.lang.String file)
throws java.io.IOException
java.io.IOException