私はSuface、Suface Flinger、SurfaceView、SurfaceHolder、Bitmapのドキュメントから学んでいます。私は次の定義を見つけました:
SurfaceSurface はピクセルのコレクションです。サーフェスは、画面に合成されているピクセルを保持するオブジェクトです。画面に表示されるすべてのウィンドウ(ダイアログ、フルスクリーンアクティビティ、ステータスバー)には、描画する独自のサーフェスがあり、SurfaceFlingerはこれらを正しいZ順で最終的な表示にレンダリングします。サーフェスには通常、ダブルバッファレンダリングを行うために複数のバッファ(通常は2つ)があります。アプリケーションが終了するのを待たずに、サーフェスフリンガーが最後のバッファを使用して画面を合成している間に、アプリケーションは次のUI状態を描画できます。図。
SurfaceView このクラスは、ライブカメラプレビューをユーザーに提示するために使用されます。SurfaceViewは、Viewの特別な実装であり、アプリケーションが直接描画するための専用のSurfaceも作成します(通常のビュー階層の外で、ウィンドウの単一のSurfaceを共有する必要があります)。
ビットマップ ビットマップはピクセルのコレクションのラッパーであり、他の便利な機能を備えたピクセルの配列です。
Canvas Canvasは、すべての描画メソッドを含むクラスです。これは、JavaのAWT/SwingのGraphicsクラスに似ています。描画方法、ボックスなどに関するすべてのロジックがあります。Canvasはビットマップ上で動作します。
しかし、SurfaceHolderとSurfaceFlingerについてはよくわかりません。上記の定義によれば、ビットマップはピクセルとSurfaceのコンテナでもあります。
これらすべてのオブジェクトの定義を明確に理解するのを手伝ってもらえますか?