Архив версий библиотеки поддержки

На этой странице представлены сведения о старых выпусках пакетов библиотеки поддержки. Самые последние выпуски библиотеки поддержки см. в разделе «Последние версии библиотеки поддержки» .

Версия 26.0.0 Бета 2

(июнь 2017 г.)

Обратите внимание, что 26.0.0-beta2 — это предварительная версия. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Новые API

Различия API

Исправления ошибок

  • Удаление Android O SDK приводит к потере курсива в TextViews
  • Исключение нулевого указателя при подключении к MediaBrowserServiceCompat
  • TextInputLayout должен устанавливать подсказки для onProvideAutofillStructure().
  • Переполнение стека при использовании автоматического размера TextView на O

Версия 26.0.0 Бета 1

(май 2017 г.)

Обратите внимание, что 26.0.0-beta1 — это предварительная версия. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Важные изменения

  • FragmentActivity.setSupportMediaController() и FragmentActivity.getSupportMediaController() были удалены. Используйте новые статические методы MediaControllerCompat.setMediaController() и MediaControllerCompat.getMediaController() .
  • BottomNavigationView теперь вызывает onNavigationItemReselected() когда выбран уже выбранный элемент, вместо вызова onNavigationItemSelected() .
  • Все экземпляры метода findViewById() теперь возвращают <T extends View> T вместо View . Это изменение имеет следующие последствия:
    • Это может привести к тому, что существующий код теперь будет иметь неоднозначный тип возвращаемого значения, например, если существуют как someMethod(View) , так и someMethod(TextView) , которые принимают результат вызова findViewById() .
    • При использовании исходного языка Java 8 для этого требуется явное приведение к View , когда тип возвращаемого значения не ограничен (например, assertNotNull(findViewById(...)).someViewMethod()) .
    • Для переопределения нефинальных методов findViewById() (например, Activity.findViewById() ) потребуется обновить тип возвращаемого значения.

Новые API

  • FragmentManager и Fragment имеют метод isStateSaved() , позволяющий запрашивать, будет ли разрешена транзакция без потери состояния. Это особенно полезно проверять при обработке события onClick() перед выполнением какой-либо транзакции.
  • Движение по траектории поддерживается в AnimatedVectorDrawableCompat . Движение по пути позволяет одному аниматору объекта одновременно изменять два свойства на основе одного пути; путь указан как android:pathData в XML аниматора).
  • Физическая анимация :
    • Новый FlingAnimation , поддерживающий анимацию с начальной скоростью и плавным замедлением.
    • Подклассы DynamicAnimation поддерживают анимацию настраиваемого свойства любого объекта.
    • И SpringAnimation , и FlingAnimation теперь могут анимировать значение с плавающей запятой, не требуя связи с ним View или Object .

    Дополнительные сведения см. на страницах предварительного просмотра анимации Spring и Fling .

  • Поддержка шрифтов в XML :
    • ResourcesCompat.getFont позволяет загружать ресурсы шрифтов, включая XML-семейство шрифтов, которые можно использовать с TextView.setTypeface() .
    • При использовании AppCompat TextView поддерживает указание ресурса шрифта или XML-семейства шрифтов через XML-атрибут android:fontFamily .
    • Используйте семейство шрифтов XML для создания семейств шрифтов с различными стилями и насыщенностью. (Если для этого вы используете классы библиотеки поддержки, используйте атрибуты app: а также атрибуты android: )
  • Загружаемые шрифты:
    • Новый FontsContractCompat , который позволяет запрашивать шрифты у поставщика шрифтов, а не объединять их в своем приложении.
    • Шрифты также можно запрашивать в XML и использовать в макетах.
  • Библиотека совместимости Emoji :
    • EmojiCompat может обрабатывать заданную CharSequence и добавлять EmojiSpans .
    • EmojiTextView и другие виджеты для отображения смайлов.
    • FontRequestEmojiCompatConfig для запроса шрифта эмодзи у поставщика шрифтов.
  • Автоматическое изменение размера TextView :
    • Новые методы в TextViewCompat , а также атрибуты XML для управления автоматическим изменением размера в TextView .
  • Элементы управления воспроизведением Leanback с поддержкой поиска:
    • Новый PlaybackTransportRowPresenter , который отображает элементы управления воспроизведением с помощью SeekBar.
    • Новый PlaybackTransportControlGlue , который работает с PlaybackTransportRowPresenter и поддерживает поиск.
    • Новый базовый класс PlaybackSeekDataProvider для приложения, предоставляющий миниатюры поиска для PlaybackTransportControlGlue .
  • Хранилище данных предпочтений:
    • PreferenceDataStore теперь позволяет вам реализовать собственное хранилище настроек, заданное с помощью новых методов в Preference и PreferenceManager .

Известные проблемы

  • Интеграция совместимости загружаемых шрифтов и эмодзи со службами Google Play работает только в службах Google Play v11+, которые в настоящее время доступны в рамках бета-программы служб Google Play .

Исправления ошибок

  • API MediaBrowserCompat.search() не работает (проблема AOSP 262170 )
  • ViewCompat.postInvalidateOnAnimation() выдает исключение (проблема AOSP 80146 )
  • onActivityCreated() вызывает фрагменты в уничтоженном действии
  • RecyclerView.isComputingLayout() должен возвращать true во время предварительной выборки.
  • Когда переход Fade прерывается и инвертируется, View запускает анимацию с самого начала. (Исправление перенесено из Android Framework.)
  • Transition.Fade игнорирует начальную альфа-версию View (проблема AOSP 221820 ).

Версия 26.0.0 Альфа 1

(март 2017 г.)

Обратите внимание, что 26.0.0-alpha1 — это предварительная версия. Интерфейс API может быть изменен, и он не обязательно включает в себя функции или исправления ошибок из последних стабильных версий библиотеки поддержки.

Важные изменения

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

  • Модуль процента поддержки устарел. Клиентам этого модуля следует перейти на новый виджет ConstraintLayout, который предоставляется как отдельный артефакт в SDK Manager.
  • Модуль support-fragment больше не зависит от модуля support-media-compat.

Новые API

Добавлено множество новых классов, методов и констант для обеспечения обратной совместимости API-интерфейсов платформы, добавленных в O Preview.

  • IME_FLAG_NO_PERSONALIZED_LEARNING : IME могут прослушивать флаги «необучения» для приложений, имеющих приватный режим, таких как браузеры. Эта функция помогает IME понять, находится ли приложение в приватном режиме, поэтому они могут отключить функции обучения или адаптивности, пока приложение находится в этом режиме.

Полный список изменений API между 25.2.0 и 26.0.0-alpha1 см. в отчете о различиях API библиотеки поддержки .

Исправления ошибок

  • В некоторых случаях простая анимация AutoTransition может прерываться «прыжками» просмотра. (выпуск AOSP 221816 )

Версия 25.4.0

(июнь 2017 г.)

Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно загружать репозиторий поддержки из SDK Manager. Дополнительные сведения см. в разделе Настройка библиотеки поддержки .

Важные изменения

  • executePendingTransactions() , commitNow() , popBackStackImmediate() и подобные вызовы транзакций не допускаются во время изменения состояния FragmentManager . Реентерабельное выполнение транзакций небезопасно, и FragmentManager теперь обеспечивает это при изменении своего состояния.
  • Одновременно с выпуском этой библиотеки поддержки мы также выпускаем версию multidex 1.0.2. Эта версия включает в себя следующие важные изменения:
    • Позволяет мультидексировать APK инструментов.
    • Устаревший MultiDexTestRunner (вместо него следует использовать AndroidJUnitRunner).
    • Обеспечивает лучшую защиту от неправильного управления извлечением архивов приложения.
    • Исправлена ​​ошибка, которая могла привести к удалению временных файлов.
    • Обеспечивает более быструю установку при одновременном выполнении.
    • Исправляет ошибку установки API 19 и 20.

Новые и измененные API

Морфирование пути и интерполяция пути поддерживаются в AnimatedVectorDrawableCompat . Морфинг пути позволяет фигурам изменяться с одного пути (указанного как android:valueFrom ) на другой путь (указанный как android:valueTo ), чтобы обеспечить сложные и привлекательные визуальные эффекты. Интерполяция пути позволяет указывать интерполяторы для AnimatedVectorDrawableCompat как пути (указанные как android:pathData в XML интерполятора).

Различия API

Исправлены проблемы

  • Исключение нулевого указателя при подключении к MediaBrowserServiceCompat
  • API MediaBrowserCompat.search() не работает (проблема AOSP 262170 )
  • Обратные вызовы BrowseFragment onItemClicked не работают в версии 25.3.0
  • NullPointerException при прокрутке вверх и вниз в ВертикальномGridView в 25.3.1
  • ClassCastException в SimpleArrayMap.allocArrays()

Версия 25.3.1

(март 2017 г.)

Исправлены проблемы

  • SwitchCompat требует минимальной версии SDK 14 или выше. (выпуск AOSP 251302 )
  • updateListener анимации на основе физикиListener пропускает первый кадр.
  • Анимация метки BottomNavigationView не работает.

Версия 25.3.0

(март 2017 г.)

Важные изменения

Метаданные версии библиотеки поддержки будут автоматически добавлены в AndroidManifest.xml при сборке из Gradle, что упрощает отслеживание версий в общедоступных сборках. Например:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

Устаревания

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

ExifInterface
Логический метод getLatLong(float[]) устарел. Вместо этого используйте новый метод getLatLong() , который не принимает аргументов и возвращает double[] .
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) устарел. Вместо этого используйте новый метод setErrorMessage(int, CharSequence) , которому передается код ошибки и необязательное описание.
EXTRA_SUGGESTION_KEYWORDS устарел. Вместо этого используйте функцию поиска MediaBrowserCompat .
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() был переименован в LinearLayoutManager.getInitialPrefetchItemCount() . Старое имя по-прежнему поддерживается, но будет удалено в будущем выпуске.

Новые и измененные API

appcompat-v7
Новый метод ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) упрощает отключение анимации значка переключения панели навигации.
customtabs
Добавлена ​​поддержка каналов сообщений. Подробности см. в справочниках CustomTabsService.requestPostMessageChannel() и CustomTabsService.postMessage() .
dynamic-animation
Новая библиотека анимации на основе физики, предоставляющая набор API для создания анимаций, динамически реагирующих на ввод пользователя.
leanback-v17
Добавлена ​​поддержка фона с параллаксом. Подробности смотрите в справочнике Parallax .
Добавлен виджет TimePicker для выбора времени в интерфейсе телевизора.
mediacompat
Добавлена ​​функция поиска. Подробности см. в справочниках MediaBrowserCompat.search() и MediaBrowserServiceCompat.onSearch() .
Добавлена ​​поддержка режимов случайного и повторного воспроизведения. Подробности см. в справке по MediaSessionCompat.setRepeatMode() и setShuffleModeEnabled() .

Исправлены проблемы

Версия 25.2.0

(февраль 2017 г.)

Важные изменения

Исправлены проблемы

  • В этом выпуске исправлена ​​серьезная проблема с медиамаршрутизатором, из-за которой использование устройства A2DP и ​​API-интерфейсов маршрутизации мультимедиа могло привести к тому, что устройство перестанет отвечать на запросы и потребуется перезагрузка.
  • Класс FragmentManager.FragmentLifecycleCallbacks теперь статический.

Исправлены проблемы

  • Показ слайд-презентации с зеркальным отображением экрана приводит к отключению устройства от Wi-Fi.
  • Кнопка «Медиа» некорректно обрабатывала мультимедийные приложения, которые не зарегистрировались с помощью setMediaButtonReceiver()
  • Ошибка VectorDrawable со строковым ресурсом (проблема AOSP 232407 )
  • TextInputLayout накладывает подсказку и текст, если текст задан XML (проблема AOSP 230171 ).
  • Утечка памяти в MediaControllerCompat (проблема AOSP 231441 )
  • Сбой RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
  • Сбой RecyclerView при переработке держателей представлений (проблема AOSP 225762 )
  • getAllowGeneratedReplies() неправильно возвращает false для действий внутри WearableExtender

Версия 25.1.1

(январь 2017 г.)

Важно: существует известная ошибка в классе android.support.v7.media.MediaRouter в версиях 25.1.1 и 25.1.0 библиотеки поддержки. Если ваше приложение использует MediaRouter v7, вам следует обновить библиотеку поддержки до версии 25.2.0 , которая исправляет эту ошибку.

Важные изменения

  • Транзакции фрагментов теперь можно оптимизировать внутри транзакций и между ними. Оптимизация операций фрагментных транзакций может исключить операции, которые отменяются. Например, предположим, что две транзакции выполняются вместе: одна добавляет фрагмент A, а вторая заменяет фрагмент A фрагментом B. В этом случае первая операция может быть отменена и добавлен только фрагмент B. Это означает, что фрагмент A может не пройти жизненный цикл создания/уничтожения.

    Побочным эффектом этой оптимизации является то, что фрагменты могут иметь изменения состояния не в ожидаемом порядке. Например, предположим, что одна транзакция добавляет фрагмент A, вторая добавляет фрагмент B, затем третья удаляет фрагмент A. Без оптимизации фрагмент B мог бы ожидать, что пока он создается, фрагмент A также будет существовать, потому что фрагмент A будет удален после фрагмента. Добавлен Б. При оптимизации фрагмент B не может быть уверен, что фрагмент A будет существовать во время создания B, поскольку создание и уничтожение фрагмента A может быть устранено оптимизацией.

    По умолчанию эта оптимизация отключена. Чтобы включить оптимизацию, вызовите FragmentTransaction.setAllowOptimization(true) .

  • Фрагменты теперь могут откладывать свои переходы и анимацию до тех пор, пока они не будут готовы, используя Fragment.postponeEnterTransition() и Fragment.startPostponedEnterTransition() . Этот API похож на Activity.postponeEnterTransition() и Activity.startPostponedEnterTransition() используемые с переходами активности.

Исправлены проблемы

  • MediaSessionCompatTest завершается с ошибкой с IllegalArgumentException
  • DetailsFragment.installTitleView() не вызывается в версии 25.1.0
  • Транзакция фрагмента сохраняет призрачное представление при выходе (проблема AOSP 230679 )
  • BottomNavigationView требуется расстояние между значком элемента и текстом (проблема AOSP 230653 ).
  • Выбранные прослушиватели отсутствуют в новых PlaybackFragment и PlaybackSupportFragment
  • Фокус TextInputLayout не меняется должным образом в эмуляторе из библиотеки поддержки версии 25.1.0 (проблема AOSP 230461 )
  • Невозможно заменить меню BottomNavigationView (проблема AOSP 230343 ).
  • RecyclerView с StaggeredGridLayoutManager аварийно завершает работу с элементами полного диапазона (проблема AOSP 230295 )
  • Сбой в MediaSessionCompat при использовании setCallback(null)
  • PlaybackGlueHostOld и PlaybackSupportGlueHostOld не уведомляют обратные вызовы при изменении строки воспроизведения.
  • Пример PlaybackOverlayFragment /test не может начать воспроизведение
  • RecyclerViewFocusRecoveryTest не работает на API 15
  • Строка «Скриншоты» сфокусирована в верхней части экрана.
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() аварийно завершает работу на API 15
  • setActions() в onSubactionClicked() не работает
  • RecyclerView аварийно завершает работу при переработке некоторых держателей представлений.

Версия 25.1.0

(декабрь 2016 г.)

Важно! В классе android.support.v7.media.MediaRouter в версиях 25.1.1 и 25.1.0 библиотеки поддержки имеется известная ошибка. Если ваше приложение использует MediaRouter v7, вам следует обновить библиотеку поддержки до версии 25.2.0 , которая исправляет эту ошибку.

Важные изменения

  • Клиенты вложенных виджетов RecyclerView (например, список с вертикальной прокруткой списков с горизонтальной прокруткой) могут получить значительный выигрыш в производительности, сообщая менеджерам макетов внутренних виджетов RecyclerView , сколько элементов нужно подготовить перед прокруткой на экране. Вызовите LinearLayoutManager.setInitialPrefetchItemCount( N ) , где N — количество просмотров, видимых для каждого внутреннего элемента. Например, если ваши внутренние горизонтальные списки отображают минимум три с половиной представления элементов одновременно, вы можете повысить производительность, вызвав LinearLayoutManager.setInitialPrefetchItemCount(4) . Это позволяет RecyclerView заранее создавать все соответствующие представления, пока внешний RecyclerView прокручивается, что значительно уменьшает количество заиканий во время прокрутки.
  • FragmentActivity.setSupportMediaController() и FragmentActivity.getSupportMediaController() устарели. Используйте новые статические методы MediaControllerCompat.setMediaController() и MediaControllerCompat.getMediaController() .
  • Когда клиент указывает оттенок виджета с помощью оттенка appcompat (например, appcompat:buttonTint ), клиент несет ответственность за предоставление всех необходимых состояний (таких как «отключено», «нажато» и т. д.). Это соответствует тому, как задаются оттенки виджетов при использовании тонирования платформы.

Новые и измененные API

Исправлены проблемы

  • Переключатель видимости пароля не проходит тесты на доступность.
  • Appcompat не учитывает state_enabled на устройствах до L.
  • В RecyclerView добавлен механизм восстановления фокуса. Это также исправило нарушение фокуса поддержки преф-фрагментов при использовании навигации DPAD, например, на устройствах Android TV.
  • Leanback: BrowseFragment аварийно завершает работу с отключенными заголовками и пустым адаптером.
  • Appcompat: AlertDialog слишком широк.
  • InputContentInfoCompat вызывает requestPermission() когда он должен вызвать releasePermission() .
  • MediaBrowserCompat аварийно завершает работу.
  • КоординаторLayout измеряет/выкладывает представления, когда для видимости установлено значение GONE .
  • Не удалось оттенить AnimatedVectorDrawableCompat на уровне API ниже 24.
  • Библиотека Leanback вызывает ложные ошибки lint
  • Библиотека палитр вызывала сбои тестов на каждом уровне API
  • RecyclerView не прошел тесты на Leanback
  • Сбой RecyclerView при переработке держателей представлений (проблема AOSP 225762 )
  • Fragment.onDestroy() не вызывается для фрагмента в стеке
  • Экран CollapsingToolbarLayout не прорисовывается в свернутом виде
  • CoordinatorLayout.offsetChildByInset() вызывает исключение IllegalArgumentException
  • Анимация элементов RecyclerView отделяет внутренние RecyclerView и предотвращает будущие предварительные выборки.
  • Прикрепленные элементы RecyclerView не могут быть вложенными с предварительной выборкой.
  • Данные предварительной выборки для вложенных элементов RecyclerView отбрасываются при первом макете.
  • Предварительная выборка RecyclerView завершается с ошибкой, если два события перетаскивания приходят в одну и ту же позицию
  • RecyclerView должен спекулятивно создавать макет во время рендеринга RenderThread.
  • Цветовые ресурсы с ночной конфигурацией, преобразованные в Drawables, не всегда должным образом удаляются из кэша ресурсов.
  • FloatingActionButton : программная установка BackgroundTintList не работает должным образом (проблема AOSP 227428 ).
  • TextInputLayout : шрифт не устанавливается для ErrorView (проблема AOSP 227803 ).
  • TextInputLayout всегда возвращается к световому цвету ошибки ниже API 23 (проблема AOSP 221992 ).
  • FloatingActionButton отображается как нажатая, когда указатель уходит

Полный список общедоступных исправлений ошибок доступен на сайте AOSP Issue Tracker .

Устаревания

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

Версия 25.0.1

(ноябрь 2016 г.)

Исправлены проблемы

  • Переключатель пароля TextInputLayout теперь отключен по умолчанию, чтобы избежать ненужной перезаписи конечных элементов рисования, указанных разработчиком. Его можно включить вручную с помощью XML-атрибута passwordToggleEnabled .
  • Элементы BottomNavigationView теперь представляют собой одну строку, соответствующую спецификации материала.
  • RecyclerView аварийно завершает работу во время предварительной выборки, если менеджер макетов имеет значение null.
  • Высота BottomNavigationView теперь установлена ​​правильно. (выпуск AOSP 226182 )
  • Сбой BottomNavigationView при программном добавлении пунктов меню. (выпуск AOSP 225731 )
  • Исправлены составные элементы TextInputLayout слева и справа. (выпуск AOSP 225836 )
  • RecyclerView аварийно завершает работу при переработке держателей представлений. (выпуск AOSP 225762 )
  • Leanback: TalkBack часто произносит слово «null» в режиме разделенного экрана.
  • RecyclerView : проблемы с рендерингом в Android Studio. (выпуск AOSP 225753 )
  • BottomNavigationView по-прежнему показывает выбранный элемент меню после того, как onNavigationItemSelected() возвращает false. (выпуск AOSP 225898 )
  • ForwardingListener выдает NoSuchMethodError . (выпуск AOSP 225647 )
  • TextInputEditText не отображает подсказки в режиме извлечения IME. (выпуск AOSP 221880 )

Полный список общедоступных исправлений ошибок доступен на сайте AOSP Issue Tracker .

Версия 25.0.0

(октябрь 2016 г.)

Важные изменения

  • Конструктор ContextCompat стал защищенным. Этот класс не должен создаваться публично, но он может быть расширен с помощью библиотек поддержки, ориентированных на новые уровни API.
  • Конструктор ActivityCompat стал защищенным. Этот класс не должен создаваться публично, но он может быть расширен с помощью библиотек поддержки, ориентированных на новые уровни API.
  • getReferrer(Activity) стал статическим.
  • android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) удален. Любые клиентские реализации этого метода следует удалить.
  • android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) был удален. Использование следует заменить методом с более подходящим названием fromMediaSession() .
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) удален. Использование следует заменить методом MediaSessionCompat.QueueItem#fromQueueItem с более подходящим названием.
  • android.support.v7.widget.Space удален. Использование следует заменить на android.support.v4.widget.Space .

Новые API

  • Класс android.support.design.widget.BottomNavigationView реализует шаблон нижней навигации из спецификации Material Design.
  • Новый пакет android.support.v13.view.inputmethod включает классы для доступа к функциям android.view.inputmethod.InputConnection , представленным после уровня API 13.
  • Класс android.v7.widget.RecyclerView.DividerItemDecoration предоставляет базовую реализацию вертикальных или горизонтальных разделителей между элементами.
  • Новые оформленные стили в android.support.v7.app.NotificationCompat , DecoratedCustomViewStyle и DecoratedMediaCustomViewStyle , зеркальные классы добавлены в API платформы 24.

Исправлены проблемы

Полный список общедоступных исправлений ошибок доступен на сайте AOSP Issue Tracker .

Версия 24.2.1

Сентябрь 2016 г.

Исправленные проблемы:

Полный список общедоступных исправлений ошибок доступен на сайте AOSP Issue Tracker .

Версия 24.2.0

август 2016 г.

Версия 24.2.0 содержит следующие изменения:

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

Разделение библиотеки поддержки v4

В этом выпуске библиотека поддержки v4 была разделена на несколько более мелких модулей:

support-compat
Предоставляет оболочки совместимости для новых API-интерфейсов платформы, таких как Context.getDrawable() и View.performAccessibilityAction() .
support-core-utils
Предоставляет ряд служебных классов, таких как AsyncTaskLoader и PermissionChecker .
support-core-ui
Реализует различные компоненты, связанные с пользовательским интерфейсом, такие как ViewPager , NestedScrollView и ExploreByTouchHelper .
support-media-compat
Резервное копирование частей медиа- фреймворка, включая MediaBrowser и MediaSession .
support-fragment
Выполняет резервное копирование структуры фрагментов . Этот модуль имеет зависимости от support-compat , support-core-utils , support-core-ui и support-media-compat .

В целях обратной совместимости, если вы укажете support-v4 в своем скрипте Gradle, ваш APK будет включать все эти модули. Однако, чтобы уменьшить размер APK, мы рекомендуем вам просто перечислить конкретные модули, которые нужны вашему приложению.

Обновления API

  • Клиенты, использующие пользовательские вкладки, могут контролировать, должны ли открываться мгновенные приложения. (Обратите внимание, что мгновенные приложения еще не общедоступны.) Чтобы включить или отключить мгновенные приложения, вызовите CustomTabsIntent.Builder.setInstantAppsEnabled() или укажите EXTRA_ENABLE_INSTANT_APPS . По умолчанию пользовательские вкладки по умолчанию включают мгновенные приложения, когда эта функция станет доступной.
  • TextInputLayout добавляет поддержку переключения видимости пароля из спецификации дизайна материала.
  • Новый пакет android.support.transition переносит платформу Transitions на уровни API 14 и выше. Дополнительную информацию см. в справочнике android.support.transition .
  • Библиотека поддержки пользовательских вкладок добавляет поддержку использования RemoteViews на дополнительной панели инструментов. Существующий метод setToolbarItem() устарел.
  • AppCompatResources добавляет возможность загружать <vector> (на уровне API 9 и выше) или <animated-vector> (на уровне API 11 и выше) из идентификатора ресурса с помощью нового метода getDrawable() .
  • CoordinatorLayout теперь поддерживает определение вложенных представлений и указание того, что другие представления должны уклоняться от вложенных представлений. Это позволяет приложениям копировать шаблоны поведения, аналогичные тому, как FloatingActionButton уходит с пути Snackbar , но для любых дочерних элементов произвольного представления. Дополнительные сведения см. в справочной документации LayoutParams.insetEdge и LayoutParams.dodgeInsetEdges .
  • Новый класс DiffUtil может вычислять разницу между двумя коллекциями и отправлять список операций обновления, которые подходят для использования RecyclerView.Adapter .
  • RecyclerView.OnFlingListener был добавлен для поддержки пользовательского поведения в ответ на выбросы. Класс SnapHelper предоставляет реализацию специально для привязки дочерних представлений, а класс LinearSnapHelper расширяет эту реализацию, обеспечивая поведение привязки с выравниванием по центру, аналогичное ViewPager .
  • Библиотека пользовательских вкладок теперь позволяет клиентам запрашивать стандартный пользовательский интерфейс браузера, а не пользовательский интерфейс пользовательских вкладок, путем вызова CustomTabsIntent.setAlwaysUseBrowserUI() . Такое поведение полезно в тех случаях, когда браузер по умолчанию использует пользовательский интерфейс с настраиваемыми вкладками, но пользователь выразил предпочтение стандартному пользовательскому интерфейсу браузера.

Изменения в поведении

  • Если вы используете функцию дня/ночи библиотеки appcompat, система теперь автоматически воссоздает вашу активность при каждом изменении дневного/ночного режима (либо из-за времени суток, либо из-за вызова AppCompatDelegate.setLocalNightMode() ).
  • Snackbar теперь отображается за панелью навигации, если строка состояния полупрозрачна.

Библиотека Медиамаршрутизатора

Устройства Bluetooth больше не отображаются в качестве медиа-маршрутов. Маршрутизация звука на устройства Bluetooth теперь контролируется исключительно на уровне системы Android.

Устаревания

Устаревшие классы и методы могут быть удалены в будущем выпуске. Вам следует как можно скорее отказаться от этих API.

  • Некоторые методы в следующих классах требовались только для API 8 и более ранних версий и больше не должны использоваться. Вместо этого используйте реализации фреймворка.
    • android.support.v4.view.KeyEventCompat : заменить на KeyEvent
    • android.support.v4.view.MotionEventCompat : использовать MotionEvent
    • android.support.v4.view.ViewCompat : использовать View
    • android.support.v4.view.ViewConfigurationCompat : используйте ViewConfiguration
  • AccessibilityServiceInfoCompat.getDescription() устарел в пользу AccessibilityServiceInfoCompat.loadDescription() , который возвращает правильно локализованное описание.
  • Не следует напрямую создавать экземпляр класса ActivityCompat . Нестатический метод getReferrer(Activity) будет сделан статическим в следующем выпуске.
  • CoordinatorLayout.Behavior.isDirty() устарел и больше не вызывается CoordinatorLayout . Любые реализации, а также любые вызовы этого метода должны быть удалены.
  • MediaSessionCompat.obtain() устарел и заменен методом с более подходящим названием fromMediaSession() .
  • MediaSessionCompat.QueueItem.obtain() устарел и заменен методом с более подходящим названием fromQueueItem() .
  • Несколько абстрактных классов были признаны устаревшими и заменены интерфейсами, которые более точно отражают их эквиваленты в рамках платформы.
  • CustomTabsSession.setToolbarItem() устарел и заменен на метод setSecondaryToolbarViews() на основе RemoteViews.

Исправления ошибок

В выпуске 24.2.0 исправлены следующие известные проблемы:

  • Убедитесь, что индикатор SwipeRefreshLayout отображается при вызове setRefreshing(true) перед первым проходом измерения ( проблема AOSP 77712 ).
  • Запретить мерцание TabLayout при смене страниц ( проблема AOSP 180454 )
  • Избегайте ClassNotFoundException при демаршаллинге SavedState на уровне API 11 и ниже ( проблема AOSP 196430 ).

Полный список общедоступных исправлений ошибок доступен на сайте AOSP Issue Tracker .

Версия 24.1.1

июль 2016 г.

Исправленные проблемы:

  • Устранена проблема в выпуске 24.1.0, которая затрагивала идентификаторы ресурсов, совместно используемые библиотеками поддержки. Из-за этой проблемы приложения, которые зависели от библиотек поддержки с ресурсами (такими как дизайн и совместимость приложений), сталкивались с проблемами, вызванными несоответствием идентификаторов ресурсов.

Версия 24.1.0

июль 2016 г.

Изменения в библиотеке поддержки v4 :
  • NotificationCompat.Action.WearableExtender имеет новые методы getHintDisplayActionInline() и setHintDisplayActionInline() для совместимости с Android Wear 2.0 Preview . Эти методы позволяют приложению указать, что действие должно отображаться вместе с уведомлением.
  • Вызов Fragment.setUserVisbileHint() больше не приведет к тому, что фрагмент начинается, если намек был добавлен в FragmentTransaction , которое еще не совершено. Это затрагивает пользователей FragmentPagerAdapter , которые переопределяют setUserVisbileHint() и предполагают определенное состояние жизненного цикла фрагмента после вызова super.setUserVisibleHint() . Для получения дополнительной информации см. Справочную страницу для Docs для Fragment.setUserVisbileHint() .

Исправлены проблемы:

  • TABLAYOUT.SETCUSTOMVIEW (NULL) приводит к NullPointerException ( ASOSP -выпуск 214753 )
  • TABLAYOUT неправильно выделяет пользовательские вкладки ( ASOSP Assues 214316 )
  • Appcompattexthelper использует неправильно отсортированный массив атрибутов ( ASOSP выпуск 214366 )
  • Невозможно ссылаться на VectordRawable из Drawable Container XML при использовании Custom ContextWrapper ( AOSP -выпуск 214055 )
  • ViewDraghelper.savelastmotion () бросает arrayindexoutofboundsexception ( выпуск AOSP 212945 )
  • BottomSheetBehavior расширяется до старой высоты контента при использовании SetState (state_expeded) ( ASOSP -выпуск 213660 )
  • CollapsingToolBarlayout не обрабатывает вершины с верхней или нижней полями ( ASOSP выпуск 213001 )
  • Название Leanback Browse не поддерживает выравнивание RTL ( выпуск AOSP 213461 )
  • PagertabStrip исчезает из -за отсутствующей унаследованной аннотации ( выпуск AOSP 213359 )
  • Привлечение данных бросает NullPointerException при использовании Boolean для установки условных флагов ( AOSP Issue 191841 )
  • Координаторлайут не отвечает на SetFitsSystemWindows () ( ASOSP -выпуск 212720 )
  • BotherSheetBehavior сбои при установлении начального состояния ( ASOSP Issue 203114 )
  • ViewPager пропускает страницы, если индекс страницы является большим значением ( выпуск AOSP 211734 )
  • BottomSheetBehavior не работает с динамическими макетами ( ASOSP Issue 205226 )

Редакция 24.0.0

июнь 2016 г.

Изменения в библиотеке поддержки V4 :
  • Добавлен Fragment.commitNow() для синхронного коммита
  • Добавлено NotificationCompat.MessagingStyle для многопартийных разговоров
  • Добавлено NotificationManagerCompat.areNotificationsEnabled() и getImportance()
  • MediaSessionCompat теперь отражает функциональность MediaSession и больше не вызывает setMediaButtonReceiver() автоматически

ПРИМЕЧАНИЕ. Только MediaBrowserServiceCompat в версии 24.0.0 совместим с будущими версиями Android за пределами API 24. Если вы используете предыдущие версии, обновите эту версию, чтобы обеспечить совместимость.

Изменения в библиотеке v7 appcompat :
  • Добавлена ​​поддержка для ссылки на тематические ColorStateList объекты из XML
Изменения в библиотеке поддержки дизайна :
Изменения для библиотеки Leanback V17 :
  • Добавлено OnboardingFragment адаптирование
Изменения для пользовательских вкладок :
  • Добавлена ​​поддержка для предоставления иерархии RemoteViews для вторичной панели инструментов
  • Добавлен CustomTabsClient.connectAndInitialize() для однострочной разминки

Редакция 23.4.0

май 2016 г.

Изменения в библиотеке поддержки V4 :
  • Фиксированная проблема, в которой фрагменты были добавлены в неправильном порядке. ( Выпуск 206901 )
  • Исправлена ​​проблема, когда панель приложений не была проведена после прокрутки за кадром. ( Выпуск 178037 )
Изменения в библиотеке v7 appcompat :
Изменения в библиотеке поддержки дизайна :
Изменения для Векторная библиотека натяжений:

Редакция 23.3.0

апрель 2016 г.

Изменения в библиотеке поддержки V4 :
  • Добавлен AppLaunchChecker , чтобы помочь отслеживать, как ваше приложение было запущено пользователем в прошлом. hasStartedFromLauncher() позволяет вам узнать, запустил ли пользователь ваше приложение с домашнего экрана или было запускается только другие средства (например, для просмотра конкретных веб -URL).
  • Исправлена ​​утечка памяти в MediaBrowserServiceCompat.mConnections . ( Выпуск 205220 )
  • Исправлена ​​проблема, где ViewPager не учитывает маржу страницы на странице переворачивания. ( Выпуск 203816 )
  • Fragment.onRequestPermissionsResult() теперь доставляется в фрагменты детей.
Изменения в библиотеке v7 appcompat :
  • Исправлена ​​проблема в AppCompatSpinner , которая может привести к появлению нескольких всплывающих часов. ( Выпуск 205052 )
  • Исправлена ​​проблема с тем, как кнопки без границ были окрашены. ( Выпуск 202967 )
  • Исправлена ​​проблема совместимости между AppCompatDialogFragment и AlertDialog . ( Выпуск 204805 )
  • Отвещенные изменения в TintResources , которые вызывали проблемы с памятью и конфигурацией. ( Выпуск 205236 )
Изменения для библиотеки Mediarouter V7 :
Изменения в библиотеке предпочтений V7 :
Изменения в библиотеке v7 recyclerview :
  • Исправлена ​​ошибка, где RecyclerView не вызовет обратные вызовы прокрутки, если растет диапазон видимых предметов. ( Выпуск 200987 )
  • Исправлена ​​ошибка, в которой RecyclerView , если бы она была в линейной макете, была взвешена и содержал изображения. ( Выпуск 203276 )
  • Исправлена ​​авария в OrientationHelper.getStartAfterPadding() . ( Выпуск 180521 )
  • Исправлена ​​авария с использованием android:nestedScrollingEnabled . ( Выпуск 197932 )
Изменения в библиотеке поддержки дизайна :
  • Исправлена ​​ошибка, где скрытый нижний лист будет обрабатывать сенсорные события. ( Выпуск 203654 )
  • Исправлена ​​проблема с макетом с BottomSheetBehavior , когда fitsSystemWindows верно. ( Выпуск 203057 )
  • Исправлена ​​проблема с доступностью с Snackbar . ( Выпуск 182145 )
  • Исправлена ​​авария на переключателе Snackbar . ( Выпуск 203924 )
  • Исправлена ​​ошибка в AppBarLayout с enterAlways . ( Выпуск 203661 )
  • Исправлена ​​ошибка, в которой TextInputLayout излишне очищает цвет фонового фильтра EditText объекта. ( Выпуск 203357 )

Редакция 23.2.1

Март 2016 года

Изменения в библиотеке поддержки V4 :
Изменения в библиотеке v7 appcompat :
  • Загрязненная зависимость от векторных активов, так что разработчики, использующие библиотеку AppCompat, не вынуждены использовать VectorDrawable и связанные с ним флаги сборки.
  • Исправлена ​​проблема совместимости с ночным режимом и уровнем API 23. ( Выпуск 201910 )
  • Исправлена ​​проблема совместимости с SwitchCompat и API -уровнем 7. ( Выпуск 201942 )
  • Исправлена ​​проблема с распространением значений конфигурации в ресурсах. Объекты выпуска 201928
  • Исправлена ​​проблема совместимости, в которой кнопка android.support.v7.app.NotificationCompat.MediaStyle отмена становится невидимой на уровне API 21 и ниже. ( Выпуск 202156 )
  • Исправлена ​​сбоя совместимости с AppCompatSpinner на уровне API 21 и ниже. ( Выпуск 202246 )
  • Исправлена ​​проблема, в которой app:textAllCaps = "false" стиль не сработал. ( Выпуск 202117 )
  • Исправлена ​​сбой при восстановлении SearchView . ( Выпуск 201836 )
  • Исправлена ​​утечка памяти, которая возникает при окраске ресурсов, используемых на притяжительных ресурсах с использованием AppCompat. ( Выпуск 202379 )
  • Исправлена ​​проблема с KeyEvent на уровне API 11 и ниже. ( Выпуск 202939 )
Изменения в библиотеке V7 CardView :
Изменения в библиотеке v7 recyclerview :
  • Исправлены ошибки, связанные с различными методами показателя. ( Выпуск 201856 )
  • Уменьшение периода блокировки, в котором RecyclerView не разрешает изменения адаптера при расчете макета или прокрутки. ( Выпуск 202046 )
  • Исправлена ​​сбой при вызове notifyItemChanged() на элементе, который выходит из виду. ( Выпуск 202136 )
  • Исправлена ​​авария, которая возникает, когда RecyclerView.LayoutManager добавляет и удаляет представление в том же проходе измерения. ( Выпуск 193958 )
Изменения для библиотеки Mediarouter V7 :
Изменения для библиотеки Leanback V17 :
  • Исправлена ​​проблема с GridLayout.onAddFocusables() , которая привела к выбору неправильного элемента.
  • Фиксированная проблема с действиями GuidedStepFragment исчезает после разрушения действия.
Изменения в библиотеке поддержки дизайна :
  • Исправлена ​​сбоя TabLayout , вызванную накладкой. ( Выпуск 201827 )
  • Исправлена ​​ошибка в NavigationView , которая привела к выбору неправильного цвета. ( Выпуск 201951 )
  • Исправлена ​​ошибка, где setBackgroundTintList() больше не смог изменить цвет фона. ( Выпуск 201873 )
  • Исправлена ​​проблема, в которой AppBarLayout не полностью прокручивался из виду при использовании с android:fitsSystemWindows = “true” . ( Выпуск 201822 )
  • Исправлена ​​проблема, в которой BottomSheetDialog неправильно отображала короткие представления контента. ( Выпуск 201793 )
  • Исправлена ​​проблема, в которой BottomSheetDialogFragment двигались спорадически, когда контент внутри был изменен. ( Выпуск 202125 )
  • Исправлена ​​аварий в контр -ссылке TextInputLayout
  • Исправлена ​​авария, которая произошла, когда TextInputLayout.getCounterMaxLength() восстановил сохраненное состояние. ( Выпуск 202375 )
  • Исправлена ClassCastException , которое произошло при восстановлении CoordinatorLayout используя сохраненное состояние представления, которое не было CoordinatorLayout .
Изменения для VectordRawableCompat:
  • Исправлена ​​ошибка, в которой была прочитана неправильная переменная для android:tintMode . ( Выпуск 201907 )

Редакция 23.2.0

февраль 2016 г.

Изменения в библиотеке поддержки V4 :
  • Добавлен MediaBrowserCompat для поддержки MediaBrowser и MediaBrowserServiceCompat для поддержки MediaBrowserService . Это полезно при подключении фонового сервиса приложения медиа с компонентами пользовательского интерфейса и интеграции с Android Auto и износом Android без требуния уровня API 21 или выше.
  • Система теперь называется onActivityResult() для вложенной FragmentActivity .
Изменения в библиотеке v7 appcompat :
  • Добавлено функциональность ночного режима к уровню API 14 и выше. Переключитесь между светом материала и темными темами материала в зависимости от времени суток или настройки, специфичной для приложения.
    • День и ночные темы можно найти здесь: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode() : устанавливает режим приложения по умолчанию, передавая одну из следующих констант:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode() : переопределяет настройку ночного режима для локального компонента приложения.
    • AppCompatDelegate.getDefaultNightMode() : возвращает ночной режим по умолчанию.
Изменения для библиотеки Mediarouter V7 :
  • MediaRouteControllerDialog теперь правильно применяет пользовательские цвета темы приложения.
Изменения в библиотеке поддержки дизайна :
  • Добавлена ​​поддержка нижних листов . Плагин взаимодействия, BottomSheetBehavior , позволяет ребенку вид на CoordinatorLayout , чтобы действовать как нижний лист. Базовый класс, BottomSheetCallback , предоставляет обратные вызовы для мониторинга событий нижних листов.
Изменения в библиотеке поддержки CustomTabs :
  • Вкладки Chrome Custom теперь позволяют приложениям включать в себя нижнюю панель с кнопками действий в дополнение к существующей кнопке Top Action.
  • CustomTabsIntent.Builder.addToolBarItem() : добавляет кнопку действия на пользовательскую вкладку. Вы можете использовать это, чтобы добавить несколько кнопок.
  • CustomTabsSession.setToolBarItem() : обновляет визуальные эффекты для элементов панели инструментов. Этот метод будет успешным только в том случае, если ему будет дано действительный идентификатор, а сеанс браузера находится на переднем плане.
Добавлена ​​библиотека поддержки VectordRawable:
  • Добавлены классы:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • Добавляет поддержку VectorDrawable активов к приложениям, работающим на уровне API 7 или выше. AnimatedVectorDrawable активы также поддерживаются на уровне API 11 или выше. Векторные активы могут быть значительно меньше, чем активы изображения, и должны помочь уменьшить размер приложения, уменьшая количество активов, необходимых для поддержки нескольких экранов устройства.
  • Эта библиотека в настоящее время является зависимостью библиотеки AppCompat V7 , позволяя разработчикам и AppCompat легко использовать векторные притяжения. Чтобы использовать VectorDrawableCompat в рамках ImageButton или ImageView , используйте app:srcCompat XML -атрибут или метод setImageResource() .
  • Чтобы сохранить ссылки на идентификаторы атрибутов на уровне 20 или ниже API, добавьте следующий флаг appt в свою build,gradle File:
    • Если вы строите с плагином Android для Gradle 1.5.0 или ниже, добавьте следующее в свой файл build.gradle :
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • Если вы строите с плагином Android для Gradle 2.0.0 или выше, добавьте следующее в свой файл build.gradle :
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
Изменения для библиотеки Leanback V17 :
  • Добавлены новые возможности в GuidedStepFragment , который является компонентом, который руководит пользователями через решение или серию решений:
    • Добавленные кнопки действий к GuidedAction :
      • GuidedStepFragment.setButtonActions() : устанавливает список кнопок GuidedAction , которые пользователь может выбрать из представления действий.
    • Описание Поля теперь редактируются:
      • GuidedAction.Builder.descriptionEditable() : при прохождении true устанавливает описание действия как редактируемое.
      • GuidedAction.getEditDescription() : возвращает редактируемое описание в качестве CharSequence .
    • Добавлены раскрывающиеся списки суб-действий:
      • GuidedAction.setSubActions() : устанавливает список GuidedAction в качестве раскрывающегося меню суб-действий.
  • Добавлена ​​виджет GuidedDatePickerAction для функциональности DatePicker :
    • Дата выбирается с использованием столбцов года, месяца и дневного и имеет настраиваемый диапазон.
    • GuidedDatePickerAction.Builder : Clailder Class для объекта GuidedDatePickerAction .
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat) : Установите желаемый формат даты, передавая соответствующую треххарактерную String , например, “YMD” или “MDY” . В качестве альтернативы используйте атрибут datePickerFormat XML.
Изменения в библиотеке v7 recyclerview :
  • RecyclerView теперь имеет функцию Opt-In, называемую Automeasure , которая позволяет RecyclerView.LayoutManager легко обернуть содержание или обрабатывать различные спецификации измерения, предоставляемые родителем RecyclerView . Он поддерживает все существующие возможности анимации RecyclerView .
    • Если у вас есть пользовательский RecyclerView.LayoutManager , вызовите setAutoMeasureEnabled(true) чтобы начать использовать новый API Automeasure. Все встроенные объекты RecyclerView.LayoutManager по умолчанию включают автоматическую меру.
    • RecyclerView.LayoutManager больше не игнорирует некоторые настройки RecyclerView.LayoutParams , такие как MATCH_PARENT в направлении прокрутки.

      Примечание. Эти снятые ограничения могут вызвать неожиданное поведение в ваших макетах. Убедитесь, что вы указали правильные параметры макета.

  • При обновлении RecyclerView.ViewHolder с информацией о полезной нагрузке DefaultItemAnimator теперь отключает анимацию изменений.
  • Теперь вы можете изменить скорость побега ItemTouchHelper , чтобы контролировать чувствительность к удару. Чтобы упростить или труднее перемещаться, переопределите getSwipeEscapeVelocity(float defaultValue) и измените defaultValue .

Редакция 23.1.1

ноябрь 2015 г.

Изменения в библиотеке v7 recyclerview:
  • Исправлена ​​аварий, который происходит, когда вы выполняете действие с проливным ударом, которое обеспечивает утилита ItemTouchHelper , а затем добавляете элемент. ( Выпуск 190500 )
Изменения в библиотеке предпочтений V7:
  • Исправлена ​​проблема с использованием прогноза. ( Выпуск 183261 )
Изменения в библиотеке поддержки Leanback V17:
  • Исправлено ряд внутренних проблем в этой библиотеке.
Изменения в библиотеке поддержки дизайна:
  • Добавлен метод getHeaderView в класс NavigationView .
  • Исправлена ​​прозрачная проблема с фоном для объекта FloatingActionButton на устройствах под управлением Android 4.0 (API -уровень 15) и ниже. ( Выпуск 183315 )

Редакция 23.1.0

Октябрь 2015 г.

Изменения в библиотеке поддержки V4:
  • Добавлена ​​поддержка интерфейса интерфейса OnScrollChangedListener к виджету NestedScrollView . Это позволяет получать обратные вызовы при изменении позиций Scroll X или Y.
  • Добавлен класс MediaButtonReceiver для пересылки, полученного контроля воспроизведения в услугу, которая управляет классом MediaSessionCompat . У класса MediaSessionCompat есть конструктор, который может автоматически найти приемник кнопки мультимедиа в манифесте. Приемник из кнопки мультимедиа является ключевой частью для обработки элементов управления воспроизведением от оборудования или элементов управления Bluetooth.
Изменения в библиотеке v7 appcompat:
  • Добавленный дизайн материала Seekbar и виджеты ImageButton .
  • Обновлено виджет ImageView , чтобы поддержать функцию оттенка.
  • Обновил внешний вид виджета SwitchCompat .
Изменения для библиотеки Mediarouter V7:
  • Добавлены следующие функции в класс MediaRouteChooserDialog :
    • Отображает страницу загрузки при обнаружении поставщиков медиа -маршрутов.
    • Включает значок типа устройства для более легкой идентификации устройства.
    • Сортирует маршруты в соответствии с частотой использования в текущем приложении.
    • Поддерживает ландшафтный режим.
  • Добавлены следующие функции в класс MediaRouteControllerDialog :
    • Распознает литье экрана и дает правильное описание.
    • Поддерживает различные размеры искусства альбома и соотношения сторон и загружает искусство асинхронно.
    • Автоматически выбирает цвет контента на основе основного цвета приложения.
    • Регулирует макет диалога на основе доступного пространства экрана на устройстве.
    • Поддерживает ландшафтный режим.
Изменения в библиотеке палитры V7:
  • Добавлен метод setRegion() для поддержки извлечения цвета из определенной области объекта Bitmap .
Изменения в библиотеке v7 recyclerview:
  • Добавлен улучшенный API анимации в класс ItemAnimator для лучшей настройки:
    • Изменение анимации больше не обеспечивает соблюдение двух копий объекта ViewHolder , которые позволяют анимации содержимого элемента. Кроме того, объект ItemAnimator решает, хочет ли он повторно использовать тот же объект ViewHolder или создать новый.
    • Новая информационная запись API дает классу ItemAnimator гибкость для сбора данных в правильной точке в жизненном цикле макета. Эта информация позже передается в озабоченные вызовы.
  • Предоставил легкий план перехода для этого изменения API-несогласного на обратном направлении:
    • Если вы ранее расширили класс ItemAnimator , вы можете изменить свой базовый класс на SimpleItemAnimator , и ваш код должен работать, как и раньше. Класс SimpleItemAnimator предоставляет старый API, обернув новый API.
    • Некоторые методы были удалены из класса ItemAnimator . Следующий код больше не будет компилировать:
    • Котлин

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Ява

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      Вы можете заменить его:

      Котлин

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Ява

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
Изменения в библиотеке поддержки предпочтений V7 , V14 и V17 :
  • Удаленные API для управления диалогами EditText .
Изменения в библиотеке поддержки Leanback V17:
  • Добавлена ​​версия класса GuidedStepFragment для библиотеки поддержки (расширяет android.support.v4.app.Fragment ) и улучшенные анимации и переходы.
  • Обновил класс GuidedStepFragment , чтобы его можно было размещать поверх существующего контента.
  • Добавлена ​​возможность аннотировать различные типы завершений поиска в класс SearchFragment .
  • Добавлена ​​ошеломленная поддержка перехода слайда в класс VerticalGridFragment .
Изменения в библиотеке поддержки дизайна:
  • Добавлена ​​поддержка подсчета символов к виджету TextInputLayout .
  • Добавлена ​​поддержка сдачи в классе AppBarLayout , добавив константу SCROLL_FLAG_SNAP . Когда прокрутка заканчивается, если представление только частично видно, представление складывается и прокручивается до его ближайшего края.
  • Добавлена ​​поддержка пользовательских представлений в класс NavigationView с помощью app:actionLayout Attribute или MenuItemCompat.setActionView() .
Изменения в библиотеке поддержки пользовательских вкладок:
  • Добавлен метод enableUrlBarHiding() в CustomTabsIntent Class. Он позволяет клиенту настроить, следует ли автоматически скрыть на URL -план.
  • Добавлен метод setActionButton() в класс CustomTabsSession . Он позволяет клиенту изменить значок для пользовательской кнопки действий на уже запущенной пользовательской вкладке.
  • Добавлены константы TAB_SHOWN и TAB_HIDDEN в качестве новых событий для метода onNavigationEvent класса CustomTabsCallback .

Редакция 23.0.1

Сентябрь 2015 г.

Изменения в библиотеке поддержки предпочтений V7 и V14 :
  • Добавлены макет дизайна материала и файлы стиля. ( Выпуск 183376 )
Изменения в библиотеке v7 appcompat:
  • Фиксированные проблемы с аварией для класса Fragment , ограничивая использование аппаратных слоев до Android 4.1 (уровень 16 API 16) и выше. ( Выпуск 183896 )
  • Исправлена ​​проблема, в которой аппаратные кнопки не работали, когда деятельность установила класс Toolbar , чтобы выступить в качестве ActionBar , используя метод setSupportActionBar() . ( Выпуск 183334 )
  • Обновлено класс AppCompatDialogFragment , чтобы он больше не Windows feature must be requested before adding content . ( Выпуск 183186 )
Изменения в библиотеке поддержки дизайна:
  • Исправлена ​​класс AppBarLayout , так что теперь он рисует правильно после вращения. ( Выпуск 183109 )
  • Исправлена ​​класс TabLayout так что теперь он ведет себя правильно, когда пользователь нажимает после удара. ( Выпуск 183123 )
Изменения в библиотеке поддержки пользовательских вкладок:
  • Понизил значение minSdkVersion с 16 до 15 для поддержки версий.
  • Добавил способ генерировать CustomTabsSessionToken из намерения.

Редакция 23

август 2015 г.

Добавлены новые библиотеки поддержки:

Полный список изменений библиотеки поддержки см. В отчете API библиотеки поддержки .

Редакция 22.2.1

июль 2015 г.

Изменения в библиотеке поддержки дизайна:
  • Добавлены методы hide() и show() в класс FloatingActionButton для программного запуска анимации.
  • Добавлена ​​постоянная LENGTH_INDEFINITE в класс Snackbar для демонстрации закусочной до тех пор, пока она не будет уволена, или не будет показана другая закусочная. Кроме того, добавлены методы setActionTextColor(int) и setActionTextColor(ColorStateList) .
  • Добавлен метод getSelectedTabPosition() в класс TabLayout для получения вкладки в настоящее время выбранной вкладки.
  • Предоставил полностью беглый API для класса android.support.v7.app.NotificationCompat.MediaStyle для цепочки методов.
  • Добавлены методы удобства к RecyclerView для пакетной вставки элементов.

Полный список изменений библиотеки поддержки см. В отчете API библиотеки поддержки .

Редакция 22.2.0

май 2015 г.

Добавлена ​​библиотека поддержки дизайна:
  • Добавлен TextInputLayout для отображения текста EditText Hint и ошибки в виде плавающих метков.
  • Добавлено FloatingActionButton для реализации первичного действия на вашем интерфейсе в качестве кнопки «Плавающее действие», поддерживающую размеры по умолчанию или мини -размеры.
  • Добавлена Snackbar для обеспечения легкой обратной связи с дополнительным действием в анимированной закусочной.
  • Добавлена TabLayout для реализации фиксированных и прокручиваемых вкладок , а также легкой интеграции с ViewPager .
  • Добавлен NavigationView для реализации содержания навигационных ящиков , включая возможность раздувать элементы меню через ресурс меню .
  • Добавлен CoordinatorLayout , компоновка общего назначения, используемая для построения зависимостей между видами брата и позволяет простым реакциям прокрутки между компонентами через CoordinatorLayout.Behavior . Behavior. Многие из компонентов библиотеки дизайна полагаются на то, чтобы стать ребенком CoordinatorLayout .
  • Добавлен AppBarLayout , контейнер для Toolbar и других видов (таких как TabLayout ) для реагирования на события прокрутки путем прокрутки экрана, становясь видимым в реакции на прокрутку вниз, или рухнуть/разоблачить, прежде чем прокручивать/на экране.
  • Добавлены CollapsingToolbarLayout для контроля того, как Toolbar обрушивается. Панель инструментов может рухнуть с помощью: закрепления компонентов в верхней части экрана, когда она рушится, внедряя параллакс прокрутки компонентов, таких как ImageView , или добавление цвета содержимого при приеме вида частично обрушивается.
Изменения в библиотеке поддержки V4:
Изменения в библиотеке v7 appcompat :

Полный список изменений библиотеки поддержки см. В отчете API библиотеки поддержки .

Редакция 22.1.0

апрель 2015 г.

Изменения в библиотеке аннотаций:
  • Добавлена ​​библиотека аннотаций, чтобы обеспечить поддержку улучшенных инспекций кода. Аннотации добавляются в виде тегов метаданных, которые вы прикрепляете к переменным, параметрам и возвращаемым значениям, чтобы осмотреть возвращаемые значения метода, пропущенные параметры, а также локальные переменные и поля.
Изменения в библиотеке поддержки V4:
  • Добавлен класс ColorUtils , чтобы обеспечить набор методов утилиты, связанных с цветом.
  • Добавлены методы unwrap() и wrap() в класс DrawableCompat , что позволяет использовать setTint() , setTintList() и setTintMode() на всех устройствах API уровня 4 или выше.
  • Добавлено класс TraceCompat для записи трассировки в системный буфер трассы, который затем можно собрать и визуализировать с помощью инструмента Systrace .
  • Добавлен класс CircularIntArray для создания структур данных круговой целочисленной массива.
  • Добавлены методы clear() , removeFromStart() и removeFromEnd() в класс CircularArray . Кроме того, изменили существующие методы в этом классе, чтобы быть нефильными.
  • Добавлено InputDeviceCompat в качестве помощника класса для доступа к данным в классе InputDeviceCompat .
  • Добавлен класс LayoutInflaterCompat в качестве помощника класса для доступа к данным в классе LayoutInflaterCompat и добавил интерфейс LayoutInflaterFactory .
  • Добавлены классы, методы и интерфейсы для поддержки вложенной прокрутки.
    • Добавлены вложенные классы NestedScrollingChildHelper и NestedScrollingParentHelper для реализации вложенных взглядов на прокрутки родителей и детей.
    • Добавлено интерфейс NestedScrollingChild для реализации подклассов View .
    • Добавлены интерфейсы NestedScrollingParent и ScrollingView для поддержки операций прокрутки и обеспечения API, связанных с прокруткой.
    • Добавлен метод getNestedScrollAxes() в класс ViewGroupCompat .
    • Добавлены методы в класс ViewParentCompat для поддержки вложенной прокрутки.
    • Добавлен класс NestedScrollView для поддержки вложенного прокрутки родителей и ребенка в новой и старой версиях Android.
  • Добавлены методы и константы в класс MotionEventCompat для получения значений оси и источника событий.
  • Обновлено класс AccessibilityNodeInfoCompat , чтобы добавить методы для ошибок, недействительную контент и этикетки.
  • Добавлены следующие классы интерполяции для анимации: FastOutLinearInInterpolator , FastOutSlowInInterpolator , LinearOutSlowInInterpolator , LinearOutSlowInInterpolator и PathInterpolatorCompat .
  • Добавлен Space класс, чтобы создать разрывы между компонентами в макетах общего назначения. Этот класс устарел в библиотеке Gridlayout.
  • Добавлен класс TextViewCompat для доступа к функциям в TextView .
  • Добавлен параметр смещения в метод onPull() в классе EdgeEffectCompat .
Изменения в библиотеке v7 appcompat :
  • Добавлена ​​поддержка TINT в виджеты AppCompat, включая AppCompatAutoCompleteTextView , AppCompatButton , AppCompatCheckBox , AppCompatCheckedTextView , AppCompatEditText , AppCompatMultiAutoCompleteTextView , AppCompatRadioButton , AppCompatRatingBar , AppCompatSpinner , и AppCompatTextView .
  • Обновлено AppCompatActivity как базовый класс для действий, которые используют функции строки действий библиотеки поддержки. Этот класс заменяет устаревшую ActionBarActivity .
  • Добавлено интерфейс AppCompatCallback , который будет реализован для AppCompat, чтобы иметь возможность выполнять обратные вызовы.
  • Добавлен класс AppCompatDelegate Abstract в качестве делегата, который вы можете использовать для расширения поддержки AppCompat на любую деятельность.
  • Добавлен класс AppCompatDialog в качестве базового класса для диалогов тематических тематических акций AppCompat.
  • Добавлены классы стиля Spinner AlertDialog и AlertDialog.Builder , чтобы предоставить AppCompat Themed AlertDialog .
  • Добавлен класс Palette.Builder Для создания экземпляров Palette .
    • Добавлено метод from(Bitmap) в класс Palette , чтобы начать генерировать палитру с возвращенной Palette.Builder .
    • Установил Palette.generate() и Palette.generateAsync() Методы.
  • Добавлен метод getAbsoluteAlignment() в класс GridLayout.Spec .
  • Умеренное использование app:theme для Toolbar для стиля. Теперь вы можете использовать android:theme для панелей инструментов на всех устройствах API 7 и более высоких устройств и android:theme для всех виджетов на уровне API 11 и более высоких устройств.
Изменения для библиотеки Leanback V17 :
Изменения в библиотеке v7 recyclerview :
  • Добавлены классы SortedList для отображения элементов в заказе списка и предоставлены уведомлением об изменениях в списке.
  • Добавлен класс SortedListAdapterCallback , который может связать сортированный список с классом RecyclerView.Adapter .
Изменения для библиотеки рендеров V8 :
  • Добавлен класс ScriptIntrinsicHistogram для использования в качестве фильтра гистограммы.
  • Добавлен класс ScriptIntrinsicResize для выполнения изменения размера 2D -распределения.

Редакция 22

Март 2015 г.

Изменения в библиотеке поддержки V4:
  • Обновлено метод getDrawable() для возврата объекта Draitable для указанного конкретного идентификатора ресурса, плотности экрана и темы.
  • Добавлен метод setImportantForAccessibility() , чтобы вы могли указать, следует ли представить события доступности.
  • Добавлен метод getStatusBarBackgroundDrawable() , чтобы вы могли получить фон стержня состояния.
  • Добавлены методы в класс NotificationCompat.CarExtender.UnreadConversation , чтобы приложения Android Auto Messaging могли получить дополнительные данные уведомления.
  • Добавлен метод getProgressCircleDiameter() , чтобы вернуть диаметр макета круга.
  • Изменил цвет DrawerLayout по умолчанию на colorPrimaryDark .
Изменения в библиотеке v7 appcompat :
Изменения для библиотеки Leanback V17 :
  • Добавлены методы getRecycledPoolSize() и setRecycledPoolSize() чтобы разрешить настраиваемые размеры переработанных пулов.
  • Добавлен атрибут WRAP_CONTENT в настройку ширины макета для поддержки обернутого контента для значков заголовка.
  • Определено R.transition в XML для улучшения обновлений перехода.
  • Enabled support for right to left layouts.
  • Added the play and pause media key events support to the PlaybackOverlayFragment class.
  • Added enter and return transitions to the BrowseFragment class and the DetailsFragment class.
  • Added the replace() method to replace items in an object's adapter array.
Changes for v7 mediarouter library :
Changes for v7 recyclerview library :

Revision 21.0.3

декабрь 2014 г.

Changes for v4 support library:

Revision 21.0.2

ноябрь 2014 г.

Changes for v4 support library:
Changes for v7 appcompat library :
  • Added the PopupMenu constructor to support new popup menus.
  • Added support for a Collapse icon description in the Toolbar class.
  • Updated the SearchView widget to support displaying the commitIcon .
  • Removed the buttonGravity attribute from the Toolbar class.
Changes for v7 cardview library :
Changes for v7 recyclerview library :
Changes for v17 leanback library :
  • Added support to generate v4 code fragments.
  • Changed the secondary text color on CardView .

Revision 21.0.1

ноябрь 2014 г.

Added multidex support library to support multiple Dalvik Executable (DEX) files for multi-dex file support prior to Android 5.0.

Revision 21

Октябрь 2014 г.

Changes for v4 support library:
  • Added support for Fragment transitions for devices running Android 5.0 (API level 21). Be aware that transitions have no effect on devices running Android 4.4 and lower.
  • Added DocumentFile to ease the transition from File while working with document trees. However, this class demands more processing overhead compared to the platform's DocumentsContract API added in Android 4.4 (API level 19). So you should switch to using DocumentsContract when running on Android 4.4 and higher.
Changes for v7 appcompat library :
  • Added support for material design user interfaces.
  • Added Toolbar , which generalizes the functionality of ActionBar for use within app layouts.
  • Updated ActionBarDrawerToggle , which contains the menu-to-arrow animation
  • Updated common user interface widgets to allow tinting via theme attributes when running on pre-Android 5.0 devices
  • Added SwitchCompat , a backport of the Switch widget that was added in Android 4.0 (API level 14).
New v7 cardview library :
  • Added the CardView widget, which provides a material design-compatible implementation for displaying data items.
New v7 recyclerview library :
  • Added the RecyclerView widget, which provides a flexible list view for providing a limited window into a large data set.
New v7 palette library :
  • Added Palette class, which lets you extract prominent colors from an image.
New v17 leanback library :

Revision 20

июль 2014 г.

Changes for v4 support library:

Revision 19.1.0

Март 2014 г.

Changes for v4 support library:
  • Added the SwipeRefreshLayout class, which enables users to refresh the contents of a view with a vertical swipe gesture.
  • Fixed accessibility issues with navigation drawers.
Changes for v7 appcompat library:
  • Fixed background issues with the action bar.

Revision 19.0.1

декабрь 2013 г.

Changes for v4 support library:
Changes for v7 mediarouter library:
Changes for v8 renderscript library
  • Added error propagation for the RenderScript thunking layer.

Revision 19

Октябрь 2013 г.

Changes for v4 support library:
Changes for v7 mediarouter library:
  • Added support for media playback queuing, setting HTTP header values and media playback duration.
  • Added explicit start, get, and end session actions for explicitly managing media playback sessions with media router.

Revision 18

июль 2013 г.

Changes for v4 support library:
  • Пользовательский интерфейс
    • Added BidiFormatter for handling text strings that combine right to left and left to right-formatted text.
    • Modified ViewPager to better handle cases where the pager has a measured width of zero in the initial layout processing.
    • Modified DrawerLayout and SlidingPaneLayout to not throw exceptions for measurement while the project code is being edited.
  • Доступность
  • СМИ
    • Added TransportMediator helper class to manage media transport control, such as play, pause, skip and other media actions.
    • Added DisplayManagerCompat for managing display output to one or more device displays.
  • Другие изменения
New v7 appcompat library:
  • Added ActionBar to allow implementation of the action bar user interface design pattern back to Android 2.1 (API level 7) and higher. Use of this class requires that you implement your activity by extending the new ActionBarActivity class.
New v7 mediarouter library:

Added a new mediarouter library that provides support for the Google Cast developer preview . The v7 mediarouter library APIs provide a means of controlling the routing of media channels and streams from the current device to external screens, speakers, and other destination devices, with compatibility back to Android 2.1 (API level 7). See V7 mediarouter library for more information.

The v7 mediarouter library APIs introduced in Support Library r18 are subject to change in later revisions of the Support Library. At this time, we recommend using the library only in connection with the Google Cast developer preview .

Revision 13

май 2013 г.

Changes for v4 support library:
New v7 gridlayout library:
  • Added GridLayout to provide support for the GridLayout layout object.
  • Added android.support.v7.widget.Space which can be used to create blank areas within a GridLayout layout object.

Revision 12

февраль 2013 г.

Changes for v4 support library:
  • Improved interaction behavior for ViewPager .
  • Fixed a bug that could cause ViewPager to select the wrong page.
  • Fixed use of removeView() method during layout for ViewPager .
  • Fixed issue with SearchViewCompat where using the back button to dismiss does not clear the search text. This fix only applies to host API levels 14 and higher.

Revision 11

ноябрь 2012 г.

Changes for v4 support library:

Revision 10

август 2012 г.

Changes for v4 support library:
  • Added support for notification features introduced in Android 4.1 (API level 16) with additions to NotificationCompat .

Revision 9

июнь 2012 г.

Changes for v4 support library:

Revision 8

апрель 2012 г.

Changes for v4 support library:
  • Fixed intent flags for PendingIntent objects generated by TaskStackBuilder .
  • Removed unused attributes from the gridlayout library projects to make sure the library can be built with API level 7 and higher.
  • Added .classpath and .project files for the gridlayout library project.

Revision 7

Март 2012 г.

Changes for v4 support library:
  • Added ShareCompat , which provides helper classes for sending and receiving content for social sharing applications, including new metadata for attributing shared data to the source app. This class also provides compatible integration with the new ShareActionProvider in Android 4.0.
  • Added NavUtils and TaskStackBuilder to provide support for implementing the Android Design guidelines for navigation. These additions include a way to implement the action bar's Up button across versions. For an example implementation of this pattern, see the AppNavigation sample in ( <em><sdk></em>/samples/<em><platform></em>/AppNavigation ).
  • Added NotificationCompat.Builder to provide a compatibility implementation of Android 3.0's Notification.Builder helper class for creating standardized system notifications.

Revision 6

декабрь 2011 г.

Note: Reference for support library APIs are now available with the framework references, for example: android.support.v4.app .

Changes for v4 support library:
  • Changes to ViewPager:
    • Added extra decorative view support for ViewPager . Decorative views may be supplied as child views of a pager in XML layout.
    • Added PagerAdapter.getPageTitle() to supply title strings for pages, which defaults to no title for each page.
    • Added PagerTitleStrip , a non-interactive title strip, that can be added as a child of ViewPager. Developers can supply text appearance and color, as well as layout sizing and gravity information.
    • Updated PagerAdapter methods to take ViewGroup objects, rather than View to avoid class casting in adapter implementations.
    • Updated ViewPager to use Launcher-style fling behavior.
    • Bug fixes for user interface interaction and test automation.
  • Support for Fragments:
  • Support for Accessibility APIs:

Revision 5

декабрь 2011 г.

Changes for v4 support library:

Revision 4

октябрь 2011 г.

Changes for v4 support library:
  • Added EdgeEffectCompat to support EdgeEffect .
  • Added LocalBroadcastManager to allow applications to easily register for and receive intents within a single application without broadcasting them globally.
  • Added support in ViewCompat to check for and set overscroll modes for View s on Android 2.3 and later.
  • Changes to Fragment APIs:
    • Added new APIs to control the visibility of new menus.
    • Added custom animation APIs.
    • Added APIs in FragmentActivity to retain custom, non-configuration instance data.
    • Various bug fixes.
  • Fixed a Loader bug that caused issues in canceling AsyncTask s when running on Froyo and older versions of the platform. The support code now uses its own version of AsyncTask to keep the same behavior on all platform versions.

Revision 3

July 2011

Changes for v4 support library:
  • Adds support for Fragment.SavedState
  • Adds MotionEventCompat to support newer MotionEvent APIs
  • Adds VelocityTrackerCompat to support a newer VelocityTracker APIs
  • Adds ViewConfigurationCompat to support a newer ViewConfiguration APIs
  • All new APIs (available only in the support library) that allow you to create UIs with horizontal paging, allowing users to swipe left and right between content views. Classes to support this include:
    • ViewPager : A ViewGroup that manages the layout for the child views, which the user can swipe between.
    • PagerAdapter : An adapter that populates the ViewPager with the views that represent each page.
    • FragmentPagerAdapter : An extension of PagerAdapter for flipping between fragments.
    • FragmentStatePagerAdapter : An extension of PagerAdapter for flipping between fragments that uses the library's support for Fragment.SavedState .
New v13 support library:
  • Includes the FragmentPagerAdapter and FragmentStatePagerAdapter to support the horizontal paging.

    These are exactly the same as the APIs added to the v4 support library, but rely on other platform components in Android 3.2. Use this library instead of v4 if you're developing for Android 3.2 and higher (all other APIs in the v4 library are already available with API level 13).

Revision 2

май 2011 г.

Changes for v4 library:

Revision 1

март 2011 г.

Initial release with the v4 library.