Какое требование стандарта по отрисовке экрана

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

Ответ

Согласно стандарту, UI должен отрисовываться за 16 мс (60 FPS), чтобы обеспечить плавную анимацию. Если рендеринг занимает больше времени, возникают пропущенные кадры (jank).

Основные этапы рендеринга:

  1. Measure/Layout – измерение и размещение View.
  2. Draw – отрисовка в буфер.
  3. Commit – передача буфера на экран.

Оптимизации:

  • Избегать глубоких View-иерархий.
  • Использовать ConstraintLayout вместо вложенных LinearLayout.
  • Минимизировать onDraw() перерисовки.
// Плохо: вложенные Layouts  
<LinearLayout>  
    <LinearLayout>  
        <TextView/>  
    </LinearLayout>  
</LinearLayout>  

// Лучше: ConstraintLayout  
<ConstraintLayout>  
    <TextView app:layout_constraint.../>  
</ConstraintLayout>  

Для анализа использовать Systrace или Profile GPU Rendering.