Принудительное аппаратное ускорение рендеринга Honeycomb 2D во всех приложениях на корневом устройстве?

Надеюсь на ответ невероятно мудрого Ромена Гая (но хотелось бы получить ответ от любого, у кого есть идеи!).

Ранее он написал следующее в ответ на вопрос пользователя почему аппаратное ускорение не было включено по умолчанию:

Он не включен по умолчанию из соображений совместимости. Не 100% Canvas API поддерживается при включении (хотя недостающих частей очень мало и редко используются), и в новой реализации могут быть ошибки. Есть также новые ограничения (например, если вы попытаетесь нарисовать растровое изображение больше, чем максимальный размер текстуры OpenGL, это не удастся).

Новый конвейер рендеринга также использует собственные списки отображения для каждого представления, что вызывает ошибки в некоторых приложениях. Например, если представление полагается на своего родителя в invalidate() для перерисовки себя, это ошибка в приложении, но оно «работает» без аппаратного ускорения. Однако он не будет работать с включенным аппаратным ускорением.

Наша цель — как можно скорее включить аппаратное ускорение по умолчанию, но мы не хотим ломать приложения. Тем не менее, приложения, использующие стандартные представления и API, должны работать нормально.

Мне было интересно, есть ли способ принудительно включить аппаратное ускорение Honeycomb по умолчанию на корневом устройстве Honeycomb. Несмотря на потенциальные проблемы, я все еще заинтересован в том, чтобы дать ему шанс. Я бегло просмотрел build.prop и ничего не нашел. Кто-нибудь хочет указать мне правильное направление, пожалуйста?

Заранее спасибо!


person Will Verduzco    schedule 21.04.2011    source источник


Ответы (1)


Вы могли бы сделать это, но нет системного свойства. Вам нужно будет изменить исходный код или скомпилированный код. Проверка флага hwAccelerated выполняется в нескольких местах (в ActivityManager, а затем в ViewRoot).

person Romain Guy    schedule 01.08.2011