2010-06-02 7 views
3

J'ai acheté un HTC Incredible et ai plongé dans le monde d'Android! Seulement pour me trouver totalement confus au sujet des niveaux de l'API et la compatibilité descendante.Confus au sujet des API Android et de la compatibilité

Mon périphérique exécute le système d'exploitation 2.1, mais je sais que la plupart des périphériques exécutent 1.5 ou 1.6; et bientôt le système d'exploitation 2.2 fonctionnera sur de nouveaux appareils. Le SDK a subi d'énormes changements, que même les constantes ont été renommées (de VIEW_ACTION à ACTION_VIEW par exemple). Des méthodes ont été ajoutées et supprimées (onPause en remplaçant l'appel précédent, etc al). Donc, si je veux écrire une application qui fonctionnera à partir de la version 1.6, cela signifie que je dois installer et écrire mon code en utilisant l'API 1.6; puis tester sur les versions ultérieures? Ou puis-je écrire en utilisant le SDK 2.1 et juste définir le niveau de minSDK et ne pas utiliser de "nouvelles" fonctionnalités?

Je n'ai jamais travaillé avec un SDK qui change tellement drastiquement d'une version à l'autre! Je ne sais pas quoi faire ....

J'ai lu un article sur le site de développement Android (et cet article sur le débordement de pile qui le référence: Should a legacy Android application be rebuilt using SDK 2.1?), mais il n'était toujours pas très clair pour moi. Toute aide serait la bienvenue

+0

Voir aussi http://stackoverflow.com/questions/4968988/quoi-si-je-veux-publier-une-mise-à-jour-avec-plus-min-m-que-sur-le-marche-sur-le-marche/4969477 # 4969477 – rds

Répondre

5

Le SDK est passé par ces énormes changements, que même les constantes ont été renommé (de VIEW_ACTION à ACTION_VIEW par exemple). Des méthodes ont été ajoutées et supprimées (sur la phrase en remplacement de l'appel précédent, etc.).

C'était il y a deux ans, sur une version bêta de la plate-forme, avant qu'il y ait des dispositifs d'expédition. Depuis Android 1.0, il y a eu très peu de compatibilité, surtout dans le domaine des paramètres qui ont été déplacés dans une API sécurisée, de sorte que les applications SDK ne peuvent pas les manipuler.

Donc, si je veux écrire une application qui fonctionnera à partir 1.6+, est-ce dire que je dois installer et écrire mon code en utilisant l'API 1.6; puis tester sur versions ultérieures? Ou puis-je écrire en utilisant le SDK 2.1 et juste définir le niveau de minSDK et ne pas utiliser de "nouvelles" fonctionnalités?

Vous faites croire qu'ils s'excluent mutuellement. En fait, ils sont en grande partie identiques.

  • Gardez votre jeu d'outils sur la dernière version des outils de développement Android
  • Mettez le minSdkVersion dans votre manifeste de dire quel est le niveau de l'API le plus bas que vous voulez soutenir
  • Mettre le targetSdkVersion dans votre manifeste à l'autre Quel est votre niveau d'API "cible", afin qu'Android puisse appliquer des aides à la compatibilité si votre application fonctionne sur une version plus récente d'Android (typiquement, vous "ciblez" le niveau d'API alors en cours)
  • Ecrivez votre code principalement à l'API niveau que vous avez spécifié dans minSdkVersion, en utilisant éventuellement reflection ou conditional class loading pour accéder à des API les plus récents sur les périphériques qui les prennent en charge
  • test sur tout ce que vous pouvez obtenir vos mains sur, au moins émulateurs pour les différents niveaux de l'API
+0

great thanx. C'est ce que je "pensais" qu'il devrait être, mais en regardant à travers les messages plus anciens et même quelques échantillons qui ont été écrits avec des SDK plus anciens m'a confondu. :) Merci beaucoup. Fait ma tête arrêter de tourner – Keith

3

Vous pouvez utiliser le SDK actuel et définir le niveau minSDK au niveau que vous voulez. Si vous faites cela, vous ne pouvez utiliser aucune fonctionnalité qui n'est pas dans la minSDK. C'est aussi une bonne idée de le tester sur toutes les versions du SDK avec l'émulateur. Cela signifie que vous savez que vous ciblez la version 2.2, mais que le niveau minimum du SDK sur lequel vous souhaitez que votre application s'exécute est de 1,6. En faisant cela, vous pouvez utiliser certains des nouveaux produits XML dans les versions plus récentes comme supports à l'écran et différents dessinables pour différents écrans, etc.

Questions connexes