blob: 3add1b3fc59cc18504bdc87bc06df3f7b20c56df [file] [log] [blame]
page.title=Android Compatibility Definition Document
@jd:body
<!--
Copyright 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>Welcome to the Android Compatibility Definition Document (CDD). This document
enumerates the requirements that must be met in order for devices to be
compatible with the latest version of Android. To be considered compatible with
Android, device implementations MUST meet the requirements
presented in this Compatibility Definition, including any documents
incorporated via reference. For each release of the Android platform, a
detailed CDD will be provided. The CDD represents the "policy" aspect of
Android compatibility.</p>
<p>It is important the policy of the Android compatibility program is codified
explicitly as no test suite, including CTS, can truly be comprehensive. For
instance, the CTS includes a test that checks for the presence and correct
behavior of OpenGL graphics APIs, but no software test can verify that the
graphics actually appear correctly on the screen. More generally, it's
impossible to test the presence of hardware features such as keyboards, display
density, Wi-Fi, and Bluetooth.</p>
<p>The CDD's role is to codify and clarify specific requirements, and
eliminate ambiguity. The CDD does not attempt to be comprehensive. Since
Android is a single corpus of open-source code, the code itself is the
comprehensive "specification" of the platform and its APIs. The CDD acts as a
"hub" referencing other content (such as SDK API documentation) that provides
a framework in which the Android source code may be used so that the end
result is a compatible system.</p>
<p>If you want to build a device compatible with a given Android version,
start by checking out the source code for that version, and then read the
corresponding CDD and stay within its guidelines. For additional details,
simply examine <a href="/compatibility/android-cdd.pdf">the latest CDD</a>.</p>
<p>
You may view the latest CDD either as an HTML web page or an easily downloadable PDF:
</p>
<ul>
<li><a href="android-cdd.html">HTML</a></li>
<li><a href="android-cdd.pdf">PDF</a></li>
</ul>
<p>Find older versions of the CDD and approved release version strings here:</p>
<table>
<tr>
<th>Version</th>
<th>PDF</th>
<th>HTML/XHTML</th>
<th>Strings</th>
</tr>
<tr>
<td>7.1</td>
<td><a href="7.1/android-7.1-cdd.pdf">android-7.1-cdd.pdf</a></td>
<td><a href="7.1/android-7.1-cdd.html">android-7.1-cdd.html</a></td>
<td><a href="7.1/versions.html">Version 7.1</a></td>
</tr>
<tr>
<td>7.0</td>
<td><a href="7.0/android-7.0-cdd.pdf">android-7.0-cdd.pdf</a></td>
<td><a href="7.0/android-7.0-cdd.html">android-7.0-cdd.html</a></td>
<td><a href="7.0/versions.html">Version 7.0</a></td>
</tr>
<tr>
<td>6.0</td>
<td><a href="6.0/android-6.0-cdd.pdf">android-6.0-cdd.pdf</a></td>
<td><a href="6.0/android-6.0-cdd.html">android-6.0-cdd.html</a></td>
<td><a href="6.0/versions.html">Version 6.0</a></td>
</tr>
<tr>
<td>5.1</td>
<td><a href="5.1/android-5.1-cdd.pdf">android-5.1.cdd.pdf</a></td>
<td><a href="5.1/android-5.1-cdd.html">android-5.1-cdd.html</a></td>
<td><a href="5.1/versions.html">Version 5.1</a></td>
</tr>
<tr>
<td>5.0</td>
<td><a href="5.0/android-5.0-cdd.pdf">android-5.0.cdd.pdf</a></td>
<td><a href="5.0/android-5.0-cdd.html">android-5.0-cdd.html</a></td>
<td><a href="5.0/versions.html">Version 5.0</a></td>
</tr>
<tr>
<td>4.4</td>
<td><a href="4.4/android-4.4-cdd.pdf">android-4.4.cdd.pdf</a></td>
<td><a href="4.4/android-4.4-cdd.xhtml">android-4.4-cdd.xhtml</a></td>
<td><a href="4.4/versions.html">Version 4.4</a></td>
</tr>
<tr>
<td>4.3</td>
<td><a href="4.3/android-4.3-cdd.pdf">android-4.3.cdd.pdf</a></td>
<td><a href="4.3/android-4.3-cdd.xhtml">android-4.3-cdd.xhtml</a></td>
<td><a href="4.3/versions.html">Version 4.3</a></td>
</tr>
<tr>
<td>4.2</td>
<td><a href="4.2/android-4.2-cdd.pdf">android-4.2.cdd.pdf</a></td>
<td><a href="4.2/android-4.2-cdd.xhtml">android-4.2-cdd.xhtml</a></td>
<td><a href="4.2/versions.html">Version 4.2</a></td>
</tr>
<tr>
<td>4.1</td>
<td><a href="4.1/android-4.1-cdd.pdf">android-4.1.cdd.pdf</a></td>
<td><a href="4.1/android-4.1-cdd.html">android-4.1-cdd.html</a></td>
<td><a href="4.1/versions.html">Version 4.1</a></td>
</tr>
<tr>
<td>4.0</td>
<td><a href="4.0/android-4.0-cdd.pdf">android-4.0.cdd.pdf</a></td>
<td><a href="4.0/android-4.0-cdd.xhtml">android-4.0-cdd.xhtml</a></td>
<td><a href="4.0/versions.html">Version 4.0</a></td>
</tr>
<tr>
<td>2.3</td>
<td><a href="2.3/android-2.3-cdd.pdf">android-2.3.cdd.pdf</a><br/>
<a href="2.3/android-2.3.3-cdd.pdf">android-2.3.3-cdd.pdf</a></td>
<td><a href="2.3/android-2.3-cdd.html">android-2.3-cdd.html</a></td>
<td><a href="2.3/versions.html">Version 2.3</a></td>
</tr>
<tr>
<td>2.2</td>
<td><a href="2.2/android-2.2-cdd.pdf">android-2.2.cdd.pdf</a></td>
<td><a href="2.2/android-2.2-cdd.xhtml">android-2.2-cdd.xhtml</a></td>
<td><a href="2.2/versions.html">Version 2.2</a></td>
</tr>
<tr>
<td>2.1</td>
<td><a href="2.1/android-2.1-cdd.pdf">android-2.1.cdd.pdf</a></td>
<td><a href="2.1/android-2.1-cdd.xhtml">android-2.1-cdd.xhtml</a></td>
<td><a href="2.1/versions.html">Version 2.1</a></td>
</tr>
<tr>
<td>1.6</td>
<td><a href="1.6/android-1.6-cdd.pdf">android-1.6.cdd.pdf</a></td>
<td><a href="1.6/android-1.6-cdd.html">android-1.6-cdd.html</a></td
<td>&nbsp;</td>
</tr>
</table>