Компания
139,78
рейтинг
24 ноября 2015 в 08:58

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

Приветствую. Сегодня утром состоялся ожидаемый анонс Android Studio версии 2.0, в которой google представил нам сразу две крутые фичи. Во-первых, это новый эмулятор android. Который, по словам google, «на хорошем железе работает быстрее физического устройства». Во-вторых, это новая функция «instant run», которая позволяет почти мгновенно обновлять запущенное под отладкой мобильное приложение при изменении исходного кода. Это практически «hot reload» из веб разработки. Под катом — чуть подробнее и ряд менее заметных улучшений. Новая версия уже доступна для скачивания в canary канале обновления.



Скорость сборки



По словам Stephanie Cuthbertson, одной из руководителей направления Android Studio, Google сейчас сосредоточен на стабильности и скорости работы своей среды разработки. Новая версия Android Studio собирает приложения в два — два с половиной раза быстрее чем предыдущая версия.



GPU profiler



В новой версии доступна preview версия профилировщика рендера средствами GPU. С помощью этого инструмента разработчики могут анализировать время рендеринга элементов в каждом кадре и находить «узкие места».



Новый эмулятор Android



Тормоза официального эмулятора уже стали притчей во языцах и привели к появлению альтернативных решений. Есть версия на базе VirtualBox, есть версия от Microsoft, поставляющаяся вместе с Visual Studio. Google несколько огорчал такой расклад, и вместе с новой версией Android Studio нам представлен новый эмулятор. Очень быстрый. С переработанным интерфейсом. Со всеми сервисами, камерой и GPS. А еще он может менять разрешение устройства при изменении размеров своего окна! Новая версия пока не доступна, но ее обещают показать разработчикам в ближайшее время.



Instant Run



Функция доступна и на эмуляторе, и на физическом устройстве, при условии что приложение собирается для версии Android «Ice Cream Sandwich» или старше. Stephanie Cuthbertson отказалась сообщить по какому принципу работает эта магия, но сказала что Google скоро опубликует техническую статью, в которой раскроет все детали. На данный момент функция работает далеко не для всех изменений (см. список в комментариях), но, надеюсь, через некоторое время мы получим инструмент не хуже тех, что есть в распоряжении разработчиков для web и react native.

Новую версию Android Studio можно скачать на официальном сайте. Также доступен анонс.
Автор: @mdnsresponder

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

  • +7
    Только вы забыли указать, что 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
    • 0
      Спасибо, добавил про ограниченную функциональность.
  • 0
    «Instant run» традиционно для JVM называется «Hot Swap». Суть в том что из-за разбиения исполняемого кода в классы возможно подменить код функции\метода, не меняя данные в полях объектов. Это с давних пор делили JRebel, правда совсем не бесплатно zeroturnaround.com/software/jrebel. Жалко ребят, теперь они out of busyness, хотя рано или поздно это должно было случиться.
    • 0
      Судя по моему опыту с React и webpack, кроме самой возможности подменять код еще нужно серьезно перелопатить Framework, чтобы, к примеру, при изменении кода для кнопки она могла себя перерисовать в новом облике и правильно переподключить все обработчики если что поменялось. Непростая задача.
    • +1
      В каком смысле они out of business? Главная их клиентура это кровавый энтерпраиз, а там у них конкурентов нету.
    • 0
      А почему «out of busyness»-то? В Java мире же не только Android-проекты пишут, там вообще много чего делается. И если «Instant Run» будет сделан только для Android Studio, без переноса в Intellij Idea CE, то у ZeroTurnaround ничего не изменится: как ходили к ним за JRebel, так и будут ходить. Или я чего-то недопонял?
    • +1
      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-рынке.
      • +1
        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!
      • 0
        Правда, я не уверен, возможны ли API changes с использованием JRebel for Android


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

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

      Есть порт JRebel-я для Android Studio: zeroturnaround.com/software/jrebel-for-android. У него нет таких ограничений, как у Instant Run. Ну и то, что Instant Run вообще был сделан, только подтверждает, что JRebel решает правильную проблему :)
  • 0
    Я фигею от интуитивности и удобства «нового модного» дизайна сайтов и манеры давать ссылки вникуда.
    P.S. поторопился…
  • +5
    Релиз и превью немного разные вещи android-developers.blogspot.ru/2015/11/android-studio-20-preview.html
    • 0
      mdnsresponder есть смысл поправить название статьи, она на Canary Channel
      • 0
        Поправил, спасибо!
    • 0
      Спасибо, поправил. Ссылку на скачивание тоже перенацелил на канареечный билд.
  • +8
    Так же в студии 2.0 появилась удобная навигация по xml разметке
    image
    • –1
      это просто из 15 идеи.
      но я не совсем понял приемущества этой навигации
  • +3
    А еще эмулятор теперь видно в chrome://inspect/#devices
  • 0
    Кто-нибудь разобрался, как запускать новый эмулятор? У меня каждый раз запускается старый, никаких плей сервисов, никаких дополнительных меню.
    • 0
      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
      • 0
        Спасибо, обновил пост. В оригинальном анонсе про это ничего не было. Умеют же люди писать чтобы запутать :)
  • +2
    Уж сильно новый эмулятор похож на genymotion

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка