Ответ 1
Чтобы понять это, вам нужно понять, как раздуты и размещены макет.
Скажем, например, у вас есть активность, и это макет xml, который вы используете. Вот как выглядит макет действия перед тем, как вы поместите свой файл макета.
<FrameLayout // This is the window
...
<FrameLayout> // This is activity
</FrameLayout>
</FrameLayout>
В зависимости от устройства/ОС может быть несколько других уровней.
Теперь, когда вы раздуваете ваш файл макета и вставляете его, вот как он будет выглядеть.
<FrameLayout // This is the window
...
<FrameLayout> // This is activity
// Your layout below
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
... a textview and 2 linearlayouts
</FrameLayout>
</FrameLayout>
</FrameLayout>
Вы видите FrameLayout внутри FrameLayout? Это избыточно, потому что это не добавляет большого значения. Чтобы оптимизировать, вы можете заменить FrameLayout на < слияние > . Если вы используете, то это будет выглядеть.
<FrameLayout // This is the window
...
<FrameLayout // This is activity
// Your layout below
... a textview and 2 linearlayouts
</FrameLayout>
</FrameLayout>
Обратите внимание, что дополнительного FrameLayout нет. Вместо этого он просто сливается с FrameLayout активности. Когда вы можете, вы должны использовать < слияние > . Это относится не только к FrameLayouts. Вы можете прочитать больше об этом здесь. http://developer.android.com/training/improving-layouts/reusing-layouts.html#Merge
Надеюсь, что это поможет.