我想在Android中挂钩一些系统api,但其中一些是静态方法。那么我可以通过反射或任何其他方法挂钩java静态方法而不使用像xposed这样的工具吗?
答案 0 :(得分:1)
Java不支持猴子修补(就像你在javascript中所做的那样)。实现这一目标的唯一方法是使用自己的类加载器并在返回之前检测类 - 这显然不适用于Android系统API。
如果您想截取自己对api的调用并在某些特定情况下替换它们,请为api创建一个外观(使用非静态方法)并通过外观访问它。然后,您可以使用该外观上的装饰器来动态修改其行为。