Ответ
Производительность layout измеряется в количестве проходов (passes) и времени рендеринга. Основные метрики:
-
Measure/Layout Passes - сколько раз View проходит измерения (onMeasure) и размещение (onLayout). Оптимально - 1-2 прохода.
-
Frame Rendering Time - время отрисовки кадра. Для 60 FPS нужно укладываться в 16ms на кадр.
Пример проблемного layout:
<LinearLayout>
<RelativeLayout> <!-- Лишняя вложенность -->
<TextView android:layout_centerInParent="true"/>
</RelativeLayout>
</LinearLayout>
Для анализа используйте:
- Layout Inspector в Android Studio
- GPU Rendering Profile в настройках разработчика
- Systrace для детального анализа
Оптимизируйте через:
- Упрощение иерархии View
- Использование ConstraintLayout
- Избегание nested weights
- Применение ViewStub для редко используемых элементов