title: Android Graphics Internals
body: <p>I haven't found a clear explanation on how the Android graphics system works, specifically, does it use a display server, is it based on DirectFB or X11, etc.</p>
  
  <p>From what I've managed to piece together, Android depends on the <a href="http://source.android.com/porting/display_drivers.html" rel="noreferrer">Linux frame buffer</a>. I haven't found much on what sort of display server or <a href="http://developer.android.com/reference/android/view/WindowManager.html" rel="noreferrer">window manager</a> Android uses to multiplex access to the framebuffer though, so any pointers would be much appreciated!</p>
  
  <p>Finally, from what I understand the ARM instruction set provides instructions to accelerate OpenGL, but how this integrates with the display server isn't clear, ie. do client applications negotiate a shared memory buffer into which the client writes directly?</p>
  
  <p>Are the OpenGL libraries for the platform accelerator open source? I've found some references suggesting they're closed source binaries. Again, any pointers would be appreciated.</p>