31 votes

Bibliothèque de support / compatibilité Android - utilisez-vous v4 ou v13?

Je viens de lire cette description de l'Android Support Package / Bibliothèque de Compatibilité...

http://developer.android.com/sdk/compatibility-library.html

... et il m'a laissé un peu perplexe! Il est dit que la v13 bibliothèque est un sur-ensemble de la v4 mais je pensais que c'était l'inverse?

En pratique: Si je veux utiliser la bibliothèque de compatibilité tels que mon application est construit et fonctionne très bien pour les téléphones fonctionnant sous Android 2.2 (API 8) à travers 4.0 (API 14) et au-delà, sera v4 suffit-il pour moi?

35voto

Ollie C Points 13789

Pour cibler l'API 8 (v2.2), vous devez utiliser la version v4.

De grandes sections de la v13 fonctionneront, mais si vous utilisez l'une des fonctionnalités qui reposent sur les API de la plate-forme 13, votre application explose sur les appareils plus anciens.

À moins d'une raison particulièrement impérieuse d'avoir besoin de la v13, je suggérerais de passer directement à la v4.

9voto

loser114491 Points 86

La Réponse est correcte, mais est également un peu déroutant! Actuellement, il y a 3 pots: V4, V7 et V13. Malheureusement V7 est spécifiquement pour gridlayout seulement et n'est donc PAS un sur-ensemble.

Nous nous intéressons dans un seul pot à partir de la bibliothèque de prise en charge [à moins que nous voulons aussi gridlayout (je ne sais pas ce que c'est!)]. Par conséquent, nous sommes à la recherche à notre android:minSdkVersion="8" et le contrôle contre les pots. Si nous voulons V4.

V13 est seulement un sur-ensemble dans le sens où il duplique le V4 méthodes, PAS le code. I. e. l'utilisation de V13 serait incorrect dans cet exemple.

5voto

ruidge Points 361

Je ne pense pas que nous devrions utiliser le sur-ensemble(ou sous-ensemble) pour décrire ces trois bibliothèques(v4, v7, v13), bien que la plus simple des sens semble vers l'arrière-compatible avec la version 4, 7 et 13.

Google a ajouté Fragment en v4 d'abord,puis la mise à jour lors de chaque nouvelle version a été publiée.Cela signifie que si votre application uniquement en charge la dernière version (qui a fortement déconseillé), nous avons besoin d'un soutien-v4 presque à tout moment.Supposons que votre minsdk est de 14 qui a fragment déjà, mais embedded fragment " seulement un soutien après le 17,nous avons donc encore besoin v4 et l'utilisation v4 fragment dans cette situation.

Cette année(2013) google a publié v7,et a ajouté appcompat-bibliothèque en elle.Que signifie d'ailleurs tiers de soutien Actionbar(ActionbarSherlock) avant le 11, officiel de soutien peut-être mieux Un?? Alors je crois que nous aurons tous les actionbar fonctionnalité de mise à jour lors de chaque nouvelle version de publier à l'avenir en v7.

Nous avons encore besoin de minsdk=XX (entre 7 et 10), aujourd'hui(Nov.24,2013).Nous devons ajouter la prise en charge-v4 pour le fragment et le soutien-v7 pour actionBar à la fois pour les meilleures pratiques.

1voto

lucas Points 1011

J'ai vérifié le code source de v13, il ajoute seulement un peu plus de 4 classes.

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

FragmentCompat ajoute 2 statique util méthodes qui sont inclus dans la v4 Fragment déjà.

FragmentPagerAdapter, FragmentStatePagerAdapter et FragmentTabHost, l'ensemble de ces 3 classes ont un même nom des classes dans la v4, et ont le même comportement.

L'extra Api fournies dans v13 ne sont pas nécessaires.

Donc, en ajoutant v4, vous pouvez prendre en charge plusieurs plates-formes que v13, avec le même comportement avec v13, alors pourquoi ne pas utiliser la v4?

Je n'ai pas pu voir tout neccessarity pour v13. Suis-je le droit?

0voto

panwy Points 61

La v13 n'a que des fonctions sur Fragment. principalement si votre minVersion est supérieure à 13 et n'utilise pas de fonctions telles que: FragmentPagerAdapter, FragmentStatePagerAdapter, FragmentTabHost et des fragments imbriqués; vous n'avez pas besoin de support v13.

donc "v4 est un sous-ensemble de v13" est incorrect!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X