Они используют отражение, чтобы найти аннотированные функции с @OnLifecycleEvent
.Это реальная необходимость, почему классы должны реализовывать LifecycleObserver
.Если нужно было сделать kapt
, то, вероятно, не должно было быть никакого интерфейса для реализации.
Разрешение выполняется во время выполнения, поскольку время хранения установлено на RetentionPolicy.RUNTIME
.
Отражение стоит дорого, и поэтому они создают static
кэш каждого метода и используют ссылку на метод, да еще и отражение, для вызова каждого из них.У меня нет цифр, чтобы указать, как это напрямую влияет на время запуска.