На этой странице суммируются основные функции в выпуске Android 10 и предоставляются ссылки на дополнительную информацию. Эти сводки функций организованы в соответствии с расположением документации функции на этом сайте.
Строить
библиотека_java_sdk_library
Android 10 представляет java_sdk_library
, новое правило сборки для исправления проблем совместимости для общих библиотек Java. Производители устройств могут использовать этот механизм для своих собственных общих библиотек Java, чтобы поддерживать обратную совместимость для своих API.
Архитектура
Компоненты модульной системы
Android 10 делает некоторые компоненты системы Android модулярными и позволяет обновлять их вне обычного цикла выпуска Android. Некоторые модули включают:
- Android-среда выполнения
- Конскрипт
- DNS-резолвер
- ДокументыUI
- ExtServices
- СМИ
- МодульМетаданные
- Нетворкинг
- PermissionController
- Данные о часовом поясе
Уровень аппаратной абстракции (HAL)
В Android 10 добавлена поддержка автоматического выключения HAL при отсутствии клиентов.
Ядро
АБИ
Android 10 включает поддержку новых утилит мониторинга ABI, помогающих сравнивать, отслеживать и устранять изменения ABI ядра, влияющие на совместимость с модулями ядра.
Android 10 также представляет средство проверки использования ABI на основе символов. Средство проверки может обнаруживать устаревшие предварительно собранные двоичные файлы во время сборки, так что разработчики общих библиотек могут знать, какие предварительно собранные двоичные файлы могут быть повреждены их изменением и какие предварительно собранные двоичные файлы должны быть пересобраны.
Android Live-Lock Daemon
В Android 10 включен Android Live-Lock Daemon (llkd) , который предназначен для обнаружения и устранения взаимоблокировок ядра.
vDSO32 на ARM64
Android 10 поддерживает использование vDSO32 на 64-битных ядрах , что обеспечивает увеличение времени работы аккумулятора на 0,4 процента и другие улучшения производительности.
записи fstab для ранее смонтированных разделов
Android 10 требует, чтобы устройства указывали записи fstab
для ранее смонтированных разделов с помощью файла fstab
на первом этапе RAM-диска.
ХИДЛ
Разгрузить очередь вещания
Android 10 включает новую разгрузочную очередь BroadcastQueue
для существующих фоновых и передних очередей. Разгрузочная очередь имеет тот же приоритет и поведение тайм-аута, что и фоновая очередь. Чтобы предотвратить блокировку фоновой очереди, где могут происходить более интересные или видимые пользователю трансляции, разгрузочная очередь обрабатывает трансляцию BOOT_COMPLETED
, которую слушают многие приложения и которая может занять много времени для завершения. В настоящее время разгрузочная очередь обрабатывает только трансляцию BOOT_COMPLETED
, но потенциально может обрабатывать другие длинные трансляции.
Служба SystemSuspend
Android 10 заменяет поток в libsuspend
, отвечающий за инициирование приостановки системы, на службу SystemSuspend HIDL . Эта реализация предлагает эквивалентную функциональность предыдущим версиям, используя преимущества инфраструктуры Android HIDL.
safe_union в HIDL
В Android 10 представлен safe_union
— явно помеченный тип объединения в HIDL.
Конфигурация
Конфигурация хранилища HAL
В Android 10 поддержка ConfigStore HAL прекращена из-за высокого потребления памяти и сложности использования, а HAL заменяется системными свойствами .
API схемы файла конфигурации
Платформа Android содержит большое количество XML-файлов для хранения данных конфигурации. Многие из XML-файлов находятся в разделе vendor
, но они считываются в system
разделе. В этом случае схема XML-файла служит интерфейсом между двумя разделами, и поэтому схема должна быть явно указана и должна развиваться в обратно совместимом режиме. До Android 10 платформа не предоставляла механизмов, требующих указания и использования XML-схемы или предотвращения несовместимых изменений в схеме. Android 10 предоставляет этот механизм, называемый 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) настраивать пакеты поддержки плат (BSP) поставщиков систем на кристалле (SoC) для своих конкретных устройств (своих плат). Они могут реализовывать модули ядра для компонентов, специфичных для платы, демонов, специфичных для платы, или свои собственные функции на уровнях абстракции оборудования (HAL). Они также могут заменять или настраивать компоненты SoC.
Версии заголовка загрузочного образа
Android 10 обновляет заголовок загрузочного образа до версии 2, которая включает раздел для хранения образа дерева устройств (DTB). Тесты Android 10 VTS подтверждают, что все устройства, запускаемые с Android 10, используют заголовок загрузочного образа версии 2 и включают действительный образ DTB как часть образов загрузки/восстановления.
Образы восстановления для устройств, отличных от A/B
В Android 9 и выше образ восстановления устройства должен содержать информацию из образа наложения . Производители устройств могут использовать DeviceTree или Advanced Configuration and Power Interface (ACPI) для описания всех необнаруживаемых устройств. Android 10 и выше включает поддержку архитектур, использующих ACPI вместо DeviceTree blob для наложения (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, вы можете:
- Отмените эти изменения и используйте метод, поддерживаемый платформой.
- Сохраните общий шрифт Zawgyi в вашей системе и используйте код локали
my-qaag
в вашемfonts.xml
. Для получения дополнительной информации см. заметки о выпуске Unicode CLDR на Zawgyi (Qaag) .
Ограничения на скрытие значков приложений
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 работает в режиме Instant Apps , что означает установку тестового APK как Instant App и запуск тестов.
В дополнение к режиму CTS для мгновенных приложений, Android 10 включает CTS Verifier для мгновенных приложений.
CTS Verifier профессиональный аудио тест
В 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 с отладочным ramdisk
В Android 10 общий образ системы (GSI), используемый для запуска тестирования соответствия CTS-on-GSI/VTS, меняется с userdebug на user build type, поскольку GSI имеет релиз-подписанный тип. Однако команда adb root
, которая предоставляет хосту root-разрешения для тестируемого устройства Android, недоступна в user build. Это проблема, поскольку VTS требует adb root
для запуска.
Отладочный ramdisk вводится для того, чтобы сделать возможным adb root
, если устройство разблокировано. Это упрощает поток тестирования путем повторного использования той же пользовательской сборки system.img
(либо GSI, либо OEM's system.img
).
Проверка аппаратного Composer
Android 10 добавляет новый тестовый класс VTS для проверки Hardware Composer через интерфейс readback
в IComposerClient.hal
. Если поставщики не реализуют readback
, тесты проходят автоматически.
Отладка
Загрузка общих библиотек с помощью различных загрузчиков классов
В Android 9 и ниже приложения загружали свои связанные общие библиотеки Java в загрузчик классов приложения. В Android 10 фреймворк использует другой загрузчик классов, нежели загрузчик классов приложения, для загрузки общих библиотек Java, связанных через uses-library
или uses-static-library
.
В целом, приложения не должны полагаться на использование определенного загрузчика классов, поэтому это изменение не должно нарушать поведение приложения. Однако, если приложение полагается на использование одного загрузчика классов, это поведение нарушается. Кроме того, видимость классов в одном пакете на уровне пакета все еще поддерживается, но не поддерживается в общих библиотеках.
Производители устройств могут столкнуться с проблемами совместимости приложений при тестировании своих устройств под управлением Android 10.
Функции безопасности
Более полный список улучшений, связанных только с безопасностью и конфиденциальностью, можно найти на странице улучшений безопасности и конфиденциальности Android 10 .
Аутентификация по лицу
Аутентификация по лицу позволяет пользователям разблокировать свое устройство, просто взглянув на переднюю панель устройства. Android 10 добавляет поддержку нового стека аутентификации по лицу, который может безопасно обрабатывать кадры с камеры, сохраняя безопасность и конфиденциальность во время аутентификации по лицу на поддерживаемом оборудовании. Android 10 также предоставляет простой способ для реализаций, соответствующих требованиям безопасности, чтобы включить интеграцию приложений для транзакций, таких как онлайн-банкинг или другие услуги.
Расширенный доступ
Агенты доверия, базовый механизм, используемый механизмами третичной аутентификации, такими как Smart Lock, могут продлить разблокировку только в Android 10. Агенты доверия больше не могут разблокировать заблокированное устройство и могут держать устройство разблокированным только в течение максимум четырех часов.
Шифрование
OEMCrypto
Android 10 использует OEMCrypto API версии 15.
Тестирование
BoundsSanitizer
Android 10 развертывает BoundsSanitizer (BoundSan) в Bluetooth и кодеках. BoundSan использует санитайзер границ UBSan. Это смягчение включено на уровне модулей. Оно помогает поддерживать безопасность критически важных компонентов Android и не должно быть отключено. BoundSan включен в следующих кодеках:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
-
libaac
-
libxaac
Очистка целочисленного переполнения
Android 10 включает Integer Overflow Sanitization (IntSan) в программных кодеках. Убедитесь, что производительность воспроизведения приемлема для любых кодеков, которые не поддерживаются в оборудовании устройства. IntSan включен в следующих кодеках:
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
Память только для выполнения
По умолчанию исполняемые разделы кода для системных двоичных файлов AArch64 помечены как только для выполнения (не для чтения) в качестве усиления защиты от атак с повторным использованием кода JIT. Код, который смешивает данные и код вместе, и код, который целенаправленно проверяет эти разделы (без предварительного переназначения сегментов памяти как читаемых), больше не функционируют. Приложения с целевым SDK Android 10 (уровень API 29 или выше) подвержены влиянию, если приложение пытается прочитать разделы кода системных библиотек с поддержкой только для выполнения (XOM) в памяти, не пометив раздел как читаемый.
Скудо
Scudo — это динамический аллокатор памяти пользовательского режима, разработанный для большей устойчивости к уязвимостям, связанным с кучей. Он предоставляет стандартные примитивы выделения и освобождения памяти C, а также примитивы C++.
ShadowCallStack
ShadowCallStack
(SCS) — это режим инструментирования LLVM , который защищает от перезаписи адреса возврата (например, переполнения буфера стека) путем сохранения адреса возврата функции в отдельно выделенном экземпляре ShadowCallStack
в прологе функции неконечных функций и загрузки адреса возврата из экземпляра ShadowCallStack
в эпилоге функции.
Аудио
Аудио HAL
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 с помощью API AMidi
NDK .
Камера
Краткий обзор изменений в 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 камеры может сократить количество физических камер, которые могут быть напрямую открыты приложением. Для получения более подробной информации см. Поддержка нескольких камер .
API Camera2 VNDK
В 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 определяют стандарт для приложений, чтобы присоединяться и транслировать групповые вызовы cell-broadcast, взаимодействуя с пакетами промежуточного программного обеспечения 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 и HAL.
5G Неавтономный (NSA)
В Android 10 добавлена поддержка 5G non-standalone (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 предоставляются оператором, доступ к этим идентификаторам предоставляется пакетам с привилегиями оператора.
Wi-Fi
Выбор сети
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 Server" 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 Enhanced Open
В 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
Secure NFC позволяет включать эмуляцию NFC-карты вне хоста только при разблокированном экране устройства. Реализация этой функции дает пользователям возможность включить Secure NFC для повышения безопасности.
Android Beam устарел
В Android 10 Android Beam больше не требуется, а следующие интерфейсы и методы устарели.
Интерфейсы:
-
NfcAdapter.CreateBeamUrisCallback
-
NfcAdapter.CreateNdefMessageCallback
-
NfcAdapter.OnNdefPushCompleteCallback
Методы:
-
createBeamUris
-
invokeBeam
-
isNdefPushEnabled
-
setBeamPushUris
-
setBeamPushUrisCallback
-
setNdefPushMessage
-
setNdefPushMessageCallback
-
setOnNdefPushCompleteCallback
-
createNdefMessageCallback
-
onNdefPushCompleteCallback
Чтобы использовать Android Beam, сообщите константу функции android.sofware.nfc.beam
.
Графика
ASurfaceControl
В 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
, поддерживаемый памятью swapchain.
Частота обновления производительности
В Android 10 добавлена поддержка частоты обновления производительности. По умолчанию эта функция отключена.
Взаимодействие
Автомобильный
Автомобильная аудиосистема
В Android 10 контекст Audio HAL сопоставляется с AudioAttributes.usage
для идентификации звуков. Android поддерживает один экземпляр AUDIO_DEVICE_OUT_BUS
на контекст. IAudioControl
HAL предоставляет расширения Audio HAL для конкретных транспортных средств .
Жестовая навигация
Android 10 представляет возможность полностью жестовой навигации. Информацию о том, как подготовить приложения для использования этой функции, см. на странице Жестовая навигация на сайте Android Developer.
Нейронные сети
Android 10 представляет обновления Neural Networks API и Neural Networks HAL. Для обзора изменений см. Neural networks .
Новая и обновленная документация по нейронным сетям для Android 10:
- Обзор
- AHardwareBuffer
- Пакетное выполнение и быстрые очереди сообщений
- Кэширование компиляции
- Обнаружение и назначение устройств
- Расширения поставщика
Датчики
Датчики 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, данные, связанные с привязкой контактов, управляемые компонентом Contacts Provider , доступны иначе, чем в Android 9 и ниже. Эти изменения, касающиеся доступности данных, улучшают конфиденциальность пользователей на всех устройствах Android 10, использующих компонент Contacts Provider. Базовая база данных больше не содержит данных о привязке контактов. Поэтому приложения не могут записывать в нее или читать из нее.
Изменения в Android 10, как ожидается, окажут большое влияние на API. Если ваши приложения полагаются на устаревшие функции, упомянутые в Contacts Provider и Affinities Information, вы можете обновить свои приложения, чтобы компенсировать любые изменения. Кроме того, если вы используете разветвленную версию Contacts Provider, вы должны обновить свой Contacts Provider.
Разрешения на размещение в трех штатах
Разрешения на доступ к местоположению для трех государств в Android 10 предоставляют пользователям больше контроля над тем, как приложения получают доступ к местоположению их устройств.
Напоминание о доступе к местоположению в фоновом режиме
В Android 10 реализована функция фонового напоминания о доступе к местоположению , которая повышает прозрачность доступа приложений к местоположению устройства и помогает пользователям контролировать такой доступ.
Ограничить оппортунистические местоположения
Когда приложение запрашивает местоположение устройства, приложение может либо дождаться ответа на запрос, либо, используя активные прослушиватели местоположения, получить оппортунистическое обновление местоположения. Начиная с Android 10, чтобы получить оппортунистические обновления местоположения , разработчики должны указать, что им нужны пассивные обновления местоположения из класса FusedLocationProviderClient
.
Запуск фоновых приложений
В Android 10 непривилегированные приложения без видимого окна не могут автоматически запускаться на переднем плане. Это изменение подавляет всплывающие окна с рекламой и вредоносные захваты. Для включения этого действия не требуется.
Песочница приложений
В Android 10 приложения имеют ограниченный необработанный вид файловой системы без прямого доступа к путям, таким как /sdcard/DCIM
. Однако приложения сохраняют полный необработанный доступ к своим путям, специфичным для пакета, возвращаемый любыми применимыми методами, такими как Context.getExternalFilesDir()
. Приложения по-прежнему имеют полный необработанный доступ к своим путям, специфичным для пакета.
Используйте рекомендации «песочницы» приложения для обмена файлами , чтобы обеспечить необходимую степень детализации обмена данными.
Ограничить доступ к буферу обмена приложения
В Android 10 доступ к буферу обмена изменился, так что содержимое буфера обмена нельзя отслеживать с помощью вызова ClipboardManager.getPrimaryClip
или путем добавления прослушивателя onPrimaryClipChangedListener
для уведомления об изменении буфера обмена. Это повышает конфиденциальность пользователей и не позволяет вредоносным рекламным приложениям изменять буфер обмена.
В Android 10 доступ на чтение разрешен только для текущего приложения с фокусом ввода или для текущей клавиатуры. Вызов прослушивателя ClipboardManager.onPrimaryClipChanged()
теперь срабатывает только для приложений, которые соответствуют таким ограничениям. ClipboardManager.getPrimaryClip
и ClipboardManager.getPrimaryClipDescription
возвращают null
если запрашивающее приложение либо не является редактором метода ввода по умолчанию (IME), либо не имеет фокуса ввода.
Разрешения времени выполнения включают распознавание активности
Теперь пользователи видят диалоговое окно распознавания активности, когда приложение получает доступ к местоположению устройства в фоновом режиме. Жестко ограниченные разрешения времени выполнения должны быть надлежащим образом добавлены в белый список в Android 10.
Разрешение MANAGE_DEVICE_ADMINS
Android 10 изменяет разрешение MANAGE_DEVICE_ADMINS
с signature или privileged на signature only. Это означает, что только подписанные платформой приложения могут устанавливать другие приложения в качестве администратора устройства.
Улучшения API обмена
Android 10 предоставляет ряд новых функций API платформы Android, связанных с общим доступом . Если вы изменили код Share Sheet в своей реализации, убедитесь, что ваша реализация поддерживает эти новые функции. Если вы не изменили код Share Sheet в своей реализации, вам не нужно ничего делать для поддержки этих новых функций.
Среда выполнения Android (ART)
Подписанная конфигурация
Функция Signed Config позволяет встраивать конфигурацию ограничений интерфейсов non-SDK в APK. Это позволяет удалять определенные интерфейсы non-SDK из черного списка, чтобы AndroidX мог безопасно их использовать. Благодаря этому изменению AndroidX может добавлять поддержку новых функций в более старых версиях Android.
Производительность
Уровень абстракции Cgroup
Android 10 включает в себя уровень абстракции cgroup и профили задач, которые разработчики могут использовать для описания набора ограничений, применяемых к потоку или процессу.
Демон уничтожения нехватки памяти (lmkd)
Android 10 поддерживает новый режим lmkd
, который использует мониторы информации о давлении ядра (PSI) для обнаружения нагрузки на память.
Власть
Управление питанием платформы
В Android 10 режим Doze можно включить как на постоянно включенных устройствах, так и на устройствах с питанием от аккумулятора.
Регулярная экономия заряда батареи
Android 10 представляет новый вариант расписания батареи на основе рутины . Рутинная батарея позволяет приложению, выбранному OEM, предоставлять сигналы системе для более интеллектуального планирования батареи. Эта опция требует конфигурации и является необязательным для реализации.
Power Stats Hal
В Android 10 IPowerStats.hal
заменяет APIS сбора Power Stats в IPower.hal
. В то время как Power HAL по -прежнему поддерживает API, они будут перенесены исключительно на статистику Power HAL в будущем.
Статистика Power HAL включает в себя новые API для поддержки сбора данных из измерения мощности на устройстве для поддерживаемых устройств. Существующие APIS STATS Collection также обновляются для повышения гибкости. Намекающие на питание API остаются в силе HAL и не меняются.
Тепловое смягчение
Тепловая структура в интерфейсах устройства Android 10 Abstracts для датчика температуры тепловой подсистемы, включая процессор, графический процессор, батарею, кожу и охлаждающее устройство. Структура представляет интерфейс опроса для запроса теплового статуса для инициирования дросселирования, а также интерфейс обратного вызова, чтобы отправить сообщение пользователю при превышении порога.
Android 10 предоставляет новые типы данных через интерфейс IThermalService
, используя эти три новых метода:
-
getCurrentThermalStatus()
возвращает текущий тепловой статус устройства в качестве целого числа, если только устройство не проходит дроссель. -
addThermalStatusListener()
добавляет слушателя. -
removeThermalStatusListener()
удаляет ранее добавленного слушателя.
Приложения добавляют и удаляют слушателей и доступ к температуре в классе PowerManager
. Только доверенная системная служба, такая как API API API API Android или API устройства, может получить доступ к информации об связанных с этим причинно -следственных связей. Производители устройств или производители SOC должны реализовать thermal HAL 2.0
чтобы обеспечить полную функциональность новой тепловой структуры.
Для примера реализации теплового смягчения см. Рекомендацию .
Обновления
Формат файла вершины
Android Pony Express (APEX) - это новый формат контейнера, используемый в потоке установки для компонентов модульной системы.
Динамические перегородки
Динамические разделы вводят систему разделения пользовательского пространства для Android, позволяя создавать, изменять или уничтожить размер во время обновлений OTA. Производителям устройств не нужно беспокоиться о отдельных размерах разделов, таких как system
, vendor
и product
. Вместо этого распределяется один большой super
-раздел, и подразделы могут быть динамически размер в нем.
Динамические обновления системы
Dynamic System Updates (DSU) позволяет создавать изображение системы Android, которое пользователи могут загружать из Интернета, и попробовать без риска повреждения текущего изображения системы.
Multiumer Sakep and Restore
Android 10 поддерживает функциональность резервного копирования и восстановления для всех пользователей на устройстве. Ранее резервное копирование и восстановление были доступны только для пользователя системы. Резервное копирование и восстановление для пользователей нессистем отключается по умолчанию, так как он имеет только частичное покрытие для настройки, обоев и компонентов системы.
Oplayfs
Пользователи, работающие с userdebug
или eng
Builds, ожидают, что они смогут эффективно снять системный раздел в виде чтения, а затем добавлять или изменить любое количество файлов без перепротежа системы системы. Вы можете использовать Overlayfs
, которые автоматически устанавливают резервное хранилище для записи, которую можно записать, в качестве верхней ссылки и крепления над нижней. Эти действия происходят в запросах adb disable-verity
и adb remount
. Для получения более подробной информации см. Readme overlayfs в AOSP.
Общая библиотечная поддержка в режиме восстановления
В Android 10 общие библиотеки доступны в разделе «Восстановление», что устраняет необходимость того, чтобы все исполняемые файлы режима восстановления были статичными. Общие библиотеки расположены в каталоге /system/lib
(OR /system/lib64
для 64-битных устройств) в разделе.
Чтобы добавить новую общую библиотеку в раздел «Восстановление», добавьте recovery_available: true
или recovery: true
Android.bp
общей библиотеки. Первый устанавливает библиотеку как в разделы системы, так и на восстановление, в то время как последний устанавливает ее только в раздел «Восстановление».
Общая библиотечная поддержка не может быть построена с помощью системы сборки Android. Чтобы преобразовать существующий статический исполняемый файл для режима восстановления в динамический, удалить LOCAL_FORCE_STATIC_EXECUTABLE := true
в Android.mk
или static_executable: true
(in Android.bp
).
Контрольная точка пользовательских данных (UDC)
Android 10 представляет функцию контрольно-пропускной пункты пользователя (UDC) , которая позволяет Android возвращаться в свое предыдущее состояние, когда обновление Android Over-Air (OTA) не удается.