Как работают Android Auto SDK и Android Auto Host и как начать разработку

Android Auto SDK позволяет создавать приложения (медиа, навигация, сообщения) для отображения и управления на автомобильном экране; Android Auto Host — библиотека для автопроизводителей, чтобы их системы запускали и рендерили эти приложения. Ниже — компактный практический план старта.

Что такое SDK и что такое Host — ключевая разница

  • Android Auto SDK (Car App Library) — набор API/шаблонов для разработки car‑ready приложений: Media, Navigation, Conversation и др. Шаблоны ограничивают UI, чтобы минимизировать отвлечение водителя, и дают готовые элементы управления (MediaSession, templates).
  • Android Auto Host — компонент для OEM/встраиваемых систем: принимает контент от приложений, рендерит интерфейс, обрабатывает ввод и системные ограничения (скорость, режим движения). Хост нужен, если система работает без смартфона (native host).

Начинайте с медиаприложения — самый простой путь: готовые шаблоны и меньше ограничений по состояниям.

Системные требования и необходимые зависимости

  • Android Studio 2023+; Android Gradle Plugin 8.0+; Target SDK 34+ (Android 14) рекомендован.
  • Для разработки приложения:
    • dependency: com.google.android.libraries.car.app:car-app:1.4.0 (пример версии).
    • Тестирование: Desktop Head Unit (DHU) и реальный head unit/эмулятор производителя.
  • Для хоста:
    • dependency: androidx.car.app:app-hosting:1.1.0 (пример).
    • Целевая платформа: Android 10+ на устройстве, специальные разрешения (например, android.car.permission.CAR_SPEED) и поддержка рендеринга.
  • Процедура верификации: при публикации приложений для Android Auto проводится проверки безопасности и UI‑правил (обычно несколько дней).

Быстрый пошаговый старт с Android Auto SDK

  1. Создайте проект в Android Studio (Empty Activity).
  2. Добавьте в build.gradle (app):
implementation "com.google.android.libraries.car.app:car-app:1.4.0"
  1. Зарегистрируйте приложение в AndroidManifest.xml (пример для медиаприложения):
<activity android:name=".MyCarApp" android:exported="true" android:launchMode="singleTop">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="androidx.car.app.CarAppCategory.MEDIA" />
  </intent-filter>
</activity>
  1. Реализуйте Screen и Template (Kotlin):
class MediaScreen(carContext: CarContext) : Screen(carContext) {
  override fun onGetTemplate(): Template {
    return PaneTemplate.Builder(
      Pane.Builder()
        .addRow(Row.Builder().setTitle("Мой плейлист").build())
        .build()
    ).setHeaderAction(Action.APP_ICON).build()
  }
}
  1. Тестируйте сначала на DHU, затем на реальном head unit; DHU не ловит ~20% багов — проверяйте оба варианта.
  2. Подготовьте APK для валидации и отправки на тестирование/сертификацию по требованиям Android Auto.

UI не должен требовать зрительного внимания более 2 секунд; нарушение правил приводит к отклонению при проверке.

Настройка Android Auto Host (кратко)

  • Добавьте хост‑зависимость и создайте HostActivity, унаследованную от AppHostingActivity.
  • Переопределите callbacks для рендеринга и управления сессиями.
  • Пройдите интеграционные тесты в реальном автомобиле/эмуляторе производителя и подайте на сертификацию.

Частые ошибки

  • Пропуск intent‑фильтров или категория CarAppCategory — приложение не будет найдено хостом.
  • Тестирование только на DHU — баги на реальных HW остаются незамеченными.
  • Использование кастомных view вместо шаблонов — высокая вероятность отклонения.
  • Неправильно заданные разрешения для доступа к телеметрии (скорость, сенсоры).

FAQ

  • Нужно ли иметь доступ к OEM хосту для разработки приложения?
    • Нет: приложение можно разрабатывать и тестировать на DHU; для полного теста нужен реальный head unit.
  • Какую сложность выбрать для первого релиза?
    • Начните с медиаприложения: простая логика, минимум экранов, быстрый цикл тестирования.
  • Сколько времени занимает сертификация?
    • Обычно проверка занимает несколько дней, но зависит от объёма изменений и соответствия требованиям.

Готовы начать? Соберите минимальный прототип за пару часов: добавьте зависимость, реализуйте одну Screen и запустите на DHU — это позволит понять основные ограничения и ускорит дальнейшую разработку.