通过注释转换类/方法

时间:2017-02-15 15:47:25

标签: android annotations dex bytecode-manipulation

有没有办法转换/修改由自定义注释注释的类和方法? #bycodecode-manipulation(但对于dex)

最好的方法是什么?

对于我正在寻找的东西,

代理不适合

1 个答案:

答案 0 :(得分:0)

Dex文件库操作是可能的,但非常复杂,几乎没有好的工具。

相反,您应该在构建期间检测代码,因为它仍然表示为类文件。有各种各样的工具。我编写了一个名为Byte Buddy的工具,它允许您在构建期间使用Maven或Gradle插件运行代码。

为了更改类,您必须实现库的Plugin接口,该接口允许您指定要更改的类以及要如何更改它。 Byte Buddy内联所有类,因此您不需要创建运行时代理。

对于Gradle,您必须创建一个引用您的插件代码的配置:

configuration {
  myPlugin
}
dependencies {
  myPlugin "my:plugin:1.0"
}
byteBuddy {
  transformation {
    plugin "pkg.MyPluginImpl"
    classpath configuration.myPlugin
  } 
}

我认为这是你用来为Android开发的东西。

相关问题