Подтвердить что ты не робот

Android Support Package/Compatibility Library - использовать v4 или v13?

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

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

... и это немного смутило меня! В нем говорится, что библиотека v13 является надмножеством v4, но я думал, что это было наоборот?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

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

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

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

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

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

Ответ 5

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

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

Ответ 6

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

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

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

enter image description here