【问题标题】:How to enable Hardware Acceleration on ICS, but disable in Gingerbread?如何在 ICS 上启用硬件加速,但在 Gingerbread 中禁用?
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

    • 我知道2.3.3没有HWA,问题是如何在ICS中启用。
    • 在您的应用程序元素中使用 android:hardwareAccelerated="true",如文档所述。
    • 是否包含上述属性会导致 Android
    • 不。我们在所有应用程序中都使用它。
    【解决方案2】:

    在 ICS (android 4+) 上,GPU 加速默认启用,可以在 manifest 中禁用。

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

    在honeycomb (android 3.x) 上,默认禁用,但可以在清单中启用。

    【讨论】:

      【解决方案3】:

      这里还有别的东西。

      我为我的一款游戏启用了硬件加速,它在 ICS 上运行良好,但当我上传到市场时,我收到很多报告说游戏几乎不能玩了。

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

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

      此外,官方文档声称如果您不声明它并且您的目标是 ICS,则默认启用它。但是,当我明确打开它时,我看到动画、滑动和滚动都有明显的改进。

      所以,官方文档是不正确的,有理由手动禁用/启用某些版本的硬件加速。

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

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

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

      编辑:它运行良好,我不再收到用户的抱怨。

      【讨论】:

      • 是的,它将为 Honeycomb up 启用它。您必须在清单上全局禁用它,这会在运行时覆盖它。
      猜你喜欢
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      相关资源
      最近更新 更多