Android Studio 3.5 Canary добавя „Прилагане на промените“, заместител на Instant Run

click fraud protection

Android Studio 3.5 въвежда Apply Changes, наследник на функцията Instant Run на популярния инструмент за разработка на приложения.

Android Studio 3.5 (понастоящем в каналите Canary и Dev) вече разполага с нов начин за натискане на промени в кода на вашето приложение и виждане на техните ефекти в движение, без да се налага да рестартирате приложението. Наречен просто „Прилагане на промените“, той е наследник на функцията „Незабавно изпълнение“ в предишните версии на Android Studio.

на Google Блог за разработчици на Android казва следното за Прилагане на промените:

Apply Changes ви позволява да натискате промени в кода и ресурсите във вашето работещо приложение, без да рестартирате приложението си – и в някои случаи без да рестартирате текущата дейност. Apply Changes заменя Instant Run с напълно нов подход за оптимизиране на изграждането. Вместо да пренаписва байт кода на вашия APK по време на компилация, Apply Changes предефинира класовете в движение, като използва инструментите за изпълнение, поддържани в Android 8.0 (API ниво 26) или по-високо.

Освен това Android Studio вече ви подканва да решите дали да рестартирате приложението или дейността си, когато открие, че промените не са съвместими с Apply Changes. Този допълнителен контрол трябва да ви осигури по-последователно и предвидимо изживяване в сравнение с поведението на Instant Run.

Публикацията в блога продължава с изброяване на някои ограничения на новата функционалност. Например устройството, на което тествате приложението си, трябва поне да работи Android 8.0 Oreo (API ниво 26) и има определени промени в кода, които пак ще изискват рестартиране на приложението ви. Както при „Незабавно стартиране“, „Прилагане на промените“ ще принуди приложението ви да се рестартира, ако сте:

  • Добавяне или изтриване на клас, метод или поле
  • Промяна на манифеста
  • Промяна на подписите на метода
  • Промяна на модификатори на методи или класове
  • Преименуване на класове
  • Промяна на наследяването на класове
  • Добавяне или премахване на ресурс

Под „Известни проблеми“ публикацията в блога посочва, че тъй като първоначално Google даде приоритет на стабилността пред производителността в тази нова функция, „Прилагане на промените“ понякога ще се изпълнява по-бавно от предшественика си "Instant Run". Освен това не се поддържат изображения на емулатор x86_x64 и за целите на отстраняване на грешки е само Android Pie (API ниво 28) поддържан. Можете да видите пълния списък с ограничения и известни проблеми на връзката източник по-долу.

За по-подробно описание на разликата между „Прилагане на промените“ и „Незабавно изпълнение“, служител на Google от екипа на Android Studio имаше това да каже на Reddit:

Прави нещо много, много различно. Instant Run имаше много специфично въздействие върху изграждането, като инструментира всеки от вашите класове по време на компилиране, за да ги подготви за замяна по време на изпълнение с нова версия на класа. Той също така разделя вашия APK на няколко APK, за да качите отново приложението си по-постепенно.

Apply Changes не го харесва. Вашият APK е почти същият, независимо дали използвате Apply Changes или не. Вместо това той разчита на нови възможности за изпълнение на инструменти на ART VM за динамично презареждане на класове и замяната им, докато приложението работи. Ето защо изисква много по-нови версии на Android.

Очаква се „Прилагане на промените“ в крайна сметка да замени „Незабавно изпълнение“ в бета и стабилните канали, тъй като Google прави подобрения в неговата производителност и стабилност.


Източник: Блог за разработчици на Android