blob: 5ca207e3a05f18bc46f42ec5dfb6ec31d98fbe5d [file] [log] [blame] [view]
Skyler Kaufman991ae4d2011-04-07 12:30:41 -07001# Compatibility Program Overview #
2
3The Android compatibility program makes it easy for mobile device
4manufacturers to develop compatible Android devices.
5
6# Program goals #
7
8The Android compatibility program works for the benefit of the entire
9Android community, including users, developers, and device manufacturers.
10
11Each group depends on the others. Users want a wide selection of devices
12and great apps; great apps come from developers motivated by a large market
13for their apps with many devices in users' hands; device manufacturers rely
14on a wide variety of great apps to increase their products' value for
15consumers.
16
17Our goals were designed to benefit each of these groups:
18
19- *Provide a consistent application and hardware environment to application
20developers.*
21 Without a strong compatibility standard, devices can vary so
22greatly that developers must design different versions of their applications
23for different devices. The compatibility program provides a precise definition
24of what developers can expect from a compatible device in terms of APIs and
25capabilities. Developers can use this information to make good design
26decisions, and be confident that their apps will run well on any compatible
27device.
28
29- *Enable a consistent application experience for consumers.*
30 If an application runs well on one compatible Android device, it should run well on
31any other device that is compatible with the same Android platform version.
32Android devices will differ in hardware and software capabilities, so the
33compatibility program also provides the tools needed for distribution systems
34such as Android Market to implement appropriate filtering. This means that
35users can only see applications which they can actually run.
36
37- *Enable device manufacturers to differentiate while being
38compatible.*
39 The Android compatibility program focuses on the aspects of
40Android relevant to running third-party applications, which allows device
41manufacturers the flexibility to create unique devices that are nonetheless
42compatible.
43
44- *Minimize costs and overhead associated with compatibility.*
45 Ensuring compatibility should be easy and inexpensive to
46device manufacturers. The testing tool (CTS) is free, open source, and
47available for [download](downloads.html).
48CTS is designed to be used for continuous self-testing
49during the device development process to eliminate the cost of changing your
50workflow or sending your device to a third party for testing. Meanwhile, there
51are no required certifications, and thus no corresponding costs and
52fees.
53
54The Android compatibility program consists of three key components:
55
56- The source code to the Android software stack
57- The Compatilbility Definition Document, representing the "policy" aspect of compatibility
58- The Compatilbility Test Suite, representing the "mechanism" of compatibility
59
60Just as each version of the Android platform exists in a separate branch in
61the source code tree, there is a separate CTS and CDD for each version as
62well. The CDD, CTS, and source code are -- along with your hardware and your
63software customizations -- everything you need to create a compatible device.
64
65# Compatibility Definition Document (CDD) #
66
67For each release of the Android platform, a detailed Compatibility
68Definition Document (CDD) will be provided. The CDD represents the "policy"
69aspect of Android compatibility.
70
71No test suite, including CTS, can truly be comprehensive. For instance, the
72CTS includes a test that checks for the presence and correct behavior of
73OpenGL graphics APIs, but no software test can verify that the graphics
74actually appear correctly on the screen. More generally, it's impossible to
75test the presence of hardware features such as keyboards, display density,
76WiFi, and Bluetooth.
77
78The CDD's role is to codify and clarify specific requirements, and
79eliminate ambiguity. The CDD does not attempt to be comprehensive. Since
80Android is a single corpus of open-source code, the code itself is the
81comprehensive "specification" of the platform and its APIs. The CDD acts as a
82"hub", referencing other content (such as SDK API documentation) that provides
83a framework in which the Android source code may be used so that the end
84result is a compatible system.
85
86If you want to build a device compatible with a given Android version,
87start by checking out the source code for that version, and then read the
88corresponding CDD and stay within its guidelines. For additional details,
89simply examine <a href="">the latest CDD</a>.
90
91# Compatibility Test Suite (CTS) #
92
93The CTS is a free, commercial-grade test suite, available for
94[download](downloads.html).
95The CTS represents the "mechanism" of compatibility.
96
97The CTS runs on a desktop machine and executes test cases directly on
98attached devices or an emulator. The CTS is a set of unit tests designed to be
99integrated into the daily workflow (such as via a continuous build system) of
100the engineers building a device. Its intent is to reveal incompatibilities
101early on, and ensure that the software remains compatible throughout the
102development process.
103
104For details on the CTS, consult the [CTS introduction](cts-intro.html).