UIのレンダリングの最適化

CPU与GPU

ここに画像を挿入説明
命令、他のモジュールの制御動作のフェッチを含む、動作を調整するために全体のCPUを制御するためのコントローラなどのブルーの制御。
;オレンジALU(算術論理ユニット)は、算術論理ユニット、数学的および論理演算で
それぞれオレンジキャッシュDRAMキャッシュとRAM、ストアユーザ情報。
CPUコントローラは、少数のALUより複雑です。CPUは、特に浮動小数点演算、数学が得意で、複雑なLogitechの操作の様々な専門にではなく。

あなたは色を変更したい場合は例えば16進数の色を使用して、ちょうど16進数に値を変更する必要があります。GPU ALUのだから、もっと。

XMLは、画面レイアウトのプロセスに表示されています

ここに画像を挿入説明
まず、定義XML制御情報は、その後LayoutInflaterのXMLがメモリにロードされ、高い広い含まれ、CPUの計算は、ディスプレイへの言及ラスタライズ表示した後、ビットマップ、GPUのグラフィックCPU、GPUを生成する、と呼びます。

FPS

12のFPS:ピクチャーフレームレートが高いほど、毎秒12のフレームよりも、目はそれがコヒーレントであると思われます。
24-FPS:サウンドフィルムは、一般的に第二の撮影あたり24のフレームで
、通常は毎秒約30フレームで、初期の動的なビデオゲーム:30のFPS ;
60 FPS:携帯電話の相互作用、タッチフィードバックする必要性は、カトンに何の効果も到達しないために60を必要とします。

Androidシステムは毎回成功した場合、我々は60個のフレームを実現することができ、垂直同期信号UIが一度にレンダリングごとに16msのに送信されます。毎秒60個のフレームを実現するには、16msの内に完了しない場合は、カトンの現象があるだろう、など16msの、ローディングのXMLレンダリングを完了する必要があります。

カトンの理由

トランジションを描きます

  1. 解決策:不要な背景色を削除します
  2. フラットレイアウトビュー
  3. 透明色の使用を減らします

UIスレッド複雑な操作

  1. データ削減計算UIスレッド

頻繁にGC:

  • GCの頻繁な理由:
  1. メモリジッタ
  2. 瞬時に多数のオブジェクトを生成します
  • 最小化またはループのためにオブジェクトonDrawで新しいオブジェクトを作成
  • ループ内のローカル変数の大規模な番号を使用しないようにしてください

最適化の目標

CPU時間の削減にオブジェクトにXML
GPU削減再描画を

移行抽選の概念

すべての16msのは、ユーザーの原因となります位置が唯一のトップ画面を見ることができるが繰り返されている場合、画面の下部には、ドローの下の部分をカバーしている間、ユーザーが見ることができないが、グラフィックスはCPUからの転送、絵だけでなく、占めいったんGPU不必要な廃棄物を生じる、コンピューティングリソース、この場合は、過渡的延伸と呼ばれ、
ここに画像を挿入説明
描画する遷移におけるオープンGPU開発デバッグオプションを、異なる色が異なるレベルを表します。レッド移行ドロー最も深刻。

描かれた典型的な遷移の例

カードを再生する
ここに画像を挿入説明
だけの一部を見ることができる2枚のカードの前ではなく、全体の内容を描か欠きます。内容を表示するために描かれた最初の2つ、キャンバスを切断。

UI最適化ソリューション

背景レイアウトか、
レイアウトが削除できるかどうか、
カスタマイズビュー対応するカットか、
レイアウトが十分に平坦化され、
使用マージ削除過剰ラベル層のViewGroup容器と、
ViewStubは、遅延ローディングレイアウトである使用。

公開された85元の記事 ウォンの賞賛1 ビュー4325

おすすめ

転載: blog.csdn.net/CSDN_Mew/article/details/103980738