我知道在ICS之后出现了TextureView。 但是,ICS不会弃用SurfaceView。
SurfaceView具有打孔结构,因此它有很多限制点。 无法堆叠两个SurfaceView,无法翻译等等。
尽管出现了TextureView,为什么不推荐使用SurfaceView?
答案 0 :(得分:5)
SurfaceView速度更快,可以处理受DRM保护的视频。
打孔结构是必要的,因为SurfaceView的Surface由系统合成器直接处理。对于TextureView,您在Surface上绘制,在应用程序中将其转换为GL纹理,应用程序第二次将其渲染到View图层上。所以还有一个额外的副本。
对于受DRM保护的视频,不允许任何用户或系统代码(甚至Linux内核)都看不到未加密的像素。只有视频解码器和显示硬件。因为SurfaceView只是转发引用,并且没有触及实际数据,所以这可行。
有关详细信息,请参阅graphics architecture doc。