โš™๏ธ Advanced Android Engineering and Emerging Technology

Android Automotive Development

In the car, safety comes first. You don't design free-form UI; you supply data and actions to templates the system renders safely. Here's how Android Auto and Android Automotive OS differ, which app categories are supported, and how to build for them.

โœ๏ธ Yunok Tech ๐Ÿ“… Updated โฑ 3 min read ๐ŸŽฏ Advanced
On this page
  1. Two platforms, shared app models
  2. Supported app categories
  3. Media apps with Media3
  4. Car App Library templates
  5. Driver distraction and quality
  6. Testing
  7. Use cases
  8. Frequently asked questions
  9. Conclusion

There are two car platforms. Android Auto projects your phone app onto the car's display. Android Automotive OS is Android running on the car itself, with apps installed directly. The same app architecture can target both.

Two platforms, shared app models

Android Auto versus Android Automotive OS With Android Auto, the app runs on the phone and the car display shows it. With Android Automotive OS, the app runs on the car's built-in Android system. Both use the same media and Car App Library models, and the system renders templates. Android Autoapp runs on the phoneprojected to car display Android Automotive OSapp runs on the carinstalled from Play in the car Shared: Media (MediaSession) ยท messaging ยท Car App Library templates
You supply content; the platform renders driver-safe UI.

Supported app categories

CategoryHow you build it
Media (music, podcasts, audiobooks)A MediaLibraryService with Media3; the system builds the UI
MessagingNotifications with MessagingStyle and reply/mark-read actions
Navigation, POI (parking, charging), IoT, weather and moreCar App Library templates
Video, games, browsersOnly in specific contexts on Automotive OS (for example while parked). Check the current docs.

Supported categories expand over time, so check the official overview before planning.

Media apps with Media3

PlaybackService.ktKotlin
class PlaybackService : MediaLibraryService() {
    private var session: MediaLibrarySession? = null

    override fun onCreate() {
        super.onCreate()
        val player = ExoPlayer.Builder(this).build()
        session = MediaLibrarySession.Builder(this, player, LibraryCallback()).build()
    }

    override fun onGetSession(controllerInfo: MediaSession.ControllerInfo) = session

    override fun onDestroy() {
        session?.run { player.release(); release() }
        session = null
        super.onDestroy()
    }
}
// LibraryCallback returns the browsable tree: root โ†’ categories โ†’ playable items.

The same service powers your phone notification, Wear OS, Android Auto and Automotive OS media UIs.

Car App Library templates

Car App Library screenKotlin
class ChargersScreen(carContext: CarContext) : Screen(carContext) {
    override fun onGetTemplate(): Template {
        val list = ItemList.Builder()
            .addItem(Row.Builder().setTitle("Station A").addText("2 km ยท 4 free").build())
            .addItem(Row.Builder().setTitle("Station B").addText("5 km ยท 1 free").build())
            .build()
        return ListTemplate.Builder()
            .setTitle("Nearby chargers")
            .setSingleList(list)
            .build()
    }
}
// Declared via a CarAppService with a category in the manifest.

Templates enforce limits on list length, text and steps while driving. These limits are part of driver distraction safeguards.

Driver distraction and quality

  • Follow the car app quality guidelines. Apps are reviewed against them.
  • Keep tasks short, minimise text, and support voice where possible.
  • Don't show video or complex UI while driving.

Testing

  • Android Auto: the Desktop Head Unit (DHU) simulates the car screen on your computer.
  • Android Automotive OS: Automotive emulator system images in Android Studio.
  • Test day and night modes, different screen sizes, and touch vs rotary input.

Use cases

Podcast app

One Media3 service, available on phone, car and watch.

EV charging

POI templates listing nearby chargers with navigation hand-off.

Messaging

Notifications read aloud with voice reply.

Frequently asked questions

Can I build a custom UI for the car?

For most categories, no. You use templates or system media UI. Some Automotive OS app types allow more, mainly while parked.

Is one APK enough for phone and Auto?

For Android Auto, yes: car support lives in your phone app. Automotive OS needs a build targeting the automotive form factor, often a separate module.

Conclusion

Car apps supply content and actions: media through Media3, messaging through notifications, and other categories through Car App Library templates, with driver safety guidelines and DHU and emulator testing.

Next step: adapt to big screens with Large Screens and Foldables.

Official references

๐Ÿ“ฑ Apps built by Yunok Tech

Real Android apps on Google Play, free to download.

See all our apps โ†’

Ready to build real Android applications?

Architecture makes the most sense when you apply it to a real project and see why each boundary exists. Learn how maintainable Android applications are designed by building one.

Move beyond theory and strengthen your Android development skills with Yunoktech's Android course. Learn core concepts, practical implementation, modern Android development techniques, and the reasoning behind building maintainable applications.

Explore the Android course and take your next step as an Android developer.

Share: LinkedIn X / Twitter WhatsApp