Disabling Jetifier — небольшая заметка о том, как ускорить повторную сборку приложения на 40%, отказавшись от одного из этапов сборки.
Речь идет о Jetifier — инструменте, который Android Studio запускает во время сборки приложения. Его задача — обеспечить совместимость устаревшего кода, написанного с использованием support-библиотек, с новым кодом, использующим компоненты Jetpack. По сути, он просто заменяет имена импортируемых пакетов, превращая строки типа import android.support.v7.widget.AppCompatImageView в import androidx.appcompat.widget.AppCompatImageView.
РЕКОМЕНДУЕМ:
Советы по работе с отладчиком Android Studio
В подавляющем большинстве случаев этот этап необходим, потому что проект может использовать множество устаревших библиотек, все еще привязанных к support-библиотекам. Проблема только в том, что, если в проекте таких библиотек нет, Jetifier все равно будет запущен и отнимет солидный кусок времени сборки.
Как отключить Jetifier в Android Studio
Отключить Jetifier можно, убрав строку android.enableJetifier=true из файла gradle.properties. Но что, если ты не знаешь, какие зависимости до сих пор используют support-библиотеки? Узнать это позволит Gradle-плагин Can I Drop Jetifier.
Добавь его в build.gradle проекта:
1 2 3 |
plugins { id "com.github.plnice.canidropjetifier" version "0.5" } |
И запусти такую команду из каталога проекта:
1 |
./gradlew -Pandroid.enableJetifier=false canIDropJetifier |
На экране появится список устаревших зависимостей. Если какие-то из них обновить нельзя, их придется сконвертировать в «новый формат» вручную:
1 |
./jetifier-standalone -i <source-library> -o <output-library> |
Эта команда принимает на вход AAR-файл библиотеки и выдает на выход исправленный вариант.