Skip to content

App categories

Apps on the vehicle app store generally fall into two technical categories. Choose the one that fits how your app presents to the driver.

Car App Library (templated) apps

Car App Library (CAL) apps use pre-built UI templates (lists, grids, panes, search, messages) rendered by the car’s host. The host enforces distraction guidelines automatically, and the same app can target multiple car hosts.

When to use: information and browsing apps — points of interest, weather, IoT, navigation companions — where the templated UI fits your content.

Baseline requirements:

  • Declare the automotive and templates-host features (see Building for AAOS).
  • Declare the minimum Car App API level your app supports in the manifest.
  • Provide the automotive app descriptor resource.
  • Request only the template permissions your category needs.

Templated apps maximize compatibility because they avoid custom rendering and rely on the host to draw a compliant UI.

Audio (Media3) apps

Audio apps play media in the car and integrate with system media surfaces (notification, steering-wheel controls, Assistant). Build them on Media3 (ExoPlayer + MediaSession).

When to use: music, radio, podcast, and other playback apps.

Baseline requirements:

  • Host playback in a MediaSessionService (or MediaLibraryService) and expose the session via onGetSession().
  • Set explicit audio attributes and let the player manage audio focus: setAudioAttributes(audioAttributes, /* handleAudioFocus= */ true).
  • Handle becoming-noisy events: setHandleAudioBecomingNoisy(true).
  • Declare FOREGROUND_SERVICE and FOREGROUND_SERVICE_MEDIA_PLAYBACK, and set android:foregroundServiceType="mediaPlayback" on the service.
  • Populate media metadata (at least title) so system surfaces show correct state.
  • Verify focus behavior against another active media app — no dual playback, clean pause/duck on focus loss.

Not sure which category?

If your app is primarily information/browsing, start with the Car App Library. If it primarily plays audio, build a Media3 audio app. Apps that do both should lead with the experience the driver uses most.