SurfaceView provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you like, its size; the SurfaceView takes care of placing the surface at the correct location on the screen.
One of the purposes of this class is to provide a surface in which a secondary thread can render into the screen. If you need to perform complex drawing operations many times a second, you may want to offload the drawing off the UIThread and that is the purpose of this view.
Droidcon NYC 2015 talk that explains the above demo step-by-step