Quelles sont les différences entre «version min sdk / version sdk cible» et «compiler la version sdk»? Je sais ce que signifie min et target sdk, mais que signifie compiler sdk version?
Dans Eclipse, j'ai min / max et sdk cible, mais dans Android Studio, il y a ces trois paramètres.
android
android-studio
Tobias
la source
la source
Réponses:
La version min sdk est la première version du SDK Android sur laquelle votre application peut s'exécuter. Habituellement, cela est dû à un problème avec les API antérieures, à un manque de fonctionnalités ou à un autre problème de comportement.
La version cible sdk est la version de votre application a été ciblée pour fonctionner. Idéalement, cela est dû à une sorte de conditions de fonctionnement optimales. Si vous deviez "créer votre application pour la version 19", c'est là que cela serait spécifié. Il peut fonctionner sur des versions antérieures ou ultérieures, mais c'est ce que vous visiez. Il s'agit principalement d'indiquer le niveau actuel de votre application pour une utilisation sur le marché, etc.
La version compile sdk est la version d'Android que votre IDE (ou tout autre moyen de compilation je suppose) utilise pour créer votre application lorsque vous publiez un
.apk
fichier. Ceci est utile pour tester votre application car il est courant de compiler votre application au fur et à mesure que vous la développez. Comme ce sera la version à compiler en APK, ce sera naturellement la version de votre version. De même, il est conseillé que cela corresponde à votre version sdk cible.la source
La formule est
minSdkVersion - est un marqueur qui définit une version minimale d'Android sur laquelle l'application pourra être installée. Il est également utilisé par Lint pour empêcher l'appel d'API qui n'existe pas. Cela a également un impact sur le temps de construction. Vous pouvez donc utiliser des versions de génération pour remplacer minSdkVersion au maximum pendant le développement. Cela aidera à accélérer la construction en utilisant toutes les améliorations que l'équipe Android nous propose. Par exemple, certaines fonctionnalités Java 8 sont disponibles uniquement à partir d'une version spécifique de minSdkVersion.
targetSdkVersion - indique que le système Android doit activer des changements de comportement spécifiques.
Par exemple:
À partir d'Android 6.0 (API niveau 23)
Runtime Permissions
ont été introduits. Si vous définisseztargetSdkVersion
sur 22 ou inférieur, votre application ne demande pas à un utilisateur une autorisation pendant l'exécution.À partir d'Android 8.0 (API niveau 26), tous
notifications
doivent être attribués à un canal ou il n'apparaîtra pas. Sur les appareils exécutant Android 7.1 (API niveau 25) et inférieur, les utilisateurs peuvent gérer les notifications par application uniquement (en fait, chaque application ne dispose que d'un canal sur Android 7.1 et inférieur).À partir d'Android 9 (API niveau 28)
Web-based data directories separated by process
,. SitargetSdkVersion
est 28+ et que vous en créez plusieursWebView
dans différents processus, vous obtiendrezjava.lang.RuntimeException
compileSdkVersion - en fait, c'est la version de la plate-forme SDK et indique à Gradle quel SDK Android utiliser pour compiler. Lorsque vous souhaitez utiliser de nouvelles fonctionnalités ou déboguer des
.java
fichiers à partir du SDK Android, vous devez prendre soin de compileSdkVersion. Un autre exemple est l'utilisation d' AndroidX qui oblige à utilisercompileSdkVersion
- le niveau 28.compileSdkVersion
n'est pas inclus dans votre APK : il est purement utilisé àcompile time
. La modification de votre compileSdkVersion ne modifie pas le comportement d'exécution. Il peut générer par exemple de nouveaux avertissements / erreurs du compilateur. Par conséquent, il est fortement recommandé de toujours compiler avec le dernier SDK. Vous bénéficierez de tous les avantages des nouvelles vérifications de compilation sur le code existant, éviterez les nouvelles API obsolètes et serez prêt à utiliser de nouvelles API. Un autre fait estcompileSdkVersion >= Support Library version
Vous pouvez en savoir plus ici . Je vous recommande également de jeter un œil à l'exemple de la migration vers Android 8.0.
la source
La version min sdk est la version minimale du système d'exploitation Android requise pour exécuter votre application.
La version SDK cible est la version d'Android sur laquelle votre application a été créée pour fonctionner.
La version de compilation de sdk est la version d'Android que les outils de génération utilisent pour compiler et générer l'application afin de publier, exécuter ou déboguer.
Habituellement, la version de compilation sdk et la version cible de sdk sont les mêmes.
la source
compileSdkVersion : la compileSdkVersion est la version de l'API avec laquelle l'application est compilée. Cela signifie que vous pouvez utiliser les fonctionnalités d'API Android incluses dans cette version de l'API (ainsi que toutes les versions précédentes, évidemment). Si vous essayez d'utiliser les fonctionnalités de l'API 16 mais définissez compileSdkVersion sur 15, vous obtiendrez une erreur de compilation. Si vous définissez compileSdkVersion sur 16, vous pouvez toujours exécuter l'application sur un appareil API 15.
minSdkVersion : La version min sdk est la version minimale du système d'exploitation Android requise pour exécuter votre application.
targetSdkVersion : la version sdk cible est la version sur laquelle votre application doit s'exécuter.
la source