Hierarchyviewer でタブレット UI を分析していて、測定時間に次のパターンがあることに気付きました (ツリーのベースから開始して上に移動します)。
... ~40 ミリ秒 ... ~80 ミリ秒 ... ~160 ミリ秒 ... ~320 ミリ秒 ... ~640 ミリ秒 ... ~1280 ミリ秒 ...
問題はネストされた重みを持つ LinearLayout であると想定したため、階層全体ですべての LinearLayout と重みを削除しました。今私はこれを持っています:
... ~40 ミリ秒 ... ~80 ミリ秒 ... ~160 ミリ秒 ... ~160 ミリ秒 ... ~160 ミリ秒 ... ~310 ミリ秒 ...
より良いですが、それでも数レベルごとに 2 倍になります。何が原因でしょうか?
このパスの完全な階層は次のとおりです (長すぎることをお許しください...最適化のヒントを私に投げかけてください):
[generated layouts]
*RelativeLayout [309 ms]
FrameLayout [164 ms]
NoSaveStateFrameLayout [160 ms]
*RelativeLayout [151 ms]
*RelativeLayout [77 ms]
ListView [45 ms]
GridLayout [46 ms]
Spinner [4.4 ms]
TextView [0.1 ms]
※視聴時間は2倍
どんなアドバイスでも大歓迎です!前もって感謝します。
TL;DR
ネストされた重み以外に、測定時間が指数関数的に増加する原因は何ですか?