Android Nougat ( кодовое название Android N во время разработки) — седьмая основная версия и 14-я оригинальная версия операционной системы Android . Впервые выпущенная как альфа-тестовая версия 9 марта 2016 года, она была официально выпущена 22 августа 2016 года, причем первыми обновление получили устройства Nexus .
LG V20 стал первым смартфоном, выпущенным с Nougat в 2016 году.
Nougat вносит заметные изменения в операционную систему и ее платформу разработки, включая возможность отображать несколько приложений на экране одновременно в режиме разделенного экрана, поддержку встроенных ответов на уведомления и расширенный режим энергосбережения Doze, который ограничивает функциональность устройства после того, как экран был выключен в течение определенного периода времени. Кроме того, платформа перешла на среду Java на основе OpenJDK и получила поддержку API рендеринга графики Vulkan , а также бесшовные обновления системы на поддерживаемых устройствах.
Nougat получил положительные отзывы. Особую похвалу получил новый формат уведомлений приложений; хотя интерфейс многозадачности был воспринят как положительное изменение, рецензенты отметили, что несколько приложений были несовместимы с этой функцией. Критики неоднозначно отнеслись к режиму энергосбережения Doze, но более быстрая установка приложений и настройки пользовательского интерфейса также получили положительные отзывы.
По состоянию на декабрь 2022 года [обновлять]4,02% устройств работали под управлением Android Nougat, 1,6% — под управлением 7.1.x и 2,42% — под управлением 7.0. [5] Поддержка Android Nougat прекращена, и обновления безопасности больше не выпускаются с октября 2019 года.
Релиз имел внутреннее кодовое название «New York Cheesecake». [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 будет версией 7.0 Android. [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 Beta Program позднее в этом месяце, [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] Поддержка «картинка в картинке» была добавлена для Android TV . [38]
Механизм энергосбережения «Doze», представленный в Android Marshmallow, был расширен и теперь включает состояние, активируемое, когда устройство работает, а экран был выключен в течение определенного периода времени, но не находится в состоянии покоя. В этом состоянии сетевая активность ограничена, а приложениям предоставляются «окна обслуживания», в течение которых они могут получать доступ к сети и выполнять фоновые задачи. Как и в Marshmallow, полное состояние Doze активируется, если устройство находится в состоянии покоя с выключенным экраном в течение определенного периода времени. [8] [39] Новый режим «Data Saver» ограничивает фоновое использование мобильных данных и может запускать внутренние функции в приложениях, которые предназначены для снижения использования полосы пропускания, такие как ограничение качества потокового мультимедиа. [39] [40]
В декабре 2015 года Google объявила, что Android Nougat переключит свою Java Runtime Environment с несуществующей Apache Harmony на OpenJDK — официальную реализацию платформы Java с открытым исходным кодом, поддерживаемую корпорацией Oracle и сообществом Java. [41] Android Runtime (ART) теперь включает в себя систему компиляции с управлением профилями , использующую JIT-компилятор и профилирование наряду с текущим компилятором ahead-of-time для дальнейшей оптимизации приложений для аппаратного обеспечения устройства и других условий в фоновом режиме. [39]
Nougat представляет систему для включения «бесшовных», автоматических обновлений системы, основанную на и совместном использовании некоторого кода с реализацией аналогичной функциональности в ChromeOS . Система использует пару разделов. На этапе разработки перед выпуском SquashFS рассматривалась как файловая система, чтобы помочь компенсировать дополнительные издержки хранения при поддержании двух копий этих разделов. Однако по соображениям производительности в публичном выпуске Nougat дизайнеры в конечном итоге решили продолжить использовать традиционную файловую систему Android ext4. [42] Система Android выполняется из «онлайн» раздела, в то время как обновления применяются в фоновом режиме к избыточному «офлайн» разделу. При следующей загрузке после установки обновления избыточный раздел назначается активным для загрузки в обновленную ОС. Эта система устраняет необходимость перезагрузки устройства в среду восстановления системы для применения обновления (что предотвращает использование устройства до завершения обновления), а также обеспечивает резервное копирование существующей ОС в случае сбоя. Google решила включить бесшовные обновления только для устройств, поставляемых с Nougat (или более поздней версией), вместо того, чтобы разрешить более ранним устройствам поддерживать эту функцию после переразметки. [43] [38] Кроме того, из-за изменений 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 включает в себя «режим устойчивой производительности», помогающий разработчикам оптимизировать приложения под тепловой профиль устройства , [39] новый алгоритм отслеживания головы, который объединяет входные данные с различных датчиков устройства и интеграцию системных уведомлений в пользовательский интерфейс VR. [48]
В ответ на семейство ошибок Stagefright , раскрытых и исправленных в 2015 году, было внесено несколько изменений для защиты стека мультимедиа от будущих уязвимостей. Было реализовано обнаружение переполнения целочисленных значений во время выполнения , что предотвратило превращение большинства ошибок программирования, подобных Stagefright, в уязвимости, а также помогло исправить и предотвратить такие ошибки. Монолитный процесс MediaServer в Android был переработан для лучшего соответствия принципу наименьших привилегий . MediaServer теперь разделен на несколько отдельных процессов, каждый из которых работает в своей собственной непривилегированной песочнице и получает только те разрешения, которые необходимы для его задачи. Например, только AudioServer может получить доступ к Bluetooth , а libstagefright теперь работает в песочнице MediaCodecService , которой предоставлен только доступ к GPU . Дополнительные ограничения были наложены на стек мультимедиа через seccomp . [49]
Различные механизмы были включены для снижения возможности внедрения и/или выполнения вредоносного кода внутри ядра Linux , включая разделение памяти ядра на логические сегменты для кода и данных с разрешениями на доступ к страницам только для чтения и без выполнения по мере необходимости. Ядро также было ограничено от прямого доступа к памяти пользовательского пространства , а в компиляторе GCC была включена более сильная защита стека для уменьшения разрушения стека . Чтобы ограничить подверженность ядра потенциально вредоносному коду, perf был отключен по умолчанию, команды ioctl были ограничены SELinux , а seccomp-bpf был включен для предоставления процессам возможности ограничивать системные вызовы . [50]
На устройствах, поставляемых с Android Nougat, политика «Проверенной загрузки» (частично введенная в KitKat и отображающая уведомления при запуске в Marshmallow) должна строго соблюдаться. Если системные файлы повреждены или иным образом изменены, операционная система разрешит работу только в режиме ограниченного использования или вообще откажется загружаться. [51] [52]
Android Nougat поддерживает альтернативную схему шифрования диска , известную как «шифрование на основе файлов». В отличие от полного шифрования диска , она позволяет шифровать менее конфиденциальное содержимое хранилища, например файлы операционной системы, с помощью только аппаратного ключа, а не с помощью учетных данных. Конфиденциальные пользовательские данные остаются зашифрованными с использованием учетных данных. Шифрование на основе файлов устраняет необходимость в предзагрузочной аутентификации : вместо этого Android загружается нормально без дополнительного вмешательства, но доступ к данным, защищенным учетными данными, ограничен до тех пор, пока пользователь не разблокирует устройство в первый раз («прямая загрузка»). В то же время фоновые службы могут получать доступ к данным, которые они хранят в зашифрованном контексте устройства (например, к сигналам тревоги или уведомлениям о сообщениях, особенно после автоматических перезагрузок из-за обновлений или сбоев), чтобы поддерживать ограниченную функциональность, пока пользователь не разблокирует зашифрованное учетными данными хранилище. [53] [38]
Дитер Бон из The Verge похвалил новый интерфейс многозадачности в Android Nougat, назвав его «давно назревшим» для планшетов Android. Хотя изначально он посчитал реализацию «запутанной», он написал, что она работает хорошо, как только он правильно ее понял, хотя он отметил, что «некоторые приложения не полностью поддерживают разделенный экран, в то время как другие работают нормально, но все равно выводят предупреждение». Бону также понравился новый способ ответа на любое уведомление о сообщении, заявив, что «Android давно имеет преимущество в полезных и последовательных уведомлениях» по сравнению с iOS , и добавил: «теперь, когда быстрые ответы стали стандартом, я не вижу, чтобы это лидерство уменьшалось». Он также отметил «твики» по всей ОС как приятные изменения, включая быстрые переключатели в панели уведомлений, меню настроек с большей визуальной информацией и приложение камеры, которое было «немного подчищено». Бон заявил, что не заметил никаких существенных улучшений батареи, несмотря на функцию энергосбережения Doze в Nougat. Он также много писал о том, что, хотя Nougat «великолепен», «жаль, что пройдет так много времени, прежде чем кто-либо его увидит», писал об отсутствии обновлений для большинства устройств Android и что «если у вас нет Nexus, может пройти несколько месяцев, может пройти год [ sic ], прежде чем он станет доступен на вашем телефоне». [54]
Крис Веласко из Engadget также похвалил новые, связанные уведомления приложений, написав, что уведомления предыдущих версий Android «просто сидят там» до взаимодействия, но Nougat «гораздо лучше справляется с их объединением по приложениям и позволяет вам выполнять задачи». Он подчеркнул возможность расширить связанное уведомление Gmail , чтобы видеть темы и отправителей отдельных сообщений. Веласко заявил, что многозадачность с разделенным экраном была «большим делом», но он также столкнулся с несовместимыми приложениями. Визуальные элементы в приложении «Настройки», быстрые переключатели в раскрывающемся списке уведомлений и поддержка нового языка и эмодзи также были положительными моментами в обзоре. Веласко отметил улучшение батареи благодаря функции энергосбережения Doze, заявив, что «Nexus 6P, похоже, увеличил время работы батареи в режиме ожидания примерно на час или два». Он также написал, что установка и запуск приложений могут быть «немного быстрее, чем обычно» благодаря новому компилятору приложений Nougat, и он надеется, что разработчики игр будут использовать новый API Vulkan для некоторых «действительно красивых мобильных игр». [55]