android - AndFix 如何修补方法?

标签 android dalvik

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

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

最佳答案

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

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

关于android - AndFix 如何修补方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647201/

相关文章:

android - 在 Android 上将 SQL 数据库与 REST 远程服务器同步的最佳实践

java - 错误 : Android Gradle plugin requires Java 11 to run. 您当前使用的是 Java 1.8。 -& 应用插件失败 'com.android.internal.application'

Android KitKat 模拟器 native 库 JNI 错误(应用程序错误)

java - 如何在 android 应用程序中以编程方式读取 excel 文件(.xlsx),即以 5000 行为一组?

java - 使用局部变量与字段对 GC 的影响

android - 在类型为org.gradle.api.Project的根项目 '..'上找不到参数[build ..]的方法android()方法

android - 异步任务 : Should I check for isCanceled() in onPostExecute()?

android - 使用 XML 布局作为 View 子类的 View ?

Eclair 中的 Android Dalvik 验证

android - 如何在android程序中读取.xlsx文件