Компания Google анонсировала предварительный выпуск следующей редакции открытой мобильной платформы Android - Android N Developer Preview. Релиз Android N, который возможно будет поставляться под номером Android 7, ожидается в третьем квартале 2016 года. До этого времени периодически будут выпускаться предварительные выпуски Developer Preview, предоставляющие средства для разработки приложений с учётом новых возможностей платформы, таких как многооконный режим, интеграция OpenJDK, поддержка Java 8, функции блокировки номеров, новое оформление интерфейса быстрой настройки, режим экономии трафика, улучшенный режим энергосбережения Doze и возможность прямой отправки ответов из уведомлений.
В отличие от прошлых тестовых выпусков, компания Google запустила программу бета-тестирования, в рамках которой экспериментальную ветку можно установить и поддерживать в актуальном виде через штатный интерфейс установки обновлений (OTA, over-the-air), без необходимости ручной замены прошивки. Обновления доступны для пользователей устройств Nexus 6, Nexus 5X, Nexus 6P, Nexus Player, Nexus 9, Pixel C и General Mobile 4G (Android One).
Ключевые особенности Android N Developer Preview:
- Многооконный режим работы, позволяющий разбивать экран на части для получения возможности работы одновременно с несколькими приложениями. Разбиение возможно в портретном и панорамном режимах. Кроме того, в версии для телевизоров поддерживается режим "картинка в картинке", позволяющий, например, отправить сообщение, не прерывая просмотр видео на большом экране. Разработчикам приложений предоставлены средства для управления работой в многооконном режиме, например, можно задать минимальный размер окна в котором может корректно отображаться интерфейс приложения.
- Все созданные при разработке 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.
- Возможность отправки ответа в окне получения уведомления. Получив выпадающее уведомление о поступлении нового сообщения, пользователь теперь может сразу написать ответ, не покидая этот диалог.
- Поддержка группировки уведомлений, связанных с одним приложением. Например, можно сгруппировать все уведомления о получении новых сообщений и отобразить их в списке уведомлений в форме одной свёрнутой группы, отдельные уведомления можно посмотреть после раскрытия группы. Подобный подход позволяет избежать нагромождения при большом числе непросмотренных уведомлений (например, будет показано, что пришло 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-компиляции для достижения максимальной производительности или минимального потребления памяти;
- В настройки добавлена возможность одновременного выбора нескольких локалей;
- Для Android TV представлен интерфейс для записи телепередач по расписанию;
- Поддержка OpenGL ES 3.2;
- Возможность настройки постоянного соединения через VPN (Settings>More>Vpn) и запуска VPN сразу после загрузки;
- Представлен новый API для организации доступа приложений к директориям на внешних носителях, таких как SD-карты. Новый API существенно упрощает процесс открытия доступа к типовым директориям, таким как "Фотографии" или "Видео";
- Переработан интерфейс быстрого доступа к настройкам;
- Увеличено число опций для настройки оформления строки состояния. Например, отключить отображение различных типов пиктограмм и настроить формат вывода времени. Добавлен интерфейс калибровки цветов и ночной режим c приглушенной яркостью экрана;
- Упрощён интерфейс переключения между приложениями и возврата на прошлое приложение.