0

我听说在 Android 3.0 中添加了 Skia GPU acc,但似乎自 Android 4.0 以来它被默认禁用,可能是因为转向 HWUI(Canvas 的 openGL 实现)。我怎么能再次启用它只是为了基准测试。

4

1 回答 1

2

我不知道 Skia 的任何其他硬件加速方法。尽管对于 HWUI,开发人员文档在这里对此进行了概述:http: //developer.android.com/guide/topics/graphics/hardware-accel.html

如果您已经知道 HWUI 的实现,请致歉。

您可以使用四个级别的控制:

应用程序级别、活动级别、窗口级别和视图级别。

应用层

在您的清单中,将以下属性添加到您的应用程序:

 <application android:hardwareAccelerated="true" ...>`

活动水平

在您的清单中,将以下属性添加到您的活动中:

<application...>
   <activity android:hardwareAccelerated="true" />
</application>

您还可以混合和匹配应用程序和活动级别以仅在某些活动上启用 HWUI,如下所示:

<application android:hardwareAccelerated="true">
   <activity ... />
   <activity android:hardwareAccelerated="false" />
</application>

窗位

注意:您只能在窗口级别启用 HWUI,不能禁用。

在您的源代码中:

getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

查看级别

注意:您不能从仅禁用视图中启用 HWUI。在您的源代码中:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

您对 HWUI 的看法也是正确的:

Android Honeycomb (3.0) 将 HWUI(硬件加速)添加为所有应用程序的选项,无需任何额外的绘制代码。系统将自动为所有兼容的渲染方法运行预定义的 OpenGL ES 函数,而不是 SKIA。

从 Android Ice Cream Sandwich (4.0) 开始,HWUI 是默认的。因此,所有 4.0+ 设备都必须具有支持 OpenGL ES 2.0 的 GPU。

于 2013-03-09T01:03:40.900 回答