在我对 assembleDebug
gradle 任务的分析报告中,我发现了两个 Realm 相关的 gradle 子任务,它们花费了大量时间:
assembleDebug - 1m21.44s
- transformClassesWithRealmOptionalAPITransformerForDebug - 22.386s
- transformClassesWithRealmTransformerForIdeDebug - 10.062s
问题:
- 那些 Realm 相关的 gradle 子任务到底是做什么的?我可以在某个时候跳过它们吗?
- 为什么他们花了这么长时间? (22 + 10 = 32 秒)
更新
作为解决方法,我通过 -x
脚本参数跳过任务
assembleDebug -x transformClassesWithRealmOptionalAPITransformerForDebug
最佳答案
transformClassesWithRealmOptionalAPITransformerForDebug
是为删除 RxJava
相关 API 而创建的,因为它可能会在某些情况下(需要反射的情况,如 https://realm.io/docs/java/latest/#jackson-databind )产生麻烦,而 RxJava
依赖。但我们发现它在某些场合表现不佳,例如https://github.com/realm/realm-java/issues/3033。和 https://github.com/realm/realm-java/issues/3022 .所以它将在 v1.0.1
之后的下一个版本中被禁用。
transformClassesWithRealmTransformerForIdeDebug
是 Realm 依赖的核心部分。基本上,它通过字节码操作将对 RealmObject
的字段访问替换为 Realm 访问器。你可以看到这个post了解更多详情。因此,不能跳过此任务。
附言。一个issue是为了跟踪变压器速度的改进而创建的。
关于android - Realm 梯度任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37928953/