如何在ICS上启用硬件加速,但在Gingerbread中禁用?

时间:2012-06-19 21:18:59

标签: android android-4.0-ice-cream-sandwich hardware-acceleration android-2.3-gingerbread

我希望我的应用程序在ICS中加速,但仍然需要支持2.3.3。我是否可以仅为ICS启用硬件加速?或者我只能支持2.3.3支持?

3 个答案:

答案 0 :(得分:4)

直到3.0才添加硬件加速。这不是问题。

参考:http://developer.android.com/guide/topics/graphics/hardware-accel.html

答案 1 :(得分:3)

在ICS(android 4+)上,默认情况下启用GPU加速,可以在清单中禁用。

直到姜饼,包括,(至Android 2.3.x),它已被禁用,因为它根本不可用。

on honeycomb(android 3.x),默认情况下已禁用,但可以在清单中启用。

答案 2 :(得分:3)

这里还有别的东西。

我为其中一个游戏启用了硬件加速,它在ICS上运行良好,但是当我上传到市场时,我收到很多报告说游戏几乎无法播放。

我联系了其中一个用户,我提供了另一个版本,只是关闭了hw加速功能。他声称效果更好,而且他正在使用姜饼。

根据官方文档,启用硬件加速对姜饼没有任何影响。不过我的经验是它有。

此外,官方文档声称,如果您未声明它并且您的目标是ICS,则默认情况下会启用它。然而,当我明确地打开它时,我看到了动画,滑动和滚动的明显改进。

因此,官方文档不正确,并且有理由为某些版本手动禁用/启用硬件加速。

我将在清单中禁用hw加速并使用以下代码。

if (android.os.Build.VERSION.SDK_INT>=11) {
   getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}

如果这能解决我的问题,我会告诉你,我希望如此。

编辑:它工作正常,我不再抱怨用户。