Компания Google объявила о начале распространения выпуска платформы Android 7.0 "Nougat" для устройств Nexus. Начиная с сегодняшнего дня в течение нескольких недель обновление будет предложено пользователям устройств Nexus 6, Nexus 5X, Nexus 6P, Nexus Player, Nexus 9, Pixel C и General Mobile 4G (Android One). Связанные с новым выпуском исходные тексты в скором времени будут размещены в Git-репозиторийпроекта (ветка android-7.0.0_r1). Из ключевых новшеств можно отметить многооконный режим, графический API Vulkan, использование OpenJDK, поддержка прямой отправки ответов из уведомлений, режим Direct Boot, API для доступа к директориям на внешних носителях, новый API MediaBrowser.

 

Особенности нового выпуска:

  • Многооконный режим работы, позволяющий разбивать экран на части для получения возможности работы одновременно с несколькими приложениями. Разбиение возможно в портретном и панорамном режимах. Кроме того, в версии для телевизоров поддерживается режим "картинка в картинке", позволяющий, например, отправить сообщение, не прерывая просмотр видео на большом экране. Разработчикам приложений предоставлены средства для управления работой в многооконном режиме, например, можно задать минимальный размер окна в котором может корректно отображаться интерфейс приложения.

  • Все созданные при разработке Android библиотеки с Java API заменены на код из свободного пакета OpenJDK. Cозданные для Android компоненты Java API распространялись под разрешительной лицензией Apache (частично были использованы наработки Harmony, реализации Java от проекта Apache), в то время как OpenJDK поставляется под копилефт-лицензией GPL, обязывающей открывать все модификации. Переход на OpenJDK позволит Google избавить платформу от претензий компании Oracle, которая считает Java API своей интеллектуальной собственностью и препятствует созданию совместимых функциональных аналогов.
  • Предоставление разработчикам возможностей Java 8, которые стали доступны благодаря интеграции OpenJDK. В том числе в программах для Android теперь можно использовать лямбда-выражения, статические методы, аннотации, Stream API и т.п. Для сборки предлагается инструментарий Jack (Java Android Compiler Kit), предоставляющий средства для компиляции исходных текстов на языке Java в байткод в формате "dex". Jack пришёл на смену ранее используемому инструментарию на базе javac, ProGuard, jarjar и dx.
  • Поддержка графического API Vulkan. По сравнению с OpenGL ES использование Vulkan позволяет существенно снизить нагрузку на CPU (до 10 раз в тестах Google) и повысить производительность отрисовки;
  • Возможность отправки ответа в окне получения уведомления. Получив выпадающее уведомление о поступлении нового сообщения, пользователь теперь может сразу написать ответ, не покидая этот диалог.

  • Поддержка группировки уведомлений, связанных с одним приложением. Например, можно сгруппировать все уведомления о получении новых сообщений и отобразить их в списке уведомлений в форме одной свёрнутой группы, отдельные уведомления можно посмотреть после раскрытия группы. Подобный подход позволяет избежать нагромождения при большом числе непросмотренных уведомлений (например, будет показано, что пришло 5 SMS, 8 сообщений Hangouts, 3 письма и 4 обновления программ, с возможностью раскрытия каждой группы);

  • Расширены возможности режима энергосбережения Doze, при котором после определённого периода неактивности пользователя устройство переводится в спящий режим, но с периодическим пробуждением на короткое время для того, чтобы дать приложениям возможность синхронизировать свои данные, а системе обработать ожидающие выполнения операции. Детали внесённый оптимизаций не приводятся, но устройство стало потреблять заметно меньше энергии в состоянии неактивности при выключенном экране;
  • Продолжено развитие проекта Svelte, нацеленного на сокращение потребления памяти и повышение отзывчивости при работе платформы Android на маломощных устройствах. Оптимизировано выполнение фоновых операций, JobScheduler и GCMNetworkManager адаптированы для планирования вызова заданий и выполнения сетевых запросов c учётом минимизации потребления ресурсов;
  • Режим Direct Boot, при котором устройство загружается в состояние с ограничением функциональности и активной блокировкой, но с предоставлением возможности получения уведомлений. Например, в случае перезагрузки устройство продолжит принимать сообщения и вызовы, но блокирует доступ к шифрованным данным и приложениям. Для перехода в нормальный режим пользователь должен снять блокировку;
  • В платформу встроена функция блокировки номеров телефонов, позволяющая отфильтровывать вызовы и сообщений с нежелательных номеров. Списки блокировки могут совместно использоваться в различных приложениях. Для разработчиков приложений предложен API для управления списками блокировки. Могут устанавливаться как постоянные, так и временные блокировки (пропадают после перезагрузки);
  • В настройки добавлен Data Saver, при включении которого фоновые сетевые операции допускаются только при выходе в Сеть через Wi-Fi. Трафик от приложений тоже блокируется, если программа специально не добавлена в белый список;

  • Расширены возможности среды выполнения ART, которая позволяет в момент установки приложения скомпилировать его в машинный код и в дальнейшем выполнять программу в нативном виде, без задействования виртуальной машины. В новом выпуске система упреждающей AOT-компиляции (Ahead-of-time) дополнена JIT-компилятором с поддержкой профилирования кода, позволяющего выбрать оптимальный план оптимизации на основе характеристик, учитывающих особенности выполнения приложения. Для каждого приложения формируется профиль оптимизации, позволяющий выбрать оптимальные методы AOT-компиляции для достижения максимальной производительности или минимального потребления памяти;
  • Представлена концепция Instant Apps, позволяющая создавать приложения, которые можно напрямую запускать из Google Play без выполнения процесса установки. При запуске подобные программы по аналогии с web-приложениями загружаются динамически, а после завершения работы не остаются в системе. Для запуска программы достаточно ссылки, которую можно разместить на устройстве в форме ярлыка. При этом Instant Apps могут использовать те же технологии, что и обычные устанавливаемые приложения для Android. Более того, они смогут запускаться не только в Android N, но и в прошлых выпусках, начиная с Android 4.1+ (API Level 16) с актуальным набором сервисов Google Play;
  • В настройки добавлена возможность одновременного выбора нескольких локалей;

  • Для Android TV представлен интерфейс для записи телепередач по расписанию;
  • Поддержка OpenGL ES 3.2;
  • Возможность настройки постоянного соединения через VPN (Settings>More>Vpn) и запуска VPN сразу после загрузки;
  • Представлен новый API для организации доступа приложений к директориям на внешних носителях, таких как SD-карты. Новый API существенно упрощает процесс открытия доступа к типовым директориям, таким как "Фотографии" или "Видео";
  • Переработан интерфейс быстрого доступа к настройкам;

  • Увеличено число опций для настройки оформления строки состояния. Например, отключить отображение различных типов пиктограмм и настроить формат вывода времени. Добавлен интерфейс калибровки цветов и ночной режим c приглушенной яркостью экрана;
  • Для приложений предоставлена возможность определения ярлыков для быстрого вызова определённых задач через Launcher. При помощи ярлыков можно оформить выполнение типовых операций с приложением, таких как отправка сообщения лучшим друзьям, открытие текущего местоположения на карте или просмотр следующей серии телевизионного сериала;
  • Поддержка Emoji Unicode 9 с новыми изображениями людей и занятий;

  • Упрощён интерфейс переключения между приложениями и возврата на прошлое приложение. Для переключения между двумя недавно используемыми приложениями теперь достаточно два раза прикоснуться к кнопке вызова меню;

  • Поддержка технологии виртуальной реальности Daydream, позволяющей использовать экран смартфонов с высоким разрешением в качестве стереоматрицы в шлемах виртуальной реальности (простейший шлем может быть склеен из картона, главное разместить смартфон на определённом расстоянии от глаз). Экран при этом разделяется на две части, которые формируют картинку для правого и левого глаза. Датчик движения и гироскоп позволяют менять содержимое при движении головы (например, можно смотреть по сторонам в Google Street View). Производительности смартфона Nexus 6P достаточно для обеспечения отзывчивости перерисовки на уровне 20 ms, что создаёт реалистичный эффект присутствия;
  • Режим бесшовной установки обновления прошивки, при котором обновление устанавливается в фоне, позволяя пользователю не ждать завершения установки, долгой перезагрузки и оптимизации приложений;
  • Поддержка шифрования на уровне файлов, позволяющего разным пользователям устройства хранить важные данные в зашифрованном виде;
  • В Android TV добавлен Recording API для организации записи видео.