• Глубокая вложенность. Плоские лэйауты отрисовываются быстрее, чем вложенные с тем же количеством View.
• Double taxation. Так называется ситуация, когда для лэйаута шаги
onMeasure()
и onLayout()
вызываются дважды. Например, double taxation случается при использовании атрибута weight
в LinearLayout
.Для того, чтобы избежать проблем с производительностью следует придерживаться следующих правил:
•
LinearLayout
c текстом и картинкой следует заменять на TextView
с Compound Drawable.• Если в качестве корневого лэйаута используется
FrameLayout
без кастомизированных атрибутов, то его можно заменить тегом <merge>
.• Использовать
<merge>
для лэйаутов, которые вкладываются в другие лэйауты;• Использовать
ConstraintLayout
вместо RelativeLayout
. • Быть осторожным с атрибутом
layout_weight
в LinearLayout
и не использовать layout_weight
в нескольких вложенных лэйаутах.