bufferqueue 句柄传递
时间: 2023-07-28 16:10:21 浏览: 123
BufferQueue是Android系统中的一个概念,它是SurfaceFlinger和应用程序之间的一个通信桥梁,用于传递图形缓冲区。在Android系统中,BufferQueue通常使用Binder进行句柄传递。
具体来说,当应用程序请求创建Surface时,系统会创建一个Surface对象,并与之关联一个BufferQueue对象。应用程序可以向BufferQueue中插入GraphicBuffer对象,SurfaceFlinger则会从BufferQueue中取出GraphicBuffer对象进行渲染。在这个过程中,BufferQueue会使用Binder进行GraphicBuffer对象的句柄传递。
当应用程序向BufferQueue中插入GraphicBuffer对象时,系统会把这个对象的句柄打包成一个Parcel对象,并通过Binder传递给SurfaceFlinger。SurfaceFlinger收到这个Parcel对象后,会把其中的GraphicBuffer对象句柄解包,并使用该句柄创建一个GraphicBuffer对象,然后进行渲染。
同样地,当SurfaceFlinger渲染完毕后,会把渲染好的GraphicBuffer对象的句柄打包成一个Parcel对象,并通过Binder传递给应用程序。应用程序收到这个Parcel对象后,会把其中的GraphicBuffer对象句柄解包,并使用该句柄获取渲染好的图像。
阅读全文