Вернуться в видеотеку

Экспертное Android-собеседование. Боиштян собеседует Розова

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

Источник: Android Broadcast. Все об Андроид разработке

Открыть на YouTube

Таймлайн

Коротко о видео

Это публичное экспертное Android-собеседование в прямом эфире, а не подтверждённый реальный процесс найма: Сергей Боиштян задаёт Кириллу Розову практические вопросы по Android-платформе. Они последовательно обсуждают жизненный цикл View, восстановление состояния, push-уведомления и навигацию, фоновые задачи, многопоточность, утечки памяти, производительность RecyclerView и Room. В финале Сергей даёт Кириллу положительную, но субъективную оценку: отмечает широкий кругозор и относит его уровень ближе к senior, одновременно указывая на менее уверенные ответы о низкоуровневой многопоточности и отдельных инструментах производительности.

Затронутые темы

Что взять на заметку

  • Для кастомной View отмену запросов и очистку ресурсов предлагают связывать с attach/detach-событиями; в разговоре вспоминают callbacks View и ViewTreeObserver как способы отслеживать состояние дерева.
  • При смене конфигурации Android сохраняет состояние Activity, Fragment и View через Bundle; потеря состояния возможна, в частности, без стабильного id у View, при не реализованном сохранении state у кастомной View или при транзакции Fragment после сохранения состояния.
  • Обработку push нужно проектировать отдельно для запущенного и убитого процесса: важны Task/back stack, флаги Intent, onNewIntent и ограничения Android 12 на запуск Activity из фона; для действий в уведомлении используется PendingIntent.
  • Долгую загрузку файла не стоит оставлять в обычном потоке приложения: обсуждаются WorkManager и foreground service, персистентное хранение прогресса, повторный запуск и возможность дозагрузки частями.
  • В части многопоточности разбирают Handler, Looper и очередь сообщений; позднее интервьюер уточняет, что Looper привязывается к потоку через ThreadLocal, а пустая очередь ожидает событие, а не должна активно крутиться.
  • Для поиска OutOfMemory и утечек предлагается начать с crash-данных и сценария воспроизведения, затем снять heap dump и искать удерживающие strong references и пути от GC roots; упоминается LeakCanary.
  • Тормоза RecyclerView предлагают диагностировать профилированием кадров и рендеринга, после чего проверять тяжёлый layout/measure/draw, глубину View-иерархии, большие TextView и варианты асинхронной инфляции; для Room обсуждаются связи «один-ко-многим», индексы и компромиссы полиморфной схемы.

Рекомендуем посмотреть