=========================
更新: 数日間のグーグルと実験の後、私はそれらのばかげた質問のほとんどに対する答えを見つけました. 私が提出した回答を参照してください。
=========
Androidウィンドウの責任は何ですか?
ここにいくつかの質問があります:
- 入力を収集してディスパッチする責任がありますか?
- ビューとウィンドウの関係は? DFBの面と窓の関係と同じ?
- アクティビティとウィンドウの関係は? 各アクティビティにはウィンドウがありますか?
- アプリケーションからウィンドウを作成することはできますか? そして、いつそれが必要ですか?
- Android はマルチウィンドウをサポートしていますか?
編集:さらに質問を追加:
Window、View、Canvas、Surface などのさまざまなクラスの責任と、それらが互いにどのように連携するか
通常、アクティビティにはいくつのウィンドウがありますか?
3.1 つのアクティビティ内のすべてのビューが Window にアタッチされますか? attach とはどういう意味ですか?
すべてのウィンドウには表面がありますか? すべてのキャンバスには表面がありますか?
View は focus/keyEvent/ manager を担当しますが、Cavus は「描画」操作のみを担当します。
WindowManagerはウィンドウのスタックを担当していますか? それは SurfaceFlinger とどのように関連していますか?
View は Surface を所有していません。ビューに含まれる Window は所有していますか?
ビューは、surface.lockCanvas() を呼び出して取得したキャンバスを使用して自分自身を描画します。
onDraw(Canvas) はいつ呼び出されますか? どのように、誰がキャンバス パラメータを渡しますか?
キャンバスにはサイズがありますか? Window のサーフェスは常にフルスクリーンになりますか?
もう一度編集:
Romain Guy http://www.youtube.com/watch?v=duefsFTJXzc&feature=feedwll&list=WLによって提供されたこの素晴らしいプレゼンテーションを見た後、いくつかの質問が解決され、さらにいくつかの質問が追加されました:)
- すべてのアクティビティには 1 つの ViewRoot があり、したがって 1 つのウィンドウがありますか?
- 明示的にウィンドウを作成する必要はありますか? ウィンドウの表面は常にフルスクリーンになりますか?
- ステータス バーは別のウィンドウに表示されますか?
- 表面の大きさは?それは常にフルスクリーンになりますか?