На этой странице суммируются основные функции выпуска Android 9 и приводятся ссылки на дополнительную информацию. Эти сводки функций организованы в соответствии с расположением документации функции на этом сайте. См. обновления сайта за август 2018 года для руководства по перемещению и переименованию разделов.
Строить
Универсальный системный образ (GSI)
Универсальный системный образ (GSI) — это системный образ с настроенными конфигурациями для устройств Android. Универсальный системный образ (GSI) содержит сведения о различиях между GSI для устройств, запускаемых с Android 9, и устройств, обновляемых до Android 9.
Архитектура
Уровень аппаратной абстракции (HAL)
Обратная совместимость фреймворка HIDL
Проверка обратной совместимости фреймворка HIDL — это метод проверки обратной совместимости фреймворка.
Динамически доступные HAL
Динамически доступные HAL поддерживают динамическое отключение аппаратных подсистем Android, когда они не используются или не нужны.
ХИДЛ
Блок памяти HIDL
HIDL MemoryBlock — это абстрактный слой, построенный на hidl_memory
, HIDL @1.0::IAllocator
и HIDL @1.0::IMapper
. Он разработан для служб HIDL, которые имеют несколько блоков памяти, совместно использующих одну кучу памяти.
Наложения дерева устройств
Сжатые наложения
Android 9 и более поздние версии поддерживают сжатые наложения в изображении наложения двоичного двоичного объекта дерева устройств (DTBO) при использовании версии 1 заголовка таблицы дерева устройств.
обновления DTO
Для Android 9 и более поздних версий требуется, чтобы загрузчик передавал унифицированный двоичный объект дерева устройств ядру перед изменением свойств, определенных в наложениях дерева устройств (DTO) .
Управление версиями заголовка изображения DTBO
В Android 9 и выше в заголовке образа DTBO есть поле версии .
Проверка DTBO
Для Android 9 и выше требуется раздел DTBO. Чтобы добавить узлы или внести изменения в свойства в SoC DT, загрузчик должен динамически наложить DT, специфичный для устройства, на SoC DT. Для получения дополнительной информации см. Compiling & Verifying .
Соответствие ядра
Android 9 и выше включает требования, которые влияют на ядро, его интерфейсы и использование DTBO. Для получения дополнительной информации см. эти страницы:
- Стабильные версии ядра и обновления
- Общие ядра Android
- Требования к модульному ядру
- Требования к интерфейсу
- Наложения дерева устройств
Поставщик НДК
Изменения в дизайне
Информацию об изменениях дизайна VNDK в Android 9 и выше можно найти на этих страницах:
- Комплект разработчика Native Development Kit (VNDK)
- Поддержка системы сборки VNDK
- Инструмент определения VNDK
- Каталоги, правила и sepolicy
- Расширения VNDK
- Пространство имен компоновщика
ABI-проверка
На странице «Стабильность ABI» описывается средство проверки двоичного интерфейса приложения (ABI), которое гарантирует, что изменения, вносимые в библиотеки VNDK, соответствуют ABI.
Снимки VNDK
Образ системы может использовать снимки VNDK для предоставления правильных библиотек VNDK образам поставщика, даже если образы системы и поставщика созданы из разных версий Android.
Объект интерфейса поставщика (объект VINTF)
На следующих страницах раздела Vendor Interface Object описываются обновления в Android 9 и выше:
График прекращения поддержки HIDL
На следующих страницах описывается, как Android прекращает поддержку и удаляет HIDL HAL:
Загрузчик
Разделы продукта
Android 9 и выше поддерживает создание разделов /product
с использованием системы сборки Android. Ранее Android 8.x принудительно разделял компоненты, специфичные для систем на кристалле (SoC), из раздела /system
в раздел /vendor
без выделения места для компонентов, специфичных для OEM, созданных из системы сборки Android.
Соответствие канонической причине загрузки
На странице Canonical Boot Reason описаны изменения в спецификации причины загрузки загрузчика в Android 9 и более поздних версиях.
Система как root
Все устройства, работающие под управлением Android 9 и выше, должны использовать system-as-root , который объединяет ramdisk.img
в system.img
(также известный как no-ramdisk), который, в свою очередь, монтируется как rootfs.
Версии заголовка загрузочного образа
В Android 9 и выше заголовок загрузочного образа содержит поле для указания версии заголовка . Загрузчик должен проверить это поле версии и соответствующим образом проанализировать заголовок.
DTBO в процессе восстановления
Чтобы предотвратить сбои OTA из-за несоответствий между образом восстановления и разделом DTBO на устройствах, отличных от A/B, образ восстановления должен содержать информацию из образа DTBO .
Отображать
Вырезы для отображения
Вырезы на дисплеях позволяют разработчикам приложений создавать захватывающие, охватывающие все пространство устройства интерфейсы, при этом оставляя место для важных датчиков на передней панели устройств.
Повернуть предложения
Обновления поведения поворота экрана Android 9 и более поздних версий включают поддержку элемента управления, обращенного к пользователю, для закрепления поворота экрана в альбомной или портретной ориентации даже при изменении положения устройства.
Синхронизированные переходы приложений
Синхронизированные переходы приложений позволяют создавать новые анимации переходов приложений.
Классификация текста (ранее TEXTCLASSIFIER)
В Android 9 и выше включена служба классификатора текста , которая является рекомендуемым способом реализации классификации текста, а также реализация службы по умолчанию.
Широкая цветовая гамма
Android 9 и более поздние версии поддерживают широкий цветовой охват, включая:
- Высокий динамический диапазон (HDR)
- Обработка контента в цветовом пространстве BT2020, но не как конечного целевого пространства данных
Для использования широкого цветового охвата полный стек отображения устройства (например, экран, аппаратный композитор, графический процессор) должен поддерживать широкий цветовой охват или форматы буфера. Устройства не обязаны заявлять о поддержке контента с широким цветовым охватом, даже если оборудование его поддерживает. Однако широкий цветовой охват должен быть включен, чтобы в полной мере использовать возможности оборудования. Чтобы избежать непоследовательного визуального восприятия, широкий цветовой охват не должен отключаться во время выполнения.
Совместимость
Документ определения совместимости Android
Документ определения совместимости Android 9 (CDD) представляет собой итерацию предыдущих версий с обновлениями для новых функций и изменениями требований для ранее выпущенных функций.
Настройки
Улучшенные виджеты приложений
Фреймворк виджетов приложений Android обеспечивает повышенную видимость взаимодействия пользователя, особенно когда пользователь удаляет или вручную добавляет виджеты. Эта функциональность поставляется по умолчанию с Launcher3.
Производителям необходимо обновить свои приложения запуска (которые поставляются с устройствами) для поддержки этой функции, если они не основаны на Launcher3. OEM-производителям необходимо поддерживать новое поле widgetFeatures в своем лаунчере по умолчанию.
Обратите внимание, что эта функция работает сквозным образом только тогда, когда лаунчеры реализуют ее как ожидается. AOSP включает пример реализации. См. AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca для предоставленного примера кода.
Уведомления об изменении состояния устройства для установщиков пакетов
Защищенная системная трансляция может быть отправлена приложениям, имеющим разрешение INSTALL_PACKAGES
всякий раз, когда происходят изменения в свойствах, таких как локаль или плотность отображения. Приемники могут быть зарегистрированы в манифесте, и процесс пробуждается для получения трансляции. Это полезно для установщиков пакетов, которые хотят установить дополнительные компоненты приложений при таких изменениях, что встречается нечасто, поскольку изменения конфигурации, которые могут вызвать эту трансляцию, редки.
Исходный код уведомления об изменении состояния устройства находится в следующих местах в platform/frameworks/base
:
-
api/system-current.txt
-
core/java/android/content/Intent.java
-
core/res/AndroidManifest.xml
-
services/core/java/com/android/server/am/ActivityManagerService.java
Информационная архитектура
Изменения в информационной архитектуре приложения «Настройки» обеспечивают большую функциональность и более простую реализацию.
Тесты
Атест
Инструмент командной строки Atest позволяет создавать, устанавливать и запускать тесты Android локально, что значительно ускоряет повторные запуски тестов и не требует знания параметров командной строки инструментария тестирования Trade Federation.
Набор тестов на совместимость
CTS-загрузки
Пакеты Compatibility Test Suite (CTS), поддерживающие Android 9, доступны на странице загрузок CTS . Исходный код для включенных тестов можно синхронизировать с тегом android-cts-9.0_r1
в дереве открытого исходного кода.
Варианты CTS
Для Android 9 CTS v2 получает следующую команду и аргумент :
-
run retry
повторяет все тесты, которые не были выполнены или не были выполнены в предыдущих сеансах. -
'--shard-count
разбивает CTS-запуск на заданное количество независимых фрагментов для параллельного запуска на нескольких устройствах.
Кроме того, ранее недокументированная команда --retry-type
была добавлена в тот же справочник команд консоли CTS v2.
Служба Secure Element (SE)
Служба Secure Element проверяет наличие глобальных поддерживаемых платформой безопасных элементов, определяя, имеют ли устройства реализацию SE HAL, и если да, то сколько. Это используется в качестве основы для тестирования API и базовой реализации безопасного элемента.
Блок слияния датчиков
Блок слияния датчиков используется в тесте слияния датчиков Camera Image Test Suite (Camera ITS) и тесте синхронизации нескольких камер и обеспечивает согласованную тестовую среду для измерения точности временных меток камеры и других датчиков для телефонов Android. Для получения дополнительной информации см. эти страницы:
- Краткое руководство по началу работы с Sensor Fusion Box содержит инструкции по настройке теста Sensor Fusion Box и самого Sensor Fusion Box в первый раз.
- Сборка блока сенсорного слияния содержит инструкции по сборке блока сенсорного слияния.
Широкое поле зрения ITS-in-a-box
Широкоугольная система ITS-in-a-box представляет собой автоматизированную систему, предназначенную для тестирования систем камер с широким полем зрения (WFoV) и обычным полем зрения (RFoV) в камере ITS.
Тестовый набор поставщика
Архитектура хост-контроллера
Архитектура хост-контроллера Vendor Test Suite (VTS) представляет собой архитектуру тестовой среды VTS, интегрированную с ее облачным сервисом тестирования.
Тестирование HAL с учетом имени сервиса
Тестирование HAL с учетом имени службы VTS поддерживает получение имени службы заданного экземпляра HAL на основе устройства, на котором выполняются тесты VTS.
Проверка тестируемости HAL
Проверка тестируемости VTS HAL включает в себя метод выполнения, позволяющий использовать конфигурацию устройства для определения того, какие тесты VTS следует пропустить для данного целевого устройства.
Автоматизированная инфраструктура тестирования
Инфраструктура автоматизированного тестирования представляет собой инфраструктуру VTS для автоматизированного тестирования VTS, CTS или других тестов на партнерских устройствах, на которых запущен общий образ системы AOSP (GSI).
Отладка
Расширенная телеметрия
В Android телеметрия — это процесс автоматического сбора информации об использовании и диагностике устройства, системы Android и приложений. В предыдущих версиях Android стек телеметрии был ограничен и не захватывал информацию, необходимую для определения и устранения проблем с надежностью системы и устройствами или приложениями. Это затрудняло, если не делало невозможным, выявление первопричин проблем.
Android 9 включает в себя функцию телеметрии statsd
, которая решает этот недостаток, собирая более качественные данные быстрее. statsd
собирает статистику использования приложений, батареи и процессов, а также сбоев. Данные анализируются и используются для улучшения продуктов, оборудования и услуг.
Более подробную информацию см. frameworks/base/cmds/statsd/
.
Функции безопасности
Подписание приложений
Схема подписи APK v3 поддерживает ротацию ключей APK.
Биометрическая поддержка
Android 9 включает в себя открытый класс BiometricPrompt
, который приложения могут использовать для интеграции поддержки биометрической аутентификации в режиме, не зависящем от устройства и модальности. Для получения дополнительной информации об интеграции вашего стека биометрии для включения BiometricPrompt
см. Биометрия .
Динамический анализ
Android 9 включает поддержку большего количества инструментов анализа и нейтрализации эксплойтов .
Целостность потока управления (CFI)
Целостность потока управления (CFI) — это механизм безопасности, который запрещает вносить изменения в исходный граф потока управления скомпилированного двоичного файла, что значительно затрудняет выполнение подобных атак.
Ядро CFI
В дополнение к системному CFI, который включен по умолчанию, Android 9 и выше включает поддержку целостности потока управления ядра (CFI) .
Шифрование
Шифрование на основе файлов
Шифрование на основе файлов (FBE) обновлено для работы с адаптивным хранилищем . Новые устройства должны использовать шифрование на основе файлов вместо полного шифрования диска.
Шифрование метаданных
Android 9 и выше включает поддержку шифрования метаданных , где присутствует аппаратная поддержка. При шифровании метаданных один ключ, присутствующий во время загрузки, использует файловое шифрование для шифрования любого некодированного контента.
Хранилище ключей
Android 9 и выше включает Keymaster 4 , который имеет следующие функции.
Сейф
Android 9 и выше включает поддержку ключей Android Keystore, которые хранятся и используются в физически отдельном ЦП, специально созданном для приложений с высоким уровнем безопасности, таких как встроенный защищенный элемент (SE) . StrongBox Keymaster — это реализация Keymaster HAL в дискретном защищенном оборудовании. StrongBox имеет:
- Дискретный ЦП
- Интегрированное безопасное хранилище
- Высококачественный генератор случайных чисел
- Упаковка с защитой от несанкционированного доступа
- Сопротивление бокового канала
Безопасный импорт ключей
Для безопасного импорта ключа в Keymaster 4 ключ, созданный вне устройства, шифруется с использованием спецификации разрешений, которые определяют, как может использоваться ключ.
Поддержка 3DES
Keymaster 4 включает в себя 3DES для совместимости с устаревшими системами, использующими 3DES.
Привязка версии
Для поддержки модульной структуры Treble и разрыва привязки system.img
к boot.img
, Keymaster 4 изменил модель привязки версии ключа , чтобы иметь отдельные уровни исправлений для каждого раздела. Это позволяет обновлять каждый раздел независимо, при этом обеспечивая защиту от отката.
API подтверждения защищенного Android
Поддерживаемые устройства, которые запускаются с установленным Android 9, дают разработчикам возможность использовать API Android Protected Confirmation . С помощью этого API приложения могут использовать экземпляр ConfirmationPrompt
для отображения запроса пользователю с просьбой одобрить короткое утверждение. Это утверждение позволяет приложению подтвердить, что пользователь хочет выполнить конфиденциальную транзакцию, например, совершить платеж.
SELinux
Песочница SELinux для каждого приложения
В песочнице приложений реализованы новые средства защиты и тестовые случаи, гарантирующие, что все непривилегированные приложения, предназначенные для Android 9 и более поздних версий, запускают отдельные песочницы SELinux.
Изменения в тройном SELinux
Обновления Treble SELinux в Android 9 и выше описаны на нескольких страницах в разделе SELinux .
Инициализация поставщика
Vendor init закрывает дыру в разделении Treble system/vendor, используя отдельный домен SELinux для запуска команд /vendor
с разрешениями, специфичными для поставщика.
Свойства системы
Android 9 ограничивает ненужное совместное использование системных свойств между system
и vendor
разделами и предоставляет метод обеспечения согласованности между общими системными свойствами.
Тесты атрибутов SELinux
Android 9 включает новые тесты времени сборки , которые гарантируют, что все файлы в определенных местах имеют соответствующие атрибуты . Например, все файлы в sysfs
имеют требуемый атрибут sysfs_type
.
Аудио
Аудиоэффекты высокого разрешения
Обновления аудиоэффектов высокого разрешения включают преобразование обработки эффектов из формата int16 в формат float, а также увеличение количества одновременных клиентских выходных дорожек, максимального объема клиентской/серверной памяти и общего количества микшированных дорожек.
Камера
Внешние USB-камеры
Android 9 и выше поддерживает использование подключаемых USB-камер (то есть веб-камер) с использованием стандартного API Android Camera2 и интерфейса HIDL камеры.
Отслеживание движения
Устройства с камерами могут демонстрировать возможность отслеживания движения .
Поддержка нескольких камер
Поддержка нескольких камер включает поддержку API для многокамерных устройств с помощью нового логического устройства камеры, состоящего из двух или более физических устройств камеры, направленных в одном направлении.
Параметры сеанса
Реализация параметров сеанса может сократить задержки, позволяя клиентам камеры активно настраивать подмножество дорогостоящих параметров запроса в рамках фазы инициализации сеанса захвата.
Буфер с одним производителем и несколькими потребителями
Транспортировка буфера камеры с одним производителем и несколькими потребителями представляет собой набор методов, который позволяет клиентам камеры динамически добавлять и удалять выходные поверхности во время активного сеанса захвата и потоковой передачи данных с камеры.
Связность
Звонки и сообщения
Внедрение тарифных планов
Android 9 и более поздние версии обеспечивают улучшенную поддержку операторов , реализующих тарифные планы с использованием API SubscriptionPlan.
Сторонние приложения для звонков
Android 9 и более поздние версии предоставляют API-интерфейсы, которые позволяют сторонним (3P) приложениям для совершения звонков обрабатывать одновременные входящие вызовы оператора и регистрировать вызовы в системном журнале вызовов.
Перевозчик
Идентификация перевозчика
В Android 9 AOSP добавляет базу данных идентификаторов операторов для помощи в идентификации операторов . База данных минимизирует дублирование логики и фрагментацию приложений, предоставляя общий способ идентификации операторов.
eSIM
Встроенная SIM-карта (eSIM или eUICC) — это новейшая технология, позволяющая мобильным пользователям загружать профиль оператора и активировать услугу оператора без физической SIM-карты. В Android 9 и выше фреймворк Android предоставляет стандартные API для доступа к eSIM и управления профилями подписки на eSIM. Для получения дополнительной информации см.:
Поддержка нескольких SIM-карт для настроек IMS
Android 9 и выше предоставляет улучшения пользовательских настроек для IP-мультимедийной подсистемы (IMS) . Вы можете настроить голосовую связь LTE (VoLTE), видеозвонки и звонки по Wi-Fi для каждой подписки, а не делиться этими настройками для всех подписок.
Трансляции состояния SIM-карты
В Android 9 и выше Intent.ACTION_SIM_STATE_CHANGED
устарело, и добавлены две отдельные трансляции для состояния карты и состояния приложения карты, TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
и TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
.
Благодаря этим изменениям получателям, которым необходимо знать только о наличии карты, не придется отслеживать изменения состояния приложения, а получателям, которым необходимо знать только о готовности приложений карты, не придется отслеживать изменения состояния карты.
Две новые трансляции — @SystemApis, и они не закреплены. Только получатели с разрешением READ_PRIVILEGED_PHONE_STATE
могут получать трансляции.
Намерения не передаются повторно, когда вы разблокируете устройство. Приемники, которые зависят от трансляций, отправленных до разблокировки, должны либо использовать directBootAware
, либо запрашивать состояние после разблокировки пользователем. Состояния можно запрашивать с помощью соответствующих API в TelephonyManager, getSimCardState()
и getSimApplicationState()
.
Wi-Fi
Wi-Fi оператора
Функция Wi-Fi оператора позволяет устройствам автоматически подключаться к сетям Wi-Fi, реализованным оператором. В зонах с высокой загруженностью или минимальным покрытием сотовой связи, таких как стадион или станция метро, Wi-Fi оператора помогает улучшить связь и разгрузить трафик.
рандомизация MAC
Рандомизация MAC позволяет устройствам использовать случайные MAC-адреса при поиске новых сетей, не будучи в данный момент связанными с сетью. В Android 9 и выше можно включить опцию разработчика, чтобы заставить устройство использовать случайный MAC-адрес при подключении к сети Wi-Fi.
Включать Wi-Fi автоматически
Если функция автоматического включения Wi-Fi включена, Wi-Fi автоматически включается всякий раз, когда устройство находится вблизи сохраненной сети Wi-Fi с достаточно высоким относительным показателем уровня принимаемого сигнала (RSSI).
Время прохождения сигнала Wi-Fi туда и обратно
Время кругового пути Wi-Fi (RTT) позволяет устройствам измерять расстояние до других поддерживающих устройств, будь то точки доступа (AP) или одноранговые узлы Wi-Fi Aware (если Wi-Fi Aware поддерживается на устройстве). Эта функция основана на протоколе IEEE 802.11mc и позволяет приложениям использовать повышенную точность определения местоположения и осведомленность.
Улучшения в оценке Wi-Fi
Улучшенные модели оценки Wi-Fi быстро и точно определяют, когда устройство должно выйти из подключенной сети Wi-Fi или войти в новую сеть Wi-Fi. Эти модели обеспечивают надежный и бесперебойный опыт для пользователей, избегая разрывов в подключении.
Проверьте и настройте значения RSSI в ресурсах config.xml
, особенно следующие:
-
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Параллелизм Wi-Fi STA/AP
Параллелизм Wi-Fi STA/AP — это способность устройств работать в режимах станции (STA) и точки доступа (AP) одновременно. Для устройств, поддерживающих двухдиапазонный одновременный (DBS) Wi-Fi, это открывает такие возможности, как отсутствие прерывания STA Wi-Fi, когда пользователь хочет включить точку доступа (SoftAP).
Улучшения WiFiStateMachine
WifiStateMachine
— это основной класс, используемый для управления активностью Wi-Fi, координации ввода данных пользователем (режимы работы: точка доступа, сканирование, подключение или выключение) и управления действиями сети Wi-Fi (например, сканирование или подключение).
В Android 9 и более поздних версиях код фреймворка Wi-Fi и реализация WifiStateMachine
переработаны, что привело к уменьшению размера кода, упрощению логики управления Wi-Fi, повышению детализации управления, а также увеличению охвата и качества модульных тестов.
На высоком уровне WifiStateMachine
позволяет Wi-Fi находиться в одном из четырех состояний:
- Режим клиента (может подключаться и сканировать)
- Режим только сканирования
- Режим SoftAP (точка доступа Wi-Fi)
- Отключено (Wi-Fi полностью отключен)
Каждый режим Wi-Fi имеет различные требования к запуску служб и должен быть настроен согласованным образом, обрабатывая только события, имеющие отношение к его работе. Новая реализация ограничивает код событиями, связанными с этим режимом, сокращая время отладки и риск появления новых ошибок из-за сложности. В дополнение к явной обработке функциональности режима управление потоками обрабатывается согласованным образом, а использование асинхронных каналов в качестве механизма синхронизации исключается.
Обновления разрешений Wi-Fi
В Android 9 и выше разрешение приложения CHANGE_WIFI_STATE
включено по умолчанию. Вы можете отключить разрешение для любого приложения на странице настроек в разделе Настройки > Приложения и уведомления > Специальный доступ к приложениям > Управление Wi-Fi .
Приложения должны иметь возможность обрабатывать случаи, когда разрешение CHANGE_WIFI_STATE
не предоставлено.
Чтобы проверить это поведение, проведите роботоэлектрические и ручные тесты.
Для ручного тестирования:
- Перейдите в Настройки > Приложения и уведомления > Специальный доступ к приложениям > Управление Wi-Fi .
- Выберите и отключите разрешение для вашего приложения.
- Убедитесь, что ваше приложение может справиться со сценарием, в котором разрешение
CHANGE_WIFI_STATE
не предоставлено.
Устаревание WPS
Из-за проблем безопасности защищенная настройка Wi-Fi (WPS) в WiFiManager
устарела и отключена в Android 9 и выше. Однако WiFiDirect
по-прежнему использует WPS в супликанте WPA.
Графика
Выполнение
API Вулкан 1.1
Android 9 и выше поддерживает реализацию графического API Vulkan 1.1 .
Инструмент WinScope для отслеживания переходов окон
Android 9 и выше включает в себя инструмент WinScope для отслеживания переходов окон. WinScope предоставляет инфраструктуру и инструменты для записи и анализа состояния оконного менеджера во время и после переходов. Он позволяет записывать и проходить переходы окон, одновременно записывая все соответствующие состояния оконного менеджера в файл трассировки. Вы можете использовать эти данные для воспроизведения и прохождения перехода.
Исходный код инструмента WinScope находится по адресу platform/development/tools/winscope
.
Взаимодействие
Автомобильная аудиосистема
В разделе «Автомобильное аудио» описывается архитектура аудиосистем для реализаций Android, связанных с автомобильной промышленностью.
HAL нейронных сетей (NN) определяет абстракцию различных ускорителей. Драйверы для этих ускорителей должны соответствовать этому HAL.
Автомобиль HAL
В разделе «Свойства транспортного средства» описываются изменения в интерфейсе HAL транспортного средства.
Выбор спутника GNSS
При работе с новыми HAL глобальной навигационной спутниковой системы (GNSS) (v1.1+) Android Framework отслеживает настройки Android. Партнеры могут изменять настройки из сервисов Google Play или других обновлений системы. Эти настройки сообщают GNSS HAL, следует ли использовать определенные спутники GNSS. Это может быть полезно в случае постоянных ошибок спутников GNSS или созвездий или для более быстрого реагирования на проблемы реализации GNSS HAL, которые могут возникнуть при смешивании созвездий с использованием разных систем времени и внешних событий, таких как смена секунд координации, дня или номера недели.
Аппаратная модель GNSS
В Android 9 GNSS HAL версии 1.1 или выше может передавать информацию об API оборудования на платформу. Платформа должна реализовать интерфейс IGnssCallback
и передать дескриптор в HAL. GNSS HAL передает информацию о модели оборудования через метод LocationManager#getGnssHardwareModelName()
. Производители устройств должны работать со своими поставщиками GNSS HAL, чтобы предоставлять эту информацию, где это возможно.
Разрешения
Настройка дискреционных обновлений контроля доступа
Настройка дискреционного контроля доступа (DAC) содержит обновления механизма идентификаторов Android (AID) для расширения возможностей файловой системы.
Белый список разрешений привилегированных приложений
В Android 9 и выше, если есть разрешения, которые следует отклонить, отредактируйте XML, чтобы использовать тег deny-permission
вместо тега permission
, который использовался в предыдущих версиях.
Данные
Улучшения оценки пропускной способности
Android 9 обеспечивает улучшенную поддержку оценки пропускной способности. Приложения Android могут устанавливать более подходящие настройки разрешения для видеозвонков и потокового видео, если они могут получить доступ к доступной пропускной способности данных.
На устройствах под управлением Android 6.0 или выше абонент, желающий оценить пропускную способность сотовой сети, вызывает ConnectivityManager.requestBandwidthUpdate()
, и фреймворк может предоставить предполагаемую пропускную способность нисходящей линии связи.
Но на устройствах с версией 9 или выше обратный вызов onCapabilitiesChanged()
автоматически срабатывает при значительном изменении расчетной пропускной способности, а вызов requestBandwidthUpdate()
не выполняет никаких действий; связанные с ним getLinkDownstreamBandwidthKbps()
и getLinkUpstreamBandwidthKbps()
заполняются обновленной информацией, предоставленной физическим уровнем.
Кроме того, устройства могут проверять пропускную способность ячеек LTE через ServiceState.getCellBandwidths()
. Это позволяет приложениям определять, какая пропускная способность (частота) доступна в данной ячейке. Информация о пропускной способности ячеек доступна через скрытое меню, так что полевые тестеры могут проверить самую актуальную информацию.
мониторинг трафика eBPF
Инструмент сетевого трафика eBPF использует комбинацию реализации ядра и пользовательского пространства для мониторинга использования сети на устройстве с момента последней загрузки устройства. Этот инструмент предоставляет дополнительные функции, такие как маркировка сокетов, разделение трафика переднего плана/фонового трафика и межсетевой экран для каждого UID для блокировки доступа приложений к сети в зависимости от состояния устройства.
Восстановление более низких API
Устройства теперь могут восстанавливаться из будущих версий операционной системы. Это особенно полезно, когда пользователи обновили свои телефоны, но затем потеряли или сломали их.
Если OEM-производитель изменяет агенты резервного копирования для любого из системных пакетов (Android, system, settings), эти агенты должны обрабатывать восстановление наборов резервных копий, созданных на более поздних версиях платформы, без сбоев и с восстановлением хотя бы части данных.
Рассмотрите возможность использования валидатора для проверки недействительных значений заданного фрагмента данных резервной копии и восстановления только действительных данных, как в core/java/android/provider/SettingsValidators.java
.
Функция включена по умолчанию. Поддержку SettingsBackupAgent для восстановления из будущих версий можно отключить с помощью Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
. Никакой дополнительной реализации не требуется, если только производитель устройства не расширит один из агентов резервного копирования, включенных в ПЗУ (или не добавит пользовательский агент).
Эта функция позволяет восстанавливать систему из будущих версий платформы; однако, разумно ожидать, что восстановленные данные не будут полными. Следующие инструкции применимы к следующим агентам резервного копирования:
PackageManagerBackupAgent поддерживает будущие версии данных резервной копии с помощью управления версиями формата; расширения здесь должны быть совместимы с текущим кодом восстановления или следовать инструкциям в классе, которые включают в себя изменение соответствующих констант.
SystemBackupAgent указывает
restoreAnyVersion = false
в Android 9 и выше. Он не поддерживает восстановление из более поздних версий API.SettingsBackupAgent указывает
restoreAnyVersion = true
в Android 9 и выше. Частичная поддержка существует через валидаторы. Параметр можно восстановить из более высокой версии API, если валидатор для него существует в целевой ОС. Добавление любого параметра должно сопровождаться его валидатором. Проверьте класс для получения подробной информации.Любой пользовательский агент резервного копирования, включенный в ПЗУ, должен увеличивать свой код версии каждый раз, когда в формат данных резервной копии вносятся несовместимые изменения, и обеспечивать
restoreAnyVersion = false
(значение по умолчанию), если его агент не готов работать с данными резервной копии из будущей версии его кода.
Предприятие
Улучшения управляемого профиля
Изменения в пользовательском интерфейсе для управляемых профилей облегчают пользователям идентификацию, доступ и управление управляемым профилем.
Приостановка OTA
Новый @SystemApi позволяет владельцам устройств приостанавливать обновления OTA, включая обновления безопасности, на неопределенный срок .
Производительность
Здоровье 2.0
Android 9 и выше включает android.hardware.health
HAL 2.0, крупное обновление версии health@1.0 HAL. Для получения дополнительной информации см. эти страницы:
Решение для кэширования APK
Android 9 и выше включает решение для кэширования APK для быстрой установки предустановленных приложений на устройстве, поддерживающем разделы A/B. OEM-производители могут размещать предустановленные и популярные приложения в кэше APK, который в основном хранится в пустом разделе B на новых устройствах с разделами A/B, не влияя на доступное пользователю пространство данных.
Оптимизация на основе профиля
Android 9 и более поздние версии поддерживают использование профильной оптимизации Clang (PGO) для собственных модулей Android, имеющих правила сборки Blueprint.
Ведение журнала с опережающей записью
Специальный режим SQLiteDatabase, называемый совместимым протоколированием с опережающей записью (WAL), позволяет базе данных использовать journal_mode=WAL
сохраняя при этом максимум одно соединение на базу данных.
Время загрузки
Android 9 изменяет оптимизацию времени загрузки, как описано в разделе Оптимизация времени загрузки .
Власть
Ограничения по фону
Android 9 и выше включает фоновые ограничения , которые позволяют пользователям ограничивать приложения, которые могут разряжать аккумулятор. Система также может предложить отключить приложения, которые негативно влияют на работоспособность устройства.
Устройства без батареи
Android 9 обрабатывает устройства без батареи более элегантно, чем в предыдущих версиях. Android 9 удаляет код для устройств без батареи, который по умолчанию предполагал, что батарея присутствует, заряжена на 100% и находится в хорошем состоянии с нормальными показаниями температуры на ее термисторе.