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 |
sì | Percorso della libreria di input (JAR, AAR o ZIP). |
-o <path> --output
|
sì | 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:
|
-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:
- Estrai il file
default.generated.config
dal filejetifier-core-*.jar
dell'utilità e salvalo. - Apporta le modifiche necessarie alla tua copia del file di configurazione.
- Passa il file all'utilità con il flag
-c
.
Ecco alcuni esempi:
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config