Android Nougat ( кодовое название Android N во время разработки) — седьмая основная версия и 14-я оригинальная версия операционной системы Android . Впервые выпущенная в качестве альфа-тестовой версии 9 марта 2016 г., она была официально выпущена 22 августа 2016 г., причем устройства Nexus первыми получили обновление. LG V20 стал первым смартфоном, выпущенным с поддержкой Nougat.
Nougat вносит заметные изменения в операционную систему и ее платформу разработки, включая возможность одновременного отображения нескольких приложений на экране в режиме разделенного экрана, поддержку встроенных ответов на уведомления и расширенный режим энергосбережения Doze, который ограничивает возможности устройства. функциональность после выключения экрана в течение определенного периода времени. Кроме того, платформа перешла на среду Java на базе OpenJDK и получила поддержку API рендеринга графики Vulkan , а также плавные обновления системы на поддерживаемых устройствах.
Нуга получила положительные отзывы. Новый формат уведомлений приложений получил особую похвалу; Хотя многозадачный интерфейс был расценен как положительное изменение, рецензенты отметили, что некоторые приложения несовместимы с этой функцией. Критики неоднозначно восприняли режим энергосбережения Doze, но более быстрая установка приложений и настройка пользовательского интерфейса также были оценены положительно.
По состоянию на декабрь 2022 года [обновлять]4,02% устройств работали под управлением Android Nougat, 1,6% — на версии 7.1.x и 2,42% — на версии 7.0. [5] После октября 2019 года Android Nougat перестала поддерживаться, и обновлений безопасности больше не было.
Релиз имел внутреннее кодовое название «Нью-Йоркский чизкейк». [6] 9 марта 2016 года, в преддверии конференции разработчиков Google I/O , Google выпустила первую альфа- версию [7] Android «N» в рамках новой «Бета-программы Android», предназначенной для тестирования разработчиками и энтузиастами. до официального его релиза «этим летом». Предварительные сборки для разработчиков были совместимы только с текущими устройствами Google Nexus ; 5X , 6P , 6 , 9 , Pixel C и Nexus Player . Представленная «Программа бета-тестирования Android» позволила тестировщикам подписаться на беспроводные обновления новых бета-версий по мере их выпуска. [8]
13 апреля 2016 г. была выпущена Android N Beta Preview 2. [9] Google далее обсудила Android «N» во время основного доклада I/O 18 мая 2016 года и представила свою новую платформу виртуальной реальности Daydream . В это время была выпущена Beta Preview 3, первая предварительная версия, которая считается подходящей для более широкого публичного бета-тестирования. Google также объявила, что проведет конкурс по определению официального названия версии операционной системы. [10] [11] [12]
Beta Preview 4 была выпущена 15 июня 2016 года. [13] [14] 30 июня 2016 года Google объявил, что названием релиза N будет « Nougat »; Также было подтверждено, что Nougat будет версией Android 7.0. [15] [16] [17]
Последняя бета-версия 5 была выпущена 18 июля 2016 года. [18]
Android 7.0 был официально выпущен 22 августа 2016 года. Первыми устройствами, получившими обновление, стали Nexus 6 , 5X , 6P , 9 , Nexus Player , Pixel C и General Mobile 4G . [19] Дэйв Берк, вице-президент Android по разработке, заявил в августе 2016 года, что обновления Nougat будут выпускаться ежеквартально в виде служебных выпусков, ориентированных на «постоянные усовершенствования и полировку». [20] 6 сентября 2016 года LG анонсировала V20 , первый смартфон, который будет поставляться с предустановленной Nougat. [21] Компания Google представила первые смартфоны Pixel и Pixel XL во время мероприятия, посвященного аппаратному обеспечению, 4 октября 2016 года, [22] при этом телефоны Pixel заменили серию Nexus. [23]
Обновления существующих устройств зависят от производителя и оператора связи, а также от поддержки драйверов версии соответствующей встроенной системы устройства, установленной производителем. [24] Крупнейшие производители, в том числе HTC , Sony и Motorola , объявили о намерении обновить ряд своих последних устройств до Nougat. [25] [26] [27] Компания Qualcomm заявила, что не будет поддерживать Nougat на устройствах, использующих ее встроенные системы Snapdragon 800 и 801, по неизвестным причинам. Хотя для устройства были выпущены предварительные версии Nougat для разработчиков, Sony заявила, что не будет обновлять Xperia Z3 (который использует Snapdragon 801) до финальной версии из-за «непредвиденных ограничений платформы». Сообщалось, что в пакете тестов совместимости Google (тесты которого необходимо пройти для получения официальной сертификации) указано, что все устройства под управлением Nougat должны поддерживать графические API Vulkan или OpenGL ES 3.1 , ни один из которых не поддерживается графикой Adreno 330 устройства. основной. [24] [28] Предполагается, что Fairphone 2 станет единственным устройством с чипсетом Qualcomm Snapdragon 801, обеспечивающим официальную поддержку Android 7.1.2, что является продолжением усилий компании по увеличению срока службы более экологичного устройства. [29]
Пост-релизное обновление, известное как Android 7.1, было предварительно установлено на смартфоны Google Pixel и Pixel XL , выпущенные в октябре 2016 года; в новой версии добавлена поддержка платформы Google Daydream VR, графических клавиатур, расширенная поддержка смайлов (включая мужские и женские версии), поддержка действий, отображаемых в меню на ярлыках приложений на главном экране, и другие новые функции. Предварительная версия 7.1 для существующих устройств Nexus была выпущена в рамках бета-программы Android позже в этом месяце [30] и официально выпущена как Android 7.1.1 5 декабря 2016 года. [31] [32] [33] Начиная с версии 7.1.1. , Nexus 6 и Nexus 9 считались устаревшими и не получали никаких дальнейших обновлений. [34]
Android 7.1.2 был выпущен в апреле 2017 года и содержит различные улучшения и незначительные улучшения функциональности для устройств Nexus и Pixel. [34] [35]
Nougat меняет дизайн панели уведомлений, которая теперь имеет меньший ряд значков для настроек, заменяет карточки уведомлений новым дизайном «листа» и допускает встроенные ответы на уведомления. Несколько уведомлений из одного приложения также могут быть «объединены» [8] , и существует больший контроль над уведомлениями для каждого приложения. [36]
Для телефонов был введен режим разделенного экрана , в котором два приложения можно соединить, чтобы они заняли половины экрана. В качестве скрытой функции также доступен экспериментальный многооконный режим, в котором несколько приложений могут одновременно отображаться на экране в перекрывающихся окнах. [37]
Механизм энергосбережения «Doze», представленный в Android Marshmallow, был расширен и теперь включает состояние, активируемое, когда устройство работает, а экран выключен в течение определенного периода времени, но не неподвижен. В этом состоянии сетевая активность ограничена, а приложениям предоставляются «окна обслуживания», в которых они могут получать доступ к сети и выполнять фоновые задачи. Как и в Marshmallow, состояние полного сна активируется, если устройство находится в неподвижном состоянии с выключенным экраном в течение определенного периода времени. [8] [38] Новый режим «Экономия данных» ограничивает фоновое использование мобильных данных и может запускать внутренние функции в приложениях, предназначенные для снижения использования полосы пропускания, например ограничение качества потокового мультимедиа. [38] [39]
В декабре 2015 года Google объявила, что Android Nougat переключит свою среду выполнения Java с несуществующей Apache Harmony на OpenJDK — официальную реализацию платформы Java с открытым исходным кодом, поддерживаемую корпорацией Oracle и сообществом Java. [40] Android Runtime (ART) теперь включает в себя систему компиляции на основе профилей , использующую JIT-компилятор и профилирование вместе с текущим опережающим компилятором для дальнейшей оптимизации приложений для аппаратного обеспечения устройства и других условий в фоновом режиме. [38]
Nougat представляет систему для обеспечения «бесшовного» автоматического обновления системы на основе и совместного использования некоторого кода с реализацией аналогичных функций в ChromeOS . В системе используется пара разделов. На этапе предварительной разработки SquashFS рассматривалась в качестве файловой системы, чтобы компенсировать дополнительные затраты на хранение двух копий этих разделов. Однако из соображений производительности в публичной версии Nougat дизайнеры в конечном итоге решили продолжить использование традиционной файловой системы Android ext4. [41] Система Android работает из «онлайнового» раздела, а обновления применяются в фоновом режиме к резервному «автономному» разделу. При следующей загрузке после установки обновления резервный раздел назначается активным для загрузки обновленной ОС. Эта система устраняет необходимость перезагрузки устройства в среду восстановления системы для применения обновления (что предотвращает использование устройства до завершения обновления), а также обеспечивает резервное копирование существующей ОС в случае сбоя. Google решил включить плавные обновления только для устройств, поставляемых с Nougat (или более поздними версиями), вместо того, чтобы включать более ранние устройства для поддержки этой функции после перераспределения. [42] [43] Кроме того, благодаря изменениям ART в Nougat, приложения больше не нужно перекомпилировать при первой загрузке после обновления системы. [44]
В Developer Preview 2 добавлена поддержка платформы Vulkan , нового API низкоуровневого 3D- рендеринга, альтернативного OpenGL ES , с более высокой графической производительностью. [9] [45] [46]
Nougat — это первая версия с поддержкой Unicode 9.0, которая включает обновленные эмодзи, а также поддержку оттенков кожи эмодзи. [9]
В Android 7.1 добавлена встроенная поддержка API для реализации графических клавиатур; телефоны с несколькими конечными точками; [ требуются пояснения ] контекстные меню и закругленные значки для приложений в средствах запуска; и поддержка платформы виртуальной реальности Google Daydream . [30] [47] Среда Daydream включает «режим устойчивой производительности», который помогает разработчикам оптимизировать приложения в соответствии с тепловым профилем устройства , [38] новый алгоритм отслеживания головы, который объединяет данные от различных датчиков устройства, а также интеграцию системных уведомлений. в пользовательский интерфейс VR. [48]
В ответ на семейство ошибок Stagefright , обнаруженных и исправленных в 2015 году, было внесено несколько изменений, чтобы защитить медиа-стек от будущих уязвимостей. Было реализовано обнаружение целочисленного переполнения во время выполнения , что предотвратило превращение большинства программных ошибок, подобных Stagefright, в уязвимости, а также помогло исправить и предотвратить такие ошибки. Монолитный процесс MediaServer в Android был переработан, чтобы лучше соответствовать принципу наименьших привилегий . MediaServer теперь разделен на несколько отдельных процессов, каждый из которых работает в своей непривилегированной песочнице , и ему предоставляются только разрешения, необходимые для его задачи. Например, только AudioServer может получить доступ к Bluetooth , а libstagefright теперь работает в изолированной программной среде MediaCodecService , которой разрешен доступ только к графическому процессору . Дополнительные ограничения были наложены на стек мультимедиа через seccomp . [49]
Были задействованы различные механизмы для уменьшения возможности внедрения и/или выполнения вредоносного кода внутри ядра Linux , включая разделение памяти ядра на логические сегменты для кода и данных, с разрешениями доступа к страницам только для чтения и без выполнения, в зависимости от ситуации. Ядру также был ограничен прямой доступ к памяти пользовательского пространства , а в компиляторе GCC была включена более сильная защита стека , чтобы уменьшить разрушение стека . Чтобы ограничить доступ ядра к потенциально вредоносному коду, perf был отключен по умолчанию, команды ioctl были ограничены SELinux , а seccomp-bpf был включен, чтобы предоставить процессам возможность ограничивать системные вызовы . [50]
На устройствах, поставляемых с Android Nougat, должна строго соблюдаться политика «Проверенная загрузка» (частично представленная в KitKat и отображение уведомлений при запуске в Marshmallow). Если системные файлы повреждены или иным образом изменены, операционная система разрешит работу только в ограниченном режиме или вообще откажется загружаться. [51] [52]
Android Nougat поддерживает альтернативную схему шифрования диска , известную как «шифрование на основе файлов». В отличие от полного шифрования диска , оно позволяет шифровать менее конфиденциальное содержимое хранилища, например файлы операционной системы, с использованием только аппаратного ключа, а не учетных данных. Конфиденциальные пользовательские данные остаются зашифрованными с использованием учетных данных. Шифрование на основе файлов устраняет необходимость проверки подлинности перед загрузкой : вместо этого Android загружается нормально без дополнительного вмешательства, но доступ к данным, защищенным учетными данными, ограничен до тех пор, пока пользователь не разблокирует устройство в первый раз («Прямая загрузка»). Тем временем фоновые службы могут получать доступ к данным, которые они хранят в зашифрованном контексте устройства (например, к сигналам тревоги или уведомлениям о сообщениях, особенно после автоматических перезагрузок из-за обновлений или сбоев), чтобы поддерживать ограниченную функциональность до тех пор, пока пользователь не разблокирует хранилище, зашифрованное учетными данными. [53] [54]
Дитер Бон из The Verge похвалил новый многозадачный интерфейс Android Nougat, назвав его «давно назревшим» для планшетов Android. Хотя поначалу он нашел реализацию «сбивающей с толку», он написал, что она работает хорошо, как только он ее правильно понял, хотя он отметил, что «некоторые приложения не полностью поддерживают разделенный экран, в то время как другие работают нормально, но все равно выдают предупреждение». Бону также понравился новый способ ответа на любое уведомление о сообщении, заявив, что «Android уже давно имеет преимущество в полезных и последовательных уведомлениях» по сравнению с iOS , и добавил: «Теперь, когда быстрые ответы являются стандартными для него, я не вижу, чтобы это преимущество уменьшалось». . Он также отметил «настройки» во всей ОС как долгожданные изменения, в том числе быстрые переключения в ящике уведомлений, меню «Настройки» с большим количеством визуальной информации и приложение «Камера», которое было «немного подчищено». Бон заявил, что он не заметил каких-либо существенных улучшений в работе батареи, несмотря на функцию энергосбережения Doze в Nougat. Он также много писал о том, что, хотя Nougat «великолепна», «жаль, что кто-нибудь сможет ее увидеть», писал об отсутствии обновлений для большинства устройств Android и о том, что «если у вас нет Nexus, может пройти несколько месяцев, может пройти год [ sic ] , прежде чем он станет доступен на вашем телефоне». [55]
Крис Веласко из Engadget также похвалил новые встроенные уведомления приложений, написав, что уведомления предыдущих версий Android «просто сидят там» до момента взаимодействия, но Nougat «гораздо лучше справляется с объединением их по приложениям и позволяет вам добиваться цели». . Он подчеркнул возможность расширения встроенного уведомления Gmail для просмотра тем и отправителей отдельных сообщений. Веласко заявил, что многозадачность с разделенным экраном была «большим делом», но он также сталкивался с несовместимыми приложениями. Визуальные элементы в приложении «Настройки», быстрые переключатели в раскрывающемся списке уведомлений, а также поддержка нового языка и смайлов также были положительными моментами в обзоре. Веласко отметил улучшение заряда батареи благодаря функции энергосбережения Doze, заявив, что его «Nexus 6P, похоже, увеличил время автономной работы примерно на час или два в режиме ожидания». Он также написал, что установка и запуск приложений может происходить «немного быстрее, чем обычно» благодаря новому компилятору приложений Nougat, и выразил надежду, что разработчики игр будут использовать новый API Vulkan для некоторых «по-настоящему красивых мобильных игр». [56]