是否可以使用Dexmaker覆盖现有类中的方法?

时间:2012-07-06 19:22:42

标签: android bytecode-manipulation dex

是否可以通过代理或生成代码在运行时更改已使用Dexmaker加载的类的方法行为?

更新

只是一句话:我想从我自己的应用程序中添加一个方法/修改现有的方法,而不是从android框架中添加。

1 个答案:

答案 0 :(得分:1)

没有。这是不可能的。

您可以使用新名称和调整后的实现创建一个扩展原始类的新类,甚至可以创建类的副本。但是你无法取代现有的类。

您最好的选择可能是将您可能想要修改的代码提取到一个单独的类中,然后将该类的实例传递给任何使用它的代码。然后,如果您需要创建一个新实现,您可以将其子类化并传入子类。