Обзор ЧМИ

Android Automotive — это автомобильная информационно-развлекательная платформа, предоставляемая в рамках проекта Android с открытым исходным кодом (AOSP). В статьях этого раздела представлены ключевые концепции и компоненты, предоставляемые пользовательским интерфейсом Android Automotive System, а также основные приложения, необходимые для создания эффективной системы человеко-машинного интерфейса (HMI) для OEM-производителей, сторонних разработчиков и конечных пользователей.

  • Руководство по интеграции хоста AOSP . Хост приложений позволяет автомобильным приложениям 3P отображать компоненты пользовательского интерфейса (UI) в OEM-стиле от своего имени.
  • Структура настроек автомобиля . Настройки автомобиля предоставляют ориентированный на автомобиль визуальный пользовательский интерфейс, базовую оптимизацию отвлечения внимания водителя и дополнительные точки входа для настройки для OEM-производителей.
  • Руководство по интеграции библиотеки пользовательского интерфейса автомобиля . Библиотека автомобильного пользовательского интерфейса предоставляет среду разработки пользовательского интерфейса, позволяющую всем приложениям, присутствующим в автомобиле, обеспечить согласованность и настройку.
  • Настройте системные значки строки состояния . Строка состояния — это компонент пользовательского интерфейса системы Android, используемый для постоянного отображения важной информации для пользователей. Узнайте, как настроить системные значки строки состояния.
  • Информационные уведомления . Узнайте, как настроить уведомления Heads-Up.
  • Звонилка . Используйте это системное приложение для Android, чтобы реализовать оптимизацию отвлечения внимания (DO) для звонков по Bluetooth, просмотра контактов и управления вызовами.
  • СМИ . С помощью всего лишь нескольких настроек и службы разработчики могут расширить существующие мультимедийные приложения. Хотя приложения должны соответствовать шаблону Automotive Media, разработчики могут настраивать цвета шаблонов, шрифты, значки и многое другое, чтобы создать фирменный стиль.
  • Уведомления . Узнайте, как изменить внешний вид и настройки уведомлений.

Терминология

Эти термины используются в HMI и связанных статьях:

Срок Определение
Основные приложения Ключевой набор приложений, критически важных для функциональности системы, включая «Настройки», «Радио», «HVAC», «Мультимедиа», «Дозвонщик» и «Клавиатура».
Документ определения совместимости (CDD) Перечисляет требования, которым должны соответствовать устройства, совместимые с последней версией Android.
Набор тестов совместимости (CTS) Бесплатный пакет тестирования коммерческого уровня, доступный для загрузки на странице «Загрузки комплекта тестов совместимости» .
Кастомизация Модификация реализации AOSP для удовлетворения требований OEM-производителя. Обычно это предполагает использование наложений ресурсов для внесения косметических изменений, а также обеспечения соответствия требованиям CDD, CTS и всем соответствующим рекомендациям по взаимодействию с пользователем.
Героические приложения Набор ключевых приложений, важных для всех аспектов Android, включая функциональность, возможность обновления, экосистему сторонних разработчиков и конечных пользователей. Приложения Hero включают в себя «Уведомления», «Настройки», «Мультимедиа» и «Коммуникационный центр/Дозвонщик». Соответствующие реализации 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 и других применимых рекомендаций по UX.

Системные приложения

Android Automotive включает в себя набор основных системных приложений, критически важных для общей функциональности системы. Из них «Коммуникационный центр», «Медиа», «Уведомления» и «Настройки» считаются главными приложениями.

  • Коммуникационный центр
  • ОВК
  • IME (клавиатура)
  • Лаунчер (главный экран)
  • Локальный медиаплеер
  • СМИ
  • Мессенджер
  • Уведомления
  • Радио
  • Настройки

Домашний экран

Главный экран, известный как Car Launcher , является целевой страницей для интерфейса HMI. Реализация AOSP служит только для справки, и ожидается, что OEM-производители заменят ее своей собственной, которая часто сочетает в себе навигацию, воспроизведение мультимедиа, связь и другие состояния системы по мере необходимости. Часто приложение Car Launcher отображает приложения, доступные в системе. Чтобы узнать, как обрабатывать такие события, как недавние события, изменения пакетов и автономные приложения (без активности средства запуска), см. эталонную реализацию.

Уведомления

Уведомления являются неотъемлемым компонентом ОС Android, и те же конструкции (включая всплывающее уведомление, список/центр уведомлений, API-интерфейсы уведомлений, ранжирование и встроенные действия) включены в Android Automotive. Подробную информацию см. в обзоре уведомлений портативного устройства. Чтобы оптимизировать сценарии использования в автомобилестроении, были внесены следующие изменения (по сравнению со стеком портативных уведомлений):

  • Уменьшение общего содержания уведомлений, видимого пользователям. Удаление текущего воспроизведения мультимедиа, текущей навигации и «неважных» (важность НИЗКАЯ и ниже) службных уведомлений переднего плана системных приложений из списка/центра уведомлений, с пониманием того, что эти уведомления либо становятся избыточными (например, кластер, показывающий состояние мультимедиа ) или бесполезны.

  • Удаление сложных контекстных элементов управления (таких как длительное нажатие и управление длиной смахивания).

  • Соблюдение конфигурации механизма UX Restrictions.

    • Предварительный просмотр содержимого уведомления о сообщениях может быть скрыт в зависимости от состояния диска.
    • Все строки ограничены максимальной длиной.
  • Добавление новых категорий уведомлений специально для автомобилей в Android 9, доступных только для встроенных системных приложений, работающих как android.uid.system .

  • CATEGORY_CAR_EMERGENCY . В верхней части списка уведомлений. Обходит элементы управления «Не беспокоить» (DND).

  • CATEGORY_CAR_WARNING . Рейтинг ниже экстренной помощи и выше других (обходит режим «Не беспокоить»).
  • CATEGORY_CAR_INFORMATION . Ранжируется вместе с остальными уведомлениями на основе «важности» и давности.

Комплексная реализация стека уведомлений, от API уведомлений до пользовательского интерфейса, считается главным приложением. Чтобы гарантировать согласованную совместимость API во всех HU и максимизировать возможность обновления, OEM-производителям настоятельно рекомендуется использовать реализацию AOSP, а затем слегка ее модифицировать.

Кастомизация

Применяются стандартные темы и наложения ресурсов DeviceDefault. Очень ограниченное количество ручек настройки поведения доступно по адресу:

packages/apps/Car/Notification/res/values/config.xml

Настройки

Приложение «Настройки» ( «Настройки автомобиля ») — одно из главных приложений, в котором есть ручки, которые пользователь может использовать для настройки аспектов ОС Android и остальной части автомобиля. Приложение «Настройки» предоставляет более 200 функций ОС, которые тесно связаны с каждой основной версией Android. Чтобы обеспечить возможность обновления и избежать фрагментации, OEM-производителям настоятельно рекомендуется взять реализацию AOSP, а затем настроить ее (вместо того, чтобы разветвлять реализацию).

Кастомизация

Приложение «Настройки» учитывает настройку и предоставляет несколько возможностей для настройки.

  • Тематика. Позволяет визуально настраивать способ отображения каждого типа объекта предпочтений, в том числе:

    • 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 ) содержит экран настроек, который должен быть связан с основным приложением настроек, это отдельное приложение можно внедрить динамически. Дополнительную информацию см. в разделе Динамические настройки .

СМИ

Media — это главное приложение, которое обеспечивает взаимодействие с пользователем от имени мультимедийных приложений, реализующих API-интерфейсы MediaSession и MediaBrowser . Медиа-приложениями могут быть сторонние приложения (например, Spotify и Pandora), а также другие источники мультимедиа, такие как потоковая передача по Bluetooth (BT) и локальные медиа.

В Android Auto ( Projection ) доступны сотни мультимедийных приложений, все из которых реализуют эти мультимедийные API, как описано в разделе Обеспечение воспроизведения аудио для Auto . Медиа API развиваются с каждым основным выпуском Android и с выпусками библиотеки Androidx . Чтобы гарантировать совместимость API во всех мультимедийных приложениях и будущих версиях Android, OEM-производителям настоятельно рекомендуется использовать реализацию AOSP, а затем настраивать ее.

Кастомизация

Стандартное оформление тем с помощью темы DeviceDefault также применимо к медиа. Кроме того, возможна дальнейшая настройка внешнего вида с помощью наложений ресурсов при условии, что настройка находится в пределах рекомендаций UX.

USB-носители и медиа-источники

Насколько это возможно, настоятельно рекомендуется подключать эти медиа-источники к Media посредством реализации API-интерфейсов MediaSession и MediaBrowser (это справедливо для любого стороннего медиа-приложения). См. приложение LocalMediaPlayer в AOSP. Это приложение отображает локальные медиафайлы и отображается как источник в разделе «Медиа».