我为Android 3.0开发了一个应用程序,它运行得很好,但是客户端坚持要兼容2.2设备。
禁用硬件加速,使用 Android Compatibility Package,NIO-backport 支持(用于任务和执行程序)和 View 方法的一些重新实现我能够将我的应用程序移植到 Android 2.2 并且效果非常好,但是如果我将这个 apk 运行到更新的设备性能非常缓慢,所以我想知道如何打开硬件加速(如果可用)但仍使用我的 2.2 APK。
我为Android 3.0开发了一个应用程序,它运行得很好,但是客户端坚持要兼容2.2设备。
禁用硬件加速,使用 Android Compatibility Package,NIO-backport 支持(用于任务和执行程序)和 View 方法的一些重新实现我能够将我的应用程序移植到 Android 2.2 并且效果非常好,但是如果我将这个 apk 运行到更新的设备性能非常缓慢,所以我想知道如何打开硬件加速(如果可用)但仍使用我的 2.2 APK。
添加android:hardwareAccelerated="true"
到您的清单中,对于<activity>
或<application>
.
此属性在较早版本的 Android 上将被忽略,但在 Android 3.0+ 上将受到尊重。
这将要求您将构建目标设置为 API 级别 11 或更高,但您可能已经拥有该级别。
如果您需要旧操作系统(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 和更早版本上不调用错误。
您可以在此处查看如何启用基于 Android 版本的功能。你也可以通过反射来做到这一点,但它很笨重。