Запуск Android-приложения: путь от иконки до Activity Нажатие на иконку в Launcher инициирует системный вызов запуска Package Manager анализирует манифест и определяет главное Activity При участии Zygote создаётся…
при изменении конфигурации — например, ориентации, языка или параметров экрана — система перезапускает Activity перед этим вызывается onSaveInstanceState() для сохранения текущего состояния после чего Activity…
На уровне исходного кода типы Kotlin являются универсальными (generic) Компиляция выполняется для JVM с type erasure В JVM конкретный параметр типа стирается и не сохраняется в байткоде Ограничивать допустимые типы…
Android-компонент для отображения списков с повторным использованием элементов Создаёт ViewHolder'ы только для видимых элементов и небольшой области за пределами экрана Во время прокрутки переиспользует уже созданные…
Сервисы Android можно привязывать (bound) к компонентам приложения, включая Activity и Service, чтобы они могли взаимодействовать друг с другом. Метод bindService() создаёт соединение между клиентом и сервисом. После…
Тестирование UI-компонентов в Jetpack Compose Для UI-тестов Compose применяют библиотеку compose-test, входящую в состав Jetpack Compose. Центральный инструмент — ComposeTestRule: он управляет жизненным циклом…
Android background service — компонент, предназначенный для выполнения продолжительных задач Начиная с Android 8 работа обычного фонового сервиса ограничена по времени: обычно это около 1–2 минут Foreground Service…
Как выявить причину фризов при прокрутке LazyColumn в Jetpack Compose? Профилирование производительности — отправная точка при диагностике зависаний UI Применить Android Profiler для анализа CPU, GPU и использования…
область применения: Android UI, RecyclerView по умолчанию RecyclerView применяет DefaultItemAnimator для анимаций для замены эффекта создают класс-наследник RecyclerView.ItemAnimator или SimpleItemAnimator методы…
Как изменить один TextView в списке, не выполняя полный ребинд элемента? Область: Android, RecyclerView/ListView Вызвать notifyItemChanged(position, payload). Передать определённый payload, например ключ, обозначающий…