web-dev-qa-db-fra.com

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

Je viens de lire cette description de la bibliothèque de packages de support/compatibilité Android ...

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

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

Mise en pratique: si je veux utiliser la bibliothèque de compatibilité telle que mon application soit bien conçue pour les téléphones fonctionnant sous Android 2.2 (API 8) à 4.0 (API 14) et au-delà, la v4 me suffira-t-elle?

31
Adil Hussain

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.

35
Ollie C

La réponse est correcte, mais elle est également légèrement déroutante!.

Nous ne sommes intéressés que par un seul fichier jar de la bibliothèque de support [sauf si nous souhaitons également un montage en grille (je ne sais pas ce que c'est!)]. Par conséquent, nous examinons notre Android: minSdkVersion = "8" et le comparons aux bocaux. Nous voulons donc la V4.

V13 n'est qu'un sur-ensemble dans le sens où il duplique les méthodes V4, PAS le code. C'est à dire. l'utilisation de V13 serait incorrecte dans cet exemple.

9
loser114491

Je ne pense pas que nous devrions utiliser superset (ou sous-ensemble) pour décrire ces trois bibliothèques (v4, v7, v13) bien que la signification la plus simple semble rétrocompatible avec les versions 4, 7 et 13. 

Google a tout d'abord ajouté Fragment in v4, puis mettez-le à jour à chaque nouvelle version. Cela signifie que si votre application ne prend en charge que la version la plus récente (ce qui est vivement déconseillé), nous avons besoin de support-v4 presque à tout moment. 14 qui a déjà fragment, mais 'fragment incorporé' ne prend en charge qu'après 17, nous avons donc toujours besoin de v4 et utilisons fragment v4 dans cette situation.

Cette année (2013), google a publié la v7 et y a ajouté appcompat-library .Cela signifie qu’après le troisième support Actionbar (ActionbarSherlock) avant le 11, le support officiel est peut-être un meilleur One ?? Ensuite, je pense que toutes les fonctionnalités de la barre d’action seront mises à jour lorsque chaque nouvelle version sera publiée ultérieurement dans la v7.

Nous avons encore besoin de minsdk = XX (entre 7 et 10) aujourd'hui (24 nov. 2013). Nous devrions ajouter support-v4 pour fragment et support-v7 pour actionBar, tous deux pour la meilleure pratique.

5
ruidge

J'ai vérifié le code source de la v13, il n'ajoute que 4 classes supplémentaires. 

  • FragmentCompat 
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter 
  • FragmentTabHost

FragmentCompat ajoute 2 méthodes d'utilisation statique qui sont déjà incluses dans v4 Fragment. 

FragmentPagerAdapter, FragmentStatePagerAdapter et FragmentTabHost, toutes ces 3 classes ont les mêmes noms de classes dans la v4 et ont le même comportement. 

Les API supplémentaires fournies dans la v13 ne sont pas nécessaires. 

Donc, en ajoutant la v4, vous pouvez prendre en charge davantage de plateformes que la v13, avec le même comportement que v13, alors pourquoi ne pas utiliser simplement la v4?

Donc, je ne pouvais voir aucune nécessité pour la v13 . Ai-je raison?

1
lucas

Un peu tard mais regardez bien l’image ci-dessous . Dans le fichier JAR Android-support-v13.jar, il y a 3 paquets:

  • annotation
  • v4
  • v13

Cela signifie que nous devons simplement ajouter ce fichier, et nous aurions un support pour les versions v4 et v13. Puisque la v7 ne figure PAS dans la compilation, nous aurions besoin d'ajouter ce JAR nous-mêmes.

enter image description here

0
Khanh Hua

v13 ne contient que des fonctions relatives à Fragment . principalement si minVersion est supérieur à 13 et n’utilise pas des fonctions telles que: FragmentPagerAdapter, FragmentStatePagerAdapter, FragmentTabHost et les fragments imbriqués; vous n’avez pas besoin de support v13.

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

0
panwy