Привет, Хабр! Сегодня у нас в программе кое-что особенное. Новые версии ПО важны для пользователей: они предоставляют доступ к новым возможностям на их устройствах. Но ещё важнее получить своевременный доступ к новому ПО для разработчиков. Использовать новейшие инструменты, API, проверить приложение на совместимость, одним из первых внедрить самые свежие и крутые наработки… В общем, мы рады представить вам тестовую версию Android N для разработчиков!



Чем ещё важен выход тестовой версии для разработчиков? Тем, что именно разработчики понимают, как важен грамотный и своевременный фидбэк. Один хороший багрепорт может сохранить вам кучу времени, поэтому мы решили выпустить девелопер-превью намного раньше, чем делали это в прошлых версиях.  

Текущая версия Android N является предварительной, и не все запланированные возможности имплементированы в доступных сборках, тем не менее, ряд крупных фич доступны для тестирования уже сейчас.

Мультиокна. Начиная с Android N (и разработанных для него приложений) вам будет доступен новый атрибут manifest — android:resizableActivity. Если атрибут имеет значение true, вашу активность можно запустить в режиме разделенных экранов на смартфонах и планшетах.

Параметры поведения приложения в таком режиме настраиваются: например, вы можете задать минимальные размеры окна активности, чтобы пользователи не могли его делать меньше. Работа приложения в мультиоконном режиме схожа с со сменой ориентации дисплея из пейзажной в портретную: изменения во внешнем виде приложения произойдут автоматически. Альтернативный вариант — позволить системе приостановить activity и перезапустить ее с новыми размерами.

Для устройств с большой диагональю (например, для ТВ-приставок и умных телевизоров) activity можно перевести в режим «картинка в картинке» Эта функция отлично подходит для приложений, в которых проигрываются видео. Чтобы использовать её на все 100%, не забудьте установить атрибуту android:supportsPictureInPicture значение true.




Оповещения о мгновенных ответах. API оповещения RemoteInput, который изначально был добавлен для работы с Android Wear, теперь работает в версии N для смартфонов и планшетов. С помощью этого API пользователи могут быстро и легко отвечать на входящие сообщения, не отрываясь от текущего приложения или не закрывая панель уведомлений. Подробнее об этом читайте здесь.

Объединенные оповещения. Внешний вид панели уведомлений менялся в каждой версии Android, в 5.0 и 5.1 мы добились отличной функциональности и наглядности, в 6.0 улучшили юзабилити. В версии N мы добавили то, о чём нас просили: возможности сгруппировывать и разворачивать однотипные оповещения от каждого из приложений. Для этого мы вводим метод Notification.Builder.setGroup().Со включённым свойством оповещения (например, личные сообщения в социальных сетях) будут сгруппированы в один объект на панели уведомлений. Пользователь сможет развернуть их: для этого достаточно щипком «развести» пальцы (жест, аналогичный мультитач приближению) или дважды коснуться соответствующего «мега-уведомления». Подробнее об этой функции читайте здесь.

Экономия заряда батареи. В Android Marshmallow мы внедрили улучшенный режим «сна» устройства под названием Doze, который уменьшил расход заряда батареи в те моменты, когда вы точно не пользуетесь устройством. Новые API должн были подготовить приложения к поддержке данного режима сна, так как в версии N функция Doze работает каждый раз, когда экран гаснет.

Если вы уже адаптировали свое приложение под Doze, — например, используете сервис GCM для важных оповещений, — тогда всё в порядке. Тем, кто ещё не занимался адаптацией к Doze, пригодится статья о начале работы с этой технологией.

Помимо этого, мы продолжаем развивать Project Svelte, делая фоновую работу Android N более эффективной. В результате операционная система должна занимать меньше памяти и стать доступной на большем количестве устройств.Если для фоновых задач вы используете JobScheduler, то вы на верном пути. Если нет, то новая версия N будет отличным поводом перейти на данную технологию, тем более, что расширили её функциональность. Уже сейчас вы можете использовать управление JobScheduler, чтобы оперативно реагировать на изменения контент-провайдера.


Улучшенная функция поддержки языка Java 8. Android идёт в ногу со временем: теперь разработчикам доступны возможности языка Java 8! С помощью компилятора Jack от Android вы можете пользоваться множеством популярных функций Java 8, включая лямбда-выражения. Они доступны на устройствах Android, начиная с версии Gingerbread. Используя новые функции, вы уменьшите шаблонный код. Например, лямбда-выражения могут заменить собой анонимные внутренние классы в случаях, когда предоставляются паттерны event listeners. Некоторые функции Java 8 — например, статичный метод и метод по умолчанию, стрим, функциональные интерфейсы — также доступны в N и последующих версиях. Используя компилятор Jack, мы надеемся лучше отслеживать использование Java, одновременно обеспечивая обратную совместимость с фоновыми задачами.

Начало работы


Предварительная версия N для разработчиков включает в себя обновленный SDK с системными образами. Все это можно использовать для тестирования работы на официальном эмуляторе Android, а также на устройствах Nexus 6, Nexus 5x, Nexus 6P, General Mobile 4G (Android One), Nexus Player, Nexus 9 и Pixel C. А чтобы быстрее внедрить эти функции на планшетах, мы предоставим разработчикам скидку в 150 долларов США на устройства Pixel C.
 
Это тестовая версия предназначена только для разработчиков, а не для широкой аудитории. Мы планируем часто обновлять системные образы превью N в ходе развития тестовой программы. Ближе к финальному релизу наша команда станет приглашать на тестирование и пользователей.

Мы прекрасно понимаем, что мало у кого есть желание помимо адаптации своего приложения заниматься ещё и морокой с прошивкой тестового девайса.  Для облегчения жизни разработчиков и тестеров мы создали программу Android Beta. Начиная с сегодняшнего дня вы можете обновлять свои устройства Android до предварительной версии N для разработчиков и получать регулярные обновления «по воздуху». Все необходимые инструкции вы найдёте на g.co/androidbeta.

Нажмите сюда, чтобы узнать больше о начале работы с превью Android N для разработчиков. Напишите нам о своих впечатлениях! Чем раньше мы получим обратную связь от вас, тем больше ваших пожеланий сможем учесть. Ну и, разумеется, по старой доброй традиции вы можете попытаться угадать название новой версии Android. Удачи. ;)

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


  1. a553
    11.03.2016 20:38
    +2

    И опять ничего про ночной режим.


    1. tehnolog
      11.03.2016 22:29

      В библиотеке AppCompat v.23.2.0 появилась тема DayNight. Не то?


      1. Newbilius
        12.03.2016 09:44
        +1

        Речь про возможность поменять у ВСЕГО софта в один клик внешний вид на "ночной".


        1. 03uk
          12.03.2016 11:39

          Если вы имеете в виду через систему, то это ведь невозможно реализовать, а DayNight тема дает вам легкий доступ менять тему в своем Application в "один метод"


          1. Grox
            12.03.2016 22:13
            +1

            невозможно реализовать
            Не вижу ничего невозможного. Включить системное уведомление — ночной режим, чтобы все приложения, которые предоставили соответствующую тему, на неё же и переключались. И можно сделать настройку принудительной инверсии цветов для тех, кто ещё не поддерживает.


    1. nicolausYes
      12.03.2016 13:08

      Так появился же, в каждом обзоре превью версии N можно увидеть или прочитать.

      Может включаться автоматически (в определенное время суток или в определенном месте).
      При этом тема может меняться на темную, яркость экрана уменьшаться и накладываться класный фыльтр.

      Или вы о чем-то другом?


  1. Zabelnikov
    11.03.2016 20:39

    По поводу поддержки 8 Java, подскажите:
    Как включить компилятор Jack и поддерживает ли он кодогенерацию (Например для использования Android Annotation или Dagger 2) ?


    1. dev_troy
      11.03.2016 21:30
      +1

      Прописать в секции defaultConfig:
      jackOptions { enable = true }
      Кодогенерация пока не поддерживается.


      1. VaMpir
        11.03.2016 22:29
        +1

        Кстати, если кто-то использует Crashlytics (Fabric.io), то с Jack приложение не соберется. Нужно либо отключить Crashlytics, либо не использовать Jack.
        Да, и еще, я испытал Jack (из новых build tools, 24 rc1) на одном своем приложении в режиме совместимости с ранними версиями Андроида (compileSdkVersion = 23). В принципе все собралось, я даже смог отключить retrolambda. Правда возникла серьезная проблема (не знаю, связано ли это с Crashlytics, на тот момент я не знал о его несовместимости), но сгенерированный apk оказался без Java-кода (classes.dex) :), и, соответственно, не запустился.


    1. gurinderu
      12.03.2016 18:08

      А разве dagger2 не поддерживается? Не должно же быть проблем


  1. alemiks
    12.03.2016 00:05

    Мультиокна

    хм, у меня еще на на 5-м андроиде на s6 был режим разделённых экранов. В чём отличие?

    В Android Marshmallow мы внедрили улучшенный режим «сна» устройства под названием Doze, который уменьшил расход заряда батареи в те моменты, когда вы точно не пользуетесь устройством

    да, ждал его. Крутая штука. Наверное. Ибо не работает (ночью, например, потребляет энергию так же, как на андроид 5)


    1. khim
      12.03.2016 00:42
      +5

      Ну тут как бы всё просто и ответ на оба ваши вопроса один и тот же: если Samsung что-то добавил в свою прошивку или, наоборот, что-то в ней отломал — то причём тут Гугл?

      Тут как бы обсуждается что в новой версии Android'а, а не то, что в новой версии Samsung'одроида :-) Который довольно-таки сильно отличается от оригинала, причём, как вы верно заметили, не все отличия пользительны...


    1. Aux
      12.03.2016 01:17
      +3

      Ну лично у меня N5X в режиме бездействия живёт очень и очень долго. Мне заряда без активного использования без проблем на сутки хватает.


  1. DjOnline
    12.03.2016 00:44

    >>Объединенные оповещения.
    Для Gmail это всегда работало. Но вот «слишком умные китайцы» в MIUI выбросили этот функционал, за что им луч ненависти.

    >>используете сервис GCM для важных оповещений
    Вот есть ли информация, кто использует GCM? Whatsupp? Viber? Skype? Telegram?


    1. Revertis
      12.03.2016 01:03
      +7

      Viber и Skype точно используют, про остальных не могу пока точно сказать.

      П.С.: Вот гугл-раша жжет: «Мы планируем часто обновлять системные изображения...» — картинки, что ли? :) Образы системы же!


    1. valera5505
      12.03.2016 07:52

      Телеграм, судя по всему, использует свое


      1. domix32
        12.03.2016 11:48

        Vk судя по всему тоже


  1. Error_403_Forbidden
    12.03.2016 01:14

    Вот что мне не понятно.
    При обновлении SDK он предагает поставить не API 24, как того ожидается по логике, а «N»!
    Это что, теперь в minSdkVersion писать «N» вместо «24»?
    Где логика-то?


    1. DZVang
      12.03.2016 10:21
      +1

      Всегда для превью использовались буквенные наименования, уж для 'M' точно.


    1. khim
      13.03.2016 22:32

      Логика в том, что собранные подобным SDK приложения стоит отправлять только на тестовый телефон. Ни Google Play, ни кто-либо ещё их не примет.

      Вот выйдет релиз — тогда другое дело. А пока… то, что вышло — это для разработчиков, не для пользователей пока.


  1. Artem_zin
    12.03.2016 01:46
    +9

    Developers_Relations :

    А чтобы быстрее внедрить эти функции на планшетах, мы предоставим разработчикам скидку в 150 долларов США на устройства Pixel C

    Лол, только Google Play Store в России не продает устройства. Можно, пожалуйста, решить эту проблему?

    // Да, можно заказывать из штатов, но это время, деньги, vpn, etc. Хочется заказывать девайсы тут и получать в течение нескольких дней.


    1. melon
      12.03.2016 02:04
      +6

      плюсую! Либо не пишите это в анонсе, либо добавьте в поставку Россию.


    1. NO_oB
      12.03.2016 14:04
      +1

      Это перевод из блога гугла.
      Так что, ничего удивительного, что написано об устройстве которое в РФ не купить.


  1. as3k
    12.03.2016 10:06
    -1

    Мультиокна, PiP, режим экономии, мгновенные ответы — все это появилось в iOS9.
    Вот только улучшенной поддержки Java там нету:)


    1. vikarti
      12.03.2016 10:51
      +1

      PiP в принципе и раньше можно было сделать на Android.
      Например так умеет работать BSPlayer для Android.
      возможный способ — https://stackoverflow.com/questions/10266959/having-application-running-above-other-app
      недостаток да — пермишен нужен специальный


    1. khim
      13.03.2016 22:41
      +2

      Мультиокна, PiP, режим экономии, мгновенные ответы — все это появилось в iOS9.
      Если вы о том, что в Apple — тоже не лаптем щи хлебают, то я очень рад за них.

      Если же вы о том, что «Apple опять обокрали» — то вам успокоительные пить нужно.

      Потому что как-то так получается что почти все инновации у Apple'а крадут ещё до того, как их сам Apple их выпустит. Все эти PiPы и мультиокна были реализованы в разных сторонних прошивках задолго до того, как они появились в «официальном» Android'е и, уж конечно, задолго до того, как iOS9 их «явила миру».

      Тут как раз проявляется обратная сторона «фрагментации Android'а»: почти все технологии вначале обкатываются на прошивках отдельных производителей, смотрится на то, как люди этим пользуются — и только потом они появляются в официальной версии. Первое, как правило, до того как Apple предствит свои «мегаинновации», второе — обычно после. Со всеми этим вещами так было.

      Не вижу здесь ничего странного.


  1. Itachi261092
    12.03.2016 11:14
    +3

    Какой смысл писать про скидки на Pixel C в русской статье, если России там в списке нет? Или гугл уже привык, что все русские покупают их устройства через перекупов?


  1. lexxsakhalin
    13.03.2016 08:05

    А бета для Nexus 5 и 7 будет?


    1. FenrirR
      13.03.2016 08:23

      Если верить написанному на сайте, то нет.

      Which devices are eligible?
      Nexus 6, Nexus 9, Nexus 5X, Nexus 6P, Nexus Player
      Pixel C
      General Mobile 4G (Android One)