接口 XposedInterface.Invoker<T extends XposedInterface.Invoker<T,U>,U extends Executable>
- 所有已知子接口:
XposedInterface.CtorInvoker<T>
- 封闭接口:
XposedInterface
public static interface XposedInterface.Invoker<T extends XposedInterface.Invoker<T,U>,U extends Executable>
方法或构造函数的 Invoker(调用器)。通过 Invoker 进行调用时将绕过访问检查。
-
嵌套类概要
嵌套类 -
方法概要
修饰符和类型方法说明通过 Invoker 类型所确定的 Hook 链来调用该方法(或将构造函数视为方法进行调用)。invokeSpecial(Object thisObject, Object... args) 在指定对象实例上调用特殊(非虚拟)方法(或将构造函数视为方法进行调用), 类似于 JNI 中的CallNonVirtual<type>Method功能, 用于在 Java 对象上调用实例(非 static)方法。设置 Invoker 的类型,用于决定需要执行哪一部分 Hook 链。
-
方法详细资料
-
setType
设置 Invoker 的类型,用于决定需要执行哪一部分 Hook 链。 -
invoke
Object invoke(Object thisObject, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException 通过 Invoker 类型所确定的 Hook 链来调用该方法(或将构造函数视为方法进行调用)。- 参数:
thisObject- 对于非静态调用,为this指针;否则为nullargs- 方法调用所使用的参数- 返回:
- 方法调用的返回结果
对于 void 方法和构造函数,始终返回
null。 - 抛出:
InvocationTargetExceptionIllegalArgumentExceptionIllegalAccessException- 另请参阅:
-
invokeSpecial
Object invokeSpecial(@NonNull Object thisObject, Object... args) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException 在指定对象实例上调用特殊(非虚拟)方法(或将构造函数视为方法进行调用), 类似于 JNI 中的CallNonVirtual<type>Method功能, 用于在 Java 对象上调用实例(非 static)方法。 当需要在子类中绕过重写方法、直接调用指定类中定义的方法时,该方法非常有用。在 Hook 构造函数时,需要调用
super.xxx()时,该方法非常有用。- 参数:
thisObject-this指针args- 方法调用所使用的参数- 返回:
- 方法调用的返回结果
对于 void 方法和构造函数,始终返回
null。 - 抛出:
InvocationTargetExceptionIllegalArgumentExceptionIllegalAccessException- 另请参阅:
-