Ответ
Choreographer — это системный компонент Android, который синхронизирует выполнение операций с отрисовкой кадров (VSYNC). Он координирует input, анимации и отрисовку, чтобы избежать пропущенных кадров (jank).
Ключевые моменты:
- Работает на основе VSYNC-сигналов (обычно 60 Гц)
- Позволяет запланировать выполнение кода на следующий кадр через
postFrameCallback - Используется в
Viewсистеме для вызововonDraw()
Пример использования для мониторинга FPS:
val choreographer = Choreographer.getInstance()
var frameCount = 0
val callback = object : Choreographer.FrameCallback {
override fun doFrame(frameTimeNanos: Long) {
frameCount++
choreographer.postFrameCallback(this)
}
}
choreographer.postFrameCallback(callback)