Как включить skia с бэкэндом GPU на JB
Я слышал, что Skia GPU был добавлен в Android 3.0, но, похоже, он отключен по умолчанию, поскольку Android 4.0, вероятно, из-за перехода на HWUI (реализация OpenGL в Canvas). Как я мог включить это снова только для цели теста.
1 ответ
Я не знаю ни о каком другом методе аппаратного ускорения Skia. Хотя для HWUI документация для разработчиков описывает это здесь: http://developer.android.com/guide/topics/graphics/hardware-accel.html
Извинения, если вы уже знаете о реализации HWUI.
Вам доступно четыре уровня контроля:
Уровень приложения, Уровень активности, Уровень окна и Уровень просмотра.
Уровень применения
В своем манифесте добавьте следующий атрибут в ваше приложение:
<application android:hardwareAccelerated="true" ...>`
Уровень активности
В своем манифесте добавьте следующий атрибут к вашей активности:
<application...>
<activity android:hardwareAccelerated="true" />
</application>
Вы также можете смешивать и сопоставлять приложение и уровень активности, чтобы включить HWUI только для некоторых действий, например:
<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>
Уровень окна
Примечание. Вы можете включить HWUI только на уровне окна, но не отключить.
В вашем источнике:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
Посмотреть уровень
Примечание: Вы не можете включить HWUI только для просмотра. В вашем источнике:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Также вы правы насчет HWUI:
В Android Honeycomb (3.0) добавлен HWUI (аппаратное ускорение) в качестве опции для всех приложений без дополнительного кода отрисовки. Система автоматически запустит предопределенные функции OpenGL ES для всех совместимых методов рендеринга вместо SKIA.
В Android Ice Cream Sandwich (4.0) HWUI используется по умолчанию. В связи с этим все устройства 4.0+ должны иметь графический процессор с поддержкой OpenGL ES 2.0.