On this page
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
Supported app categories
| Category | How you build it |
|---|---|
| Media (music, podcasts, audiobooks) | A MediaLibraryService with Media3; the system builds the UI |
| Messaging | Notifications with MessagingStyle and reply/mark-read actions |
| Navigation, POI (parking, charging), IoT, weather and more | Car App Library templates |
| Video, games, browsers | Only 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
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
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.
Walzi4K wallpapers for lock and home screenGet it โธ
NotiVaultNotification history: recover dismissed notificationsGet it โธ
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.