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