Android Automotive implementation refers to a vehicle head unit running Android as an operating system for part or all of the system and/or infotainment functionality.
Android device implementations are classified as an Automotive if they declare the feature android.hardware.type.automotive
or meet all the following criteria.
The additional requirements in the rest of this section are specific to Android Automotive device implementations.
Automotive device implementations:
[7.1.1.1/A-0-1] MUST have a screen at least 6 inches in physical diagonal size.
[7.1.1.1/A-0-2] MUST have a screen size layout of at least 750 dp x 480 dp.
[7.2.3/A-0-1] MUST provide the Home function and MAY provide Back and Recent functions.
[7.2.3/A-0-2] MUST send both the normal and long press event of the Back function (KEYCODE_BACK
) to the foreground application.
[7.3.1/A-SR] Are STRONGLY RECOMMENDED to include a 3-axis accelerometer.
If Automotive device implementations include a 3-axis accelerometer, they:
If Automotive device implementations include a GPS/GNSS receiver and report the capability to applications through the android.hardware.location.gps
feature flag:
If Automotive device implementations include a gyroscope, they:
Automotive device implementations:
SENSOR_TYPE_GEAR
.Automotive device implementations:
[7.3.11.2/A-0-1] MUST support day/night mode defined as SENSOR_TYPE_NIGHT
.
[7.3.11.2/A-0-2] The value of the SENSOR_TYPE_NIGHT
flag MUST be consistent with dashboard day/night mode and SHOULD be based on ambient light sensor input.
The underlying ambient light sensor MAY be the same as Photometer.
[7.3.11.3/A-0-1] MUST support driving status defined as SENSOR_TYPE_DRIVING_STATUS
, with a default value of DRIVE_STATUS_UNRESTRICTED
when the vehicle is fully stopped and parked. It is the responsibility of device manufacturers to configure SENSOR_TYPE_DRIVING_STATUS
in compliance with all laws and regulations that apply to markets where the product is shipping.
[7.3.11.4/A-0-1] MUST provide vehicle speed defined as SENSOR_TYPE_CAR_SPEED
.
[7.4.3/A-0-1] MUST support Bluetooth and SHOULD support Bluetooth LE.
[7.4.3/A-0-2] Android Automotive implementations MUST support the following Bluetooth profiles:
[7.4.3/A] SHOULD support Message Access Profile (MAP).
[7.4.5/A] SHOULD include support for cellular network based data connectivity.
[7.6.1/A-0-1] MUST have at least 4GB of non-volatile storage available for application private data (a.k.a. “/data” partition).
If Automotive device implementations are 32-bit:
[7.6.1/A-1-1] The memory available to the kernel and userspace MUST be at least 512MB if any of the following densities are used:
[7.6.1/A-1-2] The memory available to the kernel and userspace MUST be at least 608MB if any of the following densities are used:
[7.6.1/A-1-3] The memory available to the kernel and userspace MUST be at least 896MB if any of the following densities are used:
[7.6.1/A-1-4] The memory available to the kernel and userspace MUST be at least 1344MB if any of the following densities are used:
If Automotive device implementations are 64-bit:
[7.6.1/A-2-1] The memory available to the kernel and userspace MUST be at least 816MB if any of the following densities are used:
[7.6.1/A-2-2] The memory available to the kernel and userspace MUST be at least 944MB if any of the following densities are used:
[7.6.1/A-2-3] The memory available to the kernel and userspace MUST be at least 1280MB if any of the following densities are used:
[7.6.1/A-2-4] The memory available to the kernel and userspace MUST be at least 1824MB if any of the following densities are used:
Note that the “memory available to the kernel and userspace” above refers to the memory space provided in addition to any memory already dedicated to hardware components such as radio, video, and so on that are not under the kernel’s control on device implementations.
Automotive device implementations:
Automotive device implementations:
Automotive device implementations:
android.hardware.audio.output
.Automotive device implementations MUST support the following audio encoding:
Automotive device implementations MUST support the following video encoding:
Automotive device implementations MUST support the following video decoding:
Automotive device implementations are STRONGLY RECOMMENDED to support the following video decoding:
Automotive device implementations:
[3/A-0-1] MUST declare the feature android.hardware.type.automotive
.
[3/A-0-2] MUST support uiMode = UI_MODE_TYPE_CAR.
[3/A-0-3] Android Automotive implementations MUST support all public APIs in the android.car.*
namespace.
[3.4.1/A-0-1] MUST provide a complete implementation of the android.webkit.Webview
API.
[3.8.3/A-0-1] MUST display notifications that use the Notification.CarExtender
API when requested by third-party applications.
[3.8.4/A-0-1] MUST implement an assistant on the device to handle the Assist action.
[3.14/A-0-1] MUST include a UI framework to support third-party apps using the media APIs as described in section 3.14.
Automotive device implementations:
[8.3/A-0-1] All Apps exempted from App Standby and Doze power-saving modes MUST be made visible to the end user.
[8.3/A-0-2] The triggering, maintenance, wakeup algorithms and the use of global system settings of App Standby and Doze power-saving modes MUST not deviate from the Android Open Source Project.
[8.4/A-0-1] MUST provide a per-component power profile that defines the current consumption value for each hardware component and the approximate battery drain caused by the components over time as documented in the Android Open Source Project site.
[8.4/A-0-2] MUST report all power consumption values in milliampere hours (mAh).
[8.4/A-0-3] MUST report CPU power consumption per each process's UID. The Android Open Source Project meets the requirement through the uid_cputime
kernel module implementation.
[8.4/A] SHOULD be attributed to the hardware component itself if unable to attribute hardware component power usage to an application.
[8.4/A-0-4] MUST make this power usage available via the adb shell dumpsys batterystats
shell command to the app developer.
If Automotive device implementations include multiple users, they:
Automotive device implementations: