Was sind die Unterschiede zwischen "min sdk version / target sdk version" und "compile sdk version"? Ich weiß, was min und target sdk bedeuten, aber was bedeutet das Kompilieren der sdk-Version?
In Eclipse habe ich min / max und Ziel-SDK, aber in Android Studio gibt es diese drei Einstellungen.
android
android-studio
Tobias
quelle
quelle
Antworten:
Die min sdk-Version ist die früheste Version des Android SDK, auf der Ihre Anwendung ausgeführt werden kann. Normalerweise liegt dies an einem Problem mit den früheren APIs, mangelnder Funktionalität oder einem anderen Verhaltensproblem.
Das Ziel sdk Version ist die Version Ihrer Anwendung wurde gezielt zu laufen. Im Idealfall liegt dies an optimalen Laufbedingungen. Wenn Sie "Ihre App für Version 19 erstellen" würden, würde dies hier angegeben. Es kann auf früheren oder späteren Versionen laufen, aber das ist, was Sie angestrebt haben. Dies dient hauptsächlich dazu anzuzeigen, wie aktuell Ihre Anwendung für die Verwendung auf dem Markt usw. ist.
Die Compile SDK-Version ist die Version von Android, mit der Ihre IDE (oder andere Kompilierungsmethoden, nehme ich an) Ihre App erstellt, wenn Sie eine
.apk
Datei veröffentlichen. Dies ist nützlich zum Testen Ihrer Anwendung, da es häufig erforderlich ist, Ihre App während der Entwicklung zu kompilieren. Da dies die Version ist, die zu einer APK kompiliert werden soll, ist dies natürlich die Version Ihrer Version. Ebenso ist es ratsam, dass dies mit Ihrer Ziel-SDK-Version übereinstimmt.quelle
Die Formel lautet
minSdkVersion - ist ein Marker, der eine Mindestversion für Android definiert, auf der die Anwendung installiert werden kann. Außerdem wird es von Lint verwendet, um das Aufrufen einer nicht vorhandenen API zu verhindern. Dies wirkt sich auch auf die Erstellungszeit aus. Sie können also Build-Varianten verwenden, um minSdkVersion während der Entwicklung maximal zu überschreiben. Es wird helfen, das Erstellen mit allen Verbesserungen, die das Android-Team für uns bereitstellt, schneller zu machen. Beispielsweise sind einige Funktionen von Java 8 nur in einer bestimmten Version von minSdkVersion verfügbar.
targetSdkVersion - sagt, dass das Android-System bestimmte Verhaltensänderungen aktiviert .
Beispielsweise:
Ab Android 6.0 (API Level 23)
Runtime Permissions
wurden eingeführt. Wenn SietargetSdkVersion
22 oder weniger festlegen , fragt Ihre Anwendung einen Benutzer zur Laufzeit nicht nach einer Berechtigung.Ab Android 8.0 (API-Level 26) müssen alle
notifications
einem Kanal zugewiesen sein, sonst wird er nicht angezeigt. Auf Geräten mit Android 7.1 (API-Stufe 25) und niedriger können Benutzer Benachrichtigungen nur pro App verwalten (effektiv hat jede App nur einen Kanal unter Android 7.1 und niedriger).Ab Android 9 (API-Level 28) ,
Web-based data directories separated by process
. WenntargetSdkVersion
28+ ist und Sie mehrereWebView
in verschiedenen Prozessen erstellen , erhalten Siejava.lang.RuntimeException
compileSdkVersion - eigentlich handelt es sich um eine SDK-Plattformversion, die Gradle mitteilt, mit welchem Android SDK kompiliert wird. Wenn Sie neue Funktionen verwenden oder
.java
Dateien aus dem Android SDK debuggen möchten, sollten Sie sich um compileSdkVersion kümmern. Ein weiteres Beispiel ist die Verwendung von AndroidX , das die Verwendung erzwingtcompileSdkVersion
- Stufe 28.compileSdkVersion
ist in Ihrer APK nicht enthalten : Es wird ausschließlich bei verwendetcompile time
. Durch Ändern Ihrer compileSdkVersion wird das Laufzeitverhalten nicht geändert. Es kann zum Beispiel neue Compiler-Warnungen / Fehler erzeugen. Daher wird dringend empfohlen, immer mit dem neuesten SDK zu kompilieren. Sie erhalten alle Vorteile neuer Kompilierungsprüfungen für vorhandenen Code, vermeiden neu veraltete APIs und können neue APIs verwenden. Eine weitere Tatsache istcompileSdkVersion >= Support Library version
Sie können mehr darüber lesen Sie hier . Außerdem würde ich Ihnen empfehlen, sich das Beispiel der Migration auf Android 8.0 anzusehen .
quelle
Die min sdk-Version ist die Mindestversion des Android-Betriebssystems, die zum Ausführen Ihrer Anwendung erforderlich ist.
Die Ziel-SDK-Version ist die Version von Android, für die Ihre App erstellt wurde.
Die Compile-SDK-Version ist die Version von Android, mit der die Build-Tools die Anwendung kompilieren und erstellen, um sie freizugeben, auszuführen oder zu debuggen.
Normalerweise sind die SDK-Version zum Kompilieren und die SDK-Zielversion identisch.
quelle
compileSdkVersion : Die compileSdkVersion ist die Version der API, für die die App kompiliert wird. Dies bedeutet, dass Sie die in dieser API-Version enthaltenen Android-API-Funktionen (sowie natürlich alle früheren Versionen) verwenden können. Wenn Sie versuchen, API 16-Funktionen zu verwenden, aber compileSdkVersion auf 15 setzen, wird ein Kompilierungsfehler angezeigt. Wenn Sie compileSdkVersion auf 16 setzen, können Sie die App weiterhin auf einem API 15-Gerät ausführen.
minSdkVersion : Die min sdk-Version ist die Mindestversion des Android-Betriebssystems, die zum Ausführen Ihrer Anwendung erforderlich ist.
targetSdkVersion : Die Ziel-SDK-Version ist die Version, auf der Ihre App ausgeführt werden soll.
quelle