Is there a detailed explanation of Surface, SurfaceHolder, EGLSurface, SurfaceView, GLSurfaceView, SurfaceTexture, and TextureView? In particular:
- What’s the difference between SurfaceView and TextureView?
- Do I need to use GLSurfaceView to use OpenGL ES?
- How do Surface and EGLSurface interact?
- What does SurfaceTexture do?
- Why does the stuff I draw on a SurfaceView have to go above or below everything else?
- What is SurfaceFlinger?
- How does composition of the status and navigation bars work?
- While we’re at it, what’s the right way to structure a game loop on Android?