Kompilierungs-SDK-Version
Die compileSdkVersion
ist die Version der API, gegen die die App kompiliert wird. Das bedeutet, dass Sie Android-API-Funktionen verwenden können, die in dieser API-Version enthalten sind (sowie in allen vorherigen Versionen, offensichtlich). Wenn Sie versuchen Funktionen der API 16 zu verwenden, aber compileSdkVersion
auf 15 setzen, erhalten Sie einen Kompilierungsfehler. Wenn Sie compileSdkVersion
auf 16 setzen, können Sie die App immer noch auf einem Gerät mit API 15 ausführen, solange die Ausführungspfade Ihrer App keine APIs spezifisch für API 16 aufrufen.
Ziel-SDK-Version
Die targetSdkVersion
hat nichts damit zu tun, wie Ihre App kompiliert wird oder welche APIs Sie nutzen können. Die targetSdkVersion
soll anzeigen, dass Sie Ihre App auf (vermutlich bis einschließlich) der von Ihnen angegebenen Version getestet haben. Dies ist eher wie eine Zertifizierung oder Bestätigung, die Sie dem Android-Betriebssystem als Hinweis darauf geben, wie es mit Ihrer App in Bezug auf OS-Funktionen umgehen soll.
Zum Beispiel, wie die Dokumentation besagt:
Zum Beispiel ermöglicht das Festlegen dieses Werts auf "11" oder höher dem System, Ihrem App eine neue Standard-Themen (Holo) zuzuweisen, wenn es auf Android 3.0 oder höher läuft...
Das Android-Betriebssystem kann zur Laufzeit ändern, wie Ihre App gestaltet ist oder anderweitig in Bezug auf das Betriebssystem ausgeführt wird, basierend auf diesem Wert. Es gibt einige weitere bekannte Beispiele, die von diesem Wert beeinflusst werden, und diese Liste wird wahrscheinlich im Laufe der Zeit nur zunehmen.
Zu praktischen Zwecken werden die meisten Apps die targetSdkVersion
auf die neueste veröffentlichte Version der API setzen wollen. Dies stellt sicher, dass Ihre App auf den aktuellsten Android-Geräten so gut wie möglich aussieht. Wenn Sie die targetSdkVersion
nicht angeben, wird sie auf die minSdkVersion
standardmäßig gesetzt.