=========================
更新:经过数天的谷歌搜索和实验,我已经找到了大多数愚蠢问题的答案。请查看我提交的答案。
=========
Android Window的职责是什么?
以下是一些问题:
- 它负责收集和分派输入吗?
- 视图与窗口之间的关系是什么?与DFB中窗口和表面之间的关系相同吗?
- 活动和窗口之间的关系是什么?每个Activity都有一个窗口吗?
- 是否可以从应用程序创建窗口?何时需要?
- Android支持多窗口吗?
编辑:增加更多问题:
各种类(如Window、View、Canvas、Surface)的职责是什么,它们如何协作?
一个Activity通常有多少个窗口?
3.一个Activity中的所有视图是否都会附加到Window上?"附加"是什么意思?
每个窗口都有表面吗?每个画布都有表面吗?
View负责焦点/键事件管理,而Canvas仅负责"绘制"操作。
WindowManager负责窗口层叠?这与SurfaceFlinger的关系是什么?
视图不拥有Surface,包含视图的窗口拥有吗?
View使用通过surface.lockCanvas()调用获取的画布进行绘制。
何时会调用onDraw(Canvas)?如何传递画布参数?
Canvas是否具有大小?Window的表面始终是全屏吗?
再次编辑:
在观看了Romain Guy提供的这个精彩演示http://www.youtube.com/watch?v=duefsFTJXzc&feature=feedwll&list=WL之后,一些问题得到了解决,同时增加了一些新问题 :)
- 每个Activity都会有一个ViewRoot并且有一个Window吗?
- 是否需要显式地创建一个窗口?窗口的表面始终是全屏的吗?
- 状态栏是否在另一个窗口中?
- 表面的大小是多少?那总是全屏的吗?