Сколько раз в секунду вызывается метод onDraw() в View

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

Ответ

Метод onDraw() вызывается каждый раз при необходимости перерисовки View. Частота зависит от частоты обновления экрана (обычно 60 Гц, то есть ~16.6 мс на кадр), но может быть реже, если:

  1. View не требует перерисовки (invalidate() не вызывается)
  2. Происходит пропуск кадров (jank)
  3. Используется postInvalidateOnAnimation() для синхронизации с VSYNC

Пример:

override fun onDraw(canvas: Canvas) {
    super.onDraw(canvas)
    // Вызывается при каждой перерисовке
}

Для анимаций лучше использовать ValueAnimator или Choreographer, а не полагаться на частоту onDraw().