Включите аппаратное ускорение, если оно доступно (например, Android 3+) с Android APK 2.2

Я разработал приложение для Android 3.0, и он работает отлично, но клиент настаивает на совместимости с 2.2 устройствами.

Отключение аппаратного ускорения, использование пакета совместимости с Android, поддержка NIO-backport (для задач и исполнителей) и некоторая переоценка методов просмотра. Я смог перенести приложение на Android 2.2 и работать очень хорошо, но если я запустил этот apk в более новое устройство производительность чрезвычайно медленная, поэтому я хочу знать, как включить аппаратное ускорение, если оно доступно, но все еще использует 2,2 APK.

Ответы

Ответ 1

Добавьте android:hardwareAccelerated="true" в ваш манифест либо для <activity>, либо <application>.

Этот атрибут будет проигнорирован в старых версиях Android, но будет отмечен на Android 3.0 +.

Это потребует, чтобы вы установили цель сборки для уровня API 11 или выше, но вы, вероятно, уже имеете это.

Ответ 2

Если вам нужны вспомогательные устройства со старой версией ОС (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 и старше.

Ответ 3

Вы можете посмотреть здесь, чтобы узнать, как вы можете включить функции на основе версии Android. Вы можете сделать это и с отражением, но это неуклюже.