为了快速地将texels传输到/从EGL表面,我们已经成功地使用了GraphicBuffer缓冲区,如此线程所述: 如何在Android NDK中使用GraphicBuffer 然而,在Android 7.0上,这不是一个选项。因为GraphicBuffer使用私有库libui.so。那么它的替代品是什么?Google批准的在EGL表面上进行快速传输的方法是什么?
在Android 8(API级别26)中,即将推出的Oreo版本中,他们引入了硬件缓冲区包装器。我已经比较了HardwareBuffer和GraphicBuffer类,两者都提供了一个接口来创建和访问共享缓冲区对象,其中新的HardwareBuffer是GraphicBuffer的通用版本。因此,您将不再需要链接到API 26+的非公共库。我所看到的Android 7的唯一替代方法是手动为项目提供所有必需的库。我们将不得不等待Android 8在测试阶段后发布。 发布路线图可以在此处找到,预计在2017年底之前发布。如果您计划在发布日期之前更新项目并想要进行测试,请在Google设备上使用Android O预览版。