Джетификатор

Автономный инструмент Jetifier переносит библиотеки, зависящие от библиотеки поддержки, и вместо этого использует эквивалентные пакеты AndroidX. Этот инструмент позволяет вам напрямую перенести отдельную библиотеку вместо использования плагина Android Gradle, входящего в состав Android Studio.

Установить Джетификатор

Чтобы установить Jetifier, загрузите zip-файл и распакуйте его. На вашем устройстве должна быть установлена ​​Java версии 1.8 или выше.

Использование

Чтобы обработать библиотеку, передайте путь к текущей библиотеке и путь к выходному файлу, который должен создать инструмент. Jetifier поддерживает файлы JAR, AAR и ZIP, включая вложенные архивы.

./jetifier-standalone -i <source-library> -o <output-library>

Параметры

В следующей таблице перечислены доступные параметры для команд инструмента Jetifier:

Вариант Необходимый? Описание
-i , --input <path> да Путь к входной библиотеке (JAR, AAR или ZIP).
-o , --output <path> да Путь к выходному файлу. Если файл уже существует, Jetifier перезаписывает его.
-c , --config <path> нет Путь к дополнительному файлу пользовательской конфигурации.
-l , --log <level> нет Уровень логирования. Допустимые значения:
  • ошибка
  • предупреждение
  • информация
  • многословный
Если не указано, по умолчанию используется «предупреждение».
-r нет Работа в реверсивном режиме («деджетификация»).
-rebuildTopOfTree ,
--rebuildTopOfTree
нет Пересоберите ZIP-файл дистрибутива Maven в соответствии с сгенерированным файлом POM.
Если установлено, все переписанные библиотеки считаются частью библиотеки поддержки. Не требуется для реактивации.
-s , --strict нет Не отступайте, когда правила отсутствуют; вместо этого выдавайте ошибки.
-stripSignatures ,
--stripSignatures
нет Не выдавайте ошибку при передаче подписанной библиотеки; вместо этого удалите файлы подписей.
-t , -timestamp <arg> нет Политика временных меток, используемая для архивных записей в качестве времени их изменения. Значения: KeepPrevious (по умолчанию) эпоха или сейчас.

Пример

В следующем примере утилита запускается в библиотеке libraryToProcess.aar в текущем каталоге и записывает выходные данные в result.aar в том же каталоге:

./jetifier-standalone -i libraryToProcess.aar -o result.aar

Примечания по использованию

Jetifier переносит ссылки Java, XML, POM и ProGuard, указывающие на android.support.* , изменяя их так, чтобы они указывали на соответствующие androidx.* .

Поскольку подстановочные знаки ProGuard для android.support.* не всегда сопоставляются непосредственно с пакетами androidx.* , Jetifier производит все подходящие замены.

Если в пакете android.support.* есть тип, который не получен из какого-либо артефакта библиотеки поддержки, Jetifier все равно переносит этот тип, пока для него существует сопоставление. Однако работа этой миграции не гарантируется, так как может не быть достаточно общих правил сопоставления, чтобы охватить все пользовательские типы.

Расширенное использование

Утилита Jetifier поддерживает некоторые расширенные варианты использования.

Реверсивный режим

Если вы укажете флаг -r , утилита запустится в обратном режиме . В этом режиме утилита преобразует API-интерфейсы AndroidX в эквиваленты библиотеки поддержки. Обратный режим полезен, если вы разрабатываете библиотеки, использующие API-интерфейсы AndroidX, но вам также необходимо распространять версии, использующие библиотеку поддержки.

Пример

В следующем примере утилита запускается в обратном режиме в библиотеке myAndroidXLib.aar в текущем каталоге и записывает выходные данные в файл supportLibVersion.aar в том же каталоге:

./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar

Пользовательский файл конфигурации

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

Чтобы использовать собственный файл конфигурации:

  1. Извлеките файл default.generated.config из файла jetifier-core-*.jar утилиты и сохраните его.
  2. Внесите все необходимые изменения в свою копию файла конфигурации.
  3. Передайте файл утилите с флагом -c .

Например:

./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config