Обзор ЧМИ

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.