Сколько миллисекунд нужно для отрисовки кадра без торможения

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

Ответ

Для плавной анимации без торможений кадр должен отрисовываться за 16.67 мс (1000 мс / 60 FPS). Это стандартный целевой показатель для 60 кадров в секунду.

На Android важно учитывать:

  • Время рендеринга UI (measure/layout/draw)
  • Время выполнения бизнес-логики в UI потоке
  • Время GPU-рендеринга

Пример проверки производительности:

class MyView : View {
    override fun onDraw(canvas: Canvas) {
        val startTime = System.nanoTime()
        // Рисуем контент
        val renderTime = (System.nanoTime() - startTime) / 1_000_000
        if (renderTime > 16) {
            Log.w("Perf", "Slow rendering: ${renderTime}ms")
        }
    }
}