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. Это приложение отображает локальные медиафайлы и отображается как источник в разделе «Медиа».