Intereting Posts
Как связывать пакеты зависимостей с библиотекой Android, например .aar? Использование Philips Hue с переадресацией портов Есть ли открытые или бесплатные тематические библиотеки для Android? Android / Eclipse / Преждевременный конец файла xml Как я могу наложить CordovaWebView PhoneGap поверх собственного вида на Android? Почему я не могу создать несколько идентификаторов клиента OAuth 2.0 для одного и того же имени пакета? Влияние «instanceof» в коде Android Java Android получает заряд в миллиамперах через sysfs Вложенные макеты Android Словарь по умолчанию отсутствует в AutoCompleteTextView / MultiAutoCompleteTextView Как добавить эффект скручивания в представлении пейджер Вставка значения null в качестве значения Integer в базу данных Как получить URI моей базы данных SQLite в приложении для Android? Элементы списка элементов списка изменяют позицию при прокрутке андроида? Закрепить правильную интерпретацию процента преобразования CSS3 на Android

Android Force GPU Rendering Как включить или отключить?

Я создаю приложение, которое требует много рисования на холсте. Я заметил, что приложение немного отстает в устройствах с высоким разрешением (например, nxus 7). Я видел, что в опции разработчика есть опция Force GPU. Когда включен Force GPU, мое приложение работает абсолютно плавно.

Я прочитал, что этот параметр Force GPU называется Hardware Acceleration и доступен только для Android 3.0 и выше.

Мое приложение предназначено для Android 2.3 и выше.

Возможно ли программно включить аппаратное ускорение (или Force GPU – независимо от того, что называется волшебством) на любых устройствах Android 3.0 или выше?

Что-то вроде:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ Turn On Hardware Accelerate HERE but How can i do this? any code snippet would be welcome/helpful/thanks } 

Solutions Collecting From Web of "Android Force GPU Rendering Как включить или отключить?"

Я предполагаю, что вы уже добавили android: hardwareAccelerated в ваш файл манифеста?

 <application android:hardwareAccelerated="true" ...> 

Это то, что позволяет аппаратное ускорение в вашем приложении в руководстве по аппаратным ускорениям и должно делать именно то, что заставляет GPU делать на системном уровне.

Установите minSdkVersion на 10 и targetSdkVersion на максимальную

Как ниже

  <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" /> 

тогда

 <application android:hardwareAccelerated="true" ...> 

Теперь будет работать

И для особенностей

 if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){ view.setLayerType(View.LAYER_TYPE_HARDWARE, null); } 

или

 if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){ view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); } 

Если вы хотите создать свое приложение с использованием более низкого уровня api, вы можете получить доступ к этому методу посредством отражения:

  try { Method setLayerType = view.getClass().getMethod( "setLayerType", new Class[] { int.class, Paint.class }); if (setLayerType != null) setLayerType.invoke(view, new Object[] { LAYER_TYPE_X, null }); } catch (NoSuchMethodException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } 

Где LAYER_TYPE_X – постоянное целочисленное значение типа требуемого типа:

 LAYER_TYPE_NONE = 0 LAYER_TYPE_SOFTWARE = 1 LAYER_TYPE_HARDWARE = 2