Подборка некоторых старых и новых вопросов для собеседований по Android

Долгое время у меня появилась привычка посещать довольно много собеседований. Одна из причин заключалась в том, что я боялся появляться на собеседовании в какой-то момент, и я начал давать интервью, просто чтобы попрактиковаться и преодолеть страх. Чем больше интервью я давал, тем лучше выступал.

В этой статье будут перечислены наиболее часто задаваемые вопросы на собеседовании, которые мне недавно задали в паре интервью некоторыми крупными компаниями, связанными с Android, Java и Kotlin. Я буду добавлять больше вопросов по мере появления.

  1. Что такое файл манифеста и для чего он нужен?
  2. Опишите жизненный цикл действия и фрагмента.
  3. Что такое разрешения Android? Можете ли вы использовать разрешения, не спрашивая пользователя?
  4. Что такое услуга?
  5. В каком процессе по умолчанию запускается приложение?
  6. Как вы взаимодействуете между компонентами в двух разных процессах?
  7. В каком потоке работает служба, как избежать ошибок ANR, связанных с одним и тем же?
  8. Какие бывают приемники и типы?
  9. Что такое ANR? Каково минимальное пороговое время возникновения ANR.
  10. Что происходит при изменении конфигурации?
  11. Что такое методы equals и hashcode и как они связаны?
  12. Какие существуют методы сохранения данных в Android?
  13. В чем разница между MVP и MVVM?
  14. Что такое внедрение зависимостей и как Dagger используется для DI?
  15. В каком потоке обновляется пользовательский интерфейс в Android?
  16. Что такое поток рендеринга?
  17. Что такое АРТ и зачем оно вам нужно?
  18. Что такое прогаурд и в чем его польза?
  19. Зачем сжимать apk?
  20. Какое сокращение от «apk»?
  21. Как работает сборка Gradle?
  22. Что происходит, когда вы щелкаете значок запуска приложения?
  23. Какие последние обновления для Android 10 или 11?
  24. Что такое намерение? Опишите типы намерений.
  25. Что происходит, когда нет внешнего приложения, способного открыть намерение?
  26. Что такое PendingIntent?
  27. Что такое утечка памяти и как ее избежать?
  28. Преимущества использования макета ограничений?
  29. Перечислите различия между proguard и R8.
  30. Что такое синглтон и каковы их эффекты при использовании многопоточности?

Котлин

  1. Каковы ключевые особенности языка программирования Kotlin?
  2. В чем разница между объектом и классом?
  3. Что такое класс данных?
  4. Каковы основные переопределенные функции в классе данных?
  5. Что такое запечатанный класс и почему он используется?
  6. В чем разница между var и val?
  7. В чем разница между lazy и lateinit?
  8. Что такое сопрограммы?
  9. Перечислите и опишите модификаторы видимости.
  10. Что такое функции расширения и какой принцип SOLID они используют?
  11. Что такое объекты-компаньоны и каков их эквивалент в Java?
  12. Как обеспечить возможность нулевого значения в Котлине?
  13. Что такое блок инициализации в Котлине?
  14. Перечислите различные типы функций.
  15. В чем разница между встроенными и инфиксными функциями?

Пожалуйста, оставьте комментарий, если вам есть что добавить.