1

進行中のすべてのゲーム、簡単な説明、対戦相手の名前、プロフィール写真などを一覧表示する画面を含むAndroidゲームがあります。ZyngaのWithFriendsゲームと非常によく似ています。ただし、進行中のゲームが数十あり、すべてをリストする必要がある場合、ゲームのリストのレンダリングに関して常に大きなパフォーマンスの問題が発生しました。

読み込み時間は5秒以上になる可能性があるため、プロファイリングを行ってボトルネックを把握するときが来たと思いました。時間の約70%は、レイアウト要素(可能な限りフラットで軽量になるように最小化されています)の膨張と初期化に費やされることが判明したため、残りのコードを即座に実行するように最適化できたとしても、読み込みは時間は、UXの観点からはまだ受け入れられません。

単純なListViewは、ゲームと同じテンプレートに従わないボタンなどの追加のUI要素のために機能しません。iOSでは、3GSでも同様の構造がほぼ瞬時にレンダリングされるため、同様の機能を備えたAndroidデバイスでも少なくとも同様の速度が期待できます。レイアウトのインフレーションと初期化に使用される時間を短縮するための私のオプションは何ですか?

(Words With Friendsのスクリーンショットは、どのように表示されるかわからない場合に参照できます)ここに画像の説明を入力してください

4

1 に答える 1

3

についてのこの会議を見る必要がありますListView。可能な限り最小限の割り当てで、適切な方法で実装する方法を説明します。興味のあるコンテンツは9分から始まります。

  • 最初のトピックは、関数convetViewによって提供されるを使用することですgetView
  • 2つ目はViewHolder、アクセス速度を向上させるためにを使用することです

もう1つは、画像の読み込みを管理して、パーツがレンダリングをしばらくブロックしないようにする必要があります。

アプリケーションのプロファイルを作成し、コード内の遅延関数が何であるかを知るための優れたツールがあります。ここでそれを見てください

于 2012-07-20T23:42:03.267 に答える