Versión compilada vs. Versión mínima requerida Android

En mi vista personalizada estoy usando el método drawTextOnPath(...) que no es compatible con aceleración de hardware hasta 4.1.

Así que quería añadir una instrucción if que comprueba la versión actual de Android en tiempo de ejecución y activa la aceleración de hardware si esta versión es mayor o igual a 4.1. Mi problema es que compilar mi proyecto con Android 4.0 SDK (que es mi versión mínima), así que no tengo el Build.VERSION_CODES para Android 4.1.

¿Debería compilar mi proyecto con 4.1, aunque mi versión mínima es 4.0?

Lo escribí una vez: Sistema de orientación de Android

Piezas importantes:

Cuando compila una aplicación Java con un compilador Java 7, no puede utilizarlo con un intérprete de Java 6. El intérprete le dirá que no puede interpretar el código de byte producido, incluso si no está usando ninguna característica de lenguaje Java 7. Si desea compilar con el compilador más reciente, pero hacer que su código de bytes pueda ejecutarse en instancias más antiguas de JVM, deberá indicarle al compilador que lo haga (utilizando el indicador -target-flag).

En Android, puedes declarar qué versiones de plataforma soporta en tu archivo de manifiesto, usando el elemento <uses-sdk> y su android:minSdkVersion y android:targetSdkVersion -attributes. La diferencia entre esas "mecánicas de orientación" es que Android no se preocupa de qué versión de la plataforma se compiló la aplicación.

Si declara que su aplicación es compatible con el Nivel 4 de API, Android lo instalará felizmente, incluso si lo ha compilado en Android 4.1 (Nivel API 16).

Así que en pocas palabras:

  • Si desea que su aplicación funcione con la nueva plataforma Android, construya en contra.
  • Use minSdkVersion para declarar el nivel de API más bajo que es compatible con su aplicación.
  • Como targetSdkVersion, use el Nivel de API con el que ha compilado la aplicación.
  • Utilice [Android] Lint para comprobar si hay (posiblemente) llamadas de API no compatibles.
  • Utilice la ejecución condicional y la anotación @ TargetApi para utilizar API más nuevas cuando estén disponibles.

Cuando esté construyendo su aplicación con el SDK más reciente, tendrá todas las Build.VERSION_CODES disponibles.

Sí, tienes que compilar contra 4.1 si usas las características de 4.1, aunque lo hagas condicionalmente, de lo contrario el compilador no podrá construir tu aplicación porque considerará todas las características 4.1 como inválidas (no existentes).

  • Android - ¿Puede desarrollarse una aplicación desarrollada en Android 1.6 en Android 2.0?
  • ¿Desde qué versión de Android es "drawable-nodpi" compatible?
  • ¿Qué es la versión de Android Bundle y el código de versión y cómo se relacionan?
  • No se puede instanciar actividad ComponentInfo
  • Especificación del código / nombre de la versión de la biblioteca de Android
  • Error de visualización del cuadro de diálogo de alerta personalizada de Android después de cambiar la versión de compilación
  • Comprobación de la versión de Android
  • ¿Es posible mostrar el widget sólo para una versión android determinada?
  • La aplicación de Android no se inicia en una versión inferior a targetSDKVersion
  • ¿Cómo puedo saber qué versión de Android Support Library v4 utilizo?
  • Versiones pagadas y gratuitas de la aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.