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

Примечание. С выпуском Android 9.0 (уровень API 28) появилась новая версия библиотеки поддержки AndroidX , которая является частью Jetpack . Библиотека AndroidX содержит существующую библиотеку поддержки, а также новейшие компоненты Jetpack.

Вы можете продолжать использовать библиотеку поддержки. Исторические артефакты (версии 27 и более ранних, упакованные как android.support.* ) останутся доступными в Google Maven. Однако разработка всех новых библиотек будет происходить в библиотеке AndroidX .

Мы рекомендуем использовать библиотеки AndroidX во всех новых проектах. Вам также следует рассмотреть возможность переноса существующих проектов на AndroidX.

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

Библиотека поддержки Android, изначально представлявшая собой единую двоичную библиотеку для приложений, превратилась в набор библиотек для разработки приложений. Многие из этих библиотек теперь являются настоятельно рекомендуемой, если не обязательной, частью разработки приложений.

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

Внимание: начиная с версии библиотеки поддержки 26.0.0 (июль 2017 г.) минимальный поддерживаемый уровень API в большинстве библиотек поддержки увеличен до Android 4.0 (уровень API 14) для большинства пакетов библиотек. Дополнительные сведения см. в разделе Поддержка версий и имена пакетов на этой странице.

Использование библиотек поддержки

Есть несколько различных применений вспомогательных библиотек. Классы обратной совместимости для более ранних версий платформы — лишь один из них. Вот более полный список способов использования вспомогательных библиотек в вашем приложении:

  • Обратная совместимость для новых API . Большое количество вспомогательных библиотек обеспечивает обратную совместимость с новыми классами и методами платформы. Например, класс поддержки Fragment обеспечивает поддержку фрагментов на устройствах под управлением версий Android ниже 3.0 (уровень API 11).
  • Удобство и вспомогательные классы . Библиотеки поддержки предоставляют ряд вспомогательных классов, особенно для разработки пользовательского интерфейса. Например, класс RecyclerView предоставляет виджет пользовательского интерфейса для отображения и управления очень длинными списками, который можно использовать в версиях Android начиная с уровня API 7 и выше.
  • Отладка и утилиты . Существует ряд функций, которые обеспечивают полезность помимо кода, который вы включаете в свое приложение, включая библиотеку support-annotations для улучшенной проверки кода при вводе методов и поддержку Multidex для настройки и распространения приложений с более чем 65 536 методами.

Использование поддержки и API-интерфейсов Framework

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

  • Совместимость определенной функции . Если вы хотите поддержать последнюю функцию платформы на устройствах, на которых работают более ранние версии платформы, используйте эквивалентные классы и методы из библиотеки поддержки.
  • Совместимость функций связанных библиотек . Более сложные классы вспомогательной библиотеки могут зависеть от одного или нескольких дополнительных классов вспомогательной библиотеки, поэтому для этих зависимостей следует использовать классы вспомогательной библиотеки. Например, класс поддержки ViewPager следует использовать с классами поддержки FragmentPagerAdapter или FragmentStatePagerAdapter .
  • Общая совместимость устройств . Если у вас нет конкретной функции платформы, которую вы собираетесь использовать в своем приложении с обратной совместимостью, все равно рекомендуется использовать в своем приложении классы библиотеки поддержки. Например, вы можете использовать ActivityCompat вместо класса Activity платформы, чтобы в дальнейшем воспользоваться преимуществами новых функций, таких как включение новой модели разрешений, представленной в Android 6.0 (уровень API 23).

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

Примечание. Библиотеки поддержки не предоставляют эквивалентные классы и методы для каждого API платформы. В некоторых случаях вам может потребоваться обернуть вызов метода платформы явной проверкой версии SDK и предоставить альтернативный код для обработки методов, недоступных на устройстве. Дополнительные сведения об использовании проверок версий в коде см. в разделе «Поддержка различных версий платформы» .

Поддержка версий и имена пакетов

Некоторые из пакетов библиотеки поддержки имеют имена пакетов, обозначающие минимальный уровень API, который они изначально поддерживали, с использованием нотации av#, например пакет support-v4. Начиная с версии библиотеки поддержки 26.0.0 (выпущенной в июле 2017 г.), минимальный поддерживаемый уровень API изменился на Android 4.0 (уровень API 14) для всех пакетов библиотеки поддержки. По этой причине при работе с любым последним выпуском библиотеки поддержки не следует предполагать, что нотация пакета v# указывает минимальный уровень поддержки API. Это изменение в последних выпусках также означает, что пакеты библиотек с версиями v4 и v7 по существу эквивалентны по минимальному уровню поддерживаемого ими API. Например, пакет support-v4 и support-v7 поддерживают минимальный уровень API 14 для выпусков библиотеки поддержки от 26.0.0 и выше.

Поддержка версий выпуска библиотеки

Версия выпуска библиотеки поддержки, например 24.2.0 или 25.0.1, отличается от минимального уровня API, поддерживаемого любой библиотекой в ​​этом выпуске. Номер версии выпуска указывает, для какой версии API платформы она была создана, и следовательно, какие самые последние API могут быть включены в эту версию библиотек.

В частности, первый раздел номера версии выпуска, например 24 в версии 24.2.0, обычно соответствует версии API платформы, доступной на момент ее выпуска. Уровень версии версии библиотеки поддержки указывает, что она включает в себя некоторые функции этого уровня API, но не следует предполагать, что она обеспечивает совместимость со всеми функциями, выпущенными в новой версии API платформы.

Зависимости библиотеки

Большинство библиотек в пакете библиотек поддержки Android в некоторой степени зависят от одной или нескольких библиотек. Например, почти все библиотеки поддержки зависят от пакета support-compat . В общем, вам не нужно беспокоиться о зависимостях библиотек поддержки, поскольку инструмент сборки gradle управляет зависимостями библиотек за вас, автоматически включая зависимые библиотеки.

Если вы хотите увидеть, какие библиотеки и зависимости библиотек включены в ваше приложение, выполните следующую команду в корне сборки вашего проекта разработки приложения, чтобы получить отчет о зависимостях для этого проекта, включая библиотеки поддержки Android и другие библиотеки:

gradle -q dependencies your-app-project:dependencies

Дополнительные сведения о добавлении библиотек поддержки в проект разработки с помощью Gradle см. в разделе Настройка библиотеки поддержки . Дополнительные сведения о работе с Gradle см. в разделе Настройка сборки .

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