我最近问了一个相关的问题,但是我忘了明确地问这个问题。
(我想在使用OpenGL ES 2.0的Android应用程序中实现双缓冲区方案,而Android的默认方案似乎有点太不可预测)
绕过SurfaceFlinger的唯一方法是root你的设备并关闭整个应用程序框架。然后,您必须与硬件编写器HAL进行交互——简单地使用framebuffer开发程序并不能在所有设备上工作。
SurfaceFlinger的行为是非常可预测的,只要没有其他事情发生。当然,总有别的事情在发生,但不管你是否通过SurfaceFlinger进行合成,都是如此。
正如在另一个问题(可能是你的)中提到的,Android上的GLES至少是双缓冲的(eglSwapBuffers()
),所以你不需要实现任何东西来获得这种行为。