Projektin siirtäminen AndroidX:ään: täydellinen opas, esimerkit ja vianmääritys

  • AndroidX korvaa tukikirjastot parantaen yhteensopivuutta ja ylläpitoa.
  • Migraatio varmistaa pääsyn uusiin ominaisuuksiin, tukeen ja tietoturvakorjauksiin.
  • On olennaista päivittää ympäristö, tarkastella riippuvuuksia ja suorittaa laaja testaus.

Kuinka siirtyä AndroidX:ään

Android-sovelluskehitys kehittyy jatkuvasti, ja yksi merkittävimmistä muutoksista viime vuosina on ollut ns. AndroidX. Tämä uusi kirjastorakenne edustaa harppausta eteenpäin vanhoihin tukikirjastoihin verrattuna ja vaikuttaa sekä tapaan, jolla sovelluksia kehitetään tyhjästä, että tarpeeseen siirtää olemassa olevia projekteja yhteensopivuuden, tuen ja tietoturvan ylläpitämiseksi. Perusteellinen ymmärrys siitä, miten siirtyä AndroidX:ään, on välttämätöntä kaikille Android-kehittäjille, jotka haluavat luoda moderneja, tehokkaita ja skaalautuvia sovelluksia.

Mikä on AndroidX ja miksi se on niin tärkeä Android-kehityksessä?

AndroidX-siirto

AndroidX Se on vanhojen yhteensopivuuskirjastojen, jotka tunnetaan nimellä tukikirjastot, kehitys. Sen luominen vastaa tarpeeseen tarjota yhtenäisempi, modulaarisempi ja kestävämpi kehityskokemus, joka integroi uusia ominaisuuksia ja parhaita käytäntöjä, jotka helpottavat sekä työtä että tulevaa ylläpitoa. AndroidX-kirjastot sijaitsevat nimiavaruuden alla androidx, korvaamalla vanhat pakettien nimet android.support ja vastaavat.

  • Ekosysteemin modernisointi: AndroidX ei ainoastaan ​​yhdistä ja vahvista yhteensopivuutta, vaan se myös esittelee uusia ominaisuuksia ja moduuleja, jotka mahdollistavat nykyaikaisten kuvioiden ja arkkitehtuurien käytön.
  • Riippumattomat päivitykset: Jokainen AndroidX-kirjasto voidaan päivittää itsenäisesti, mikä välttää versioristiriidat ja helpottaa vain tarvittavien komponenttien pitämistä projektissa.
  • Nimen johdonmukaisuus: Kaikilla kirjastoilla on yhtenäinen nimikkeistö ja organisaatiorakenne, mikä helpottaa riippuvuuksien hallintaa ja niiden toiminnallisuuden ymmärtämistä.
  • Laajennettu tuki ja ylläpito: Tukikirjastot lakkasivat vastaanottamasta päivitykset, joten siirtyminen AndroidX:ään on välttämätöntä, jotta voit jatkaa uusien ominaisuuksien, tietoturvapäivitysten ja virallisen tuen käyttöä.

Siirtyminen AndroidX:ään on erityisen tärkeää, koska kaikki Android-ekosysteemin innovaatiot ja parannukset toteutetaan yksinomaan näissä uusissa kirjastoissa. Migraation epäonnistuminen altistaa projektisi vanhentumis- ja yhteensopimattomuusriskeille.

Android-yhteensopivuuden historia ja kehitys: tukikirjastoista AndroidX:ään

AndroidX-yhteensopivuus

Aluksi, Tukikirjastot Niillä oli keskeinen rooli siinä, että kehittäjät pystyivät toteuttamaan moderneja ominaisuuksia vanhemmilla laitteilla, mikä varmisti laajan käyttäjäkunnan ja mahdollisti Android-sovellusten jatkuvan kehityksen. Sen hallitsematon kasvu ja yhtenäisen modulaarisen rakenteen puute aiheuttivat kuitenkin lukuisia ongelmia, kuten versioristiriidat, riippuvuuksien päivittämisen rajoitukset ja ylläpitovaikeudet.

AndroidX vastaa näihin haasteisiin ryhmittelemällä kirjastot itsenäisiksi joukoiksi yhtenäisen nimiavaruuden alle ja virtaviivaistamalla versionhallintaa tarjotakseen enemmän joustavuutta ja hallintaa. Julkaisunsa jälkeen AndroidX:stä on tullut tosiasiallinen Android-kehityksen standardi, ja Android Studion uusimmilla versioilla rakennetut uudet projektit on määritetty käyttämään näitä kirjastoja oletuksena.

AndroidX:ään siirtymisen tärkeimmät edut

  • Pitkäaikainen yhteensopivuus taattu: Tukikirjastot on virallisesti lopetettu, eivätkä ne enää saa uusia päivityksiä.
  • Pääsy uusiin teknologioihin ja työkaluihin: AndroidX:n käyttö on välttämätöntä Jetpackin käyttöönottoon ja käyttöliittymäarkkitehtuurin ja -komponenttien uusimpien edistysaskeleiden hyödyntämiseen.
  • Parempi suorituskyky ja modulaarisuus: Kirjastot ovat optimoidumpia ja mahdollistavat valikoivia päivityksiä, mikä minimoi riskit ja parantaa sovelluksen yleistä suorituskykyä.
  • Ylläpidon ja kehityksen helppous: Modulaarinen rakenne ja johdonmukainen nimeämiskäytäntö yksinkertaistavat riippuvuuksien hallintaa, virheenkorjausta ja uusien ominaisuuksien lisäämistä.
  • Laajennettu tuki nykyaikaisille työkaluille ja ympäristöille: Kehitysympäristö, jatkuva integraatio ja testaustyökalut keskittyvät AndroidX:n täyteen tukeen.

Lisäksi AndroidX helpottaa virheiden ja haavoittuvuuksien korjaamista, vähentää teknistä velkaa ja valmistelee projekteja tulevia parannuksia varten, mikä tekee migraatioprosessista strategisen investoinnin keskipitkällä ja pitkällä aikavälillä.

Olennaiset vaatimukset ennen AndroidX-siirtymän aloittamista

  • Päivitetty kehitysympäristö: On erittäin tärkeää käyttää Android Studion modernia versiota, versiosta 3.2 alkaen, jotta saat käyttöösi kaikki automatisoidut siirtotyökalut ja täyden tuen.
  • Gradlen kokoonpano: Tiedostosi rakentaa.gradle täytyy olla ainakin compileSdkVersion y targetSdkVersion versiossa 28 tai uudemmassa. Jos käytät Gradle-laajennuksen versiota 3.2/3.3 tai uudempaa versiota, kohtaat yhteensopivuusongelmia.
  • Versiohallinta tai varmuuskopiointi: Tee varmuuskopio projektistasi ja käytä mieluiten erillistä haaraa versionhallintajärjestelmässäsi (Git tai vastaava), jotta voit palauttaa muutokset, jos ongelmia ilmenee.
  • Riippuvuusarviointi: Tarkista ja dokumentoi kaikki ulkoiset riippuvuudet, erityisesti ne, jotka saattavat käyttää tukikirjastoja tai vanhoja paketteja, ja varmista niiden AndroidX-yhteensopivien versioiden saatavuus.
  • Haara- ja kehityssyklin hallinta: Vältä siirtymistä, kun sinulla on kriittisiä kehityshankkeita käynnissä; Suorita migraatio, kun projekti on vakaassa pisteessä, jotta konfliktit voidaan minimoida.

Vaiheittainen opas olemassa olevan projektin siirtämiseen AndroidX:ään

  1. Suorita Android Studio -siirtotyökalu:
    • Avaa projekti Android Studiossa.
    • Valitse ylävalikosta Refaktori > Siirrä AndroidX:ään….
    • Android Studio näyttää valintaikkunan, jossa on varoituksia ja tietoja siirrosta. Sitoudu tekemään varmuuskopion, jos järjestelmä sitä suosittelee.
    • Napsauta siirtyä aloittaaksesi prosessin.
    • Tarkista ehdotetut muutokset ja vahvista ne napsauttamalla Do Refactor.
  2. Gradle.properties-tiedoston päivittäminen:
    • Siirtoprosessi lisää automaattisesti kaksi avainriviä:
      • android.useAndroidX=true: Mahdollistaa AndroidX-kirjastojen käytön koko projektissa.
      • android.enableJetifier=true: Aktivoi ”jetifierin”, työkalun, joka mukauttaa edelleen tukikirjastoja käyttäviä ulkoisia riippuvuuksia AndroidX-yhteensopiviksi.
    • Varmista, että nämä rivit ovat läsnä siirron jälkeen.
  3. Riippuvuuksien tarkistaminen ja säätäminen build.gradle-tiedostossa:
    • Tutki kaikki tiedostojesi riippuvuudet rakentaa.gradle (projekti- ja moduulitaso).
    • Korvaa kaikki viittaukset vanhoihin paketteihin com.android.support.*, android.arch.* o android.support.test.* niiden vastineiden mukaan androidx. Voit tarkistaa virallinen kartoitustaulukko varmistaakseen kunkin kirjaston tarkan vastaavuuden.
    • Poista päällekkäiset tai ristiriitaiset riippuvuudet.
  4. Kolmannen osapuolen riippuvuuksien tarkistus ja siirto:
    • Jetifier tekee suurimman osan työstä ulkoisten riippuvuuksien sovittamisessa, mutta on hyvä tarkistaa sen tila koontilokista tai suoraan XML-tiedostoista ja Java/Kotlin-luokista.
    • Jos ulkoinen riippuvuus ei tue AndroidX:ää eikä Jetifier ole kääntänyt sitä oikein, etsi yhteensopiva vaihtoehto tai päivitä kirjasto uudempaan versioon, joka tukee sitä.
  5. Asettelujen ja lähdekoodin manuaalinen tarkistus:
    • Avaa XML-asettelutiedostosi ja varmista, että widgetien ja käyttöliittymäkomponenttien tuonnit ja viittaukset vastaavat paketteja. androidx eikä android.support.
    • Varmista, että kaikki Java/Kotlin-luokkien tuonnit viittaavat uusiin polkuihin.
    • Jos käytät ProGuardia tai R8:aa, päivitä säännöt vastaamaan AndroidX-pakettien nimiä ja polkuja.
  6. Laaja kokoelma ja testaus:
    • Käännä projekti ja suorita se toiminnalliset testit ja unitaarinen sen varmistamiseksi, ettei siirto ole aiheuttanut virheitä.
    • Korjaa kaikki yhteensopimattomuuksiin, tuontipolkuihin tai API-muutoksiin liittyvät varoitukset tai virheet.

Miten toimia, kun automaattinen siirto ei ratkaise kaikkia tapauksia

  • Asettelujen manuaaliset muutokset: Tietyt XML-tiedostot saattavat edelleen sisältää polkuja android.support; säädä niitä manuaalisesti androidx komponentista riippuen.
  • ProGuard/R8-kohtaiset kokoonpanot: Jos käytät siirrettyihin luokkiin liittyviä sääntöjä, päivitä ne vastaamaan uusia pakettien nimiä.
  • Mukautetut skriptit ja Gradle-tehtävät: Jos sinulla on mukautettuja koontiskriptejä, jotka viittaavat vanhempiin paketteihin, päivitä ne.
  • Sisäisen dokumentaation päivitys: Mukauta kaikki sisäiset projektidokumentit vastaamaan muutoksia ja helpottamaan tulevaa ylläpitoa.
  • Ulkoisten kirjastojen yhteensopimattomuuksien tarkistaminen: Jos migraatio aiheuttaa yhteensopimattomiin riippuvuuksiin liittyviä virheitä, tutustu kirjaston viralliseen dokumentaatioon ja harkitse siirtymistä uudempiin vaihtoehtoihin.

Esimerkkejä luokka- ja kirjastosiirroista: android.supportista androidx:ään

  • Ennen: android.support.v7.app.AppCompatActivity
    Jälkeen: androidx.appcompat.app.AppCompatActivity
  • Ennen: android.support.design.widget.FloatingActionButton
    Jälkeen: com.google.android.material.floatingactionbutton.FloatingActionButton
  • Ennen: android.support.v4.content.LocalBroadcastManager
    Jälkeen: androidx.localbroadcastmanager.content.LocalBroadcastManager
  • Ennen: android.arch.lifecycle.ViewModel
    Jälkeen: androidx.lifecycle.ViewModel
  • Ennen: android.arch.persistence.room.Room
    Jälkeen: androidx.room.Room

Löydät täydellisen luettelon vastaavuuksista kohdasta .

AndroidX:ään siirtymisen jälkeinen validointi ja yleisten virheiden käsittely

  • Tarkista kaikki moduulit ja aliprojektit: Usean moduulin projekteissa jokainen moduuli on migroitava ja sen riippuvuuksien on oltava yhdenmukaisia.
  • Käsittele Lint-virheitä ja -varoituksia: AndroidX esittelee uusia Lint-tarkistuksia, jotka auttavat havaitsemaan yleisiä virheitä siirron jälkeen.
  • Epävakaiden tai vanhentuneiden API-rajapintojen hallinta: Migraation jälkeen jotkin vanhat luokat tai metodit on saatettu yliviivata tai merkitä vanhentuneiksi; korvaa ne dokumentaation ja itse IDE:n suosittelemilla vaihtoehdoilla.
  • Laajat testit: Suorittaa toiminnallista, yksikkö- ja integraatiotestausta kiinnittäen erityistä huomiota arkaluontoisiin ominaisuuksiin, kuten navigointiin, pysyvyyteen ja toimintojen väliseen kommunikaatioon.

Migraatio Xamarin.Android- ja Xamarin.Forms-projekteissa

AndroidX:n käyttöönotto on merkityksellistä myös alustojen välisessä kehitysympäristössä, koska Xamarin. Tarkemmat vaiheet on kuvattu alla:

  • Xamarinin ennakkovaatimukset:
    • Käytä päivitettyä Visual Studiota ja Xamarin.Android 10.0:aa tai uudempaa.
    • Asenna JDK 8 ja varmista, että sinulla on Android SDK API 28 tai uudempi.
  • AndroidX NuGet -paketit: Sisällytä AndroidX NuGet -paketit suoraan Xamarin.Android-projektiisi.
  • IDE-ympäristön siirtotyökalu: Siirry Visual Studiossa osoitteeseen Työkalut > Asetukset > Xamarin > Android-asetukset ja ota käyttöön migraattori AndroidX:ään.
  • Automaattinen migraatio Xamarin.Formsissa:
    • Kohdista projektisi API 29:ään tai uudempaan ja käytä Xamarin.Forms 4.5:tä tai uudempaa.
    • Käännä projekti niin, että riippuvuudet yhteensopivuuskirjastosta siirrettäväksi AndroidX:ään;
    • Jos virheitä ilmenee puuttuvien AndroidX-pakettien vuoksi, asenna koontitulosteen listaukset NuGetin kautta tai muokkaamalla tiedostoa. .csproj.
  • Konfliktien ratkaisu ja manuaaliset säädöt: Jotkin arkkitehtuurikirjastot voivat aiheuttaa ristiriitoja; poista päällekkäiset viitteet ja säilytä vain AndroidX-versiot.

Siirtyminen Xamariniin mahdollistaa nykyaikaisten Android-ominaisuuksien käytön ja varmistaa projektin pitkäikäisyyden.

Edistynyt migraatio: ExoPlayer-mediakirjastojen päivittäminen AndroidX Media3:een

Jos projektissasi käytetään exoplayer ja kirjastot tiedotusvälineet, siirtyminen AndroidX:ään edellyttää siirtymistä androidx.media3. Tämä prosessi vaatii lisätyökalut, kuten automatisoituja skriptejä Gradle-pakettien, tuontien ja riippuvuuksien rakenteen muokkaamiseen.

  1. Aikaisemmat vaatimukset:
    • Varmista, että projekti on lähdekoodin hallinnassa tai varmuuskopiossa.
    • Päivitä projektisi ExoPlayerin uusimpaan versioon ja poista vanhentuneet metodit.
    • Lisää compileSdkVersion versioon 32 tai uudempaan ja käytä Gradlen päivitettyjä versioita.
    • Korvaa yleiset tuonnit täydellisillä tuonneilla lähdetiedostoissasi.
  2. Suorita siirtoskripti:
    • Lataa ja suorita ExoPlayerin virallisessa dokumentaatiossa annettu skripti.
    • Suorita komentosarja määrittääksesi paketit, luokat ja riippuvuudet uudelle Media3-rakenteelle.
    • Tarkista muutokset koodin vertailutyökaluilla.
  3. Ota muutokset käyttöön multimediapalvelussa:
    • Muokkaa palveluasi periytymään osoitteesta MediaLibraryService ja käyttää androidx.media3.session.MediaLibrarySession.
    • Mukauttaa elinkaaren ja takaisinkutsumenetelmien toteutuksia.
    • Korvaa vanhentuneet tai poistetut luokat ja metodit niiden Media3-vastineilla.
  4. Ilmoitusten ja käyttöoikeuksien hallinta:
    • MediaLibraryService käsittelee mediailmoituksia; mukauta palveluntarjoajaa tarvittaessa.
    • Pyydä FOREGROUND_SERVICE-lupaa, jos sovelluksesi sitä vaatii.
  5. Testaus ja virheenkorjaukset:
    • Korjaa epävakaat API-varoitukset merkinnöillä @OptIn tarvittaessa.
    • Korvaa kaikki vanhentuneet API-kutsuja, jotka on yliviivattu editorissa.

Lisätietoja mediakohtaisesta migraatiosta löydät virallisesta dokumentaatiosta Media3 AndroidX.

Usein kysytyt kysymykset ja vianmääritys siirron jälkeen

  • Mitä teen, jos kolmannen osapuolen kirjasto epäonnistuu siirron jälkeen? Kokeile päivittää se AndroidX:n kanssa yhteensopivaan versioon. Jos sitä ei ole, etsi vaihtoehtoja tai harkitse sen väliaikaista säilyttämistä. aktivoi Jetifier.
  • Onko prosessi palautuva? Kyllä, niin kauan kuin työskentelet haaran tai varmuuskopioiden parissa, voit peruuttaa muutokset.
  • Pitäisikö minun siirtää testit? Kyllä, testien tulisi myös käyttää AndroidX-polkuja eikä vanhoja paketteja.
  • Vaikuttaako se kaikkiin projektin moduuleihin? Kyllä, migraation on oltava valmis kaikissa moduuleissa epäjohdonmukaisuuksien ja käännösvirheiden välttämiseksi.
  • Entä jos projektissani käytetään jo AndroidX:ää? Android Studion moderneilla versioilla rakennetut projektit on nyt konfiguroitu oikein, mutta on hyvä tarkistaa mahdolliset vanhat viittaukset.

Android-projektisi päivittäminen ja migrointi AndroidX:ään voi aluksi tuntua haastavalta, mutta oikeilla työkaluilla ja vaiheilla prosessista tulee systemaattinen ja turvallinen. Migraatio varmistaa yhteensopivuuden tulevaisuudessa, tarjoaa pääsyn uusimpiin suorituskyky- ja tietoturvaparannuksiin ja sijoittaa sovelluksesi Android-ekosysteemin parhaiden joukkoon. Ajan panostaminen tähän siirtymään on avainasemassa kaikille kehittäjille tai tiimeille, jotka etsivät sovelluksilleen laatua, skaalautuvuutta ja pitkää elinkaarta.

Android viivästynyt palautus
Aiheeseen liittyvä artikkeli:
Viivästetty palautus Androidilla: Täydellinen opas eduista, toiminnasta ja suhteesta varmuuskopioihin