Getti d'acqua

Lo strumento autonomo Jetifier esegue la migrazione delle librerie che dipendono dal supporto della libreria per fare affidamento sui pacchetti AndroidX equivalenti. Lo strumento consente di eseguire direttamente la migrazione di una singola libreria anziché utilizzare il plug-in Android per Gradle in bundle con Android Studio.

Installa Jetifier

Per installare Jetifier, scarica il file zip ed estrailo. Sul tuo dispositivo deve essere installata la versione Java 1.8 o successiva.

Utilizzo

Per elaborare una libreria, passa il percorso alla libreria corrente e il percorso al file di output che lo strumento deve creare. Jetifier supporta file JAR, AAR e ZIP, inclusi gli archivi nidificati.

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

Opzioni

Nella tabella seguente sono elencate le opzioni disponibili per i comandi dello strumento Jetifier:

Opzione Obbligatorio? Descrizione
-i <path> --input Percorso della libreria di input (JAR, AAR o ZIP).
-o <path> --output Percorso del file di output. Se il file esiste già, Jetifier lo sovrascrive.
-c <path> --config no Percorso del file di configurazione personalizzato facoltativo.
-l <level> --log no Livello di logging. I valori consentiti sono:
  • errore
  • avviso
  • info
  • dettagliato
Se non specificato, il valore predefinito è "warning".
-r no Funzionamento in modalità inversa ("de-jetification").
-rebuildTopOfTree,
--rebuildTopOfTree
no Ricrea il file ZIP della distribuzione Maven in base al file POM generato.
Se viene impostata, si presume che tutte le librerie riscritte facciano parte della Support Library. Non è necessario per la jetificazione.
-s, --strict no Non utilizzare il fallback quando mancano delle regole, ma genera errori.
-stripSignatures,
--stripSignatures
no Non visualizzare un errore quando viene creata una libreria firmata, ma rimuovi i file delle firme.
-t <arg> -timestamp no Criterio di timestamp da utilizzare per le voci archiviate come ora di modifica. Valori: keepPrevious (valore predefinito) epoch or now.

Esempio

L'esempio seguente esegue l'utilità sulla libreria libraryToProcess.aar nella directory corrente e scrive l'output in result.aar nella stessa directory:

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

Note sull'utilizzo

Jetifier esegue la migrazione dei riferimenti Java, XML, POM e ProGuard che puntano a pacchetti android.support.*, modificandoli in modo che puntino ai pacchetti androidx.* corrispondenti.

Poiché i caratteri jolly ProGuard per android.support.* non sempre corrispondono direttamente a androidx.* pacchetti, Jetifier produce tutte le sostituzioni idonee.

Se in un pacchetto android.support.* è presente un tipo che non proviene da nessun artefatto della Support Library, Jetifier ne esegue comunque la migrazione, purché sia disponibile una mappatura. Tuttavia, il funzionamento di questa migrazione non è garantito, in quanto potrebbero non esistere regole di mappatura sufficientemente generiche per coprire tutti i tipi personalizzati.

Utilizzo avanzato

L'utilità Jetifier supporta alcuni casi d'uso avanzati.

Modalità inversa

Se passi il flag -r, l'utilità viene eseguita in modalità inversa. In questa modalità, l'utilità converte le API AndroidX negli equivalenti della Support Library. La modalità inversa è utile se stai sviluppando librerie che utilizzano le API AndroidX ma devi anche distribuire versioni che utilizzano Support Library.

Esempio

L'esempio seguente esegue l'utilità in modalità inversa sulla libreria myAndroidXLib.aar nella directory attuale e scrive l'output in supportLibVersion.aar nella stessa directory:

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

File di configurazione personalizzato

Lo strumento Jetifier utilizza un file di configurazione per mappare le classi della libreria di supporto agli equivalenti AndroidX. Se necessario, puoi creare un file di configurazione personalizzato che modifichi il mapping. Puoi anche aggiungere alla mappatura nuove classi che non sono effettivamente membri della libreria di supporto. Ad esempio, potresti modificare la mappatura per sostituire una delle tue classi con una classe successiva scritta per utilizzare AndroidX.

Per utilizzare un file di configurazione personalizzato:

  1. Estrai il file default.generated.config dal file jetifier-core-*.jar dell'utilità e salvalo.
  2. Apporta le modifiche necessarie alla tua copia del file di configurazione.
  3. Passa il file all'utilità con il flag -c.

Ecco alcuni esempi:

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