compileSdkVersion
compileSdkVersion gibt die Version des Android SDK an, gegen das dein Code kompiliert wird. Dies bedeutet, dass deine App alle APIs verwenden kann, die in der angegebenen Version und in früheren Versionen enthalten sind.
Zum Beispiel, wenn du die compileSdkVersion auf 30 setzt, bedeutet das, dass deine App alle APIs verwenden kann, die bis Version 30 eingeführt wurden. Wenn du zum Beispiel die Camera2-API verwenden möchtest, die in Android 5.0 (API Level 21) und höher eingeführt wurde, und du deine compileSdkVersion auf 30 gesetzt hast, kann deine App diese API problemlos verwenden. Wenn du jedoch versuchst, eine API zu verwenden, die in Android 31 eingeführt wurde (die noch nicht veröffentlicht wurde), erhältst du einen Kompilierungsfehler, da diese API noch nicht in der von dir festgelegten compileSdkVersion verfügbar ist.
targetSdkVersion
targetSdkVersion Dies ist die Version des Android SDK, für die die App ausgelegt ist. Es gibt das API-Level an, gegen das die App getestet wurde und auf dem sie laufen soll, und zeigt auch das Maß an Kompatibilität an, das die App mit neueren Versionen von Android bietet.
Zum Beispiel, wenn du die targetSdkVersion auf 30 setzt, gibst du an, dass deine App für Geräte ausgelegt ist, die Android 30 oder höher ausführen. Dies bedeutet, dass du deine App gegen die in Version 30 eingeführten APIs getestet hast und sichergestellt hast, dass deine App auf diesen Geräten korrekt funktioniert. Dies bedeutet jedoch auch, dass deine App möglicherweise nicht von den neuen Funktionen und APIs profitiert, die in höheren Versionen von Android eingeführt wurden, es sei denn, du entwickelst explizit dafür.
Zusammenfassung
Zusammenfassend bestimmt die compileSdkVersion den Satz von APIs, der während des Erstellungsprozesses verwendet werden kann, während die targetSdkVersion das API-Level angibt, für das die App ausgelegt ist und das Maß an Kompatibilität mit neueren Versionen von Android anzeigt.
Idealerweise sollten die compileSdkVersion und targetSdkVersion gleich sein und beide auf das neueste SDK verweisen. Aber natürlich erst, nachdem du getestet hast, dass jede Änderung, die in dieser Version eingeführt wurde, reibungslos mit deiner App funktioniert!