Intereting Posts
Как обернуть DrawerLayout вокруг PreferenceActivity в приложении для Android? Фрагменты и темы в Android Ошибка: – Выполнение неудачно для задачи ': app: dexDebug' в андроид-студии Как узнать, находится ли значок действия приложения Android на верхней панели или нижней панели (разделение)? Как получить доступ к локальному хосту от эмулятора Android от Genymotion? Можно ли предотвратить разрыв слов в textview при использовании wrap_content в android Как программно переопределить «Google Voice Search» над «Samsung на базе Vlingo»? Android: Как загрузить файл .mp3 на http-сервер? AndroidManifest в директории androidTest игнорируется Что лучше? NotifyDataSetChanged или notifyItemChanged в цикле? Как определить изменения файлов или папок в Android? Где найти бесплатные открытые пользовательские элементы управления Android? GetExternalStorageDirectory не работает Создает ли startService () новый экземпляр службы или использует существующий? Как получить полный адрес из широты и долготы?

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