page.title=Legal Notice
fullpage=1
@jd:body

<div class="wrap" style="width:940px;">
  
<h1>Legal Notice</h1>
  
<p>Android is an open platform that's freely available to you as an app developer. You can
immediately download the Android SDK, develop apps, and distribute them to the world without any
registration or fees.</p>

<p>Android is developed by Google Inc. and the <a
href="http://www.openhandsetalliance.com/">Open Handset Alliance</a>. We've made it available to you
as a development platform pursuant to our commitment to openness, freedom, and innovation in
mobile.</p>

<p>To start developing apps for Android, <a
href="{@docRoot}sdk/index.html">download the free Android SDK</a>.</p>



<h2 id="Brands">Android Brands</h2>

<p>The "Android" name and <img src="images/android-logo.png" alt="Android"
style="margin:0;padding:0 2px;vertical-align:baseline" /> logo are trademarks of Google Inc.
You may not use the logo or the logo's custom typeface.</p>

<p>You may use the word "Android" in a product name only as a descriptor, such as "for Android"
and the first instance should be followed by a TM symbol, "for Android&trade;." In other
messaging, the word "Android" may be used in text as a descriptor, as long as it is followed by a
proper generic term (for example, "Android&trade; application"). Any use of the Android name
must include footer attribution in your communications: "Android is a trademark of Google Inc."</p>

<p>The Android Robot logo <img src="images/robot-tiny.png" alt=""
style="margin:0;padding:0;vertical-align:baseline" /> can be used, reproduced, and modified freely
in marketing communications. Our standard color value for print is PMS 376C. Our online hex color is
#A4C639. The Android Robot logo is licensed under the terms of the <a
href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution</a> license and any
use of it must be attributed as such.</p>

<p>For more information about Android brands, see the <a
href="{@docRoot}distribute/googleplay/promote/brand.html">Android Branding Guidelines</a>.</p>



<h2 id="WebSite">Web Site Content</h2>

<p>We are pleased to license the Android documentation and sample code on this web site under terms
that encourage you to take, modify, reuse, re-purpose, and remix the content as you see fit. The
documentation content on this web site is made available to you as part of the <a
href="http://source.android.com">Android Open Source Project</a>. This documentation, including any
code shown in it, is licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
2.0 license</a>. All other content on this site, except the license documents themselves and as
otherwise noted, is licensed under the <a
href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution 2.5</a> license.
</p>

<p>For more information about licenses provided for the content of this web site and the
restrictions for re-use, read the complete <a href="license.html">Content License</a>.</p>

<p>Your use of this site is subject to <a href="http://www.google.com/policies/">Google's Privacy
Policy &amp; Terms of Service</a>.</p>



<h2 id="Other">Other Android Services</h2>

<p>Google provides other optional services for your Android apps that have their own legal terms and
restrictions. Such services include:</p>

<dl>
  <dt>Eclipse Android Developer Tools Plugin</dt>
    <dd>If you're developing apps with the Eclipse IDE, we offer a free plugin called the
<a href="{@docRoot}tools/sdk/eclipse-adt.html">Android Developer Tools</a> (ADT) to speed up your
development and debugging. Certain code within the ADT plugin and other packages available
from the SDK Manager require that you agree to terms and conditions for use, reproduction and
distribution upon installation.</dd>

  <dt>Google Play</dt>
    <dd>Google Play is a publicly available service through which you can distribute your apps for
Android-powered devices. Google Play not only makes your app available to millions of devices, but
also offers your app powerful services such as in-app billing and license verification. In order to
distribute your apps on Google Play and use the associated services, you must agree to the Developer
Distribution Agreement and acquire a valid Developer Account.
      <p><a
href="http://www.android.com/us/developer-distribution-agreement.html">Developer Distribution
Agreement</a>, <a
href="http://www.android.com/us/developer-content-policy.html#showlanguages">Developer Program
Policies</a></p></dd>

  <dt>Google Maps API</dt>
    <dd>The Android Maps APIs are a collection of services (including, but not limited to, the
MapView and MapActivity classes) that allow you to include
maps, geocoding, geolocation, and other content from Google and its content providers in your
Android
apps. If you want to develop an Android app that displays Google Maps data, you must agree
to the terms of service, register, and get an API Key. Registration is free.    
      <p><a
href="https://developers.google.com/maps/documentation/android/maps-api-signup"
>Google Maps Android API Key Signup</a>, <a href="http://m.google.com/legalnotices">Mobile Legal
Notices</a></p>
    </dd>

  <dt>Android Cloud to Device Messaging</dt>
    <dd>Android Cloud to Device Messaging (C2DM) is a service that helps you send data from
your servers to your users' Android devices. The service provides a simple, lightweight
mechanism that your servers can use to tell your Android app to contact your server directly to
fetch updated app or user data. Before you can sign up for Android Cloud to Device Messaging, you
must agree to the terms of a legal agreement between you and Google. Registration is free.
    <p><a href="https://developers.google.com/android/c2dm/terms">Android Cloud to Device
Messaging Terms of Service</a></p>
    </dd>
    
  <dt>Android Backup Service</dt>
    <dd>Android Backup Service is integrated with Android's data backup framework to perform data
backup and restore for most devices running Android 2.2 or greater, using Google servers and a
backup transport on the device. Before you can sign up for Android Backup Service, you
must agree to the terms of a legal agreement between you and Google. Registration is free.
    <p><a href="https://developers.google.com/android/backup/terms">Android Backup Service
Terms of Service</a></p>
    </dd>
</dl>

<p>Any and all other services available for Android but not documented on <a
href="http://developer.android.com">developer.android.com</a> are subject to their own terms, as
documented on their respective web sites. </p>

</div>