Android Studio 3.5 Canary přidává „Apply Changes“, náhradu za Okamžité spuštění

Android Studio 3.5 představuje Apply Changes, nástupce funkce Instant Run oblíbeného nástroje pro vývoj aplikací.

Android Studio 3.5 (aktuálně na kanálech Canary a Dev) nyní nabízí nový způsob, jak do aplikace poslat změny kódu a sledovat jejich účinky za běhu, aniž byste museli aplikaci restartovat. Nazvaný jednoduše „Apply Changes“ je nástupcem funkce „Instant Run“ v předchozích verzích Android Studio.

Google Blog vývojářů pro Android říká o Apply Changes následující:

Použít změny umožňuje odeslat změny kódu a prostředků do spuštěné aplikace bez restartování aplikace – a v některých případech bez restartování aktuální aktivity. Použít změny nahrazuje Instant Run zcela novým přístupem k optimalizaci sestavení. Namísto přepisování bajtkódu vašeho APK během sestavování, Apply Changes předefinuje třídy za běhu využitím runtime instrumentace podporované v Androidu 8.0 (API level 26) nebo vyšším.

Android Studio vás navíc nyní vyzve, abyste se rozhodli, zda restartovat aplikaci nebo aktivitu, když zjistí, že změny nejsou kompatibilní s Použít změny. Tato zvláštní kontrola by vám měla poskytnout konzistentnější a předvídatelnější zážitek ve srovnání s chováním Instant Run.

Příspěvek na blogu dále uvádí některá omezení nové funkce. Například zařízení, na kterém aplikaci testujete, musí být alespoň spuštěné Android 8.0 Oreo (API Level 26) a existují určité změny kódu, které budou stále vyžadovat restart vaší aplikace. Stejně jako u „Okamžitého spuštění“ vynutí „Použít změny“ restartování aplikace, pokud:

  • Přidání nebo odstranění třídy, metody nebo pole
  • Změna manifestu
  • Změna podpisů metod
  • Změna modifikátorů metod nebo tříd
  • Přejmenování tříd
  • Změna dědičnosti třídy
  • Přidání nebo odebrání zdroje

V části „Známé problémy“ blogový příspěvek uvádí, že protože Google zpočátku upřednostňoval stabilitu před výkonem v této nové funkci, někdy se spustí „Použít změny“. pomaleji než jeho předchůdce funkce "Instant Run." Také obrázky emulátoru x86_x64 nejsou podporovány a pro účely ladění je k dispozici pouze Android Pie (API Level 28). podporováno. Úplný seznam omezení a známých problémů si můžete prohlédnout na zdrojovém odkazu níže.

Pro podrobnější popis rozdílu mezi „Použít změny“ a „Okamžité spuštění“ řekl zaměstnanec společnosti Google z týmu Android Studio na Reddit:

Dělá to něco velmi, velmi odlišného. Okamžité spouštění mělo velmi specifický dopad na sestavení, instrumentaci každé z vašich tříd v době kompilace připravilo na nahrazení během běhu novou verzí třídy. Rozdělil také váš APK do několika souborů APK, aby bylo možné aplikaci znovu nahrávat postupně.

Použít změny nic podobného nedělá. Váš soubor APK je téměř stejný, ať už použijete změny, nebo ne. Místo toho se spoléhá na nové možnosti instrumentace za běhu ART VM pro dynamické opětovné načítání tříd a jejich nahrazení za běhu aplikace. To je důvod, proč vyžaduje mnohem novější verze Androidu.

Očekává se, že „Apply Changes“ nakonec nahradí „Instant Run“ v kanálech Beta a Stabil, protože Google vylepšuje jeho výkon a stabilitu.


Zdroj: Android Developers Blog