Introduction To Aaos Csimmonds Ndctechtown 2021
Introduction To Aaos Csimmonds Ndctechtown 2021
Chris Simmonds
NDC Techtown 2021
These slides are available under a Creative Commons Attribution-ShareAlike 4.0 license. You can read the full
text of the license here
http://creativecommons.org/licenses/by-sa/4.0/legalcode
You are free to
• copy, distribute, display, and perform the work
• Share Alike: if you alter, transform, or build upon this work, you may distribute the resulting work only
under a license identical to this one (i.e. include this page exactly as it is)
• For any reuse or distribution, you must make clear to others the license terms of this work
@2net_software
https://uk.linkedin.com/in/chrisdsimmonds/
• Per-unit license
• Must pass tests: CTS, VTS, ATS, ..
• Must install Google apps
Vehicle ECUs
Code: hardware/interfaces/automotive/vehicle/2.0/types.hal
An Introduction to Android Automotive OS 14 Copyright © 2011-2021, 2net Ltd
Extending VehicleProperty
Java:
private static final int VENDOR_EXAMPLE =
0x1001 | VehiclePropertyGroup.VENDOR
| VehiclePropertyType.INT32 | VehicleArea.GLOBAL;
Code: hardware/interfaces/automotive/vehicle/2.0/IVehicle.hal
Car Service
IVehicle::subscribe
VHAL daemon
ECU
-
Car Service
IVehicleCallback::onChange
VHAL daemon
ECU
-
ChangeMode:
STATIC Never changes
ON_CHANGE Signal event when value changes
CONTINUOUS Constantly changing: notified at sampling rate set
by subscriber
• Retrieves various static information from the car (VID, model, year, fuel
type, etc.)
• Permission PERMISSION_CAR_INFO, level "normal"
Code:
packages/services/Car/car-lib/src/android/car/CarInfoManager.java
Instrument
60 km/h cluster
display 50%
100 km
• Apps in Play Store for Auto and Automotive can’t access the system
APIs
• Apps are very restricted so as to minimize driver distraction
"Important: Google takes driver distraction very seriously. Your app must meet specific
design requirements before it can be listed on Google Play for Android Automotive OS and
Android Auto"
• References:
https://developer.android.com/training/cars/start
https://developer.android.com/docs/quality-guidelines/
car-app-quality
https://developer.android.com/training/cars/navigation
• Android Studio has automotive SDKs for R/11 but not yet S/12
• Requires Android Studio version > 4.2
• Note: the stable version of 4.2 was released in May 2021: prior to that it
was only available on the "canary" channel
• Problem: the rear view camera must be able to display images within 2
seconds of starting the ignition
• But, Android takes 10’s of seconds to boot
• Solution: the Exterior View System (EVS)
• EVS is a self contained application written in C++
• has few dependencies on the Android operating system
• so, EVS can be active within 2 seconds, long before Android has
finished booting
Reference: https://source.android.com/devices/automotive/camera-hal
An Introduction to Android Automotive OS 37 Copyright © 2011-2021, 2net Ltd
Typical control flow
Reference: https://source.android.com/devices/automotive/camera-hal
An Introduction to Android Automotive OS 38 Copyright © 2011-2021, 2net Ltd
Display sharing
• EVS has priority over the main display (usually the centre console)
• It can grab the display whenever an exterior camera needs to be
shown
• e.g. when reverse gear is selected
Reference https://source.android.com/devices/automotive/audio
An Introduction to Android Automotive OS 42 Copyright © 2011-2021, 2net Ltd
Audio contexts
Slides at
https://2net.co.uk/slides/introduction-to-aaos-csimmonds-ndctechtown-2021.
pdf
@2net_software
https://uk.linkedin.com/in/chrisdsimmonds/