title: How does SurfaceFlinger work?
body: <p>I'm developing a very simple cross platform window class in C++ just so I have a surface to render to. I've gotten it working on Linux and Windows so far. After I get it working on OS-X I want to try to get it working on my android phone.</p>
  
  <p>However, I need to know if all "windows" created with SurfaceFlinger are full screen or if they can take up only a section of the desktop like a window on Linux or Windows? I ask this because I know I can place widgets on my phone's desktop but I've never seen an app do anything like a popup or a frame that hovers over the desktop.</p>
  
  <p>How does creating a "window" that is smaller than the resolution of the phone work? Does it just center the drawable surface and leave black borders? Also can an application have multiple "windows?"</p>