Пакет поддержки Android / библиотека совместимости - использовать v4 или v13? - PullRequest
31 голосов
/ 29 марта 2012

Я только что прочитал это описание пакета поддержки Android / библиотеки совместимости ...

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

... и это меня немного смутило! Там написано, что библиотека v13 - это расширенная версия v4, но я подумал, что это наоборот?

Практическое руководство. Если я захочу использовать библиотеку совместимости таким образом, чтобы мое приложение собиралось и нормально работало на телефонах с Android 2.2 (API 8) до 4.0 (API 14) и выше, мне будет достаточно v4?

Ответы [ 6 ]

35 голосов
/ 29 марта 2012

Чтобы настроить API 8 (v2.2), вы должны использовать версию v4.

Большие секции v13 будут работать, но если вы используете какие-либо функции в нем, которые используют API платформы 13, ваше приложение будет взорвано на старых устройствах.

Если нет особой причины для необходимости v13, я бы предложил перейти прямо к v4.

9 голосов
/ 07 мая 2013

Ответ правильный, но также немного сбивает с толку!В настоящее время есть 3 опорных банка: V4, V7 и V13.К сожалению, V7 специально предназначен только для gridlayout и поэтому НЕ является надмножеством.

Мы заинтересованы только в одном банке из библиотеки поддержки [если мы не хотим также gridlayout (я не знаю, что это такое!)]Поэтому мы смотрим на наш андроид: minSdkVersion = "8" и проверяем его на наличие jar-файлов.Поэтому мы хотим, чтобы V4.

V13 был только надмножеством в том смысле, что он дублирует методы V4, а НЕ код.Т.е. использование V13 было бы некорректно в этом примере.

5 голосов
/ 24 ноября 2013

Я не думаю, что мы должны использовать надмножество (или подмножество) для описания этих трех библиотек (v4, v7, v13), хотя простейшее значение кажется обратно-совместимым версиями 4, 7 и 13.

Google сначала добавил Fragment в v4, а затем обновлял его при каждой публикации новой версии. Это означает, что если ваше приложение не поддерживает только самую последнюю версию (что настоятельно не рекомендуется), нам нужна поддержка v4 почти всегда . Предположим, что ваш minsdk равен 14, у которого уже есть фрагмент, но «внедренный фрагмент» поддерживает только после 17, поэтому нам все еще нужен v4 и использовать фрагмент v4 в этой ситуации.

В этом году (2013) Google опубликовал v7 и добавил в него appcompat-library. Это означает, что помимо третьей поддержки Actionbar (ActionbarSherlock) до 11 лет официальная поддержка может быть лучше One ?? Тогда я полагаю, что у нас будет каждое обновление функции панели действий, когда каждая новая версия будет опубликована в будущем в v7.

Нам все еще нужно minsdk = XX (между 7 и 10) сегодня (24 ноября 233). Нам следует добавить support-v4 для фрагмента и support-v7 для actionBar оба для лучшей практики.

1 голос
/ 16 сентября 2014

Я проверил исходный код v13, он добавляет только 4 класса.

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

FragmentCompat добавляет 2 статических утилитарных метода, которые уже включены в v4 Fragment.

FragmentPagerAdapter, FragmentStatePagerAdapter и FragmentTabHost, все эти 3 класса имеют соответствующие одинаковые классы имен в v4 и имеют одинаковое поведение.

Дополнительные API, предоставленные в v13, не нужны.

Таким образом, добавив v4, вы можете поддерживать больше платформ, чем v13, с тем же поведением с v13, так почему бы просто не использовать v4?

Так что я не вижу никакой необходимости для v13. Я прав?

0 голосов
/ 24 мая 2015

Немного поздно, но, пожалуйста, внимательно посмотрите на картинку ниже. В файле JAR android-support-v13.jar есть 3 пакета:

  • аннотация
  • v4
  • v13

Это означает, что нам просто нужно добавить эту банку, и мы получим поддержку как v4, так и v13. Поскольку v7 НЕ находится в компиляции, нам нужно добавить этот JAR самостоятельно.

enter image description here

0 голосов
/ 12 мая 2014

v13 просто имеет функции для фрагмента. в основном, если ваш minVersion выше 13 и не используются такие функции, как: FragmentPagerAdapter, FragmentStatePagerAdapter, FragmentTabHost и вложенные фрагменты; вам не нужна поддержка v13.

поэтому "v4 является подмножеством v13" неверно!

...