看起来我们不需要使用kapt
的{{1}}批注即可工作。那么,如何将它们连接起来?是某种运行时注释处理吗?
我问是因为我很好奇使用这些注释的成本是多少。使用它们会影响应用程序启动时间吗?还是项目编译时间?
答案 0 :(得分:1)
他们正在使用反射来查找带有@OnLifecycleEvent
的带注释的函数。这是为什么类应该实现LifecycleObserver
的真正需要。如果有kapt
要做,那可能就不应该有任何接口可以实现。
由于保留时间设置为RetentionPolicy.RUNTIME
,因此解决方案正在运行。
反射很昂贵,因此它们正在为每个方法建立static
缓存,并使用方法引用(仍然是反射)来调用每个方法。我没有任何数字可以提供它如何直接影响启动时间。