GLES20Canvas.nDrawDisplayList很慢

Fra*_*aro 6 graphics android render

我有一个我试图显示的自定义视图,但是我看到它上面有一堆抖动.一切都滚动缓慢,并没有它应有的响应.

我用了traceview看到了

GLES20Canvas.nDrawDisplayList

似乎有责任花费大量时间来执行.

有什么帮助吗?

Fra*_*aro 4

如果您绘制很多,尤其是非常大的视图,则 GLES20Canvas.nDrawDisplayList 预计会占用很大一部分时间。如果您在跟踪视图中看到这一点,那么答案是“少画”

在我的具体问题中,我在大视图上绘制了一个大的 alpha 图层。我建议阅读Romain Guy 撰写的《Android 3.0 硬件加速》中的注意事项

  • 我已在不同设备上针对相同的活动、片段和视图运行此分析。我只在 HTC 一台设备上的 nDrawDisplayList 上看到很大的延迟(http://stackoverflow.com/a/21791909/546901)。其他线程中的人员报告此跟踪视图结果是特定于设备的(https://code.google.com/p/android/issues/detail?id=22514)。其他设备具有健康的跟踪查看结果。看起来这可能是设备或操作系统级别的问题。大多数人似乎是在 ScrollView 或 ListView 上观察的。 (5认同)