【问题标题】:Bytecode manipulation on Android classAndroid 类上的字节码操作
【发布时间】:2016-04-19 20:02:40
【问题描述】:

我想对 android.view.View 类进行字节码操作(添加方法),可以吗?我应该使用 javassist 还是其他库?

谢谢

【问题讨论】:

  • 您为什么要这样做? SDK 中没有您想要实现的目标是什么?

标签: android bytecode javassist


【解决方案1】:

不,你不能。 Android 使用自己的字节码格式,它与 javassist 和其他库操作的“标准”字节码格式不兼容。

http://bravenewgeek.com/dalvik-bytecode-generation/

【讨论】:

  • 通过使用 dexmaker 我可以向 Android 类添加方法吗?
  • 根据github.com/crittercism/dexmaker/issues/4,您不能更改现有的类,但可以创建新的子类。不确定这是否对您有帮助。
【解决方案2】:

本文概述了一种处理字节码的技术(使用 javassist,但 asm 等人也会这样做)。问题是,操作是在构建时完成的,而类仍在 Java 字节码中。http://brianattwell.com/using-bytecode-manipulation-to-further-kill-android-boilerplate/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多