Az Android Studio 3.5 Canary hozzáadja az „Apply Changes” lehetőséget, amely az Instant Run helyettesítője

Az Android Studio 3.5 bemutatja az Apply Changes-t, a népszerű alkalmazásfejlesztő eszköz Instant Run funkciójának utódját.

Az Android Studio 3.5 (jelenleg a Canary és a Dev csatornákon) új módot kínál arra, hogy kódmódosításokat küldjön be az alkalmazásba, és menet közben is megtekinthesse hatásukat anélkül, hogy újraindítaná az alkalmazást. Egyszerűen "Módosítások alkalmazása" néven az "Azonnali futtatás" funkció utódja a korábbi verziókban. Android Studio.

Google-é Android fejlesztői blog a következőket írja a Módosítások alkalmazásáról:

Az Apply Changes (Módosítások alkalmazása) segítségével kód- és erőforrás-módosításokat küldhet a futó alkalmazásba az alkalmazás újraindítása nélkül – és bizonyos esetekben az aktuális tevékenység újraindítása nélkül. Az Apply Changes (Módosítások alkalmazása) az Instant Run funkciót egy teljesen új megközelítéssel váltja fel a buildoptimalizálás terén. Ahelyett, hogy átírná az APK bájtkódját az építési idő alatt, az Apply Changes menet közben újradefiniálja az osztályokat az Android 8.0 (26-os API-szint) vagy magasabb verzióban támogatott futásidejű eszközök felhasználásával.

Ezenkívül az Android Studio most felkéri Önt annak eldöntésére, hogy újraindítsa-e az alkalmazást vagy a tevékenységet, ha azt észleli, hogy a módosítások nem kompatibilisek a Módosítások alkalmazása funkcióval. Ennek az extra vezérlésnek az Instant Run viselkedéséhez képest következetesebb és kiszámíthatóbb élményt kell nyújtania.

A blogbejegyzés tovább sorolja az új funkció néhány korlátozását. Például annak az eszköznek, amelyen az alkalmazást teszteli, legalább futnia kell Android 8.0 Oreo (26-os API-szint) és vannak bizonyos kódmódosítások, amelyek miatt továbbra is újra kell indítani az alkalmazást. Az „Azonnali futtatáshoz” hasonlóan a „Módosítások alkalmazása” újraindításra kényszeríti az alkalmazást, ha:

  • Osztály, metódus vagy mező hozzáadása vagy törlése
  • A jegyzék módosítása
  • Módszer aláírások módosítása
  • Metódusok vagy osztályok módosítóinak megváltoztatása
  • Osztályok átnevezése
  • Az osztály öröklésének megváltoztatása
  • Erőforrás hozzáadása vagy eltávolítása

Az „Ismert problémák” alatt a blogbejegyzés azt írja, hogy mivel a Google kezdetben a stabilitást helyezte előtérbe a teljesítménynél ebben az új funkcióban, a „Módosítások alkalmazása” időnként futni fog. lassabban, mint elődje „Instant Run” funkciója. Ezenkívül az x86_x64 emulátorképek nem támogatottak, és hibakeresési célokra csak az Android Pie (API Level 28) támogatott. A korlátozások és ismert problémák teljes listáját az alábbi forráslinken tekintheti meg.

A „Módosítások alkalmazása” és az „Azonnali futtatás” közötti különbség részletesebb leírásához az Android Studio csapatának egyik Google-alkalmazottja ezt mondta: Reddit:

Valami nagyon-nagyon mást csinál. Az Instant Run nagyon specifikus hatással volt a felépítésre, minden egyes osztályát fordítási időben felkészítette arra, hogy a futás közben lecseréljék őket az osztály új verziójára. Ezenkívül több APK-ra osztotta fel az APK-t, hogy fokozatosan töltse fel újra az alkalmazást.

Az Apply Changes nem tesz hasonlót. Az APK-d nagymértékben megegyezik, függetlenül attól, hogy a Módosítások alkalmazása funkciót használja-e vagy sem. Ehelyett az ART VM új futásidejű műszerezési képességeire támaszkodik az osztályok dinamikus újratöltéséhez és cseréjéhez, miközben az alkalmazás fut. Ezért van szükség az Android sokkal újabb verzióira.

Az "Apply Changes" várhatóan idővel felváltja az "Instant Run" kifejezést a béta és a stabil csatornákban, ahogy a Google javítja a teljesítményét és stabilitását.


Forrás: Android Developers Blog