La aceleración de hardware no está habilitada

Probablemente algo tonto, pero estoy tratando de habilitar la aceleración de hardware en una aplicación de orientación 3.1, por este tutorial .

He añadido lo siguiente a mi manifiesto:

<uses-sdk android:targetSdkVersion="12" android:minSdkVersion="12" /> <application ... android:hardwareAccelerated="true"> 

Cuando compruebo el estado de la aceleración de hardware después de que la vista se adjunta (llamando isHardwareAccelerated() en un overriden onAttachedToWindow() ) me devuelven true, por lo que todo se ve muy bien. El problema es que el lienzo de SurfaceView NO está siendo acelerado, como canvas.isHardwareAccelerated() devuelve false. Estoy comprobando en surfaceCreated() , y me pongo cierto allí también, así que no hay idea de whay la lona está perdiendo este ajuste.

¿Algún puntero?

EDIT1:

Encontré esto y esto en el grupo de desarrolladores de Google, pero de hecho estoy comprobando después de la vista se adjunta si estoy comprobando esto en onAttachedToWindow() , ¿verdad? Esto está en una tableta de Lenovo que funciona 3.1 BTW.

EDIT2:

He intentado inhabilitar la aceleración vía el ajuste

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

Y todavía estoy viendo verdadero devuelto de la vista en onAttachedToWindow() , así que algo no está aquí. No estoy explícitamente chanbing aceleración hw de código, tal vez un problema específico del dispositivo?

También, veo la línea siguiente esporádicamente en LogCat cuando se crea el SurfaceView:

 surface (identity=524) is invalid, err=-19 (No such device) 

EDIT3:

Sólo pensando en voz alta aquí, pero ¿hay alguna posibilidad de que el lienzo no se está acelerando debido al hecho de que está en su propio hilo, a través de la aplicación SurfaceView típica que utiliza un bucle de dibujo, como Lunar Lander?

Este es el comportamiento esperado. SurfaceView no está acelerado por hardware. ( Enlace )

Desde Android 4.0 hay un nuevo TextureView (aquí hay un ejemplo ).
Véase también esta pregunta de SO para disponibilidad pre-4.0.

Actualización: Acaba de probar en un Transformer con Android 4.0 y el Canvas TextureView no es HW acelerado tampoco. : – /

Actualización de Android 6.0: hay un nuevo método para la aceleración de hardware: https://developer.android.com/reference/android/view/Surface.html#lockHardwareCanvas ()

  • Deshabilitar permisos de dependencia
  • ¿Hay una manera de mantener los meta-datos en el manifiesto de Android privados al paquete?
  • Android WebView Scrollable
  • ¿Cómo averiguar qué requisitos de hardware tiene mi aplicación de Android?
  • Android: comprobando si la actividad se declara en Manifest en tiempo de ejecución
  • Escribir almacenamiento externo no funciona hasta que reinicie la aplicación en Android M
  • ¿Cómo decirle a Gradle que use un diferente AndroidManifest desde la línea de comandos?
  • R.styleable no se puede resolver, ¿por qué?
  • ¿Cómo evitar la pantalla en negro mientras se invoca otra actividad en android?
  • Configuración de "Aplicaciones protegidas" en los teléfonos Huawei y cómo manejarlo
  • Advertencias Su apk está utilizando permisos que requieren una política de privacidad: (android.permission.READ_PHONE_STATE)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.