1

私のアプリでは、1 つRelativeLayoutまたはネストされたLinearLayouts で作成できるレイアウトがあります。

レイアウト間に既知のトレードオフはありますか? つまり、1つのRelativeLayoutが3つのネストされたLinearLayoutに等しいなどの式はありますか? ありがとう!

4

1 に答える 1

1

で使用されるアルゴリズムが で使用されるアルゴリズムRelativeLayoutよりも複雑であることを考えると、LinearLayout本質的に求めているのは、パフォーマンスに関して「3 つの LinearLayout が RelativeLayout よりも価値があるかどうか」です。

おそらく、各レイアウトが含まれるビューを階層的に測定する方法について多くの詳細を掘り下げて、質問に対する理論的な答えを出そうとすることができますが、正しい答えは、レイアウトとビューの両方を作成することです。それぞれが測定されるのにかかる時間を測定します。パフォーマンスに関して言えば、プロファイリングは常に解決策です (過度のプリエンプティブな最適化はめったにありません...)

Android OS の新しいイテレーションごとに、開発者がビューの配置に使用されるアルゴリズムを微調整し、(うまくいけば) 改善する可能性があるため、プロファイリング データはいずれにしても使用が制限される可能性があることに注意してください (したがって、2.2 プロファイリング セッションから収集されたデータはICS で得られる結果を表していない可能性があります)。

個人的には、読みやすく変更しやすいと感じているため、通常は複数の LinearLayout アプローチを使用しますが、に切り替える必要があったときRelativeLayout、パフォーマンスの大幅な低下/改善に気づいたことはありません。

お役に立てれば

于 2013-05-28T09:27:30.873 に答える