Android Automotive — это автомобильная информационно-развлекательная платформа, предоставляемая в рамках Android Open Source Project (AOSP). Статьи в этом разделе знакомят с ключевыми концепциями и компонентами пользовательского интерфейса Android Automotive System и основных приложений, необходимых для создания эффективной системы человеко-машинного интерфейса (HMI) для OEM-производителей, сторонних разработчиков и конечных пользователей.
- Руководство по интеграции хоста AOSP . Хост приложений позволяет автомобильным приложениям 3P отображать компоненты пользовательского интерфейса (UI) в стиле OEM от его имени.
- Структура настроек автомобиля . Настройки автомобиля обеспечивают визуальный пользовательский интерфейс, ориентированный на автомобиль, базовую оптимизацию отвлечения внимания водителя и дополнительные точки входа для настройки для OEM-производителей.
- Руководство по интеграции автомобильной библиотеки пользовательского интерфейса . Библиотека пользовательского интерфейса автомобиля предоставляет основу для разработки пользовательского интерфейса, позволяющую всем приложениям, присутствующим в автомобиле, достичь согласованности и настройки.
- Настройка системных значков строки состояния . Строка состояния — это компонент пользовательского интерфейса системы Android, используемый для постоянного отображения важной информации для пользователей. Узнайте, как настроить системные значки строки состояния.
- Оповещающие уведомления . Узнайте, как настроить уведомления Heads-Up.
- Номеронабиратель . Используйте это системное приложение для Android, чтобы внедрить оптимизацию для отвлечения внимания (DO) для вызовов Bluetooth, просмотра контактов и управления вызовами.
- Медиа . С помощью всего нескольких настроек и службы разработчики могут расширить существующие мультимедийные приложения. Хотя приложения должны соответствовать шаблону Automotive Media, разработчики могут настраивать цвета шаблона, шрифты, значки и многое другое для создания фирменного интерфейса.
- Уведомления . Узнайте, как изменить внешний вид и настройки уведомлений.
Терминология
Эти термины используются в HMI и связанных статьях:
Срок | Определение |
---|---|
Основные приложения | Ключевой набор приложений, критически важных для функциональности системы, включая «Настройки», «Радио», «ОВКВ», «Медиа», «Набор номера» и «Клавиатура». |
Документ определения совместимости (CDD) | Перечисляет требования, которые должны быть выполнены для совместимости устройств с последней версией Android. |
Набор тестов совместимости (CTS) | Бесплатный коммерческий набор тестов, доступный для загрузки на странице Compatibility Test Suite Downloads . |
Настройка | Упражнение по изменению реализации AOSP для соответствия требованиям OEM. Как правило, это включает в себя использование наложений ресурсов для внесения косметических изменений, а также обеспечение соответствия CDD, CTS и всем соответствующим рекомендациям по взаимодействию с пользователем. |
Приложения-герои | Набор ключевых приложений, важных для всех аспектов Android, включая функциональность, возможность обновления, экосистему сторонних разработчиков и конечных пользователей. Основные приложения включают в себя уведомления, настройки, мультимедиа и коммуникационный центр / номеронабиратель. Соответствующие реализации AOSP должны иметь производственное качество. |
Оверлеи ресурсов | Чтобы повлиять на отрисовку пользовательского интерфейса, используйте этот механизм для замены цветов, изменения размеров, включения рисования и применения ресурсов макета либо во время компиляции (чаще всего), либо во время выполнения (наложения ресурсов времени выполнения (RRO)). |
Системный интерфейс | Пользовательский интерфейс вне приложения, принадлежащего системе, например панель навигации, строка состояния, экран блокировки и диалоговое окно громкости. |
Тема | Набор цветов и стилей, используемых для определения внешнего вида компонентов и приложений, наследующих тему. |
Пользовательский опыт (UX) | Область дизайна пользовательского интерфейса (UI) и его удобство использования. |
Настройка
Реализация AOSP системного пользовательского интерфейса и других основных системных приложений служит прочной основой для начала процесса разработки HMI. Модификация реализации AOSP (в основном за счет использования наложений ресурсов) для соответствия требованиям OEM к брендингу, бизнесу и законодательству называется настройкой .
Несмотря на то, что система в целом спроектирована и построена так, чтобы быть гибкой, ожидается, что различные компоненты будут кастомизироваться в разной степени:
Системный интерфейс. OEM может настроить или заменить реализацию AOSP в пределах, предусмотренных CDD и CTS, а также любыми другими применимыми рекомендациями по пользовательскому интерфейсу.
Системные приложения, не являющиеся героями (также известные как эталонные ) . OEM-производители могут настроить или заменить реализацию AOSP.
Приложения для героев . Каждое приложение поставляется с набором подробных инструкций по настройке. OEM-производителям настоятельно рекомендуется использовать реализацию AOSP, а затем настраивать ее в рамках, предусмотренных этими рекомендациями.
Конфигурация плотности
Чтобы обеспечить правильную визуализацию элементов пользовательского интерфейса с учетом конфигурации физического дисплея, для свойства плотности должно быть задано значение сегмента ( Display Metrics ), которое наиболее точно соответствует физической плотности, например эта запись в файле сборки:
PRODUCT_PROPERTY_OVERRIDES := \ ro.sf.lcd_density=160
Механизм ограничений UX
CarUxRestrictionsManager предоставляет приложениям ловушку для прослушивания изменений, связанных с состоянием вождения, чтобы соответствующим образом изменить взаимодействие с пользователем. OEM-производители могут наложить файл конфигурации в packages/services/Car/service/res/xml/car_ux_restrictions_map.xml
, чтобы повлиять на поведение системы.
Системная тема
Тема, которая предписывает общесистемный набор элементов по умолчанию, таких как цвета и стили текста, называется DeviceDefault . OEM-производителям рекомендуется начать общий процесс настройки, изменив тему DeviceDefault. По умолчанию системный пользовательский интерфейс и все системные приложения в AOSP наследуют эту тему. Системным приложениям, разработанным OEM, также рекомендуется наследовать DeviceDefault. Ожидается, что сторонние приложения не наследуют DeviceDefault, а вместо этого используют Theme.Car, предоставленный в библиотеке androidx.car
. Файлы расположены следующим образом:
- Ядро .
/frameworks/base/core/res/res/values/themes_device_defaults.xml
- Цвета .
/frameworks/base/core/res/res/values/colors_car.xml
- Стили .
/frameworks/base/core/res/res/values/styles_car.xml
- Наложение автомобиля.
/packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml
Ожидается, что OEM-производители будут иметь параллельную структуру оверлея для каталога car_product
в своем каталоге поставщиков, что еще больше расширяет оверлей car_product
.
Тематическая игровая площадка
Это приложение упрощает процесс настройки темы DeviceDefault
, визуализируя все атрибуты темы в одном месте. Кроме того, сравнивая отображение определенных стилей в этом приложении с другими системными приложениями, разработчики могут быстро устранять проблемы с темами. Это приложение доступно по адресу:
/packages/services/Car/tests/ThemePlayground
Системный интерфейс
Системный пользовательский интерфейс включает в себя весь пользовательский интерфейс в /frameworks/base
, в основном в /frameworks/base/packages/CarSystemUI
. Сюда входят панель навигации, строка состояния, экран блокировки, диалоговое окно громкости, всплывающие уведомления, средство выбора пользователя и диалоговые окна разрешений. OEM-производители могут широко настраивать компоненты пользовательского интерфейса системы с помощью наложений ресурсов и тем, при условии, что каждый из них соответствует требованиям CDD, CTS и других применимых руководств по пользовательскому интерфейсу.
Системные приложения
Android Automotive включает в себя набор основных системных приложений, критически важных для общей функциональности системы. Из них Коммуникационный центр, Медиа, Уведомления и Настройки считаются главными приложениями.
- Коммуникационный центр
- ОВКВ
- IME (клавиатура)
- Лаунчер (главный экран)
- Локальный медиаплеер
- СМИ
- Мессенджер
- Уведомления
- Радио
- Настройки
Домашний экран
Начальный экран, известный как Car Launcher , является целевой страницей интерфейса HMI. Реализация AOSP служит только для справки, и ожидается, что OEM-производители заменят эту реализацию своей собственной, которая часто сочетает в себе навигацию, воспроизведение мультимедиа, связь и другие состояния системы по мере необходимости. Часто приложение Car Launcher отображает приложения, доступные в системе. Чтобы узнать, как обрабатывать такие события, как недавние события, изменения пакетов и автономные приложения (без активности запуска), см. эталонную реализацию.
Уведомления
Уведомления являются неотъемлемым компонентом ОС Android, и те же самые конструкции (включая всплывающие уведомления, список/центр уведомлений, API-интерфейсы уведомлений, ранжирование и встроенные действия) были включены в Android Automotive. Дополнительные сведения см. в обзоре уведомлений для портативных устройств . Для оптимизации сценариев использования в автомобилях были внесены следующие изменения (по сравнению со стеком уведомлений для портативных устройств):
Сокращение общего содержимого уведомлений, видимого пользователям. Удаление текущего воспроизведения мультимедиа, текущей навигации и «неважных» (важность НИЗКОЙ и ниже) уведомлений службы переднего плана системных приложений из списка/центра уведомлений с пониманием того, что эти уведомления либо сделаны избыточными (например, кластер, показывающий состояние мультимедиа ) или бесполезны.
Удаление сложных контекстных элементов управления (таких как длительное нажатие и управление на основе длины смахивания).
Соблюдение конфигурации механизма ограничений UX.
- Предварительный просмотр содержимого уведомлений о сообщениях может быть скрыт в зависимости от состояния диска.
- Все строки ограничены максимальной длиной.
Добавление новых категорий уведомлений специально для автомобилей в Android 9, доступных только для связанных системных приложений, работающих как
android.uid.system
.CATEGORY_CAR_EMERGENCY
. Находится в верхней части списка уведомлений. Обходит элементы управления режимом «Не беспокоить» (DND).-
CATEGORY_CAR_WARNING
. Ставится ниже аварийной и выше других (обходит DND). CATEGORY_CAR_INFORMATION
. Ранжируется с остальными уведомлениями на основе «важности» и давности.
Полная реализация стека уведомлений, от API-интерфейсов уведомлений до пользовательского интерфейса, считается приложением- героем . Чтобы гарантировать согласованное взаимодействие API во всех HU и максимизировать возможности обновления, OEM-производителям настоятельно рекомендуется взять реализацию AOSP, а затем слегка ее настроить.
Настройка
Применяются стандартные наложения тем и ресурсов DeviceDefault. Очень ограниченное количество ручек настройки поведения доступно по адресу:
packages/apps/Car/Notification/res/values/config.xml
Настройки
Приложение «Настройки» ( Car Settings ) — одно из основных приложений, которое предоставляет ручки, которые пользователь может использовать для настройки аспектов ОС Android и остальной части автомобиля. Приложение «Настройки» предоставляет более 200 функций ОС, которые тесно связаны с каждым основным выпуском Android. Чтобы обеспечить возможность обновления и избежать фрагментации, OEM-производителям настоятельно рекомендуется использовать реализацию AOSP, а затем настраивать ее (вместо разветвления реализации).
Настройка
Приложение «Настройки» учитывает настройку и предоставляет несколько возможностей для настройки.
Тематика. Позволяет визуальную настройку того, как должен отображаться каждый тип объекта Preference, в том числе:
Preference.DeviceDefault.CheckBoxPreference
Preference.DeviceDefault.DialogPreference.EditTextPreference
Настройка иерархии. Чтобы включить:
Запускаем в произвольный корневой фрагмент, накладываем значение
config_settings_hierarchy_root_fragment
в файл под названиемSettings/res/values/config.xml
Настройка таких элементов, как порядок, группировка, текст и значки, наложение
Settings/res/xml/*.xml
Статическая инъекция. При настройке проекта наложения OEM-производители могут добавлять собственные экраны, определяя, а затем добавляя в иерархию дополнительные классы Fragment и Controller.
Динамический впрыск . Если отдельное приложение (
apk
) содержит экран настроек, который должен быть связан с основным приложением настроек, отдельное приложение может быть динамически внедрено. Дополнительные сведения см. в разделе Динамические настройки .
СМИ
Медиа — главное приложение, которое обеспечивает внешний интерфейс пользователя от имени мультимедийных приложений, реализующих API MediaSession и MediaBrowser . Мультимедийные приложения могут быть сторонними приложениями (например, Spotify и Pandora), а также другими источниками мультимедиа, такими как потоковая передача по Bluetooth (BT) и локальные мультимедиа.
В Android Auto ( Projection ) доступны сотни мультимедийных приложений, каждое из которых реализует эти мультимедийные API, как описано в разделе Обеспечение воспроизведения аудио для Auto . Медиа API развиваются с каждым основным выпуском Android и с выпуском библиотеки Androidx . Чтобы гарантировать совместимость API со всеми мультимедийными приложениями и будущими версиями Android, OEM-производителям настоятельно рекомендуется использовать реализацию AOSP, а затем настраивать ее.
Настройка
Стандартное оформление через тему DeviceDefault также применимо к мультимедиа. Кроме того, дальнейшая настройка внешнего вида возможна с помощью наложений ресурсов, при условии, что настройка не выходит за рамки рекомендаций UX.
Другие мультимедийные приложения
USB-носители и источники мультимедиа
Насколько это возможно, настоятельно рекомендуется подключать эти источники мультимедиа к мультимедиа с помощью реализации API-интерфейсов MediaSession и MediaBrowser (это относится к любому стороннему мультимедийному приложению). См. приложение LocalMediaPlayer в AOSP. Это приложение отображает локальные медиафайлы и отображается как источник в Media.