这里是Mobile SDK MapOffScreenRenderer的性能问题

时间:2017-01-17 22:15:16

标签: android here-api

我使用Here Mobile Android SDK和MapOffScreenRenderer类,用于将地图视图镜像到Android上的演示文稿屏幕。但是,遗憾的是,MapOffScreenRenderer生成位图的性能还不够。我能做些什么呢?

我可以更改生成的位图的RGB配置以提高性能吗? (例如,以某种方式将其切换到rgb 565。)

或者我可以更改某些设置以提高性能吗?

或许我可以以某种方式获得OpenGL纹理而不将其包装到Bitmap中?

是否有任何api可以决定我想在位图中看到的地图视图的哪些层?

我正在使用official documentation中的代码。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用屏幕外渲染器捕获的位图将始终非常慢。它必须从PBuffer表面支持的渲染线程中读取后台缓冲区。因此,没有任何数量的RGB配置可以加快速度:)

如果您知道如何直接处理OpenGL调用,则向MapOffScreenRenderer注册OnMapRenderListenerSurfaceUpdatedListener并使用MapOffScreenRenderer#start(SurfaceHolder, SurfaceUpdatedListener),您可以完全按照您的用例描述进行构建。 SurfaceHolder允许开发人员提供地图将被渲染到的自定义Android surface。当通过swapbuffers提交OpenGL渲染调用时,SurfaceUpdatedListener提供回调。在SurfaceTextureSurface上查看更多高级Android文档。

您还可以尝试使用Map#setVisibleLayersAPI渲染更少的图层来关闭一些渲染图层。但是,我怀疑这会大大提高性能。

您的下一个回复可能是您想要的样本,但遗憾的是我没有任何公开的内容可以分享。