¿Cuáles son las diferencias entre "min sdk version / target sdk version" y "compile sdk version"? Sé lo que significa min y target sdk, pero ¿qué significa compilar la versión sdk?
En Eclipse, tengo min / max y target sdk, pero en android studio existen estas tres configuraciones.
android
android-studio
Tobias
fuente
fuente
Respuestas:
La versión min sdk es la primera versión del SDK de Android en la que se puede ejecutar su aplicación. Por lo general, esto se debe a un problema con las API anteriores, la falta de funcionalidad o algún otro problema de comportamiento.
La versión sdk de destino es la versión en la que se apuntó su aplicación para ejecutarse. Idealmente, esto se debe a algún tipo de condiciones de ejecución óptimas. Si tuviera que "hacer su aplicación para la versión 19", aquí es donde se especificaría. Puede ejecutarse en versiones anteriores o posteriores, pero esto es a lo que apuntaba. Esto es principalmente para indicar qué tan actualizada es su aplicación para su uso en el mercado, etc.
La versión de compilación sdk es la versión de Android que usa su IDE (u otro medio de compilación, supongo) para crear su aplicación cuando publica un
.apk
archivo. Esto es útil para probar su aplicación, ya que es una necesidad común compilar su aplicación a medida que la desarrolla. Como esta será la versión para compilar en un APK, naturalmente será la versión de su lanzamiento. Del mismo modo, es aconsejable que coincida con su versión de SDK de destino.fuente
La formula es
minSdkVersion : es un marcador que define una versión mínima de Android en la que la aplicación podrá instalarse. Lint también lo utiliza para evitar llamar a una API que no existe. También tiene impacto en Build Time. Por lo tanto, puede usar los sabores de compilación para anular minSdkVersion al máximo durante el desarrollo. Ayudará a acelerar la compilación utilizando todas las mejoras que el equipo de Android nos brinda. Por ejemplo, algunas características de Java 8 están disponibles solo desde una versión específica de minSdkVersion.
targetSdkVersion : dice que el sistema Android activa cambios de comportamiento específicos.
Por ejemplo:
A partir de Android 6.0 (API nivel 23)
Runtime Permissions
se introdujeron. Si establecetargetSdkVersion
22 o menos, su aplicación no le pide permiso a un usuario en tiempo de ejecución.A partir de Android 8.0 (API nivel 26), todos
notifications
deben asignarse a un canal o no aparecerá. En los dispositivos que ejecutan Android 7.1 (API nivel 25) y versiones inferiores, los usuarios pueden administrar las notificaciones solo por aplicación (de hecho, cada aplicación solo tiene un canal en Android 7.1 y versiones inferiores).A partir de Android 9 (API nivel 28)
Web-based data directories separated by process
,. SitargetSdkVersion
tiene más de 28 años y crea variosWebView
en diferentes procesos, obtendrájava.lang.RuntimeException
compileSdkVersion : en realidad es la versión de la plataforma SDK y le dice a Gradle qué SDK de Android utiliza para compilar. Cuando desee utilizar nuevas funciones o depurar
.java
archivos del SDK de Android, debe encargarse de compileSdkVersion. Un ejemplo más es el uso de AndroidX que obliga a usarcompileSdkVersion
: el nivel 28.compileSdkVersion
no está incluido en su APK : se usa exclusivamente encompile time
. Cambiar su compileSdkVersion no cambia el comportamiento del tiempo de ejecución. Puede generar, por ejemplo, nuevas advertencias / errores del compilador. Por lo tanto, se recomienda encarecidamente que siempre compile con el último SDK. Obtendrá todos los beneficios de las nuevas comprobaciones de compilación en el código existente, evitará las API recientemente obsoletas y estará listo para usar nuevas API. Un hecho más escompileSdkVersion >= Support Library version
Puedes leer más sobre esto aquí . También le recomendaría que eche un vistazo al ejemplo de migración a Android 8.0.
fuente
La versión min sdk es la versión mínima del sistema operativo Android requerida para ejecutar su aplicación.
La versión de SDK de destino es la versión de Android para la que se creó su aplicación.
La versión de compilación sdk es la versión de Android que las herramientas de compilación utilizan para compilar y compilar la aplicación con el fin de liberarla, ejecutarla o depurarla.
Por lo general, la versión sdk de compilación y la versión sdk de destino son las mismas.
fuente
compileSdkVersion : compileSdkVersion es la versión de la API con la que se compila la aplicación. Esto significa que puede usar las características de la API de Android incluidas en esa versión de la API (así como todas las versiones anteriores, obviamente). Si intenta usar las características de API 16 pero establece compileSdkVersion en 15, obtendrá un error de compilación. Si configura compileSdkVersion en 16, aún puede ejecutar la aplicación en un dispositivo API 15.
minSdkVersion : la versión min sdk es la versión mínima del sistema operativo Android requerida para ejecutar su aplicación.
targetSdkVersion : la versión de sdk de destino es la versión en la que se ejecuta su aplicación.
fuente