Android Studio 3.5 Canary lisab "Rakenda muudatused", mis on Instant Run asendus

Android Studio 3.5 tutvustab Rakenda muudatusi, mis on populaarse rakenduste arendustööriista funktsiooni Instant Run järglane.

Android Studio 3.5 (praegu Canary ja Dev kanalites) sisaldab nüüd uut viisi, kuidas oma rakendusse koodimuudatusi teha ja näha nende mõju lennult, ilma et peaksite rakendust taaskäivitama. Nimetatud lihtsalt "Rakenda muudatused" on see funktsiooni "Instant Run" järglane rakenduse eelmistes versioonides. Android Studio.

Google'i oma Androidi arendajate ajaveeb ütleb muudatuste rakendamise kohta järgmist:

Rakenda muudatused võimaldab teil oma töötavasse rakendusse koodi ja ressursi muudatusi lükata ilma rakendust taaskäivitamata ja mõnel juhul ka praegust tegevust taaskäivitamata. Rakenda muudatused asendab Instant Run täiesti uue lähenemisega ehituse optimeerimiseks. Selle asemel, et APK baitkoodi koostamisajal ümber kirjutada, määratleb Rakenda muudatused klassid käigu pealt ümber, võimendades Android 8.0 (API tase 26) või uuema versiooni toetatud käitusaegseid instrumente.

Lisaks palub Android Studio teil nüüd otsustada, kas taaskäivitada rakendus või tegevus, kui tuvastab, et muudatused ei ühildu funktsiooniga Rakenda muudatused. See lisajuhtimine peaks pakkuma teile järjekindlamat ja prognoositavamat kogemust võrreldes Instant Run käitumisega.

Blogipostituses loetletakse mõned uue funktsiooni piirangud. Näiteks seade, milles oma rakendust testite, peab vähemalt töötama Android 8.0 Oreo (API tase 26) ja teatud koodimuudatused nõuavad siiski teie rakenduse taaskäivitamist. Sarnaselt kiirkäivitamisega sunnib „Rakenda muudatused” teie rakendust taaskäivitama, kui:

  • Klassi, meetodi või välja lisamine või kustutamine
  • Manifesti muutmine
  • Meetodi allkirjade muutmine
  • Meetodite või klasside modifikaatorite muutmine
  • Klasside ümbernimetamine
  • Klassipärimise muutmine
  • Ressursi lisamine või eemaldamine

Jaotises "Teadaolevad probleemid" öeldakse blogipostituses, et kuna Google pidas selle uue funktsiooni puhul algselt esikohale stabiilsust jõudlusele, käivitatakse mõnikord "Muudatuste rakendamine". aeglasemalt kui selle eelkäija funktsioon "Instant Run". Samuti ei toetata x86_x64 emulaatori kujutisi ja silumise eesmärgil on ainult Android Pie (API tase 28) toetatud. Piirangute ja teadaolevate probleemide täielikku loendit näete alloleval allikalingil.

Üksikasjalikuma kirjelduse muudatuste rakendamise ja kiirkäitamise erinevuse kohta ütles Android Studio meeskonna Google'i töötaja Reddit:

See teeb midagi väga-väga erinevat. Instant Run mõjutas ehitamist väga konkreetselt, seades iga teie klassi kompileerimise ajal ette, et valmistada need ette asendamiseks käitusajal klassi uue versiooniga. Samuti jagas see teie APK mitmeks APK-ks, et teie rakendus järk-järgult uuesti üles laadida.

Rakenda muudatused ei tee midagi sarnast. Teie APK on suuresti sama, olenemata sellest, kas kasutate muudatuste rakendamist või mitte. Selle asemel kasutab see klasside dünaamiliseks uuesti laadimiseks ja asendamiseks rakenduse töötamise ajal ART VM-i uusi käitusaegseid seadmeid. Seetõttu on vaja Androidi palju uuemaid versioone.

"Rakenda muudatused" peaks lõpuks asendama "Instant Run" beeta- ja stabiilses kanalis, kuna Google parandab selle jõudlust ja stabiilsust.


Allikas: Android Developers Blog