关于android:如何理解你的应用程序是否使用硬件加速

How to understand uses your application hardware acceleration or not

我想为应用程序启用硬件加速。

我在 Android 清单行中添加了

1
2
 <application
        android:hardwareAccelerated="true"/>

我认为这条线应该在应用程序中的所有视图上启用硬件加速,但是当我检查时(使用方法 view.getLayerType()),我得到的结果为 0。
我的结论是你没有使用硬件加速

我不明白它是如何工作的硬件加速。

为什么如果我在应用层开启硬件加速,应用中所有视图调用view.getLayerType()方法都返回0?
我希望它应该返回 2,因为我将硬件加速提高到了一个更高的水平。

不是这样吗?

对于每个视图,事实证明您需要在 xml 中设置属性 android:layerType ?


您提到的标签确实打开了硬件加速,但您只需要 API 13 或更低版本,因为这是默认情况下在 API 版本 14 及更高版本上。

要检查您的视图(或 Canvas,对于您正在绘制的自定义视图)是否使用硬件加速,您可以调用

1
2
View.isHardwareAccelerated()
Canvas.isHardwareAccelerated()

getLayerType() 返回视图的层类型,默认为 NONE:

By default a view does not have a layer, and the layer type is
LAYER_TYPE_NONE.

另外,请记住,您应该在视图附加到窗口后调用 isHardwareAccelearted(),以获得正确的响应。在此之前,答案可能不正确。

干杯