最近,我开始使用dumpsys SurfaceFlinger
来收集有关Android图形的一些信息。我目前在一个名为Odroid-XU3的开发板上工作。显示器是戴尔显示器,通过HDMI电缆连接到主板。
在上述命令输出的最后几行中,我有两个显示器,而我只期望有一个。其中一个是Display[0]
,另一个是Display[1]
。每个显示器的type
列可以是 HWC
或 GLES
。有时它们都是HWC或GLES,有时一个是HWC,另一个是GLES。
0] 和 Display[1] 有什么区别?我试图找到一个文档来了解如何解释上述命令的输出,但我没有找到任何有用的东西。
在您的问题中使用 dumpsys 输出会有所帮助,但我可以做一些一般性观察。
display[0]
是设备的内置显示屏。 display[1]
是"外部"显示器,在您的情况下是HDMI。 这两个索引是硬连线的。 (嗯,他们是奇巧;我不知道他们是否已经解开了硬连线的东西。 虚拟显示从索引 2 开始。
显示屏下方的文本块是硬件编辑器转储。 它在屏幕上显示图层,以及有关每个图层的位置、旋转和格式的大量信息。
最接近文档的内容可以在图形体系结构文档的 HWC 部分找到。 鉴于您正在使用的系统级别,我建议您阅读整个文档。 除此之外,您可以尝试从源代码中辨别含义。
arch 文档确实解释了输出中"HWC"和"GLES"之间的区别:"HWC"表示表面位于显示器叠加层上,而"GLES"表示表面由 GPU 组成。