Comprobación de la versión de Android e introducción de constantes estáticas finales
Era mi entendimiento que y constantes static final
se inline en tiempo de compilación cuando se utiliza Java.
Observando el uso del componente Version-Aware – Agregue la lógica de la conmutación y el uso de Build.VERSION.SDK_INT
y de Build.VERSION_CODES
me confunde, como si ambos estos valores de las constantes sean inlined en la compilación este acercamiento sería inútil. ¿Que me estoy perdiendo aqui?
- ¿Cómo escribir un mapa en un paquete?
- Qué valores de color se pueden utilizar para GradientDrawable
- Sincronizar la hora del sistema en 2 teléfonos
- Tipos incompatibles, requeridos java.lang.Integer , encontrado Int ?
- Compartir Bitmap () en android para twitter, facebook, correo
Gracias 🙂
EDIT: ¿el hecho de que están en un método estático en una clase abstracta cambiar este tiempo de compilación inlining?
- Android - Cambiar el tema de la aplicación en onClick
- ¿Por qué FileOutputStream lanzar FileNotFoundException?
- La notificación de Android no muestra su contenido cuando la aplicación no se está ejecutando
- Android Share Intent formato de archivo no compatible
- Autenticación en tu aplicación para Android
- ¿Por qué Android Wear DataMap no tiene un método putIntArray?
- El protocolo Parcelable requiere un objeto Parcelable.Creator llamado CREATOR (tengo CREATOR)
- ¿Cómo usar una clase de contrato en android?
Lo que está en línea es las constantes que se pueden determinar en tiempo de compilación, como:
private final int CONST = 1;
Si comprueba el código fuente (es una versión antigua, pero supongo que no ha cambiado mucho), las constantes se ven así:
public static final String SDK = getString("ro.build.version.sdk");
Y este es el método getString
:
private static String getString(String property) { return SystemProperties.get(property, UNKNOWN); }
Por lo tanto, la constante no se puede determinar en tiempo de compilación.