1

Help me understand: 'Android for Cars' subsumes 'Android Automotive OS' and 'Android Auto' ...

  • in the Automotive case only one Android OS (the one on the car-display) is used, so only that Android version and patch state are relevant for the app. Apps can tell on install whether all of their functionality is supported by the OS (in theory at least)
  • but what about the case of Auto? Here the app runs on the 'Android 6.0 or higher' OS of the smartphone, projecting to the Android x.y of the car-display, and using (?) sensor values (e.g. drive/park) from the car-display. How is the compatibility managed? Are both sides fully backward/forward compatible?
  • bonus question: how can i know which of the interfaces/classes from android.car are available for the Auto case?
bukwyrm
  • 186
  • 6

1 Answers1

0

Android Auto and Android Automotive OS are independent of one another. Some cars running Android Automotive OS do support Android Auto (and/or CarPlay), but it is not a requirement. And Android Auto is supported by many cars that are not running Android Automotive OS.

but what about the case of Auto? Here the app runs on the 'Android 6.0 or higher' OS of the smartphone, projecting to the Android x.y of the car-display, and using (?) sensor values (e.g. drive/park) from the car-display. How is the compatibility managed? Are both sides fully backward/forward compatible?

Android Auto has access to sensor data since the head unit manufacturer must follow an integration guide (which is not publicly available) to support Android Auto. This integration provides the same interface for Android Auto whether it's projecting to an Android Automotive OS vehicle or one running a different OS.

Android Automotive OS has access to sensor data since it is the OS the head unit itself is running. The Compatibility Definition Document (that's the Android 13 CDD, but you can find other versions from the navigation drawer on that page) describes the requirements and recommendations for such head units.

bonus question: how can i know which of the interfaces/classes from android.car are available for the Auto case?

The android.car library is only for Android Automotive OS. See Can't use Android Auto 'android.car' library - throws RuntimeException: Stub for additional details.

Ben Sagmoe
  • 440
  • 2
  • 9
  • now i am even more confused: if the android.car (and i guess also the androidx.car, as androidx.<> is only a repackaging of the non-OS-bundled libs from android.<> ?) is only containing stuff for Automotive, where do i look for Auto stuff? That is the main thrust of my Q - if i want to read up on what Auto can do, where to go? And: you wrote "provides the same interface for Android Auto whether it's projecting to a[...] or one running a different OS" - does that mean Android Auto (running on the smartphone) can project to a headunit that is running a non-Android OS? – bukwyrm Jun 15 '23 at 08:42
  • android.car is an extension of the Android SDK for Android Automotive OS (https://developer.android.com/reference/android/car/package-summary) while androidx.car.app is a set of Jetpack libraries (https://developer.android.com/jetpack/androidx/releases/car-app) used to help build apps on Android Auto and Android Automotive OS. If you want to read up on Android Auto, you should read through d.android.com/training/cars, focusing on the overview sections that apply to both platforms as well as the sections specific to Auto. – Ben Sagmoe Jun 15 '23 at 17:47
  • To your second question, yes Android Auto can project to a headunit that is not running Android Automotive OS. This has actually always been the case - Android Auto was introduced in 2015 while the first Android Automotive OS vehicle shipped in 2020, so there were many years where that was the only setup possible. – Ben Sagmoe Jun 15 '23 at 17:49