An Android-compatible device is any device that can run any third-party app written by third-party developers using the Android SDK and NDK. An Android-compatible device must adhere to the requirements of the compatibility definition document (CDD), and pass the compatibility test suite (CTS). Android-compatible devices are eligible to participate in the Android ecosystem which includes potential licensure of the Android Play Store and the Google Mobile Services (GMS) suite of applications, and use of the Android trademark. Anyone is welcome to use the Android source code, but to be considered part of the Android ecosystem, your device must be Android-compatible.
This document provides an overview of the Android Compatibility program which represents the processes, requirements, and tests used to ensure that your device is Android-compatible.
Reasons to build compatible Android devices
Users want customizable devices
A mobile phone is a highly personal, always-on, always-present gateway to the Internet. We haven't met a user yet who didn't want to customize it by extending its functionality. That's why Android was designed as a robust platform for running aftermarket apps.
Developers outnumber us all
No device manufacturer can write all the software a user could conceivably need. We need third-party developers to write the apps users want, so the Android Open Source Project (AOSP) aims to make app development as easy and open as possible.
Everyone needs a common ecosystem
Every line of code developers write to work around a bug is a line of code that didn't add a new feature. The more compatible mobile devices are, the more apps we'll have to run on those devices. By building a fully compatible Android device, you benefit from the huge pool of apps written for Android while increasing the incentive for developers to build more apps.
The Android compatibility program works for the benefit of the entire Android community, including users, developers, and device manufacturers.
Each group depends on the others. Users want a wide selection of devices and great apps; great apps come from developers motivated by a large market for their apps with many devices in users' hands; device manufacturers rely on a wide variety of great apps to increase their products' value for consumers.
Our goals were designed to benefit each of these groups:
Provide a consistent app and hardware environment to app developers. Without a strong compatibility standard, devices can vary so greatly that developers must design different versions of their apps for different devices. The compatibility program provides a precise definition of what developers can expect from a compatible device in terms of APIs and capabilities. Developers can use this information to make good design decisions, and be confident that their apps will run well on any compatible device.
Enable a consistent app experience for consumers. If an app runs well on one compatible Android device, it should run well on any other device that is compatible with the same Android platform version. Android devices will differ in hardware and software capabilities, so the compatibility program also provides the tools needed for distribution systems such as Google Play to implement appropriate filtering. This means users see only the apps they can actually run.
Enable device manufacturers to differentiate while being compatible. The Android compatibility program focuses on the aspects of Android relevant to running third-party apps, which allows device manufacturers the flexibility to create unique devices that are nonetheless compatible.
Minimize costs and overhead associated with compatibility. Ensuring compatibility should be easy and inexpensive to device manufacturers. The testing tool is free, open source, and available for download. It is designed to be used for continuous self-testing during the device development process to eliminate the cost of changing your workflow or sending your device to a third party for testing. Meanwhile, there are no required certifications, and thus no corresponding costs and fees.
Build an Android-compatible device
To build an Android-compatible mobile device, follow this three-step process:
- Using AOSP, implement Android on your device.
- Ensure your device complies with the Android Compatibility Definition Document. The CDD enumerates the software and hardware requirements for an Android-compatible device.
- Pass the Compatibility Test Suite (CTS). Use the CTS as an ongoing aid to evaluate compatibility during the development process.