领域gradle任务

时间:2016-06-20 18:00:29

标签: android realm

在我的assembleDebug gradle任务的个人资料报告中,我发现了两个与领域相关的gradle子任务,这需要花费相当多的时间:

assembleDebug - 1m21.44s
- transformClassesWithRealmOptionalAPITransformerForDebug - 22.386s
- transformClassesWithRealmTransformerForIdeDebug - 10.062s

问题:

  • 这些领域相关的gradle子任务到底是做什么的?我可以在某个时候跳过它们吗?
  • 为什么他们花了这么久? (22 + 10 = 32秒)

更新

作为一种解决方法,我通过-x脚本参数

跳过任务
assembleDebug -x transformClassesWithRealmOptionalAPITransformerForDebug

1 个答案:

答案 0 :(得分:5)

transformClassesWithRealmOptionalAPITransformerForDebug是为了删除RxJava相关API而创建的,因为它可能会为某些情况(需要反映的情况,如https://realm.io/docs/java/latest/#jackson-databind)造成麻烦但没有RxJava依赖。但我们发现它在某些情况下效果不佳,例如https://github.com/realm/realm-java/issues/3033https://github.com/realm/realm-java/issues/3022。因此,它将在v1.0.1之后的下一个版本中被禁用。

transformClassesWithRealmTransformerForIdeDebug是Realm所依赖的核心部分。基本上它通过字节码操作替换对具有Realm访问器的RealmObject的字段访问。您可以查看此post以获取更多详细信息。因此,不能跳过此任务。

PS。创建issue以跟踪变压器速度的提高。