Воссоздание представления Android в OpenGL

#android #view #opengl-es

#Android #Вид #opengl-es

Вопрос:

Представления Android, как правило, довольно медленные. Мне было интересно, можно ли было бы воссоздать их в OpenGL-ES, чтобы использовать для этого аппаратное ускорение. Если бы это было возможно, я бы предположил, что это уже было сделано. Полезно ли это или возможно?

Ответ №1:

Вы можете реализовать GLSurfaceView и рисовать все, что вам нравится. Но я бы не рекомендовал воссоздавать существующее представление. Я не знаю, какие представления вы имеете в виду, но на моем устройстве они вообще не отстают…

Обновление: мое утверждение о том, что представления уже имеют аппаратное ускорение, было опровергнуто (см. Комментарий). Итак, я провел исследование и нашел эту статью (которая подчеркивает противоречие). Итак, аппаратное ускорение доступно в Android 3.0 . Тем не менее, я бы не рекомендовал переопределять виджеты по умолчанию. Вы все еще можете многое сделать неправильно и, таким образом, негативно повлиять на производительность.

Комментарии:

1. На самом деле, они не ускоряются HW. … Если вы не используете версию 3.0 и в представлении не включено аппаратное ускорение.

2. Я думал, что canvas делегирует свои операции GL и, следовательно, аппаратному обеспечению? Я ошибаюсь?

3. Возможно, в некоторых пользовательских реализациях Android, таких как TouchWiz, но я почти уверен, что в AOSP его нет из-за проблем с совместимостью со старым оборудованием (например, G1), я могу исследовать его дальше, если кому-то интересно.

4. Я обновил свой пост, нашел статью, которая подтверждает ваше утверждение.