android - programacion - ¿Cuál es la diferencia entre la versión mínima del SDK/la versión del SDK objetivo frente a la versión compilada del SDK?
manual de programacion android pdf (4)
¿Cuáles son las diferencias entre "versión sdk min / versión sdk objetivo" y "compilar versión sdk"?
Sé lo que significan min y target sdk, pero ¿qué significa compilar sdk version? En eclipse tengo min / max y target sdk, pero en el estudio de Android existen estas tres configuraciones.
¡Buena pregunta!
La versión min SDK es la versión mínima del sistema operativo Android necesaria para ejecutar su aplicación.
La versión sdk de destino es la versión de Android en la que se creó su aplicación para que se ejecute.
compilar la versión sdk es la versión de Android que utilizan las herramientas de compilación para compilar y compilar la aplicación para su lanzamiento, ejecución o depuración.
Por lo general, la versión sdk de compilación y la versión sdk de destino son las mismas.
La fórmula es
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion - es un marcador que define una versión mínima de Android en la que la aplicación podrá instalarse. También es usado por Lint para evitar API de llamada que no existe. También tiene impacto en Build Time. De modo que puede usar los sabores de compilación para anular minSdkVersion al máximo durante el desarrollo. Ayudará a construir más rápido usando todas las mejoras que el equipo de Android nos brinda. Por ejemplo, algunas características Java 8 están disponibles solo a partir de la versión específica de minSdkVersion.
targetSdkVersion : indica que el sistema Android activa cambios de comportamiento específicos.
Un buen ejemplo son los permisos peligrosos (desde 23 API). Si establece targetSdkVersion en 22, su aplicación no le pide permiso al usuario en tiempo de ejecución.
A partir de Android 8.0 (nivel de API 26), todas las notificaciones se deben asignar a un canal o no aparecerá. En dispositivos que ejecutan Android 7.1 (nivel de API 25) o inferior, los usuarios pueden administrar notificaciones solo por aplicación (de hecho, cada aplicación solo tiene un canal en Android 7.1 y versiones anteriores).
compileSdkVersion : en realidad es la versión de la Plataforma SDK y le dice a Gradle qué SDK de Android usa para compilar. Cuando desee utilizar nuevas funciones o depurar archivos .java de Android SDK, debe ocuparse de compileSdkVersion. Un hecho más es compileSdkVersion> = Support Library version
Puedes leer más sobre esto here . También te recomendaría que eches un vistazo al ejemplo de la migration a Android 8.0
Para explicar la respuesta de @anuraagy:
Versión min SDK Es el primer lanzamiento del SDK de Android en el 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.
target sdk version La versión en la que su aplicación fue dirigida para ejecutarse. Idealmente, esto se debe a algún tipo de condiciones de funcionamiento óptimas. Si tuviera que "hacer su aplicación para la versión 19", aquí se especificaría. Puede ejecutarse en lanzamientos anteriores o posteriores, pero esto es lo que estabas buscando. Esto es principalmente para indicar qué tan actual es su aplicación para su uso en el mercado, etc.
compile sdk version La versión de Android que su IDE (u otro medio de compilación, supongo) usa para crear su aplicación cuando publica un archivo .apk. 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 a un APK, naturalmente será la versión de su lanzamiento. Del mismo modo, es aconsejable tener esta coincidencia con la versión sdk.
No quise robar la respuesta de otra persona, pero realmente espero que esto arroje algo de luz sobre la distinción de estos tres términos.
Vea aquí, es mejor especificar en la versión sdk de destino la versión más reciente de la API: ¿Cuál es la diferencia entre compileSdkVersion y targetSdkVersion?