Sådan migreres dit Android-projekt til AndroidX

Det bedste tidspunkt at gøre det er lige nu

Tiden er lige rigtig til at ændre dit eksisterende Android Support Library til AndroidX. Android-udviklingsholdet annoncerede allerede AndroidX tilbage i Google I / O 2018. Android-appudviklingsfirmaer skal migrere deres Android-app-projekter til AndroidX i den nærmeste fremtid. Det er en sikker måde at sikre dig, at du modtager fejlrettelser, nye funktioner og biblioteksopdateringer.

Selvom AndroidX-migrering har forårsaget en smule i Android-appudviklergruppen, har nogle udviklere stadig ingen idé om, hvordan de skal migrere. Denne artikel kan give dig en trinvis løsning.

Men før du dykker dybt ned i migration, lad os lære mere om AndroidX.

AndroidX er en større forbedring af det originale Android Support Library. Det er et projekt, som Android-teamet bruger til at udvikle, teste, pakke, version og frigive biblioteker inden for Jetpack.

Hvorfor skal jeg migrere til Android X?

Android Support Library er færdig

28.0.x var den sidste version, der blev frigivet til Android Support Library, og der er ikke flere fejlrettelser eller support fra embedsmænd.

Bedre pakkehåndtering

AndroidX vil sikre standardiseret og uafhængig versionering, navngivning og hyppige udgivelser.

Andre biblioteker er migreret

Nogle bemærkelsesværdige biblioteker, der nu kræver AndroidX:

  • Google Play-tjenester
  • Firebase
  • Smørkniv
  • Svæve
  • Mockito 2
  • SQLDelight

Nye biblioteker er til AndroidX

Alle nye biblioteker findes i Androidx-navneområdet. Dette inkluderer nye biblioteker som Jetpack Compose og CameraX.

Hvordan skal vi migrere?

Så før vi udfører migreringen, er her nogle ting at gøre for at forberede dit projekt til migration, så du kan få en mere jævn oplevelse.

  • Sikkerhedskopier dit projekt

Migrering kan muligvis ændre mange af filerne i dit projekt.

  • Minimer funktionsudvikling under migrering
  • Dedikere en migrationsgren

Lad os gennemgå en trin-for-trin-proces til migration.

1. Opdater din Android Support Library-version til 28

Hvis du bruger en ældre version og begynder at migrere til Androidx, vil du have det dårligt, fordi du ikke kun har brug for at adressere navneområdet ændringer, men også API-ændringerne fra 26 eller 27 til Androidx.

Version 28 af Android Support Library og AndroidX 1.0 er binære ækvivalenter. Det betyder, at kun pakkenavnene ændres mellem disse to versioner, og alle API'er er de samme.

Nu, hvor du har migreret dit projekt til Android Support Library version 28, lad os se på trin 2.

2. Aktiver Jetifier

Jetifier migrerer dine tredjepartsafhængigheder for at bruge AndroidX.

Det ændrer faktisk flyvningskoden for afhængighederne for at være kompatibel med dit projekt, der bruger AndroidX.

Jetifier migrerer ikke din kildekode og den genererede kode.

For at aktivere Jetifier skal du bare følge følgende trin.

Føj følgende til dine gradle.properties:

android.useAndroidX = sandt

android.enableJetifier = sandt

Når du laver kodeudfyldning og importerer biblioteker, importerer du Androidx-versionen af ​​det bibliotek i stedet for den gamle Android Support Library-version.

3. Opdater afhængigheder

Tredjeparts afhængigheder kan have brug for opdateringer.

  • Smørkniv
  • Svæve
  • Mockito 2
  • SQLDelight

Jetifier ændrer ikke kodegenereringsbiblioteker, så du skal muligvis kontrollere, om de faktisk er kompatible med AndroidX eller ikke.

Der er nogle almindelige fejl, hvis du sprang over trin 2 og 3:

Kilde

4. Brug Android Studio 3.2 eller højere

Denne Android Studio-version har en "Migrer til AndroidX" -knap.

5. Bash-scriptet

Det erstatter alle kildekodeforekomster af supportbibliotekspakere med deres AndroidX-version.

Se på scriptet nedenfor:

Kilde til Bash-scriptet

Husk, når du bruger dette script, at det er temmelig brute kraft. Det kan gøre nogle af disse migrationer forkert i nogle tilfælde, så vær bare opmærksom på det, når du bruger denne type metodologi.

Problemer, du kan løbe ind i under din migration

1. Mønstre

En almindelig situation, der kræver manuel intervention som versionskonfigurationsfiler.

Før migration:

Kilde

Efter migrering:

Kilde

I eksemplet efter migrering er variable numre endnu ikke ændret, så værktøjerne ændrer ikke dette. Du skal opdatere dette manuelt:

Kilde

2. ProGuard-filer

Du skal ændre pakkenavne manuelt i ProGuard-reglerne.

3. Lav scripts

Forholdsregler, der skal tages under din migration

  • Prøv at udføre migreringen på en separat gren
  • Når du foretager denne migrering, er det godt at bare fokusere på at løse fejlene og få din app til at udarbejde (og få alle test til at bestå igen)
  • Forsøg ikke at lave refactoring, og prøv ikke at trække nye funktioner ind i løbet af dette tidsrum

Så når du kører dette overførselsværktøj, har du muligvis en alfa-version eller en stabil version af biblioteket, afhængigt af den seneste version.

Når du kører overførselsværktøjer, migreres dit appcompat til en alfa-version af biblioteket.

Kilde

Så dette er noget, du bliver nødt til at gå tilbage og manuelt kontrollere (for at se, hvilken version der er migreret til og også for at sikre dig, at du har valgt den version, der passer til dine behov).

Konklusion

Glad kodning. Jeg håber, du har haft glæde af at læse denne artikel.

  • AndroidX-migrering i et prøveprojekt
  • Problemets tracker til AndroidX-migrering
  • AndroidX Migration

Hvis du vil vide om den nye kodekrymper R8, så tjek venligst min tidligere artikel.