2013-02-01 2 views
-1

Chaque fois que je suis confus avec cela et je fais la recherche et je "pense" je l'ai compris mais je ne semble pas trop. Est-ce que quelqu'un peut m'expliquer quelle est la différence entre l'API que vous construisez et le SDK Min que vous spécifiez dans votre manifeste et le SDK cible que vous spécifiez.Construire la version Vs MinSdk Vs targetSdk

Par exemple: J'ai une application que son minSDK est 8 et targetSDK est 15 et je compile contre SDK 12. Quelle est la différence? Sur quels appareils fonctionne-t-il? Qu'est-ce que je gagne de ces différences! Quelqu'un s'il vous plaît expliquer! Merci

+0

duplication possible de [Quel est le but de l'API cible et minSDK] (http://stackoverflow.com/questions/2755598/what-is-the-purpose-of-both-target-api-and-minsdk) – kabuko

+0

Thx pour le downvote et non ce n'est pas un doublon et ce fil est plus de 2ans ago.chances sont les choses ont changé avec les tablettes – Snake

+0

Je n'ai pas downvote, mais merci de supposer. En outre, rien n'a probablement changé avec les tablettes. La signification de ces deux sont exactement les mêmes qu'avant. – kabuko

Répondre

1

Quelle est la différence?

La différence est le résultat de la soustraction de deux nombres. Mais ce n'est pas important ici. :-)

Sur quels appareils s'exécute-t-il?

Cela dépend de votre code autant qu'autre chose. Cependant, il fonctionnera au niveau API 7 et au-dessous, car ceux-ci sont inférieurs à . Les appareils Android (et les marchés) n'autorisent pas votre application sur les appareils API de niveau 7 et inférieur.

Qu'est-ce que je gagne de ces différences!

En fixant un objectif de construction de 12, vous dites au compilateur et construire des outils: « Je veux utiliser les API plus récentes que celles de l'API de niveau 8, à travers l'API de niveau 12, mais je vous promets de le faire de manière à éviter ces nouvelles API sur les anciens appareils ". Les outils de construction, Lint en particulier, vous crieront lorsque vous essaierez d'utiliser des API plus récentes sans protection appropriée (par exemple, en vérifiant android.os.Build.SDK_INT). En définissant android:targetSdkVersion à 15, vous dites au compilateur et aux outils de construction: «Lorsque j'ai écrit ce code, je pensais à l'API Niveau 15». Les appareils plus récents que votre cible peut choisir de faire les choses différemment, pour essayer de mieux imiter vie sur les API de niveau 15.

Le meilleur exemple de ce dernier est AsyncTask. Traditionnellement, les tâches peuvent se dérouler en parallèle. Cependant, si est réglé sur 13 ou plus, et vous exécutez sur un périphérique API de niveau 13 ou supérieur, puis les tâches seront exécutées en série par défaut. Si vous exécutez sur un périphérique de niveau API 13 ou supérieur, mais que votre android:targetSdkVersion est égal ou inférieur à 12, le périphérique retombera sous l'ancien comportement, afin de maintenir la compatibilité.

+0

Merci.as toujours aimé vos explications.Oui si je veux avoir mon application en cours d'exécution sur API 8 et plus sans utiliser l'outil de construction alors que dois-je faire? Construire contre 8 et mettre minsdk à 8 mais avoir targetsdk au nombre le plus élevé? – Snake

+0

@Snake: "Ok, si je veux que mon application fonctionne sur les API 8 et supérieures sans utiliser l'outil de construction, que dois-je faire?" - Je n'ai aucune idée de ce que signifie "sans utiliser l'outil de construction". – CommonsWare

+0

Je veux dire sans utiliser android.os.Build.SDK_INT et en essayant de comprendre ce qui fonctionnerait et ce qui ne fonctionnerait pas – Snake

0

SDK Min est l'ensemble du système d'exploitation Android minumum d'API que votre application nécessite à travailler

SDK cible est la version qui est votre principal objectif de la plate-forme, cela est généralement toujours supérieur au minimum.

Il ne décide pas des périphériques car la version de la plate-forme des périphériques peut changer.

1

Le SDK que vous utilisez pour créer votre propre application définira toutes les classes disponibles.Il n'y a aucune raison de ne pas utiliser la plus élevée disponible (actuellement 17)

minSDK est, comme mentionné par JoxTraex: « l'ensemble du système d'exploitation Android minumum d'API que votre application nécessite à travailler »

targetSDK est le plus élevé construire vous avez testé vos applications. Cela permettra certaines fonctionnalités (Holo, bouton Menu Goodbye). Ces modifications sont introduites par défaut dans la nouvelle version d'Android, mais vous devez écrire dans votre manifeste que ces nouvelles fonctionnalités ont été testées.

+0

Merci pour votre réponse – Snake

Questions connexes