Что такое лаг в Android

«Что такое лаг в Android» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Лаг — это задержка или подтормаживание интерфейса приложения, из-за которого пользовательский опыт становится менее плавным. Основные причины:

  1. Долгие операции в UI-потоке (например, работа с сетью или БД).
  2. Перегруженная отрисовка (сложные layout’ы, много вложенных View).
  3. Утечки памяти (активности не освобождаются, GC тормозит систему).

Пример исправления:

// Плохо (блокирует UI)
fun loadData() {
    val data = fetchFromNetwork() // Долгая операция
    updateUI(data)
}

// Хорошо (используем корутины)
fun loadData() {
    viewModelScope.launch(Dispatchers.IO) {
        val data = fetchFromNetwork()
        withContext(Dispatchers.Main) { updateUI(data) }
    }
}

Как избежать:

  • Использовать RecyclerView вместо ListView.
  • Оптимизировать layout (меньше вложенности, ConstraintLayout).
  • Выносить тяжелые задачи в фоновые потоки (Coroutines, RxJava).