

Many of the resources linked to in this document are derived directly or indirectly from the Android SDK and will be functionally identical to the information in that SDK’s documentation. Finally, note that certain component substitutions and modifications are explicitly forbidden by this document. It is the implementer’s responsibility to ensure full behavioral compatibility with the standard Android implementation, including and beyond the Compatibility Test Suite. 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. 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. 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.įor this reason, the Android Open Source Project is both the reference and preferred implementation of Android. To be considered compatible with Android 10, device implementations MUST meet the requirements presented in this Compatibility Definition, including any documents incorporated via reference. A “device implementation” or “implementation" is the hardware/software solution so developed. 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.Īs used in this document, a “device implementer” or “implementer” is a person or organization developing a hardware/software solution running Android 10. This document enumerates the requirements that must be met in order for devices to be compatible with Android 10.
