Примечания к выпуску Android 10

На этой странице представлены основные функции выпуска Android 10 и ссылки на дополнительную информацию. Эти обзоры функций организованы в соответствии с расположением документации по функциям на этом сайте.

Строить

java_sdk_library

В Android 10 представлено java_sdk_library , новое правило сборки для устранения проблем совместимости для общих библиотек Java. Производители устройств могут использовать этот механизм для своих собственных общих библиотек Java, чтобы обеспечить обратную совместимость своих API.

Архитектура

Компоненты модульной системы

Android 10 объединяет некоторые системные компоненты Android и позволяет обновлять их вне обычного цикла выпуска Android. Некоторые модули включают в себя:

Уровень аппаратной абстракции (HAL)

В Android 10 добавлена ​​поддержка автоматического отключения HAL, когда у них нет клиентов.

ядро

АБИ

Android 10 включает поддержку новых утилит мониторинга ABI , которые помогают сравнивать, отслеживать и устранять изменения ABI ядра, влияющие на совместимость с модулями ядра.

В Android 10 также представлена проверка использования ABI на основе символов. Средство проверки может обнаруживать устаревшие готовые двоичные файлы во время сборки, поэтому разработчики общих библиотек могут знать, какие предварительно созданные двоичные файлы могут быть повреждены их изменением, а какие предварительно созданные двоичные файлы необходимо перестроить.

Демон Android Live-Lock

Android 10 включает демона Android Live-Lock (llkd) , который предназначен для обнаружения и устранения взаимоблокировок ядра.

vDSO32 на ARM64

Android 10 поддерживает использование vDSO32 на 64-битных ядрах , что обеспечивает увеличение времени автономной работы на 0,4% и другие улучшения производительности.

записи fstab для ранее смонтированных разделов

Android 10 требует, чтобы устройства указывали записи fstab для ранее смонтированных разделов , используя файл fstab на первом этапе ramdisk.

HIDL

Разгрузить BroadcastQueue

Android 10 включает новую разгрузку BroadcastQueue в существующие фоновые и активные очереди. Очередь разгрузки имеет тот же приоритет и время ожидания, что и фоновая очередь. Чтобы предотвратить блокировку фоновой очереди, в которой могут происходить более интересные или видимые пользователям трансляции, очередь разгрузки обрабатывает широковещательную BOOT_COMPLETED , которую многие приложения прослушивают и выполнение которой может занять много времени. Очередь разгрузки в настоящее время обрабатывает только широковещательную BOOT_COMPLETED , но потенциально может обрабатывать и другие длинные широковещательные рассылки.

Служба SystemSuspend

Android 10 заменяет поток в libsuspend отвечающий за инициирование приостановки работы системы, сервисом SystemSuspend HIDL . Эта реализация предлагает функции, эквивалентные предыдущим версиям, но при этом использует преимущества инфраструктуры Android HIDL.

safe_union в HIDL

Android 10 представляет safe_union , явно помеченный тип объединения в HIDL.

Конфигурация

ConfigStore HAL

Android 10 отказывается от HAL ConfigStore из-за высокого потребления памяти и сложности использования и заменяет HAL системными свойствами .

API схемы файла конфигурации

Платформа Android содержит большое количество файлов XML для хранения данных конфигурации. Многие XML-файлы находятся в разделе vendor , но читаются они в system разделе. В этом случае схема XML-файла служит интерфейсом между двумя разделами, и поэтому схема должна быть явно указана и должна развиваться с учетом обратной совместимости. До Android 10 платформа не предоставляла механизмов, требующих указания и использования схемы XML или предотвращения несовместимых изменений в схеме. Android 10 предоставляет этот механизм, который называется Config File Schema API .

Системные свойства как API

Системные свойства, доступ к которым осуществляется через разделы, схематизированы в файлы описания sysprop , а API-интерфейсы для доступа к свойствам генерируются как конкретные функции для C++ и классы для Java.

Объект интерфейса поставщика (VINTF)

ВИНТФ

Изменения VINTF в Android 10 включают:

  • Устаревшие теги версии AVB
  • Добавление информации о ядре в пакеты OTA
  • Создание ODM-манифестов официально
  • Добавление матрицы совместимости продуктов
  • Связывание записи манифеста с модулем HAL в системе сборки

Загрузчик

Рамдиск

В Android 10 корневая файловая система больше не включается в ramdisk.img и вместо этого объединяется с system.img .

Создание разделов ODM

Android 10 включает поддержку создания разделов odm с использованием системы сборки Android. Вы можете использовать отдельный раздел /odm для настройки, что позволяет использовать один образ поставщика для нескольких аппаратных SKU. Это позволяет производителям оригинального дизайна (ODM) настраивать пакеты поддержки плат поставщиков систем на кристалле (SoC) (BSP) для своих конкретных устройств (своих плат). Они могут реализовывать модули ядра для компонентов, специфичных для платы, демонов, специфичных для платы, или свои собственные функции на уровнях аппаратной абстракции (HAL). Они также могут заменять или настраивать компоненты SoC.

Управление версиями заголовка загрузочного образа

Android 10 обновляет заголовок загрузочного образа до версии 2, которая включает раздел для хранения образа BLOB-объекта дерева устройств (DTB). Тесты VTS для Android 10 подтверждают, что все устройства, запускаемые с Android 10, используют заголовок загрузочного образа версии 2 и включают действительный образ DTB как часть образов загрузки/восстановления.

Образы восстановления для устройств, отличных от A/B

В Android 9 и более поздних версиях образ восстановления устройства должен содержать информацию из образа наложения . Производители устройств могут использовать DeviceTree или Advanced Configuration and Power Interface (ACPI) для описания всех необнаруживаемых устройств. Android 10 и более поздние версии включают поддержку архитектур, использующих ACPI вместо больших двоичных объектов DeviceTree для наложения (DTBO).

Стабильный AIDL

В Android 10 добавлена ​​поддержка стабильного языка определения интерфейса Android (AIDL) — нового способа отслеживать интерфейс прикладных программ (API)/бинарный интерфейс приложений (ABI), предоставляемый интерфейсами AIDL.

Перенос fastboot в пространство пользователя

В Android 10 добавлена ​​поддержка разделов с изменяемым размером путем перемещения реализации fastboot из загрузчика в пространство пользователя.

Отображать

Воспроизведение HDR-видео

Android 10 поддерживает воспроизведение HDR10, VP9 и HDR10+ .

Классификация текстов

Классификация текста использует методы машинного обучения, чтобы помочь разработчикам классифицировать текст. В Android 10 в API TextClassifier представлены два метода: suggestConversationActions detectLanguage . Метод suggestConversationActions генерирует предлагаемые ответы и действия из данной беседы, а detectLanguage определяет язык текста.

Поддержка рендеринга шрифта Zawgyi

Zawgyi — самый популярный шрифт в Мьянме. Android 9 и более ранние версии не поддерживают отрисовку Zawgyi, поскольку он не совместим с Unicode . Android 10 решает эту проблему, добавляя шрифт Unicode, способный одновременно отображать как Unicode Burmese, так и Zawgyi. Для поддержки рендеринга шрифтов Zawgyi на устройствах с Android 10 не требуется никакой работы по внедрению. Если на ваших устройствах есть специальная реализация для поддержки Zawgyi, вы можете:

Ограничения на скрытие значков приложений

Android 10 ограничивает возможность приложений скрывать свои значки запуска. Если для приложения не включено действие средства запуска, система отображает синтезированное действие в средстве запуска; это синтезированное действие представляет собой страницу сведений о приложении в системных настройках.

Дополнительные сведения о логике, используемой для отображения значков приложений, включая типы приложений, значки приложений которых не отображаются, см. в документации по getActivityList() в справочнике по API.

Настройки

Чтобы улучшить доступность, Android 10 включает настраиваемые пользователем параметры тайм-аута. Изменения API и настроек приходят с Android 10. Если вы настраиваете свои настройки, убедитесь, что эта функция поддерживается. Если на вашем устройстве есть элементы пользовательского интерфейса, время ожидания которых истекает, используйте для них API тайм-аутов . Дополнительные сведения см. в руководстве по специальным возможностям для разработчиков Android .

Совместимость

Документ определения совместимости с Android (CDD)

Документ определения совместимости с Android 10 повторяет предыдущие версии с обновлениями для новых функций и изменениями требований к ранее выпущенным функциям.

Тесты

Набор тестов совместимости (CTS)

Android CTS имеет отдельную страницу примечаний к выпуску , на которой перечислены многие важные изменения для Android 10.

загрузки CTS

Пакеты CTS, поддерживающие Android 10, доступны на странице загрузок CTS . Исходный код для включенных тестов можно синхронизировать с тегом android-cts-10_r1 в дереве с открытым исходным кодом.

CTS прокладка APEX

В Android 10 представлен пакет под названием CtsShimApex , который необходимо предварительно установить на устройстве для написания тестов CTS для управления APEX.

Режим тестового жгута

Режим тестового жгута CTS помогает разработчикам автоматизировать тестирование устройства или группы устройств.

Режим мгновенных приложений

Начиная с Android 10, CTS работает в режиме мгновенных приложений , что означает установку тестового APK в качестве мгновенного приложения и запуск тестов.

В дополнение к режиму CTS для мгновенных приложений Android 10 включает CTS Verifier для мгновенных приложений.

Аудио тест CTS Verifier pro

В Android 10 добавлен тест CTS Verifier на соответствие требованиям Pro Audio .

MIDI-тесты CTS Verifier

В Android 10 тест CTS Verifier MIDI проверяет функциональность MIDI с интерфейсами USB MIDI, интерфейсами Bluetooth MIDI и путем виртуального устройства MIDI.

Интерпретация теста CTS

Android 10 обновляет механизм интерпретации результатов CTS .

Набор тестов поставщика (VTS)

Тестирование VTS с отладочным RAM-диском

В Android 10 общий образ системы (GSI), используемый для запуска проверки соответствия CTS-on-GSI/VTS, изменяется с userdebug на тип пользовательской сборки, поскольку GSI имеет подписанный выпуск. Однако команда adb root , которая предоставляет root-права узла для тестируемого устройства Android, недоступна в пользовательской сборке. Это проблема, потому что для работы VTS требуется adb root .

Введен отладочный виртуальный диск , чтобы сделать возможным adb root , если устройство разблокировано. Это упрощает процесс тестирования за счет повторного использования одной и той же пользовательской сборки system.img (либо GSI, либо system.img OEM).

Проверка аппаратного компоновщика

В Android 10 добавлен новый тестовый класс VTS для проверки Hardware Composer через интерфейс IComposerClient.hal readback Если поставщики не реализуют readback , тесты проходят автоматически.

Отладка

Загрузка разделяемых библиотек с помощью разных загрузчиков классов

В Android 9 и более ранних версиях приложения загружали свои связанные общие библиотеки Java в загрузчик классов приложения. В Android 10 фреймворк использует загрузчик классов, отличный от загрузчика классов приложения, для загрузки общих библиотек Java, связанных с помощью uses-library или uses-static-library .

Как правило, приложения не должны полагаться на использование определенного загрузчика классов, поэтому это изменение не должно нарушать поведение приложения. Однако если приложение полагается на использование одного загрузчика классов, такое поведение нарушается. Кроме того, видимость классов в одном пакете для отдельных пакетов по-прежнему поддерживается, но не поддерживается в общих библиотеках.

Производители устройств могут столкнуться с проблемами совместимости приложений при тестировании своих устройств под управлением Android 10.

Функции безопасности

Более полный список улучшений, связанных только с безопасностью и конфиденциальностью, см. на странице улучшений безопасности и конфиденциальности Android 10 .

Аутентификация по лицу

Аутентификация по лицу позволяет пользователям разблокировать свое устройство, просто взглянув на переднюю часть устройства. В Android 10 добавлена ​​поддержка нового стека аутентификации по лицу, который может безопасно обрабатывать кадры камеры, сохраняя безопасность и конфиденциальность во время аутентификации по лицу на поддерживаемом оборудовании. Android 10 также предоставляет простой способ реализации, соответствующей требованиям безопасности, позволяющей интегрировать приложения для транзакций, таких как онлайн-банкинг или другие услуги.

Расширенный доступ

Агенты доверия, базовый механизм, используемый третичными механизмами аутентификации, такими как Smart Lock, могут расширять разблокировку только в Android 10. Агенты доверия больше не могут разблокировать заблокированное устройство и могут держать устройство разблокированным не более четырех часов.

Шифрование

OEMКрипто

Android 10 использует OEMCrypto API версии 15.

Тестирование

ГраницыДезинфицирующее средство

Android 10 развертывает BoundsSanitizer (BoundSan) в Bluetooth и кодеках. BoundSan использует дезинфицирующее средство UBSan. Это смягчение включено на уровне каждого модуля. Он помогает защитить важные компоненты Android и не должен отключаться. BoundSan включен в следующих кодеках:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

Очистка целочисленного переполнения

Android 10 включает санацию целочисленного переполнения (IntSan) в программных кодеках. Убедитесь, что производительность воспроизведения приемлема для всех кодеков, которые не поддерживаются аппаратным обеспечением устройства. IntSan включен в следующих кодеках:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

Память только для выполнения

По умолчанию разделы исполняемого кода для системных двоичных файлов AArch64 помечены как доступные только для выполнения (нечитаемые) в качестве защиты от атак повторного использования кода «точно в срок». Код, который смешивает данные и код вместе, и код, который целенаправленно проверяет эти разделы (без предварительного переназначения сегментов памяти как доступных для чтения), больше не работает. На приложения с целевым SDK Android 10 (уровень API 29 или выше) влияет, если приложение пытается прочитать разделы кода системных библиотек с поддержкой оперативной памяти (XOM) в памяти без предварительной пометки раздела как доступного для чтения.

Скудо

Scudo — это динамический распределитель памяти пользовательского режима, разработанный для повышения устойчивости к уязвимостям, связанным с кучей. Он предоставляет стандартные примитивы выделения и освобождения C, а также примитивы C++.

ShadowCallStack

ShadowCallStack (SCS) — это инструментальный режим LLVM , который защищает от перезаписи адреса возврата (например, переполнения буфера стека) путем сохранения адреса возврата функции в отдельно выделенном экземпляре ShadowCallStack в прологе функции неконечных функций и загрузки адреса возврата из экземпляра ShadowCallStack в эпилог функции.

Аудио

Аудио ХАЛ

Android 10 включает следующие новые возможности для аудио HAL .

  • AudioSource
  • AudioFormat
  • AudioChannelMask

Добавлены дополнительные требования для аудио HAL и реализации подсистемы.

Эффекты предварительной обработки

Android предоставляет эффекты предварительной обработки , такие как подавление акустического эха, автоматическая регулировка усиления и шумоподавление. Android 10 включает новые требования для записи с помощью VOICE_COMMUNICATION .

Диспетчер политики аудио

Android 10 включает в себя значительный рефакторинг диспетчера политики аудио, чтобы обеспечить большую гибкость для поддержки сложных вариантов использования в автомобиле.

Аудио высокого разрешения

Android 10 включает следующие улучшения для звука высокого разрешения .

  • Поплавковая поддержка
  • Поддержка частоты 192 кГц
  • Поддержка восьми каналов
  • Включение информации о времени

Параллельный захват

Android 10 улучшает пользовательский интерфейс одновременного захвата , который требует одновременного выполнения более одного активного захвата звука.

АудиоВоспроизведениеЗахват

Android 10 содержит новый API под названием AudioPlaybackCapture , который дает приложениям возможность копировать звук, воспроизводимый другими приложениями. Эта функция аналогична захвату экрана, но для звука. Основной вариант использования — разрешить потоковым приложениям захватывать звук, воспроизводимый играми.

API захвата не влияет на задержку приложения, звук которого записывается.

МИДИ

Android 10 упрощает перенос профессиональных аудиоприложений, использующих MIDI, на платформу Android с помощью AMidi NDK API .

Камера

Сводную информацию об изменениях в API камеры, HAL камеры и модуле камеры, появившихся в Android 10, см. в разделе Обновления камеры Android 10 .

Улучшения конфиденциальности платформы камеры

Android 10 вводит улучшения конфиденциальности в структуру камеры. Чтобы избежать раскрытия потенциально конфиденциальной статической информации о камере в CameraCharacteristics без согласия пользователя, приложения должны получить разрешение CAMERA для получения статических метаданных с тегом конфиденциальности с помощью метода getCameraCharacteristics .

Чтобы получить список характерных ключей камеры, для которых требуется разрешение CAMERA , вызовите метод getKeysNeedingPermission .

Запрос на перенастройку сеанса

В Android 10 добавлена ​​функция запроса на перенастройку сеанса , которая позволяет повысить производительность за счет большего контроля над внутренней логикой перенастройки параметров сеанса.

API управления буфером камеры HAL3

В Android 10 представлены дополнительные API-интерфейсы управления буфером камеры HAL3 , которые позволяют реализовать логику управления буфером для достижения различных компромиссов в отношении памяти и задержки в реализациях камеры HAL.

Динамический переключатель физической камеры HAL для камеры

В Android 10 представлен динамический тег метаданных ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID , который указывает активную базовую физическую камеру логического устройства камеры. Дополнительные сведения см. в разделе Поддержка нескольких камер .

Поддержка скрытия физических камер

В Android 10 камера HAL может уменьшить количество физических камер, которые могут быть напрямую открыты приложением. Дополнительные сведения см. в разделе Поддержка нескольких камер .

Camera2 VNDK API

В Android 10 модули поставщиков могут получать доступ к камерам и управлять ими через два новых стандартных интерфейса HIDL: android.frameworks.cameraservice.service@2.0 и android.frameworks.cameraservice.device@2.0 . Чтобы сделать использование интерфейсов HIDL более удобным, в Android 10 также представлена ​​доступная для поставщиков библиотека libcamera2_vendor . Эта библиотека похожа на библиотеку Camera NDK с небольшими изменениями.

Конфигурации потоков

В Android 10 добавлены функции, которые позволяют поставщикам камер рекламировать рекомендуемые потоки камер клиентам камер и поддерживать API для запроса комбинаций потоков .

Требования к комбинации потоков камер

Устройства под управлением Android 10 больше не обязаны поддерживать комбинации потоков с физическими потоками подкамеры. Однако устройства под управлением Android 10 с камерой HAL версии 3.5 должны поддерживать isStreamCombinationSupported() , чтобы приложения могли запрашивать, поддерживается ли комбинация потоков, содержащая физические потоки.

Дополнительные сведения см. в разделе Поддержка нескольких камер .

HEIF-визуализация

Android 10 обеспечивает встроенную поддержку камеры для изображений в формате высокоэффективных файлов изображений (HEIF) , которые обеспечивают улучшенное качество изображения и меньшие размеры по сравнению с изображениями JPEG. Устройства должны иметь кодировщик HEIC или HEVC для поддержки изображений HEIF.

Монохромные камеры

Android 10 обеспечивает дополнительную поддержку формата потока Y8, статических метаданных массива цветных фильтров монохромного и ближнего инфракрасного (NIR) цветов, а также функции DngCreator для монохромных камер .

Связь

Звонки и обмен сообщениями

Номера экстренных служб и экстренный вызов

Android 10 обеспечивает улучшенную поддержку экстренных вызовов . В экстренных случаях устройства с поддержкой IRadio HAL v1.4 могут инициировать экстренный вызов, используя номера экстренных служб, полученные из такого источника, как SIM-карта, сетевой сигнал или база данных Android. Номера можно классифицировать на основе категорий экстренных служб, таких как полиция, пожарная служба и скорая помощь.

API для групповых вызовов

API-интерфейсы групповых вызовов являются расширением API-интерфейсов eMBMS, добавленных в Android 9. Новые API-интерфейсы определяют стандарт для приложений, которые могут присоединяться и транслировать групповые вызовы сотового вещания, взаимодействуя с пакетами промежуточного программного обеспечения eMBMS. Для правильной работы групповых вызовов требуется поддержка со стороны поставщика набора микросхем, поставщика промежуточного программного обеспечения и оператора сотовой связи. Документация для разработчиков находится на странице developer.google.com .

Возможности удаленной SIM-карты

В Android 10 представлены возможности удаленного доступа к SIM-карте, которые позволяют приложениям для обмена сообщениями на хост-устройстве Android отправлять SMS-сообщения через телефоны с использованием таких механизмов, как Bluetooth. Дополнительные сведения см. в справочной документации по методу getSubscriptionType и константе SUBSCRIPTION_TYPE_REMOTE_SIM .

Несколько eSIM

В Android 10 класс EuiccManager поддерживает устройства с несколькими встроенными SIM-картами (eSIM) или eUICC.

обновления eSIM

Для устройств под управлением Android 10, поддерживающих eSIM, необходимо определить несъемный массив идентификаторов слотов eUICC. Устройства также должны поддерживать IRadio HAL v1.4 и IRadioConfig HAL v1.2. Дополнительные сведения см. в разделе Реализация требований к eSIM и модему.

Неавтономный 5G (NSA)

В Android 10 добавлена ​​поддержка автономного 5G (NSA) . 5G NSA — это решение для сетей 5G, где сеть поддерживается существующей инфраструктурой 4G. В Android 10 устройства могут отображать значок 5G в строке состояния, когда устройство подключается к сети 5G.

Предложение учетной записи телефона

В Android 10 представлена служба предложений телефонных учетных записей, которая позволяет отображать предложения телефонных учетных записей пользователям при совершении звонка.

Перевозчик

Перенос настроек мобильной сети

В Android 10 была изменена архитектура кода пользовательского интерфейса настроек мобильной сети и перемещена из стека «Телефония» в стек «Настройки». Для поддержки перенесенного кода измените следующие значения конфигурации параметров мобильной сети с ресурсов Android на ресурсы CarrierConfig :

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

Идентификаторы устройств

Постоянные идентификаторы устройств (IMEI/MEID, IMSI и серийный номер сборки) защищены привилегированным разрешением с доступом, который также предоставляется приложениям владельца устройства и профиля. Поскольку IMSI и серийный номер SIM-карты предоставляются оператором, доступ к этим идентификаторам предоставляется пакетам с привилегиями оператора.

Вай-фай

Выбор сети

Android постоянно оценивает качество подключенной сети и оценивает качество доступных сетей. В Android 10 обновлены алгоритмы и процедуры выбора и переключения между сетями Wi-Fi .

Сканирование разгрузки предпочтительной сети Wi-Fi

В Android 10 представлен необязательный метод API с именем setDeviceMobilityState() в WifiManager , который увеличивает интервал между сканированиями предпочтительной разгрузки сети (PNO) , когда устройство находится в стационарном состоянии, чтобы снизить энергопотребление.

Оператор Wi-Fi

В Android 10 устройства с функцией операторского Wi-Fi автоматически подключаются к настроенным операторским сетям Wi-Fi (сетям с сертификатами открытого ключа).

Простое подключение к Wi-Fi

В Android 10 устройства могут использовать Wi-Fi Easy Connect , который использует протокол подготовки устройств (DPP), представленный Wi-Fi Alliance (WFA), для предоставления и настройки устройств Wi-Fi.

Режим Wi-Fi с низкой задержкой

В Android 10 представлен режим Wi-Fi с низкой задержкой , который настраивает чип Wi-Fi для уменьшения задержки.

Обновленный DHCP-сервер

В рамках формирования зонтика службы «IP-сервер» dnsmasq удаляется. Android 10 заменяет функциональное использование сервера DHCPv4 отдельным компонентом, в основном написанным на Java, для лучшей интеграции с плоскостью управления инфраструктурой Java. Это повышает безопасность и возможности обновления DHCP-сервера. Дополнительные сведения см. в разделе packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java .

Для реализации этого изменения не требуется никаких действий: все устройства, выпускаемые и обновляющиеся до Android 10, по умолчанию используют DhcpServer . Если у вас есть настройки DHCP-сервера, вы можете вернуться к поведению Android 9, установив глобальный параметр tether_enable_legacy_dhcp_server=1 . Новый DhcpServer включен в модуль сетевых компонентов, поэтому любая настройка функций DHCP-сервера должна выполняться выше.

WPA3 и расширенные возможности Wi-Fi Открыть

В Android 10 добавлена ​​поддержка стандартов безопасности Wi-Fi Protected Access 3 (WPA3) и Wi-Fi Enhanced Open для обеспечения большей конфиденциальности и устойчивости к известным атакам.

Wi-Fi Прямой

Wi-Fi Direct , также известный как Wi-Fi P2P, позволяет поддерживающим устройствам обнаруживать и подключаться друг к другу напрямую с использованием протокола Wi-Fi Direct без доступа к Интернету или сотовой сети.

Усовершенствования рандомизации MAC-адресов

Начиная с Android 10 рандомизация MAC -адресов включена по умолчанию для клиентского режима, SoftAp и Wi-Fi Direct. Устройства должны предоставлять возможность включения или отключения рандомизации MAC-адресов для каждого SSID в пользовательском интерфейсе системы.

Точка доступа R2

В Android 10 появилась поддержка функций Passpoint R2 . В Passpoint R2 реализована онлайн-регистрация (OSU) — стандартный метод предоставления новых профилей Passpoint. Android 10 поддерживает подготовку профилей EAP-TTLS с использованием SOAP-XML.

NFC

Безопасный NFC

Безопасный NFC позволяет включать эмуляцию карты NFC за пределами хоста, только когда экран устройства разблокирован. Реализация этой функции дает пользователям возможность включить Secure NFC для повышения безопасности.

Android Beam устарел

В Android 10 больше не требуется Android Beam, а следующие интерфейсы и методы устарели.

Интерфейсы:

Методы:

Чтобы использовать Android Beam, сообщите о константе функции android.sofware.nfc.beam .

Графика

Поверхностный контроль

В Android 10 добавлен ASurfaceControl — новый способ для SurfaceFlinger принимать буферы.

Графическая реализация

Слои OpenGL ES

В Android 10 представлена ​​система слоев для GLES.

ЭГЛ 1.5

В Android 10 реализован интерфейс EGL 1.5 . Для получения информации о новых функциях в EGL 1.5 просмотрите спецификацию Khronos Releases EGL 1.5 .

Вулкан

Android 10 включает поддержку графики Vulkan 1.1. Платформа также поддерживает VK_KHR_swapchain v70, поэтому приложение Vulkan может создавать VkImage , поддерживаемый памятью цепочки обмена.

Частота обновления производительности

В Android 10 добавлена ​​поддержка частоты обновления производительности. Эта функция отключена по умолчанию.

Взаимодействие

Автомобильный

Автомобильный звук

В Android 10 контекст Audio HAL сопоставляется с AudioAttributes.usage для идентификации звуков. Android поддерживает один экземпляр AUDIO_DEVICE_OUT_BUS для каждого контекста. IAudioControl HAL предоставляет расширения Audio HAL для конкретных автомобилей .

Жестовая навигация

Android 10 представляет возможность полностью жестовой навигации по системе. Сведения о том, как подготовить приложения для использования этой функции, см. на странице жестовой навигации на сайте Android Developer.

Нейронные сети

В Android 10 представлены обновления API нейронных сетей и HAL нейронных сетей. Сводку изменений см. в разделе Нейронные сети .

Новая и обновленная документация по нейронным сетям для Android 10:

Датчики

Датчики HAL 2.0

Датчики HAL 2.0 поддерживает использование быстрых очередей сообщений (FMQ) для отправки событий датчика из HAL в Android Sensors Framework.

Датчики выключены

Android 10 включает настройку разработчика для отключения всех датчиков на устройстве. Эта функция помогает разработчикам тестировать функциональность своего приложения в ситуациях, когда эти датчики становятся недоступными, а также дает пользователям возможность управлять датчиками на своем устройстве.

Если ваши устройства используют реализацию по умолчанию SensorService , CameraService и AudioPolicyService , дополнительная настройка эталонного проекта не требуется. Если у вас есть другие датчики, см. раздел « Настройка » для получения дополнительных сведений о поддержке этой функции.

Средства массовой информации

Обновляемые мультимедийные компоненты

Android 10 предоставляет обновляемые компоненты мультимедиа , которые позволяют обновлять компоненты модульной системы, связанные с мультимедиа, через инфраструктуру Google Play Store или с помощью механизма беспроводной связи (OTA), предоставляемого партнерами.

Медиа DRM

Android 10 повышает полезность и удобство использования API MediaDrm Java и NDK.

Расшифровка

Android 10 поддерживает декодирование AV1 SW.

Разрешения

Android 10 предоставляет дополнительные конфигурации разрешений для обеспечения прозрачности и конфиденциальности пользователей.

Поставщик контактов и сведения о родственных связях

Начиная с Android 10, доступ к данным, относящимся к контактам, управляемым компонентом поставщика контактов , отличается от доступа к данным в Android 9 и более ранних версиях. Эти изменения, касающиеся доступа к данным, улучшают конфиденциальность пользователей на всех устройствах Android 10, использующих компонент поставщика контактов. Базовая база данных больше не содержит данных о сходстве контактов. Поэтому приложения не могут писать или читать из него.

Ожидается, что изменения в Android 10 окажут большое влияние на API. Если ваши приложения используют устаревшие функции, упомянутые в разделе «Информация о поставщике контактов и сходствах», вы можете обновить свои приложения, чтобы компенсировать любые изменения. Кроме того, если вы используете разветвленную версию поставщика контактов, вы должны обновить поставщика контактов.

Разрешения на размещение в трех штатах

Разрешения на определение местоположения с тремя состояниями в Android 10 дают пользователям больший контроль над тем, как приложения получают доступ к местоположению их устройств.

Напоминание о доступе к местоположению в фоновом режиме

В Android 10 есть напоминание о местоположении в фоновом режиме , которое повышает прозрачность того, какой доступ приложений имеют к местоположению устройства, и помогает пользователям контролировать такой доступ.

Ограничение подходящих местоположений

Когда приложение запрашивает местоположение устройства, оно может либо дождаться ответа на запрос, либо, используя активные прослушиватели местоположения, получить оперативное обновление местоположения. Начиная с Android 10, чтобы получать оперативные обновления местоположения , разработчики должны указать, что им нужны пассивные обновления местоположения из класса FusedLocationProviderClient .

Запуск фоновых приложений

В Android 10 непривилегированные приложения без видимого окна не могут автоматически запускаться на передний план. Это изменение подавляет всплывающие окна с рекламой и злонамеренные захваты. Для включения этого действия не требуется.

Песочница приложения

В Android 10 приложения имеют ограниченное необработанное представление файловой системы без прямого доступа к таким путям, как /sdcard/DCIM . Однако приложения сохраняют полный необработанный доступ к своим путям, относящимся к пакету, которые возвращаются любыми применимыми методами, такими как Context.getExternalFilesDir() . Приложения по-прежнему имеют полный необработанный доступ к своим путям, относящимся к пакетам.

Используйте рекомендации по изолированной программной среде приложения для обмена файлами, чтобы обеспечить надлежащую детализацию обмена данными.

Ограничить доступ к буферу обмена приложений

В Android 10 доступ к буферу обмена изменился, так что содержимое буфера обмена нельзя просмотреть, вызвав ClipboardManager.getPrimaryClip или добавив прослушиватель onPrimaryClipChanged для уведомления об изменении буфера обмена. Это повышает конфиденциальность пользователей и запрещает вредоносным приложениям изменять буфер обмена.

В Android 10 доступ для чтения разрешен только к текущему приложению с фокусом ввода или к текущей клавиатуре. Вызов слушателя ClipboardManager.onPrimaryClipChanged() теперь срабатывает только для приложений, соответствующих таким ограничениям. ClipboardManager.getPrimaryClip и ClipboardManager.getPrimaryClipDescription возвращают значение null , если запрашивающее приложение либо не является редактором метода ввода по умолчанию (IME), либо не имеет фокуса ввода.

Разрешения во время выполнения включают распознавание действий

Пользователи теперь видят диалоговое окно распознавания действий, когда приложение получает доступ к местоположению устройства в фоновом режиме. Жестко ограниченные разрешения во время выполнения должны быть должным образом занесены в белый список в Android 10.

Разрешение MANAGE_DEVICE_ADMINS

Android 10 изменяет разрешение MANAGE_DEVICE_ADMINS с подписи или привилегии только на подпись. Это означает, что только приложения, подписанные платформой, могут устанавливать другие приложения в качестве администратора устройства.

Обмен улучшениями API

Android 10 предоставляет ряд новых функций API платформы Android, связанных с совместным использованием файлов . Если вы изменили код Share Sheet в своей реализации, убедитесь, что ваша реализация поддерживает эти новые функции. Если вы не изменили код Share Sheet в своей реализации, вам не нужно ничего делать для поддержки этих новых функций.

Среда выполнения Android (АРТ)

Подписанная конфигурация

Функция подписанной конфигурации позволяет встраивать в APK-файлы конфигурацию ограничений интерфейса, не относящуюся к SDK. Это позволяет удалить определенные интерфейсы, не относящиеся к SDK, из черного списка, чтобы AndroidX мог безопасно их использовать. С этим изменением AndroidX может добавить поддержку новых функций в более старых версиях Android.

Представление

Уровень абстракции Cgroup

Android 10 includes a cgroup abstraction layer and task profiles, which developers can use to describe a set of restrictions to apply to a thread or a process.

Low Memory Killer Daemon (lmkd)

Android 10 supports a new lmkd mode that uses kernel pressure stall information (PSI) monitors for memory pressure detection.

Power

Platform power management

In Android 10, Doze mode can be enabled on always-on devices as well as on battery-powered devices.

Routine battery saver

Android 10 introduces a new battery saver schedule option called based on routine . Routine battery saver allows an app chosen by the OEM to provide signals to the system for more intelligent battery saver scheduling. This option requires configuration, and is optional to implement.

Power stats HAL

In Android 10, IPowerStats.hal replaces the power stats collection APIs in IPower.hal . While the power HAL still supports the APIs, they'll be migrated exclusively to the power stats HAL in the future.

The power stats HAL includes new APIs to support the collection of data from on-device power measurement, for supported devices. The existing power stats collection APIs are also updated to improve flexibility. The power hinting APIs remain in power HAL and aren't changing.

Thermal mitigation

The thermal framework in Android 10 abstracts device interfaces for the thermal subsystem temperature sensor, including CPU, GPU, battery, skin, and cooling device. The framework introduces a polling interface to query thermal status to initiate throttling, and a callback interface to send a message to the user when a threshold is exceeded.

Android 10 provides the new data types through the IThermalService interface using these three new methods:

Apps add and remove listeners and access temperature status in the PowerManager class. Only a trusted system service such as an Android API or device manufacturer API can access information about associated causal events. Device manufacturers or SoC makers must implement thermal HAL 2.0 to enable the full functionality of the new thermal framework.

For a thermal mitigation implementation example, see the Reference implementation .

Updates

APEX file format

Android Pony EXpress (APEX) is a new container format used in the install flow for modular system components.

Dynamic partitions

Dynamic partitions introduce a userspace partitioning system to Android, allowing partitions to be created, resized, or destroyed during OTA updates. Device makers don't have to worry about the individual sizes of partitions, such as system , vendor , and product . Instead, one big super partition is allocated, and subpartitions can be sized dynamically within it.

Dynamic system updates

Dynamic system updates (DSU) allows you to make an Android system image that users can download from the internet and try out without the risk of corrupting the current system image.

Multiuser backup and restore

Android 10 supports backup and restore functionality for all users on a device. Previously, backup and restore was only available for the system user. Backup and restore for nonsystem users is turned off by default as it has only partial coverage for settings, wallpaper, and system components.

Overlayfs

Users working with userdebug or eng builds expect to be able to efficiently remount the system partition as read-write and then add or modify any number of files without reflashing the system image. You can use Overlayfs , which automatically sets up backing storage for a writable file system as an upper reference, and mounts over the lower. These actions happen in the adb disable-verity and adb remount requests. For more details, see the Overlayfs README in AOSP.

Shared library support in recovery mode

In Android 10, shared libraries are available in the recovery partition, which eliminates the need for all recovery mode executables to be static. The shared libraries are located under the /system/lib (or /system/lib64 for 64-bit devices) directory in the partition.

To add a new shared library to the recovery partition, add recovery_available: true or recovery: true to Android.bp of the shared library. The former installs the library to both the system and recovery partitions, while the latter installs it only to the recovery partition.

Shared library support can't be built with Android's make-based build system. To convert an existing static executable for the recovery mode to a dynamic one, remove LOCAL_FORCE_STATIC_EXECUTABLE := true in Android.mk or static_executable: true (in Android.bp ).

User Data Checkpoint (UDC)

Android 10 introduces the User Data Checkpoint (UDC) feature , which allows Android to roll back to its previous state when an Android over-the-air (OTA) update fails.