2011-03-01 9 views
14

Para habilitar la aceleración de hardware en una aplicación de Android 3.0+ Puedo hacer esto:Habilitar aceleración de hardware en la aplicación para Android, la orientación de nido de abeja y las versiones anteriores

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

embargo, la aplicación no se va a construir con ese atributo presente si apunte a una versión de sistema operativo anterior a 11. ¿Existe alguna manera de habilitar la aceleración de hardware en una aplicación que se dirige tanto a Honeycomb como a versiones anteriores, o solo está disponible la aceleración de hardware para aquellos que crean aplicaciones que solo funcionan en 3.0+?

He buscado un método de Actividad pero no veo uno.

Respuesta

20

Intente establecer el objetivo de compilación en la versión 3.0, pero establezca minsdkversion en la versión más antigua que desee. Al menos debería permitirle construir, pero no habilitará la aceleración HW en las versiones anteriores.

Desde el documentation:

A partir de Android 3.0, un procesador de OpenGL acelerado por hardware está disponible para las aplicaciones, para mejorar el rendimiento de muchas operaciones de gráficos 2D común. Cuando el renderizador acelerado por hardware está habilitado, la mayoría de las operaciones en Canvas, Paint, Xfermode, ColorFilter, Shader y Camera se aceleran. Esto da como resultado animaciones más suaves, desplazamiento más suave y capacidad de respuesta mejorada en general, incluso para aplicaciones que no hacen uso explícito de las bibliotecas OpenGL del marco.

no hemos probado la API 3.0 embargo a mí mismo, pero la documentación parece decir este debe ser apoyado ...

<manifest ... > 
    <uses-sdk android:minSdkVersion="4" 
      android:targetSdkVersion="11" /> 
    <application ... > 
    ... 
    <application> 
</manifest> 

(corte de Optimizing Apps for Android 3.0

+0

Desafortunadamente no funciona - Tengo minSdkVersion = "5" y targetSdkVersion = "11" pero no se compilará con el atributo de aceleración de hardware en el manifiesto. Espero que haya una manera de hacerlo en tiempo de ejecución, quizás a través de un método que pueda llamar a través de la reflexión, aunque no puedo ver uno. –

+3

Instalación de 3.0 API ahora mismo. ¿Especificaste la versión objetivo en ambos lugares? manifiesto (como acabo de actualizar en mi respuesta), así como la configuración del proyecto de Eclipse (si usa Eclipse)? – Arve

+0

Tenía el manifiesto configurado con minSdkVersion = "5" y targetSdkVersion "11", pero está en lo cierto, por supuesto, de que el proyecto también necesitaba construir contra la plataforma 11 de la biblioteca. Gracias. –

9

Puede dejar el min/targetSdkVersion tal como está en su manifiesto. Tengo el mío en el 3 & 8. Lo que necesita hacer es cambiar el SDK contra el que está compilando. En Eclipse, vaya a Propiedades del proyecto> Android y elija un objetivo de API del proyecto con un nivel API de 11 o superior (por ejemplo, "Android 3.0").

+0

esto funciona. Solo la versión de compilación debe estar por encima de 11 y hacer una limpieza del proyecto para resolver el error – Yogamurthy

Cuestiones relacionadas