Как стать автором
Обновить

Доступна preview Android Studio 2.0: две убер-фичи

Время на прочтение 2 мин
Количество просмотров 39K
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 22

Комментарии 22

Только вы забыли указать, что Instant Run на данный момент не поддерживается при следующих изменениях:
  • Add/remove/change annotations
  • Add/remove/change an instance field
  • Add/remove/change a static field
  • Add/remove a static method signature
  • Change a static method signature
  • Add/remove an instance method
  • Change an instance method signature
  • Changing which parent class the current class inherits from
  • Change the list of implemented interfaces
  • Changing static initializer of a class
Спасибо, добавил про ограниченную функциональность.
«Instant run» традиционно для JVM называется «Hot Swap». Суть в том что из-за разбиения исполняемого кода в классы возможно подменить код функции\метода, не меняя данные в полях объектов. Это с давних пор делили JRebel, правда совсем не бесплатно zeroturnaround.com/software/jrebel. Жалко ребят, теперь они out of busyness, хотя рано или поздно это должно было случиться.
Судя по моему опыту с React и webpack, кроме самой возможности подменять код еще нужно серьезно перелопатить Framework, чтобы, к примеру, при изменении кода для кнопки она могла себя перерисовать в новом облике и правильно переподключить все обработчики если что поменялось. Непростая задача.
В каком смысле они out of business? Главная их клиентура это кровавый энтерпраиз, а там у них конкурентов нету.
А почему «out of busyness»-то? В Java мире же не только Android-проекты пишут, там вообще много чего делается. И если «Instant Run» будет сделан только для Android Studio, без переноса в Intellij Idea CE, то у ZeroTurnaround ничего не изменится: как ходили к ним за JRebel, так и будут ходить. Или я чего-то недопонял?
HotSwap — это стандартная технология в JVM для замены классов в debug-режиме, при этом есть существенное ограничение — у классов не должно меняться API, можно менять только имплементацию методов. JRebel же делает гораздо более крутую вещь — он позволяет менять классы в том числе и с изменением API классов. Т.е. классы можно изменять практически как угодно.

Instant Run как раз очень сильно напоминает по ограничениям HotSwap, и, как следствие JRebel отнюдь не out of business, т.к. их основное преимущество никуда не делось. Правда, я не уверен, возможны ли API changes с использованием JRebel for Android. Если нет — тогда да, JRebel fr Android ничем не отличается от Instant Run, и ребятам из ZeroTurnaround придётся напрячься, если они хотят остаться на android-рынке.
PS. Вот, что люди пишут:
I'm currently justifying my recent JRebel for Android purchase by noting how many things Instant Run doesn't (yet) support… ;)

JRebel has gotten fairly robust and handles a lot of weird situations smoothly, including adding/removing annotations (e.g. `@DebugLog`), changing anonymous classes, fiddling with Retrolambda and so on.

In any case, a bit of competition between the JRebel and Android teams can only be a good thing for us developers!
Правда, я не уверен, возможны ли API changes с использованием JRebel for Android


Возможны.
Здесь есть некоторое недопонимание.

JRebel изначально сделано для обычных Java-приложений. Instant Run в Android Studio 2.0 вообще из другого огорода.

Есть порт JRebel-я для Android Studio: zeroturnaround.com/software/jrebel-for-android. У него нет таких ограничений, как у Instant Run. Ну и то, что Instant Run вообще был сделан, только подтверждает, что JRebel решает правильную проблему :)
Я фигею от интуитивности и удобства «нового модного» дизайна сайтов и манеры давать ссылки вникуда.
P.S. поторопился…
Поправил, спасибо!
Спасибо, поправил. Ссылку на скачивание тоже перенацелил на канареечный билд.
Так же в студии 2.0 появилась удобная навигация по xml разметке
image
это просто из 15 идеи.
но я не совсем понял приемущества этой навигации
А еще эмулятор теперь видно в chrome://inspect/#devices
Кто-нибудь разобрался, как запускать новый эмулятор? У меня каждый раз запускается старый, никаких плей сервисов, никаких дополнительных меню.
Android Studio 2.0 will also include an Android emulator that is faster and features a new user interface. It isn’t included in today’s Canary release, but you can expect it to show up in a future Canary release.
link
Спасибо, обновил пост. В оригинальном анонсе про это ничего не было. Умеют же люди писать чтобы запутать :)
Уж сильно новый эмулятор похож на genymotion
Зарегистрируйтесь на Хабре , чтобы оставить комментарий