page.title=Legal Notice
page.type=about
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}studio/index.html">download the free Android SDK</a>.</p>

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

<p>The "Android" name, the <img src="images/android-logo.png" alt="Android"
style="margin:0;padding:0 2px;vertical-align:baseline" /> logo, and
<a href="http://www.google.com/permissions/">other trademarks</a> are property 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/tools/promote/brand.html">Brand Guidelines</a>.</p>

<p>All other trademarks are the property of their respective owners.</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>Android Studio</dt>
    <dd>Android Studio 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 Android API</dt>
    <dd>The Google Maps Android API is a collection of services 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 makes use of this API you must agree to the terms of service and obtain an API Key.
      <p><a
href="https://developers.google.com/maps/documentation/android/start"
>Google Maps Android API Getting Started</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> <!-- end.class.wrap -->

<div class="layout-content-col col-16" style="padding-top:1px">
  <!-- layout div, so auto-gen footer sits correctly; do not remove -->
</div>
