Разница между android-support-v7-appcompat и android-support-v4


147

Я хотел знать разницу между android-support-v4.jar и android-support-v7-appcompat.jar . Если я хочу добавить панель действий appcompat в свое приложение, нужно ли мне добавлять android-support-v7-appcompat.jar и android-support-v4.jar или только android-support-v7-appcompat.jar .

Кроме того, есть ли в Android-support-v13.jar appcompat?

Ответы:


170

ОБНОВИТЬ

Со времени ответа на этот вопрос в библиотеку поддержки было внесено много изменений. Хорошо, что это очень хорошо задокументировано. Поэтому вы должны прочитать документацию библиотеки поддержки для получения более подробной информации и более доступной библиотеки поддержки.

Начиная с выпуска библиотеки поддержки 26.0.0 (июль 2017 года), минимальный поддерживаемый уровень API для большинства библиотек поддержки увеличен до Android 4.0 (уровень API 14) для большинства библиотечных пакетов.


Ниже приведено отличие от пакетов поддержки библиотеки :

Библиотека поддержки v4

Эта библиотека предназначена для использования с Android 1.6 (уровень API 4), Android 2.3 (уровень API 9), Android 4.0 (уровень API 14) и выше. Он включает в себя самый большой набор API по сравнению с другими библиотеками, включая поддержку компонентов приложения, функций пользовательского интерфейса, доступности, обработки данных, сетевых подключений и программных утилит.

v7 библиотеки

Существует несколько библиотек, разработанных для использования с Android 2.1 (уровень API 7), Android 2.3 (уровень API 9), Android 4.0 (уровень API 14) и выше. Эти библиотеки предоставляют определенные наборы функций и могут быть включены в ваше приложение независимо друг от друга.

v7 appcompat библиотека

В эту библиотеку добавлена ​​поддержка шаблона проектирования пользовательского интерфейса Action Bar.

Примечание. Эта библиотека зависит от библиотеки поддержки v4. Если вы используете Ant или Eclipse, убедитесь, что вы включили библиотеку поддержки v4 как часть пути к этой библиотеке.

Так что да, вам нужны обе банки, если вы хотите использовать v7.


Обновление для android-support-v13.jar

Библиотека поддержки v13

Этот интерфейс устарел на уровне API 27.1.0. Используйте Fragment вместо Fragment.

Библиотека поддержки v13

Эта библиотека предназначена для использования под Android 3.2 (уровень API 13) и выше. Добавлена ​​поддержка шаблона пользовательского интерфейса Fragment с классом (FragmentCompat) и дополнительные классы поддержки фрагментов.

Когда вы видите детали пакета, он имеет класс FragmentCompat, как указано в определении. Так что он имеет не все классы библиотеки appcompat.


2
Если вы разрабатываете приложение из min api 19. Вам это нужно?

2
Библиотеки поддержки v4 - эти библиотеки предназначены для использования с Android 2.3 (уровень API 9) и выше.
Вадик

1
И v7 Support Libraries - есть несколько библиотек, разработанных для использования с Android 2.3 (уровень API 9) и выше.
Вадик

@ user5366495 Наверное, да. Большинство хороших вещей предназначены для, API21 and above и если вы хотите использовать его на более низком уровне, вы должны использовать библиотеку поддержки для этого. Так что вам может понадобиться API19.
Махди-

48

Что такое библиотека поддержки?

Поддерживающие библиотеки - это библиотеки кодов (Коллекция классов), которые позволяют использовать новую функцию для работы со старыми устройствами.
Например, материал Дизайн был введен в API 21 (Android 5.0 - Lolipop) , но библиотека v7-поддержка делает его доступным для API 7 (Android 2.1.x -Eclair) и выше.

Какие есть разные библиотеки поддержки?

Некоторые из основных библиотек поддержки

  • Библиотека поддержки V4

  • Библиотека поддержки V7

  • Библиотека поддержки V8

  • Библиотека поддержки v13

Что означает 7 в библиотеке поддержки v7?

Это означает, что эта библиотека имеет функции, предназначенные для использования с API уровня 7 и выше. То же самое касается V4 (содержит функции, предназначенные для API 4 и выше) и так далее.

Разница между библиотекой поддержки v7 и библиотекой приложений v7?

Немногие люди, включая меня, путаются с этими двумя терминами. На самом деле, библиотека v7 appcompat является частью библиотеки поддержки v7. Библиотека поддержки v7 была разработана главным образом для поддержки проектирования материалов и шаблонов ActionBar для API 7 и выше.
V7 можно разделить на несколько подкатегорий

  • v7 appcompat библиотека

  • v7 cardView библиотека

  • v7 recyclerView библиотека

  • библиотека паллет v7 и т. д.

Библиотека appcompat версии 7 имеет следующие ключевые классы ActionBar, ActionBarActivity, ShareActionProvider.

Итак, добавляя,

com.android.support:appcompat-v7:21.0.+

зависимость в вашем файле Gradle, импортирует вышеупомянутые классы.

бонус

Другие библиотеки поддержки

Multidex Support Library (для создания приложений с более чем 65 тыс. Методов)
Методов v17 Библиотека поддержки Leanback (библиотека поддержки, которая предоставляет важные виджеты для Android TV)

Соответствующие ссылки


6
Это должен быть принятый ответ, четко объясняющий все простыми словами.
Гегобайт

44

Библиотека поддержки требуется только в том случае, если ваша минимальная версия SDK меньше API уровня 11. В противном случае вам не нужно добавлять библиотеку поддержки в ваш проект для API уровня 11 или выше.

android-support-v4.jar: поддержка android.appклассов для разработки приложений для Android API уровня 4 или выше. Так что вы сможете сделать ваше приложение совместимым с обратным словом,

android-support-v7.jar Недавно добавлено в последнее обновление библиотеки поддержки. ActionBar, позволяющий реализовать шаблон проектирования пользовательского интерфейса панели действий на Android 2.1 (уровень API 7) и выше. Использование этого класса требует, чтобы вы реализовали свою деятельность путем расширения нового ActionBarActivityкласса.

Если я хочу добавить панель действий appcompat в свое приложение, нужно ли мне добавлять android-support-v7-appcompat.jar и android-support-v4.jar или только android-support-v7-appcompat.jar.

Да, вам нужно добавить ссылку на обе библиотеки, если вы хотите ее использовать.

у android-support-v13.jar есть appcompat?

Нет, он включает FragmentCompat, так что, если некоторые из компонентов Fragment добавлены после версии 13, вы можете сделать это ключевое слово совместимым с Api уровня 11. так, чтобы приложение, нацеленное на API 11 или выше, могло использовать функцию, которая добавлена ​​в более новых версиях.


9
DrawerLayout/ в NavigationDrawerнастоящее время существует только в библиотеках поддержки.
Киран

3
Существуют и другие компоненты, которые вы можете использовать в своем приложении для Android на основе одной из библиотек поддержки, которая по умолчанию не включена в API более 11, например com.android.support:multidex:1.0.0 и com.android. поддержка: дизайн: 23.1.0. проверьте это для полной информации: developer.android.com/tools/support-library/features.html
aselims

как говорит Google на developer.android.com/topic/libraries/support-library/…, между поддержкой v4 и v7 нет различий. оба для API 9 и выше. Это правда?!
Махди

Кендзи, да, это правда. Google shift min поддерживает от 4 до 9 и от 7 до 9, и обе библиотеки теперь дублируют друг друга.
Ярослав Гаврилович

Если вы разрабатываете приложение из min api 19. Вам это нужно?

10

Во-первых, нам нужно понять, что такое библиотека поддержки Android ?

Библиотека поддержки Android была выпущена в 2011 году. Можно сказать, что в качестве библиотеки совместимости Android. Библиотека поддержки Android предоставляет более новые API для более старых версий. Но истории недостаточно.

это может немного сбивать с толку, поскольку библиотеки поддержки с более высокими номерами версий включают функции из предыдущих библиотек (вы можете подумать, что v7-appcompat улучшается и включает все функции из v4). В большинстве случаев это неверно. Но сами библиотеки имеют номер ревизии. Например, «AppCompat v21» фактически относится к библиотеке поддержки v7-appcompat, редакция 21.

Библиотека поддержки Android - это не одна библиотека, но ее можно условно разделить на две группы: библиотеки совместимости и компонентов.

Библиотеки 1-совместимости фокусируются на функциях бэкпорта из новых выпусков платформы, чтобы устройства с предыдущими выпусками могли использовать преимущества более новых API. Основными библиотеками совместимости являются v4 и v7-appcompat.

библиотека v4 : она включает в себя множество функций и, как следует из ее названия, поддерживает API 4. Кроме того, для поддержки реализаций для основных классов, таких как Fragment и Loader (которые были оба представлены в инфраструктуре в API 11), вы также найдите несколько широко используемых классов, вообще не представленных в платформе, таких как ViewPager и DrawerLayout.

v7-appcompat : библиотека v7-appcompat обеспечивает реализацию поддержки ActionBar (представлена ​​в API 11) и панели инструментов (представлена ​​в API 21) для выпусков обратно в API 7. Она требует библиотеку v4, но не включает ее. Таким образом, любая функция, зависящая от v7-appcompat, также зависит от v4.

2-компонентные библиотеки. Библиотека поддержки Android также предоставляет более мелкие, более модульные библиотеки компонентов, которые позволяют разработчикам добавлять функции, которые иначе не являются частью стандартной платформы. Эти автономные библиотеки могут быть легко добавлены или удалены из проекта, не заботясь о зависимостях. Есть несколько ценных библиотек компонентов для рассмотрения:

v7-recyclerview : предоставляет компонент RecyclerView, который эффективно отображает и анимирует большие объемы данных и предназначен для замены ListView.

v7-cardview : предоставляет компонент CardView, включающий шаблон проектирования пользовательского интерфейса карт

v7-gridlayout : предоставляет класс GridLayout, который позволяет организовать элементы пользовательского интерфейса в прямоугольную сетку. И т.д..

Другие библиотеки Библиотека поддержки Android также содержит несколько других библиотек, которые используются реже, но о которых стоит упомянуть:

v8: обеспечивает поддержку RenderScript (представлен в API 11) обратно в API 8

v13 : обеспечивает дополнительную поддержку совместимости для шаблона пользовательского интерфейса Fragment и связывает библиотеку v4

v17 : предоставляет поддержку для создания ТВ-интерфейсов

Когда я должен использовать библиотеку поддержки Android?

Вам следует использовать одну из библиотек поддержки, когда вам нужны конкретные функции инфраструктуры, которые новее, чем minSdkVersion вашего приложения, или которые недоступны в стандартной структуре.

и я отсылаю этот урок


5

Этот ответ актуален для клиентов библиотек поддержки, чья версия> = 26.0.0:

Внимание ! Начиная с выпуска библиотеки поддержки 26.0.0 (июль 2017 г.), минимальный поддерживаемый уровень API в большинстве библиотек поддержки увеличен до Android 4.0 (уровень API 14) для большинства библиотечных пакетов.

Например, support-v4 и пакет support-v7 поддерживают минимальный уровень API 14, для выпусков библиотеки поддержки от 26.0.0 и выше .

Для получения дополнительной информации см. Библиотека поддержки - Поддержка версий и Имена пакетов .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.