Подборка некоторых старых и новых вопросов для собеседований по Android
Долгое время у меня появилась привычка посещать довольно много собеседований. Одна из причин заключалась в том, что я боялся появляться на собеседовании в какой-то момент, и я начал давать интервью, просто чтобы попрактиковаться и преодолеть страх. Чем больше интервью я давал, тем лучше выступал.
В этой статье будут перечислены наиболее часто задаваемые вопросы на собеседовании, которые мне недавно задали в паре интервью некоторыми крупными компаниями, связанными с Android, Java и Kotlin. Я буду добавлять больше вопросов по мере появления.
- Что такое файл манифеста и для чего он нужен?
- Опишите жизненный цикл действия и фрагмента.
- Что такое разрешения Android? Можете ли вы использовать разрешения, не спрашивая пользователя?
- Что такое услуга?
- В каком процессе по умолчанию запускается приложение?
- Как вы взаимодействуете между компонентами в двух разных процессах?
- В каком потоке работает служба, как избежать ошибок ANR, связанных с одним и тем же?
- Какие бывают приемники и типы?
- Что такое ANR? Каково минимальное пороговое время возникновения ANR.
- Что происходит при изменении конфигурации?
- Что такое методы equals и hashcode и как они связаны?
- Какие существуют методы сохранения данных в Android?
- В чем разница между MVP и MVVM?
- Что такое внедрение зависимостей и как Dagger используется для DI?
- В каком потоке обновляется пользовательский интерфейс в Android?
- Что такое поток рендеринга?
- Что такое АРТ и зачем оно вам нужно?
- Что такое прогаурд и в чем его польза?
- Зачем сжимать apk?
- Какое сокращение от «apk»?
- Как работает сборка Gradle?
- Что происходит, когда вы щелкаете значок запуска приложения?
- Какие последние обновления для Android 10 или 11?
- Что такое намерение? Опишите типы намерений.
- Что происходит, когда нет внешнего приложения, способного открыть намерение?
- Что такое PendingIntent?
- Что такое утечка памяти и как ее избежать?
- Преимущества использования макета ограничений?
- Перечислите различия между proguard и R8.
- Что такое синглтон и каковы их эффекты при использовании многопоточности?
Котлин
- Каковы ключевые особенности языка программирования Kotlin?
- В чем разница между объектом и классом?
- Что такое класс данных?
- Каковы основные переопределенные функции в классе данных?
- Что такое запечатанный класс и почему он используется?
- В чем разница между var и val?
- В чем разница между lazy и lateinit?
- Что такое сопрограммы?
- Перечислите и опишите модификаторы видимости.
- Что такое функции расширения и какой принцип SOLID они используют?
- Что такое объекты-компаньоны и каков их эквивалент в Java?
- Как обеспечить возможность нулевого значения в Котлине?
- Что такое блок инициализации в Котлине?
- Перечислите различные типы функций.
- В чем разница между встроенными и инфиксными функциями?
Пожалуйста, оставьте комментарий, если вам есть что добавить.