Выбор ответа Middle Сборка Gradle обновлено

Почему KSP быстрее kapt

Вопрос

Почему для Room и Hilt рекомендуют KSP вместо kapt?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: kapt строит Java-заглушки для Java-процессоров, а KSP работает с Kotlin напрямую. kapt вынужден сначала превратить Kotlin в Java-заглушки, а потом запускать javac-процессоры.

Варианты ответа

  1. KSP генерирует код на Java, а kapt на Kotlin, поэтому KSP совместим с Room
  2. kapt не поддерживает Room 2.6 и Hilt 2.48, а KSP поддерживает все версии
  3. KSP обрабатывает аннотации во время выполнения, поэтому сборка становится короче
  4. kapt строит Java-заглушки для Java-процессоров, а KSP работает с Kotlin напрямуюправильный ответ

Разбор

kapt вынужден сначала превратить Kotlin в Java-заглушки, а потом запускать javac-процессоры. KSP предоставляет процессорам модель Kotlin-кода без этого шага и поддерживает K2. Код генерировать KSP может на любом языке, процессоры обычно генерируют Kotlin. Room поддерживал kapt, но теперь рекомендует KSP. Всё это происходит при компиляции.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.