17

我为Android 3.0开发了一个应用程序,它运行得很好,但是客户端坚持要兼容2.2设备。

禁用硬件加速,使用 Android Compatibility Package,NIO-backport 支持(用于任务和执行程序)和 View 方法的一些重新实现我能够将我的应用程序移植到 Android 2.2 并且效果非常好,但是如果我将这个 apk 运行到更新的设备性能非常缓慢,所以我想知道如何打开硬件加速(如果可用)但仍使用我的 2.2 APK。

4

3 回答 3

30

添加android:hardwareAccelerated="true"到您的清单中,对于<activity><application>.

此属性在较早版本的 Android 上将被忽略,但在 Android 3.0+ 上将受到尊重。

这将要求您将构建目标设置为 API 级别 11 或更高,但您可能已经拥有该级别。

于 2012-04-26T18:38:30.307 回答
3

如果您需要旧操作系统(2.3.X 和更早版本)的支持设计,而不是添加android:hardwareAccelerated="true"到您的清单中,请尝试在您的 java 中添加此代码:

try { if( Build.VERSION.SDK_INT >= 11) getWindow().setFlags( 16777216, 16777216); } catch( Exception e) {} // FLAG_HARDWARE_ACCELERATED == 16777216 (0x01000000)

这在 OS 3.0++ 中有效,在 2.3.X 和更早版本上不调用错误。

于 2013-10-14T08:23:25.030 回答
2

您可以在此处查看如何启用基于 Android 版本的功能。你也可以通过反射来做到这一点,但它很笨重。

于 2012-04-26T18:32:18.890 回答