アンドロイドビューの描画処理の流れを教えてください。
Android の表示描画処理は以下の流れで行われます。
- ViewRootImplでperformTraversals()メソッドを呼び出して、描画処理を開始する。
- ViewRootImplのperformMeasure()メソッドが呼び出され測定が行われ、その際ViewのonMeasure()メソッドが呼び出され、ViewのMeasureSpecに基づいてViewの測定幅と高さが決定されます。
- ViewRootImpl内のperformLayout()メソッドでレイアウト処理を行います。処理中、ViewのonLayout()を呼び出し、計測した幅高さ、親コンテナのレイアウトルールに基づいてViewの位置を決定します。
- ViewRootImpl の performDraw() メソッドを呼び出して描画を実行する。この描画処理を実行する際、View の onDraw() メソッドを呼び出して View のコンテンツを描画する。
- 描画が終了すると、システムは描画された結果を画面に表示します。
以上のものが Android View の描画プロセスです。View の中身が更新されたり、インターフェイスを強制的に更新する必要がある場合に、View の invalidate() メソッドを呼び出して、描画プロセスを再起動できます。