Я хочу, чтобы мое приложение было ускорено в ICS, но поддержка 2.3.3 по-прежнему необходима. Могу ли я включить ускорение HW только для ICS? Или я могу отказаться только от поддержки 2.3.3?Как включить аппаратное ускорение на ICS, но отключить в Gingerbread?
ответ
Аппаратное ускорение не было добавлено до 3,0. Это не проблема.
исх: http://developer.android.com/guide/topics/graphics/hardware-accel.html
на ICS (Android 4 +), ускорение GPU включен по умолчанию и может быть отключена в манифесте.
до пряников, в том числе (до android 2.3.x), он отключен, так как он недоступен.
на сотах (android 3.x), он по умолчанию отключен, но может быть включен в манифесте.
Здесь есть что-то еще.
Я включил аппаратное ускорение для одной из моих игр, и она отлично работала для ICS, но когда я вышла на рынок, у меня появилось много сообщений о том, что игра стала едва доступной.
Я связался с одним из этих пользователей, и я предоставил ему еще одну версию с выключенным ускорением hw. Он утверждал, что он работает лучше, и он использовал пряники.
Согласно официальной документации, ускорение аппаратного ускорения не оказывает никакого влияния на пряники. Однако мой опыт в том, что он есть.
Также официальная документация утверждает, что если вы не объявляете ее, а ваша цель - ICS, она включена по умолчанию. Однако, когда я явно включил его, я увидел явное улучшение анимации, прокрутки и прокрутки.
Таким образом, официальная документация неверна и есть причина вручную отключить/включить аппаратное ускорение для некоторых версий.
Я буду отключать ускорение hw в манифесте и использовать следующий код.
if (android.os.Build.VERSION.SDK_INT>=11) {
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
Я дам вам знать, если это решает мои проблемы, я надеюсь на это.
Редактировать: Все прошло отлично, и я перестала жаловаться на пользователей.
Я знаю, что в 2.3.3 не было HWA, вопрос заключается в том, как включить его в ICS. – arts777
Использование android: hardwareAccelerated = "true" в вашем приложении, как описано. – HandlerExploit
Включение вышеупомянутого атрибута вызовет проблему для Android <3.0? т. е. любое исключение будет выбрано для непризнанного атрибута? – Kerry