blob: 00db026475a98ecca3737002a095e0940ec2a03c [file] [log] [blame]
Dan Morrill55de6812009-11-15 15:46:36 -08001page.title=Frequently Asked Questions
2doc.hidenav=true
3@jd:body
4<a name="aosp"></a><h2>Open Source</h2>
5<h3>What is the Android Open Source Project?</h3>
6<p>We use the phrase "Android Open Source Project" or "AOSP" to refer to the
7 people, the processes, and the source code that make up Android.</p>
8<p>The people oversee the project and develop the actual source code. The
9 processes refer to the tools and procedures we use to manage the development
10 of the software. The net result is the source code that you can use to build
11 cell phone and other devices.</p>
12
13<h3>Why did we open the Android source code?</h3>
14<p>Google started the Android project in response to our own experiences
15launching mobile apps. We wanted to make sure that there would always be an
16open platform available for carriers, OEMs, and developers to use to make
17their innovative ideas a reality. We also wanted to make sure that there was no
18central point of failure, so that no single industry player could restrict or control
19the innovations of any other. The single most important goal of the Android
20Open-Source Project (AOSP) is to make sure that the open-source Android
21software is implemented as widely and compatibly as possible, to everyone's
22benefit.</p>
23<p>You can find more information on this topic at our Project Philosophy page.</p>
24
25<h3>What kind of open-source project is Android?</h3>
26<p>Google oversees the development of the core Android open-source platform,
27 and works to create robust developer and user communities. For the most part
28 the Android source code is licensed under the permissive Apache Software
29 License 2.0, rather than a "copyleft" license. The main reason for this is
30 because our most important goal is widespread adoption of the software, and
31 we believe that the ASL2.0 license best achieves that goal.</p>
32<p>You can find more information on this topic at our Project Philosophy and
33 Licensing pages. </p>
34
35<h3>Why is Google in charge of Android?</h3>
36<p>Launching a software platform is complex. Openness is vital to the
37 long-term success of a platform, since openness is required to attract
38 investment from developers and ensure a level playing field. However, the
39 platform itself must also be a compelling product to end users.</p>
40<p>That's why Google has committed the professional engineering resources
41 necessary to ensure that Android is a fully competitive software platform.
42 Google treats the Android project as a full-scale product development
43 operation, and strikes the business deals necessary to make sure that great
44 devices running Android actually make it to market.</p>
45<p>By making sure that Android is a success with end users, we help ensure the
46 vitality of Android as a platform, and as an open-source project. After all,
47 who wants the source code to an unsuccessful product?</p>
48<p>Google's goal is to ensure a successful ecosystem around Android, but no
49 one is required to participate, of course. We opened the Android source code
50 so anyone can modify and distribute the software to meet their own needs.</p>
51
52<h3>What is Google's overall strategy for Android product development?</h3>
53<p>We focus on releasing great devices into a competitive marketplace, and
54 then incorporate the innovations and enhancements we made into the core
55 platform, as the next version.</p>
56<p>In practice, this means that the Android engineering team typically focuses
57 on a small number of "flagship" devices, and develops the next version of
58 the Android software to support those product launches. These flagship
59 devices absorb much of the product risk and blaze a trail for the broad OEM
60 community, who follow up with many more devices that take advantage of the
61 new features. In this way, we make sure that the Android platform evolves
62 according to the actual needs of real-world devices.</p>
63
64<h3>How is the Android software developed?</h3>
65<p>Each platform version of Android (such as 1.5, 1.6, and so on) has a
66 corresponding branch in the open-source tree. At any given moment, the most
67 recent such branch will be considered the "current stable" branch version.
68 This current stable branch is the one that manufacturers port to their
69 devices. This branch is kept suitable for release at all times.</p>
70<p>Simultaneously, there is also a "current experimental" branch, which is
71 where speculative contributions, such as large next-generation features, are
72 developed. Bug fixes and other contributions can be included in the current
73 stable branch from the experimental branch as appropriate.</p>
74<p>Finally, Google works on the next version of the Android platform in tandem
75 with developing a flagship device. This branch pulls in changes from the
76 experimental and stable branches as appropriate.</p>
Dan Morrill98620ee2010-04-13 14:48:25 -070077<p>You can find more information on this topic at our <a
78href="{@docRoot}source/code-lines.html">Branches and Releases</a> page.</p>
Dan Morrill55de6812009-11-15 15:46:36 -080079
80<h3>Why are parts of Android developed in private?</h3>
81<p>It typically takes over a year to bring a device to market, but of course
82 device manufacturers want to ship the latest software they can. Developers,
83 meanwhile, don't want to have to constantly track new versions of the
84 platform when writing apps. Both groups experience a tension between
85 shipping products, and not wanting to fall behind.</p>
86<p>To address this, some parts of the next version of Android including the
87 core platform APIs are developed in a private branch. These APIs constitute
88 the next version of Android. Our aim is to focus attention on the current
Dan Morrill53c64082010-05-17 13:02:19 -070089 stable version of the Android source code, while we create the next version
90 of the platform as driven by flagship Android devices. This allows developers
Dan Morrill55de6812009-11-15 15:46:36 -080091 and OEMs to focus on a single version without having to track unfinished
Dan Morrill53c64082010-05-17 13:02:19 -070092 future work just to keep up. Other parts of the Android system that aren't
Dan Morrill55de6812009-11-15 15:46:36 -080093 related to application compatibility are developed in the open, however.
94 It's our intention to move more of these parts to open development over
95 time.</p>
96
97<h3>When are source code releases made?</h3>
Dan Morrill53c64082010-05-17 13:02:19 -070098<p>When they are ready. Some parts of Android are developed in the open,
Dan Morrill55de6812009-11-15 15:46:36 -080099 so that source code is always available. Other parts are developed first in
100 a private tree, and that source code is released when the next platform
101 version is ready.</p>
102<p>In some releases, core platform APIs will be ready far enough in advance
103 that we can push the source code out for an early look in advance of the
104 device's release; however in others, this isn't possible. In all cases, we
105 release the platform source when we feel the version has stabilized enough,
106 and when the development process permits. Releasing the source code is a
107 fairly complex process.</p>
108
109<h3>What is involved in releasing the source code for a new Android version?</h3>
110<p>Releasing the source code for a new version of the Android platform is a
111 significant process. First, the software gets built into a system image for
112 a device, and put through various forms of certification, including
113 government regulatory certification for the regions the phones will be
114 deployed. It also goes through operator testing. This is an important phase
115 of the process, since it helps shake out a lot of software bugs.</p>
116<p>Once the release is approved by the regulators and operators, the
117 manufacturer begins mass producing devices, and we turn to releasing the
118 source code.</p>
119<p>Simultaneous to mass production the Google team kicks off several efforts
120 to prepare the open source release. These efforts include final API changes
121 and documentation (to reflect any changes that were made during
122 qualification testing, for example), preparing an SDK for the new version,
123 and launching the platform compatibility information.</p>
124<p>Also included is a final legal sign-off to release the code into open
125 source. Just as open source contributors are required to sign a Contributors
126 License Agreement attesting to their IP ownership of their contribution,
127 Google too must verify that it is clear to make contributions.</p>
128<p>Starting at the time mass production begins, the software release process
129 usually takes around a month, which often roughly places source code
130 releases around the same time that the devices reach users.</p>
131
132<h3>How does the AOSP relate to the Android Compatibility Program?</h3>
133<p>The Android Open-Source Project maintains the Android software, and
134 develops new versions. Since it's open-source, this software can be used for
135 any purpose, including to ship devices that are not compatible with other
136 devices based on the same source.</p>
137<p>The function of the Android Compatibility Program is to define a baseline
138 implementation of Android that is compatible with third-party apps written
139 by developers. Devices that are "Android compatible" may participate in the
140 Android ecosystem, including Android Market; devices that don't meet the
141 compatibility requirements exist outside that ecosystem.</p>
142<p>In other words, the Android Compatibility Program is how we separate
143 "Android compatible devices" from devices that merely run derivatives of the
144 source code. We welcome all uses of the Android source code, but only
145 Android compatible devices -- as defined and tested by the Android
Dan Morrill98620ee2010-04-13 14:48:25 -0700146 Compatibility Program -- may participate in the Android ecosystem.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800147
148<h3>How can I contribute to Android?</h3>
149<p>There are a number of ways you can contribute to Android. You can report
150 bugs, write apps for Android, or contribute source code to the Android
151 Open-Source Project.</p>
152<p>There are some limits on the kinds of code contributions we are willing or
153 able to accept. For instance, someone might want to contribute an
154 alternative application API, such as a full C++-based environment. We would
155 decline that contribution, since Android is focused on applications that run
156 in the Dalvik VM. Alternatively, we won't accept contributions such as GPL
157 or LGPL libraries that are incompatible with our licensing goals.</p>
158<p>We encourage those interested in contributing source code to contact us via
159 the AOSP Community page prior to beginning any work. You can find more
160 information on this topic at the Getting Involved page.</p>
161
162<h3>How do I become an Android committer?</h3>
163<p>The Android Open Source Project doesn't really have a notion of a
164 "committer". All contributions -- including those authored by Google
165 employees -- go through a web-based system known as "gerrit" that's part of
166 the Android engineering process. This system works in tandem with the git
167 source code management system to cleanly manage source code
168 contributions.</p>
169<p>Once submitted, changes need to be accepted by a designated Approver.
170 Approvers are typically Google employees, but the same approvers are
171 responsible for all submissions, regardless of origin.</p>
Dan Morrill98620ee2010-04-13 14:48:25 -0700172<p>You can find more information on this topic at the <a
173 href="{@docRoot}source/submit-patches.html">Submitting Patches</a>
174 page.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800175
176<a name="compatibility"></a><h2>Compatibility</h2>
177<h3>What does "compatibility" mean?</h3>
178<p>We define an "Android compatible" device as one that can run any
179 application written by third-party developers using the Android SDK and NDK.
180 We use this as a filter to separate devices that can participate in the
181 Android app ecosystem, and those that cannot. Devices that are properly
182 compatible can seek approval to use the Android trademark. Devices that are
183 not compatible are merely derived from the Android source code and may not
184 use the Android trademark.</p>
185<p>In other words, compatibility is a prerequisite to participate in the
186 Android apps ecosystem. Anyone is welcome to use the Android source code,
187 but if the device isn't compatible, it's not considered part of the Android
Dan Morrill98620ee2010-04-13 14:48:25 -0700188 ecosystem.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800189
190<h3>What is the role of Android Market in compatibility?</h3>
191<p>Devices that are Android compatible may seek to license the Android Market
192 client software. This allows them to become part of the Android app
193 ecosystem, by allowing users to download developers' apps from a catalog
194 shared by all compatible devices. This option isn't available to devices
195 that aren't compatible.</p>
196
197<h3>What kinds of devices can be Android compatible?</h3>
198<p>The Android software can be ported to a lot of different kinds of devices,
199 including some on which third-party apps won't run properly. The Android
200 Compatibility Definition Document (CDD) spells out the specific device
201 configurations that will be considered compatible.</p>
202<p>For example, though the Android source code could be ported to run on a
Dan Morrill98620ee2010-04-13 14:48:25 -0700203 phone that doesn't have a camera, the CDD requires that in order to be
204 compatible, all phones must have a camera. This allows developers to rely
205 on a consistent set of capabilities when writing their apps.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800206<p>The CDD will evolve over time to reflect market realities. For instance,
Dan Morrill98620ee2010-04-13 14:48:25 -0700207 the 1.6 CDD only allows cell phones, but the 2.1 CDD allows devices to omit
Dan Morrill55de6812009-11-15 15:46:36 -0800208 telephony hardware, allowing for non-phone devices such as tablet-style
209 music players to be compatible. As we make these changes, we will also
210 augment Android Market to allow developers to retain control over where
211 their apps are available. To continue the telephony example, an app that
212 manages SMS text messages would not be useful on a media player, so Android
213 Market allows the developer to restrict that app exclusively to phone
214 devices.</p>
215
216<h3>If my device is compatible, does it automatically have access to Android Market and branding?</h3>
Dan Morrill77c24132010-05-06 08:54:16 -0700217<p>Android Market is a service operated by Google. Achieving compatibility is
218 a prerequisite for obtaining access to the Android Market software and branding.
219 Device manufacturers should contact Google to obtain access to Android
220 Market.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800221
222<h3>If I am not a manufacturer, how can I get Android Market?</h3>
223<p>Android Market is only licensed to handset manufacturers shipping devices.
224 For questions about specific cases, contact
225 android-partnerships@google.com.</p>
226
227<h3>How can I get access to the Google apps for Android, such as Maps?</h3>
228<p>The Google apps for Android, such as YouTube, Google Maps and Navigation,
Dan Morrill53c64082010-05-17 13:02:19 -0700229 Gmail, and so on are Google properties that are not part of Android, and
230 are licensed separately. Contact android-partnerships@google.com for
231 inquiries related to those apps.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800232
233<h3>Is compatibility mandatory?</h3>
234<p>No. The Android Compatibility Program is optional. Since the Android source
235 code is open, anyone can use it to build any kind of device. However, if a
236 manufacturer wishes to use the Android name with their product, or wants
237 access to Android Market, they must first demonstrate that the device is
238 compatible.</p>
239
240<h3>How much does compatibility certification cost?</h3>
241<p>There is no cost to obtain Android compatibility for a device. The
242 Compatibility Test Suite is open-source and available to anyone to use to
243 test a device.</p>
244
245<h3>How long does compatibility take?</h3>
Dan Morrill53c64082010-05-17 13:02:19 -0700246<p>The process is automated. The Compatibility Test Suite generates a report
Dan Morrill55de6812009-11-15 15:46:36 -0800247 that can be provided to Google to verify compatibility. Eventually we intend
248 to provide self-service tools to upload these reports to a public database.</p>
249
250<h3>Who determines what will be part of the compatibility definition?</h3>
251<p>Since Google is responsible for the overall direction of Android as a
252 platform and product, Google maintains the Compatibility Definition Document
253 for each release. We draft the CDD for a new Android version in consultation
254 with a number of OEMs, who provide input on its contents.</p>
255
256<h3>How long will each Android version be supported for new devices?</h3>
257<p>Since Android's code is open-source, we can't prevent someone from using an
258 old version to launch a device. Instead, Google chooses not to license the
259 Android Market client software for use on versions that are considered
260 obsolete. This allows anyone to continue to ship old versions of Android,
261 but those devices won't use the Android name and will exist outside the
262 Android apps ecosystem, just as if they were non-compatible.</p>
263
264<h3>Can a device have a different user interface and still be compatible?</h3>
265<p>The Android Compatibility Program focuses on whether a device can run
266 third-party applications. The user interface components shipped with a
267 device (such as home screen, dialer, color scheme, and so on) does not
268 generally have much effect on third-party apps. As such, device builders are
269 free to customize the user interface as much as they like. The Compatibility
270 Definition Document does restrict the degree to which OEMs may alter the
Dan Morrill98620ee2010-04-13 14:48:25 -0700271 system user interface for areas that do impact third-party apps.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800272
273<h3>When are compatibility definitions released for new Android versions?</h3>
274<p>Our goal is to release new versions of Android Compatibility Definition
275 Documents (CDDs) once the corresponding Android platform version has
Dan Morrill98620ee2010-04-13 14:48:25 -0700276 converged enough to permit it. While we can't release a final draft of a CDD
277 for an Android software version before the first flagship device ships with
278 that software, final CDDs will always be released after the first device.
279 However, wherever practical we will make draft versions of CDDs available.</p>
Dan Morrill55de6812009-11-15 15:46:36 -0800280
281<h3>How are device manufacturers' compatibility claims validated?</h3>
282<p>There is no validation process for Android device compatibility. However,
283 if the device is to include Android Market, Google will typically validate
284 the device for compatibility before agreeing to license the Market client
285 software.</p>
286
287<h3>What happens if a device that claims compatibility is later found to have compatibility problems?</h3>
288<p>Typically, Google's relationships with Android Market licensees allow us to
289 ask them to release updated system images that fix the problems.</p>
290
291<a name="cts"></a><h2>Compatibility Test Suite</h2>
292<h3>What is the purpose of the CTS?</h3>
293<p>The Compatibility Test Suite is a tool used by device manufacturers to help
294 ensure their devices are compatible, and to report test results for
295 validations. The CTS is intended to be run frequently by OEMs throughout the
296 engineering process to catch compatibility issues early.</p>
297
298<h3>What kinds of things does the CTS test?</h3>
299<p>The CTS currently tests that all of the supported Android strong-typed APIs
300 are present and behave correctly. It also tests other non-API system
301 behaviors such as application lifecycle and performance. We plan to add
302 support in future CTS versions to test "soft" APIs such as Intents as
303 well.</p>
304
305<h3>Will the CTS reports be made public?</h3>
306<p>Yes. While not currently implemented, Google intends to provide web-based
307 self-service tools for OEMs to publish CTS reports so that they can be
308 viewed by anyone. CTS reports can be shared as widely as manufacturers
309 prefer.</p>
310
311<h3>How is the CTS licensed?</h3>
312<p>The CTS is licensed under the same Apache Software License 2.0 that the
313 bulk of Android uses.</p>
314
315<h3>Does the CTS accept contributions?</h3>
316<p>Yes please! The Android Open-Source Project accepts contributions to
317 improve the CTS in the same way as for any other component. In fact,
318 improving the coverage and quality of the CTS test cases is one of the best
319 ways to help out Android.</p>
320
321<h3>Can anyone use the CTS on existing devices?</h3>
322<p>The Compatibility Definition Document requires that compatible devices
323 implement the 'adb' debugging utility. This means that any compatible device
324 -- including ones available at retail -- must be able to run the CTS
325 tests.</p>