【发布时间】:2012-09-05 17:35:23
【问题描述】:
我希望我的应用程序在 ICS 中得到硬件加速,但仍然需要对 2.3.3 的支持。我可以只为 ICS 启用硬件加速吗?或者我只能放弃 2.3.3 支持?
【问题讨论】:
标签: android android-4.0-ice-cream-sandwich hardware-acceleration android-2.3-gingerbread
我希望我的应用程序在 ICS 中得到硬件加速,但仍然需要对 2.3.3 的支持。我可以只为 ICS 启用硬件加速吗?或者我只能放弃 2.3.3 支持?
【问题讨论】:
标签: android android-4.0-ice-cream-sandwich hardware-acceleration android-2.3-gingerbread
直到 3.0 才添加硬件加速。这不是问题。
参考:http://developer.android.com/guide/topics/graphics/hardware-accel.html
【讨论】:
在 ICS (android 4+) 上,GPU 加速默认启用,可以在 manifest 中禁用。
直到姜饼,包括,(直到 android 2.3.x),它被禁用,因为它根本不可用。
在honeycomb (android 3.x) 上,默认禁用,但可以在清单中启用。
【讨论】:
这里还有别的东西。
我为我的一款游戏启用了硬件加速,它在 ICS 上运行良好,但当我上传到市场时,我收到很多报告说游戏几乎不能玩了。
我联系了其中一位用户,并为他提供了另一个版本,只是关闭了硬件加速。他声称效果更好,而且他正在使用姜饼。
根据官方文档,启用硬件加速对姜饼没有任何影响。但是我的经验是它有。
此外,官方文档声称如果您不声明它并且您的目标是 ICS,则默认启用它。但是,当我明确打开它时,我看到动画、滑动和滚动都有明显的改进。
所以,官方文档是不正确的,有理由手动禁用/启用某些版本的硬件加速。
我将在清单中禁用硬件加速并使用以下代码。
if (android.os.Build.VERSION.SDK_INT>=11) {
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
如果这能解决我的问题,我会告诉你的,希望如此。
编辑:它运行良好,我不再收到用户的抱怨。
【讨论】: