Выбор ответа Middle Сборка Gradle обновлено
Почему KSP быстрее kapt
Вопрос
Почему для Room и Hilt рекомендуют KSP вместо kapt?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: kapt строит Java-заглушки для Java-процессоров, а KSP работает с Kotlin напрямую. kapt вынужден сначала превратить Kotlin в Java-заглушки, а потом запускать javac-процессоры.
Варианты ответа
- KSP генерирует код на Java, а kapt на Kotlin, поэтому KSP совместим с Room
- kapt не поддерживает Room 2.6 и Hilt 2.48, а KSP поддерживает все версии
- KSP обрабатывает аннотации во время выполнения, поэтому сборка становится короче
- kapt строит Java-заглушки для Java-процессоров, а KSP работает с Kotlin напрямуюправильный ответ
Разбор
kapt вынужден сначала превратить Kotlin в Java-заглушки, а потом запускать javac-процессоры. KSP предоставляет процессорам модель Kotlin-кода без этого шага и поддерживает K2. Код генерировать KSP может на любом языке, процессоры обычно генерируют Kotlin. Room поддерживал kapt, но теперь рекомендует KSP. Всё это происходит при компиляции.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.