| # 1\. Introduction |
| |
| This document enumerates the requirements that must be met in order for devices |
| to be compatible with Android ANDROID_VERSION. |
| |
| 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](http://www.ietf.org/rfc/rfc2119.txt). |
| |
| As used in this document, a “device implementer” or “implementer” is a person |
| or organization developing a hardware/software solution running Android |
| ANDROID_VERSION. A “device implementation” or “implementation" is the |
| hardware/software solution so developed. |
| |
| To be considered compatible with Android ANDROID_VERSION, 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](#10_software_compatibility_testing) 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](http://source.android.com/) |
| 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 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. In any cases 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 linked resources throughout this document are |
| considered by inclusion to be part of this Compatibility Definition. |