Выпуск мобильной платформы Android 8.0 "Oreo"
Компания Google представила выпуск платформы Android 8.0 «Oreo». В ближайшее время обновление будет предложено пользователям устройств Pixel, Pixel XL, Pixel C, Nexus 5X, Nexus 6P и Nexus Player. Связанные с новым выпуском исходные тексты будут размещены в Git-репозиторий проекта (ветка android-8.0.0_r1).
Из ключевых новшеств можно отметить режим «картинка в картинке», каналы уведомлений, адаптивные пиктограммы, технология прямого соединения Wi-Fi Aware, фреймворк Telecom, AAudio API для профессиональной обработки звука, универсальные компоненты поддержки оборудования, возможность подключения обработчиков автоматического заполнения форм, включение в поставку библиотеки машинного обучения TensorFlow Lite, средства для управления выводом на несколько экранов, поддержка новых API Java 8, универсальные компоненты поддержки оборудования, поддержка языка Kotlin.
Особенности нового выпуска:
- Поддержка многооконного режима «картинка в картинке» (PIP API, Picture in Picture), позволяющего приложениям выводить окна поверх мультимедийного контента. Например, при поступлении нового сообщения в чате во время просмотра видео можно отобразить окно для написания ответа непосредственно поверх видео. Ранее PIP API был доступен только для Android TV, но теперь адаптирован для смартфонов и планшетов. Кроме PIP API в новой версии также предоставлена возможность создания приложениям окон, выводимых поверх контетента (overlay window) вместо системного окна для отображения предупреждений;
- Реализация каналов уведомлений, позволяющих приложениям разделять уведомления на категории с предоставлением пользователю гибких возможностей по управлению различными типами уведомлений. Вместо управления всеми уведомлениями приложения как одним целым, появилась возможность настройки поведения или блокирования отдельных каналов, на которые приложение разделяет свои уведомления. Например, для приложения чтения новостей можно отключить уведомления о показе политических и спортивных мероприятий, оставив вывод уведомлений о новостях развития технологий. В новом выпуске также представлены новые методы оформления и группировки уведомлений;
- Новый API Autofill для создания индивидуальных приложений-обработчиков автоматического заполнения форм. По аналогии с тем, как можно подключать различные реализации экранных клавиатур, появилась возможность создания приложений, берущих на себя работу сохранения и безопасного доступа к таким данным, как адреса, имена пользователей, пароли, номера карт и т.п.
- Новая реализация домашнего экрана для Android TV, нацеленная на упрощение поиска, предварительной оценки и просмотра контента, предоставляемого приложениями. Приложения могут публиковать один или более каналов, которые по выбору пользователя могут размещаться на домашнем экране;
- Реализация умной системы выделения текста. Благодаря применению машинного обучения теперь автоматически распознаются упоминания в тексте адресов, номеров телефонов, ссылок, email и подобной информации, что позволяет при выполнении операций копирования в буфер обмена обеспечить выделения данных элементов целиком, а не посимвольно. Кроме того, предоставлены средства для рекомендации приложений для дальнейших операций с выделенным блоком (например, для email будет предложен почтовый клиент);
- Представлена начальная реализация TensorFlow Lite, легковесного варианта платформы машинного обучения TensorFlow, позволяющего интегрировать в мобильные приложения функции классификации и распознавания изображений, текста и видео, создания чат-ботов и т.п. Для задействования в подобных приложениях средств для аппаратного ускорения вычислений развивается специальный Neural Network API;
- Продолжается работа над проектом Android Vitals, ориентированным на оптимизацию производительности графической подсистемы, ускорение запуска, продление автономной работы от аккумулятора и повышение стабильности платформы. Добавлена новая система для автоматического ограничения активности фонового выполнения приложений. Ограничение производится в трёх направлениях: блокирование неявных broadcast-обработчиков, лимитирование доступа к сервисам в фоновом режиме и снижение частоты предоставления информации о местоположении. Проведена оптимизация Android Runtime: по сравнению с Android 7 скорость прохождения некоторых тестов увеличилась до двух раз;
- В Play Console добавлен интерфейс для определения типовых проблем в приложениях — крахов, зависаний, приостановки вывода, медленной отрисовки, частых пробуждений из спящего режима, проблем с блокировками. Информация о данных проблемах теперь выводится в Play Console вместе с оценкой возможных причин и рекомендациями по устранению;
- Добавлена поддержка организации вывода на несколько экранов (multi-display). Если приложение поддерживает многооконный режим и к устройству подключено несколько экранов, то пользователь теперь может перемещать окна с из одного экрана на другой, а приложение выбирать на каком экране отобразить информацию;
- Реализована возможность разработки с использованием новых API, появившихся в Java 8, включая API java.time. Поддержка языковых возможностей Java 8 добавлена в компилятор javac и набор утилит dx. Инструментарий Jack переведён в разряд устаревших;
- Шрифты стали полноценными ресурсами и могут использоваться приложениями в XML-макетах, в том числе в XML можно определять семейства шрифтов, указывая стиль, размер и файлы со шрифтами;
- Поддержка адаптивных пиктограмм, подстраивающихся под интерфейс, применяемый производителем устройства. Например, можно сделать пиктограмму, которая может быть как круглой, так и квадратной или со сглаженными углами. Также реализованы новые анимированные действия с пиктограммами, применяемые в ланчере, ярлыках, настройках, диалогах обмена данными и обзорном экране;
- Возможность использования цветового пространства Wide-gamut в приложениях, работающих с изображениями;
- Добавлена поддержка звуковых кодеков для высококачественной передачи звука через Bluetooth, таких как LDAC;
- Добавлена поддержка технологии Wi-Fi Aware (Neighbor Awareness Networking или NAN), которая при наличии совместимого оборудования позволяет находить и подключаться к другим устройствам, поддерживающим Wi-Fi Aware, через установку прямого беспроводного соединения без необходимости использования точки доступа;
- Представлен фреймворк Telecom, расширяющий API ConnectionService и позволяющий интегрировать сторонние программы дозвона с системным пользовательским интерфейсом и бесшовно взаимодействовать с другими звуковыми приложениями. Например, приложение может отображать информацию о поступившем звонке в различных видах интерфейсов, таких как головной экран автомобильной информационно-развлекательной системы;
- Добавлены средства для организации навигации по интерфейсу с использованием клавиатуры. Например, перемещения указателя клавишами управления курсором или смена фокуса табуляцией. Возможность стала актуальной после реализации поддержки в Google Play возможности запуска приложений на устройствах с Chrome OS, снабжённых полноценной клавиатурой;
- Представлен API AAudio API, предназначенный для использования в приложениях профессиональной обработки звука, требующих максимальной производительности и минимальных задержек при работе со звуком. При использовании AAudio отправка и получение звуковых данных производится через потоки;
- В браузерном движке WebView появилась поддержка многопроцессного режима, при котором обработка разного web-контента выносится в отдельные изолированные друг от друга процессы. В Android O данный режим включен по умолчанию. Для приложений в WebView также предложены новые API для обработки ошибок и крахов. Опционально реализована возможность предварительной проверки URL на безопасность связанного с ним контента в сервисе Google Safe Browsing;
- По умолчанию для приложений задействован seccomp filter, через который обеспечена блокировка доступа к опасным системным вызовам, которые могут стать объектом атаки, но нетипичны для использования из пользовательских приложений (например, управление разделом подкачки). Для систем ARM64 заблокировано 17 и 271 системных вызовов, а для ARM — 70 из 364.
- Представлена платформа Android Go, предназначенная для комплектации устройств с небольшим размером ОЗУ. В основе Android Go лежат штатные оптимизированные системные компоненты платформы Android, способные обеспечить эффективную и комфортную работу на устройствах, имеющих 1 Гб оперативной памяти и менее. Вторым звеном является специально оптимизированный набор приложений Google Apps, который адаптирован для снижения потребления памяти, места в постоянном хранилище и трафика. В том числе подготовлены специальные сокращённые варианты просмотрщика видео YouTube Go, браузера Chrome и экранной клавиатуры Gboard;
- Реализована прослойка Treble, которая позволяет производителям создавать универсальные компоненты поддержки оборудования, не привязанные к конкретным версиям Android и используемым в них выпускам ядра Linux. Если ранее производитель вынужден был портировать компоненты для поддержки оборудования для ядра каждого нового выпуска, то теперь для новых выпусков можно использовать уже подготовленную основу, обеспечивающую взаимодействие с оборудованием. Низкоуровневые компоненты, специфичные для каждого устройства, выделены в отдельный слой, который отделён от Android OS Framework (т.е. от используемого в Android ядра Linux) и может развиваться независимо;
- В список официально поддерживаемых языков для разработки приложений для платформы Android добавлен язык Kotlin, рассчитанный на компиляцию приложений в форму для последующего выполнения внутри стандартной виртуальной машины Java (JVM) или Android.
© OpenNet