Несколько дней назад появилась новость о выходе новой версии мобильной операционной системы Android 14. На данный момент исходники прошивки готовы для серии смартфонов Pixel, а чуть позже выйдут обновления для  Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo и Xiaomi. Кроме того, готовы и универсальные сборки для разных устройств на базе архитектур ARM64 и x86_64. Давайте внимательно посмотрим на улучшения и дополнения, которые появились в новой версии.  Разработчики обновили некоторые аспекты информационной безопасности ОС. В частности, добавлена возможность  частичного предоставления полномочий для доступа только к выбранным пользователем фотографиям и видео (READ_MEDIA_VISUAL_USER_SELECTED). Как только приложение переходит в фоновый режим или его работа завершается — полномочия отзываются. В приложениях, использующих обработчики, работающие в фоновом режиме, теперь обязательно указание типа фонового сервиса. Во время работы система проверяет соответствие указанного типа сервиса, запрошенных полномочий и используемого API. Например, если приложение указало тип фонового сервиса FOREGROUND_SERVICE_TYPE_LOCATION, подразумевается, что им могут быть запрошены полномочия ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION. Ещё одна новая возможность — запрещение отправки приложениями  intent-запросов к некоторым внутренним компонентам платформы. Кроме того, в ZipFile(String) и ZipInputStream.getNextEntry() запрещена обработка zip-архивов, пути в которых начинаются с символа "/" или содержат последовательность "..". Разработчики также ограничили запуск работ из фоновых обработчиков, плюс обновлены ограничения в области вызова программных интерфейсов, которые не предоставляются в SDK. Расширены возможности по использованию сразу нескольких рабочих профилей, причём упрощено и переключение между ними. Появилась также возможность открытия ссылок в других профилях — например, ссылку из рабочего профиля можно открыть в домашнем. Достаточно простым стал и процесс шеринга экрана. Разработчики ограничили типы приложений, которым разрешён вывод полноэкранных уведомлений при блокировке экрана. Так, подобные уведомления рассчитаны на привлечение внимания к информации, которая крайне актуальная для пользователя. Пример — звонки или будильник. Соответственно, полномочия для вывода этих уведомлений теперь ограничиваются приложениями для осуществления звонков и вывода предупреждающих сигналов. Сильно расширен и набор расширений для камеры. Теперь здесь появилась возможность использования более длительно выполняемых алгоритмов. Речь идёт о тех из них, где требуется выделение ресурсов устройства для обработки изображений. Это может быть повышение качества снимков, которые сделаны при низкой освещённости. Добавлены также функции для прогнозирования лагов для обработки снимков и сопутствующих процессов. Добавлены возможности подтверждения доступа к геолокации. Так, в диалоге с запросом подтверждения доступа теперь появился новый раздел с информацией о том, когда именно приложение может получать данные о местоположении плюс подробностями, где именно можно получить дополнительные сведения об этой функции. Ещё дополнены возможности по работе с видеоконтентом. Так, поддержка записи видео с высоким динамическим диапазоном яркости (HDR) расширена возможностями по получению с камеры дополнительной информации, дающей возможность сохранения изображений в формате Ultra HDR. Положительный момент в том, что формат Ultra HDR полностью совместим с JPEG, это даёт возможность приложениям работать с HDR-изображениями без каких-либо изменений. Стоит также выделить оптимизацию платформы для работы на устройствах со складными экранами. В частности, созданы библиотеки, которые обеспечивают предсказание событий, которые связаны с перемещением указателя, что обеспечивает малый лаг при использовании стилуса. Оптимизирована также система управления памятью для рационального выделения ресурсов тем приложениям, которые выполняются в фоновом режиме. Через несколько секунд после перевода приложения в прокэшированное состояние фоновая работа ограничивается взаимодействием с API для управления жизненным циклом приложения. Это, например, API Foreground Services, JobScheduler и WorkManager. В API PackageInstaller добавлены новые методы: requestUserPreapproval(), позволяющий каталогу приложений отложить загрузку APK-пакетов до получения от пользователя подтверждения установки; setRequestUpdateOwnership(), позволяющий закрепить за установщиком будущие операции обновления приложения; setDontKillApp(), позволяющий установить дополнительные возможности для приложения во время работы с программой. Появилась новая возможность относительно настроек языка для отдельных приложений. Так, разработчики приложений теперь могут без проблем менять localeConfig через вызов LocaleManager.setOverrideLocaleConfig для определения списка языков, показываемых для приложения в интерфейсе настройки Android. В новой версии запрещена установка приложений с SDK ниже 23. По словам разработчиков, это даёт возможность блокировать обход ограничений полномочий посредством привязки к старым API. Правда, те приложения, что уже установлены, но используют старые API, после обновления Android всё же будут работать. В Android Runtime (ART) реализована поддержка OpenJDK 17. Соответственно, основные Java-библиотеки платформы и средства разработки приложений обновлены до OpenJDK 17. Добавлена поддержка доступных в OpenJDK 17 языковых возможностей и Java-классов, например, классов типа record, многострочных строк и сопоставления c образцом в операторе instanceof. Наконец, появилось больше возможностей по кастомизации интерфейса. Значительно упрощён интерфейс выбора фоновых изображений. Добавлена возможность размещения собственных ярлыков на экран блокировки. Добавлен также новый набор шаблонов оформления интерфейса блокировки экрана, с разными шрифтами, виджетами и цветами. Есть и новый генератор фоновых изображений, который применяет машинное обучение для создания изображений по текстовому описанию пользователя. Если вы уже опробовали новую версию, расскажите в комментариях, как она вам. Есть ли проблемы, что стало лучше, а что, наоборот, ухудшилось.