Что будет если количество отрисованных кадров меньше чем 60

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

Ответ

Если FPS падает ниже 60, пользователь заметит подтормаживания (jank) в интерфейсе. Android стремится к 60 FPS (16.6 мс на кадр). Основные последствия:

  1. Визуальные артефакты: рывки, задержки анимаций
  2. UX ухудшение: приложения кажутся "тормозными"
  3. Перегрев/батарея: система может троттлить CPU

Типичные причины:

  • Долгие операции в UI-потоке
  • Сложные layout/layout_weight
  • Перегруженные onDraw()
  • Утечки памяти

Пример плохого кода:

// Внутри View.onDraw()
for (i in 0..100000) { // Долгая операция
    canvas.drawCircle(...) 
}

Как исправить:

  • Использовать профилировщик GPU Rendering
  • Оптимизировать onDraw() и measure/layout
  • Выносить тяжелые операции в фоновые потоки
  • Использовать RecyclerView вместо ListView