android – AndFix如何修补方法?

我最近了解到一个AndroidAndFix,它允许实时方法修补.现在,据我所知,Dalvik不允许运行时操作字节码或dex.

有人可以提供一个很好的解释AndFix如何实时修补?

解决方法:

查看源代码,您可以看到Dalvik here的补丁机制.dalvik_replaceMethod()函数正在修改内部Dalvik状态,将Method结构更改为指向替换方法.

它不会修改磁盘或内存中的DEX,只是将方法调用路由到替换方法.这种方法高度依赖于版本,因为对方法或方法工作方式的更改会破坏事物.自2011年中期以来,Dalvik没有太大变化,这让事情变得简单,但是如果你看一下附近的“艺术”目录,你可以看到Android的每个主要版本的不同实现.

上一篇:java – 方法中“太多”局部变量的性能影响?


下一篇:java – 从错误中恢复的最佳策略是什么 – 忽略发生错误的记录