This document enumerates the requirements that must be met in order for devices to be compatible
with Android 6.0.
The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD
NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard defined in RFC2119
As used in this document, a “device implementer” or “implementer” is a person or organization
developing a hardware/software solution running Android 6.0. A “device implementation” or
“implementation is the hardware/software solution so developed.
To be considered compatible with Android 6.0, device implementations MUST meet the requirements
presented in this Compatibility Definition, including any documents incorporated via reference.
Where this definition or the software tests described in section 10
is silent, ambiguous, or incomplete,
it is the responsibility of the device implementer to ensure compatibility with existing implementations.
For this reason, the Android Open Source Project [Resources, 2
] is both the reference and preferred
implementation of Android. Device implementers are STRONGLY RECOMMENDED to base their
implementations to the greatest extent possible on the “upstream” source code available from the
Android Open Source Project. While some components can hypothetically be replaced with alternate
implementations, it is STRONGLY RECOMMENDED to not follow this practice, as passing the
software tests will become substantially more difficult. It is the implementer’s responsibility to ensure
full behavioral compatibility with the standard Android implementation, including and beyond the
Compatibility Test Suite. Finally, note that certain component substitutions and modifications are
explicitly forbidden by this document.
Many of the resources listed in section 14
are derived directly or indirectly from the Android SDK, and
will be functionally identical to the information in that SDK’s documentation. For any case where this
Compatibility Definition or the Compatibility Test Suite disagrees with the SDK documentation, the
SDK documentation is considered authoritative. Any technical details provided in the references
included in section 14
are considered by inclusion to be part of this Compatibility Definition.
2. Device Types
While the Android Open Source Project has been used in the implementation of a variety of device
types and form factors, many aspects of the architecture and compatibility requirements were
optimized for handheld devices. Starting from Android 5.0, the Android Open Source Project aims to
embrace a wider variety of device types as described in this section.
Android Handheld device refers to an Android device implementation that is typically used by
holding it in the hand, such as mp3 players, phones, and tablets. Android Handheld device
MUST have a touchscreen embedded in the device.
MUST have a power source that provides mobility, such as a battery.
Android Television device refers to an Android device implementation that is an entertainment
interface for consuming digital media, movies, games, apps, and/or live TV for users sitting about ten
feet away (a “lean back” or “10-foot user interface”). Android Television devices:
MUST have an embedded screen OR include a video output port, such as VGA, HDMI, or
a wireless port for display.
MUST declare the features android.software.leanback and
android.hardware.type.television [Resources, 3
Android Watch device refers to an Android device implementation intended to be worn on the body,
Page 5 of 74