Jetifier

A ferramenta autônoma Jetifier migra bibliotecas que dependem da Biblioteca de Suporte para os pacotes AndroidX equivalentes. A ferramenta permite que você migre uma biblioteca individual diretamente, sem precisar usar o Plug-in do Android para Gradle do pacote do Android Studio.

Instalar o Jetifier

Para instalar o Jetifier, faça o download do arquivo ZIP e o extraia. Seu dispositivo precisa ter o Java versão 1.8 ou mais recente instalado.

Uso

Para processar uma biblioteca, transmita o caminho para a biblioteca atual e para o arquivo de saída que a ferramenta precisa criar. O Jetifier é compatível com arquivos JAR, AAR e ZIP, incluindo arquivos aninhados.

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

Opções

A tabela abaixo lista as opções disponíveis para os comandos da ferramenta Jetifier:

Opção Obrigatório? Descrição
-i, <path> de --input sim Caminho para a biblioteca de entrada (JAR, AAR ou ZIP).
-o, <path> de --output sim Caminho para o arquivo de saída. Se o arquivo já existe, o Jetifier o substitui.
-c, <path> de --config não Caminho para o arquivo de configuração personalizada opcional.
-l, <level> de --log não Nível de registro. Os valores permitidos são:
  • error
  • warning
  • info
  • verbose
Se não for especificado, o padrão é "warning".
-r não Operação no modo reverso ("desjetificação").
-rebuildTopOfTree,
--rebuildTopOfTree
não Recria o ZIP de distribuição do Maven de acordo com o arquivo POM gerado.
Se definido, todas as bibliotecas reescritas vão ser consideradas parte da Biblioteca de Suporte. Não é necessário para usar o Jetifier.
-s, --strict não Não use substitutos quando as regras estiverem ausentes. Gere erros.
-stripSignatures,
--stripSignatures
não Não gere um erro ao melhorar uma biblioteca assinada. Remova os arquivos de assinatura.
-t, <arg> de -timestamp não Política de carimbos de data/hora a ser usada para as entradas arquivadas como horário modificado. Valores: "keepPrevious" (padrão) "epoch" (época) ou "now" (agora).

Exemplo

O exemplo abaixo executa o utilitário na biblioteca libraryToProcess.aar no diretório atual e grava a saída em result.aar no mesmo diretório.

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

Notas de uso

O Jetifier migra referências de Java, XML, POM e ProGuard que apontam para pacotes android.support.* e os mudam para que apontem para os pacotes androidx.* correspondentes.

Como os caracteres curingas do ProGuard para android.support.* nem sempre são mapeados diretamente para os pacotes androidx.*, o Jetifier produz todas as substituições qualificadas.

Mesmo que haja um tipo em um pacote android.support.* que não venha de nenhum artefato de Biblioteca de Suporte, o Jetifier migra esse tipo, desde que haja um mapeamento para ele. No entanto, não é garantido que essa migração funcione porque pode não haver regras de mapeamento genéricas o suficiente para cobrir todos os tipos personalizados.

Uso avançado

O utilitário Jetifier é compatível com alguns casos de uso avançados.

Modo reverso

Se você transmitir a sinalização -r, o utilitário será executado em modo reverso. Nesse modo, o utilitário converte as APIs do AndroidX nos equivalentes da Biblioteca de Suporte. O modo reverso é útil se você está desenvolvendo bibliotecas que usam APIs do AndroidX, mas também precisa distribuir versões que usem a Biblioteca de Suporte.

Exemplo

O exemplo abaixo executa o utilitário em modo reverso na biblioteca myAndroidXLib.aar no diretório atual e grava a saída em supportLibVersion.aar no mesmo diretório.

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

Arquivo de configuração personalizado

A ferramenta Jetifier usa um arquivo de configuração para mapear as classes da Biblioteca de Suporte para as equivalentes do AndroidX. Se necessário, você pode criar um arquivo de configuração personalizado que altere esse mapeamento. É possível até mesmo adicionar novas classes ao mapeamento que não são membros da Biblioteca de Suporte. Por exemplo, você pode modificar o mapeamento para substituir uma das suas próprias classes por uma classe sucessora criada para usar o AndroidX.

Para usar um arquivo de configuração personalizado:

  1. Extraia o arquivo default.generated.config do arquivo jetifier-core-*.jar do utilitário e salve.
  2. Faça as edições necessárias na sua cópia do arquivo de configuração.
  3. Transmita o arquivo para o utilitário com a sinalização -c.

Por exemplo:

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