私はかなり複雑な UI を持っています - 多くのビューとかなりの階層があります。私はこれを切り詰めようと取り組んでいますが、本当に奇妙なことに気づきました。
UI はバッキング モデルから更新されます。モデルが変更されると、バックグラウンド スレッドでモデルを再計算し、UI スレッドで更新されたモデルをさまざまなコンポーネントに渡して、それらの情報を再表示します。モデルが渡され、すべての (たとえば) textview.setText 呼び出しが行われるまでに、約 200 ~ 300 ミリ秒かかります。ただし、更新機能が終了してから最大 5 秒間は、UI は実際には更新されません。
ddms のメソッド プロファイリング ツールを使用して何が起こっているかを確認しました。更新が終了してから数秒で、大量の測定とレイアウトの呼び出しが行われているようです。いくつかの場所で onLayout をオーバーライドしました。値を 1 つだけ指定すると、UI 全体が再測定されてレイアウトされます。
だから私の質問は、これが正常かどうかです。更新に時間がかかることがわかりますが、5 秒は長いように思えます。アプリの起動時に UI が表示されるまでに数秒かかることがあるため、UI が複雑すぎるのではないかと考えています。これは、Android 4.0.4 を搭載した Galaxy Tab 10.1 にあります。
ありがとう