【发布时间】:2014-11-26 13:21:36
【问题描述】:
阅读http://developer.android.com/guide/topics/graphics/hardware-accel.html后,我对3种不同类型的分层技术的理解是(假设设备有GPU)
- LAYER_TYPE_SOFTWARE - 绘图由软件在软件的屏幕外位图内存上执行。软件的离屏位图随后将传输到 GPU。 GPU 渲染屏幕上的位图。
- LAYER_TYPE_NONE - GPU 将在屏幕上直接绘图。
- LAYER_TYPE_HARDWARE - 绘图由 GPU 在 GPU 的屏幕外位图内存上执行。 GPU 的离屏位图随后将由 GPU渲染到屏幕。
何时使用 LAYER_TYPE_SOFTWARE
我理解某些 draw 操作不受 GPU 支持,例如 setShadowLayer。因此,我们需要切换到LAYER_TYPE_SOFTWARE,以便draw由软件执行。
但是,由于有软件的屏幕外位图内存转移到 GPU 操作,事情可能会显得更慢。
何时使用 LAYER_TYPE_NONE
我认为这是大多数设备的默认设置。所以,我认为我们应该在大部分时间使用这种技术。
何时使用 LAYER_TYPE_HARDWARE
我不知道什么时候使用这种技术。非常感谢任何示例,我们应该何时应用LAYER_TYPE_HARDWARE 技术。
p/s 另外,我对 LAYER_TYPE_... 的理解可能看起来是错误的。如果您发现任何错误,请纠正我。谢谢。
【问题讨论】:
-
LAYER_TYPE_HARDWARE:如果应用程序是硬件加速的,则视图在硬件中呈现为硬件纹理。如果应用程序没有硬件加速,则此层类型的行为与 LAYER_TYPE_SOFTWARE 相同。