Что такое Jetiser?

Что такое Jetiser? Например, чтобы создать новый проект с использованием зависимых от androidx пакетов, этот новый проект должен добавить следующую строку в файл gradle.properties:

android.enableJetifier=true

Итак, что это значит - "enable jeterator"?

Ответ 1

В этом году Google I/O (18), Google анонсировала Jetpack, который представляет собой набор/набор библиотек для облегчения жизни разработчиков.

Jetpack включает в себя ранее представленные компоненты архитектуры Android (ViewModel, Room, Paging, LiveData и т.д.), А также новые компоненты архитектуры, такие как WorkManager, Navigation. Помимо этого Jetpack также имеет другой набор библиотек, таких как AndroidX, AndroidKTX и т.д.

AndroidX - это новая структура пакета для библиотек поддержки Android, таких как поддержка, привязка данных, дизайн и т.д.

например, теперь подопечные разработчиков будут использовать androidx.databinding. вместо привязки android.datab. при импорте библиотек в наши проекты

Это позволяет Google добавлять SemVer или Semantic Versioning в свои библиотечные пакеты. Для разработчиков это означает, что нам не нужно использовать одну и ту же версию библиотеки поддержки для всех библиотек поддержки. Каждая поддержка или, лучше сказать, библиотека AndroidX будет поддерживать свои собственные версии.

Еще одним преимуществом для разработчиков является то, что нам не нужно заботиться о поддержке одной и той же версии для всех библиотек поддержки в нашем проекте.

Что касается Jetifier, он преобразует весь пакет поддержки зависимостей во время сборки. Согласно официальной документации Jetifier

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

Чтобы использовать AndroidX в проекте, мы должны установить для targetSdkVersion для нашего проекта значение 28 и добавить следующие 2 строки в файл gradle.properties.

android.useAndroidX=true

android.enableJetifier=true

Я надеюсь, что это ответит на ваш запрос.

РЕДАКТИРОВАТЬ

Эта ссылка имеет отображение всех компонентов библиотеки поддержки с их счетчиком AndroidX.

Также, пожалуйста, обратитесь к этому блогу за подробным объяснением об AndroidX

Ответ 2

Предполагая, что вы знакомы с AndroidX. Если нет, см. @этот пост.

Jetifier преобразует support libraries всех ваших зависимостей на AndroidX автоматически, если вы не установите его на true, то ваш у проекта будет и то и другое, поддержка (устарела после 28.0.0 версия) и пакет AndroidX, который является избыточным.

Например,

Если у вас есть PhotoView.java в вашей зависимости. Это использует библиотеку поддержки AppCompatImageView.

import android.support.v7.widget.AppCompatImageView;

Этот класс теперь перемещен в пакет androidx, так как PhotoView получит androidx AppCompatImageView? И приложение все еще работает на устройстве.

Кто сделал этот пробег?

Jetifier, который преобразует весь пакет поддержки зависимостей во время сборки.

Jetifier преобразует android.support.v7.widget.AppCompatImageView в androidx.appcompat.widget.AppCompatImageView при создании проекта.

Заключение

Включение Jetifier важно при переходе с библиотек поддержки на AndroidX.

Смотрите этот пост, чтобы больше узнать об AndroidX.

Информация

Ваш код может показывать ошибки времени компиляции после включения Jetifier при использовании классов зависимостей. которую вы можете удалить, удалив .idea, .gradle и повторно синхронизировать проект.

image2

image1

Ответ 3

Jetifier помогает в переносе проекта Android на AndroidX.

Jetifier помогает сделать стороннюю библиотеку совместимой с вашим проектом AndroidX.

Если вы не используете какую-либо стороннюю библиотеку в своем проекте Android, вам не нужно использовать Jetifier, потому что Jetifier помогает только в том, чтобы "сделать стороннюю библиотеку" совместимой с вашим проектом в случае перехода на AndroidX. Поэтому, чтобы ваш проект использовал Jetifier, вы пишете код ниже в gradle.properties.

android.enableJetifier=true
android.useAndroidX=true

Если вы не переходите на AndroidX и не используете предыдущий способ использования библиотек Android (например, com.android.support), то эти сторонние библиотеки не обязательно должны быть совместимыми с этими сторонними библиотеки уже совместимы с предыдущим способом использования библиотек Android. В этом случае вам не нужно использовать Jetifier, так что теперь вам не нужно писать строки, приведенные выше, или вы можете просто написать, как показано ниже, чтобы изменить значения в будущем для перехода на androidx: -

android.enableJetifier=false
android.useAndroidX=false

Ответ 4

Jetifier

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

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

для включения AndroidX вам нужно добавить 2 флага в ваш файл gradle.properties. Первый флаг указывает AndroidX Android использовать пакеты AndroidX вместо AppCompat, а второй флаг активирует Jetifier:

android.useAndroidX=true
android.enableJetifier=true