Android Studio 3.5 introduserer Apply Changes, etterfølgeren til Instant Run-funksjonen til det populære apputviklingsverktøyet.
Android Studio 3.5 (for øyeblikket i Canary- og Dev-kanalene) har nå en ny måte å sende kodeendringer til appen din og se effektene deres på farten uten å måtte starte appen på nytt. Bare kalt «Bruk endringer», er det etterfølgeren til «Instant Run»-funksjonen i tidligere versjoner av Android Studio.
Googles Android-utviklerblogg sier følgende om Apply Changes:
Bruk endringer lar deg pushe kode- og ressursendringer til den kjørende appen din uten å starte appen på nytt – og i noen tilfeller uten å starte gjeldende aktivitet på nytt. Apply Changes erstatter Instant Run med en helt ny tilnærming for byggeoptimalisering. I stedet for å omskrive bytekoden til APK-en din i løpet av byggetiden, redefinerer Apply Changes klasser med en gang ved å utnytte runtime-instrumenteringen som støttes i Android 8.0 (API-nivå 26) eller høyere.
I tillegg ber Android Studio deg nå om å bestemme om du vil starte appen eller aktiviteten på nytt når den oppdager at endringer ikke er kompatible med Apply Changes. Denne ekstra kontrollen bør gi deg en mer konsistent og forutsigbar opplevelse sammenlignet med oppførselen til Instant Run.
Blogginnlegget fortsetter med å liste noen begrensninger for den nye funksjonaliteten. For eksempel må enheten du tester appen din på i det minste kjøre Android 8.0 Oreo (API nivå 26) og det er visse kodeendringer som fortsatt krever at appen din starter på nytt. Som med «Instant Run» vil «Bruk endringer» tvinge appen din til å starte på nytt hvis du:
- Legge til eller slette en klasse, metode eller felt
- Endre manifestet
- Endre metodesignaturer
- Endre modifikatorer av metoder eller klasser
- Gi nytt navn til klasser
- Skiftende klassearv
- Legge til eller fjerne en ressurs
Under «Kjente problemer» heter det i blogginnlegget at siden Google opprinnelig prioriterte stabilitet fremfor ytelse i denne nye funksjonen, vil «Bruk endringer» noen ganger kjøres saktere enn den foreløpige funksjonen "Instant Run." Dessuten støttes ikke x86_x64-emulatorbilder, og for feilsøkingsformål er det bare Android Pie (API-nivå 28) som er støttes. Du kan se hele listen over begrensninger og kjente problemer på kildelenken nedenfor.
For en mer detaljert beskrivelse av forskjellen mellom «Apply Changes» og «Instant Run», sa en Google-ansatt i Android Studio-teamet dette på Reddit:
Det gjør noe veldig, veldig annerledes. Instant Run hadde en veldig spesifikk innvirkning på byggingen, og instrumenterte hver av klassene dine på kompileringstidspunktet for å forberede dem til å bli erstattet i løpet av kjøretiden med en ny versjon av klassen. Den deler også APK-en din i flere APK-er for å laste opp appen din mer trinnvis på nytt.
Bruk endringer gjør ingenting som det. APK-en din er veldig lik uansett om du bruker Apply Changes eller ikke. I stedet er den avhengig av nye kjøretidsinstrumenteringsfunksjoner til ART VM for å dynamiske omlastingsklasser og erstatte dem mens appen kjører. Dette er grunnen til at det krever mye nyere versjoner av Android.
«Bruk endringer» forventes etter hvert å erstatte «Instant Run» i beta- og stabile kanaler ettersom Google forbedrer ytelsen og stabiliteten.
Kilde: Android Developers Blog