<html devsite>
  <head>
    <title>Android Compatibility Definition Document</title>
    <meta name="project_path" value="/_project.yaml" />
    <meta name="book_path" value="/_book.yaml" />
  </head>
  <body>
  <!--
      Copyright 2017 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>8.0</td>
    <td><a href="8.0/android-8.0-cdd.pdf">android-8.0-cdd.pdf</a></td>
    <td><a href="8.0/android-8.0-cdd.html">android-8.0-cdd.html</a></td>
    <td><a href="8.0/versions.html">Version 8.0</a></td>
  </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.html">android-4.4-cdd.html</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.html">android-4.3-cdd.html</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.html">android-4.2-cdd.html</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.html">android-4.0-cdd.html</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.html">android-2.2-cdd.html</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.html">android-2.1-cdd.html</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>

  </body>
</html>
