Hola Gonzalo:
El
targetSdkVersion es un número entero que designa el nivel de API que la aplicación apunta. Si no se establece, el valor predeterminado es igual al de
minSdkVersion.
Para entendernos, el
targetSdkVersion hace referencia a la API con la cual vas a compilar tu aplicación, los dispositivos no tienen un SDK concreto, tienen una versión de Android que esta va ligada a una API, por ejemplo, el SDK 23 es la API 23 que soporta hasta Android 6.0, o dicho de otra forma, soportará todas las mejoras incluidas hasta esa versión.
Así que si tu por ejemplo haces una APP que incluya mejoras que han salido solo en Android 6 y tu dispositivo movil tiene Android 5, esas mejoras no las podrá ver y menos si son a nivel hard.
Si tu haces una APP que por ejemplo solo haga sumas y visualice el resultado, y pone
minSdkVersion="14" y
targetSdkVersion="19" , aunque lo ejecutes en un dispositivo con Android 6, 7 u 8 funcionará, por que no empleas ninguna característica de esas versiones mas altas que la que tu le has dado con el targetSdkVersion="19" (Android 4.4.2)
Si vas a crear una APP que no emplee cosas muy especificas de Android 6, te recomiendo que bajes el
targetSdkVersion al 22, por que con la 23 (Android 6) por código tu APP tiene que consultar y pedirle permisos al usuario, y eso te complica el código y sobre todo el inicio de la aplicación. Y menos se te ocurra subirlo al PlayStore por que si lo subes con esa versión no podrás subir una nueva con una version inferior.
Espero haberte aclarado tus dudas, y perdona si tu respuesta tardó, pero como he comentado otras veces, aqui nadie cobramos por ayudar, y respondemos cuando podemos por que la mayoria nos debemos a nuestro trabajo, y en Agosto casi todos estabamos de vacaciones
Saludos