Андроид Студио 3.5 уводи Аппли Цхангес, наследника функције Инстант Рун популарног алата за развој апликација.
Андроид Студио 3.5 (тренутно на каналима Цанари и Дев) сада има нови начин да унесете промене кода у вашу апликацију и видите њихове ефекте у ходу без потребе за поновним покретањем апликације. Назван једноставно „Примени промене“, он је наследник функције „Инстант Рун“ у претходним верзијама Андроид Студио.
Гоогле'с Блог програмера за Андроид каже следеће о примени промена:
Примена промена вам омогућава да унесете промене кода и ресурса у вашу покренуту апликацију без поновног покретања апликације—и, у неким случајевима, без поновног покретања тренутне активности. Примена промена замењује Инстант Рун потпуно новим приступом за оптимизацију изградње. Уместо да поново пишете бајт код вашег АПК-а током времена израде, Аппли Цхангес редефинише класе у ходу користећи инструментацију времена извршавања подржану у Андроиду 8.0 (АПИ ниво 26) или новијим.
Поред тога, Андроид Студио сада тражи од вас да одлучите да ли да поново покренете апликацију или активност када открије да промене нису компатибилне са Аппли Цхангес. Ова додатна контрола би требало да вам обезбеди доследније и предвидљивије искуство у поређењу са понашањем Инстант Рун-а.
У посту на блогу се даље наводе нека ограничења за нову функционалност. На пример, уређај на којем тестирате своју апликацију мора барем да ради Андроид 8.0 Орео (АПИ ниво 26) и постоје одређене промене кода које ће и даље захтевати да се ваша апликација поново покрене. Као и код „Инстант Рун“, „Примени промене“ ће приморати вашу апликацију да се поново покрене ако:
- Додавање или брисање класе, методе или поља
- Промена манифеста
- Промена потписа метода
- Промена модификатора метода или класа
- Преименовање класа
- Промена наслеђа класе
- Додавање или уклањање ресурса
У одељку „Познати проблеми“ у посту на блогу се наводи да, пошто је Гоогле првобитно дао приоритет стабилности над перформансама у овој новој функцији, „Примени промене“ ће се понекад покретати спорије од своје претходне функције „Инстант Рун“. Такође, слике емулатора к86_к64 нису подржане, а за потребе отклањања грешака, само Андроид Пие (АПИ ниво 28) је подржан. Можете видети комплетну листу ограничења и познатих проблема на линку извора испод.
За детаљнији опис разлике између „Примени промене“ и „Инстант Рун“, запослени у Гоогле-у у тиму за Андроид Студио је имао ово да каже на Реддит:
Ради нешто веома, веома другачије. Инстант Рун је имао веома специфичан утицај на градњу, инструментирајући сваку од ваших класа у време компајлирања како би их припремио за замену током времена извођења новом верзијом класе. Такође је поделио ваш АПК у неколико АПК-ова да бисте постепено поново отпремали апликацију.
Аппли Цхангес не чини ништа слично. Ваш АПК је у великој мери исти без обзира да ли користите Аппли Цхангес или не. Уместо тога, ослања се на нове могућности инструментације времена извођења АРТ ВМ-а за динамичко поновно учитавање класа и њихову замену док је апликација покренута. Због тога су потребне много новије верзије Андроид-а.
Очекује се да ће „Примени промене“ на крају заменити „Инстант Рун“ у бета и стабилном каналу, пошто Гоогле буде побољшао своје перформансе и стабилност.
Извор: Андроид Девелоперс Блог