当前位置: 代码迷 >> Android >> 通过注释转换类/方法
  详细解决方案

通过注释转换类/方法

热度:67   发布时间:2023-08-04 11:44:40.0

有没有一种方法可以转换/修改由自定义注释注释的类和方法? #bytecode-manipulation(但适用于dex)

最好的方法是什么?

代理不是我要寻找的适当方法

可以基于Dex文件进行操作,但操作非常复杂,几乎没有好的工具。

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

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

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

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

我认为这就是您为Android开发所使用的。

  相关解决方案