Merge "docs:builds tools 21.1.1 update" into lmp-docs
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 251652e..22a3613 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -6352,7 +6352,7 @@
         <!-- The summary for the Preference in a PreferenceActivity screen. -->
         <attr name="summary" />
         <!-- The order for the Preference (lower values are to be ordered first). If this is not
-             specified, the default orderin will be alphabetic. -->
+             specified, the default ordering will be alphabetic. -->
         <attr name="order" format="integer" />
         <!-- When used inside of a modern PreferenceActivity, this declares
              a new PreferenceFragment to be shown when the user selects this item. -->
diff --git a/docs/html/about/about_toc.cs b/docs/html/about/about_toc.cs
index c025b61..9033d69 100644
--- a/docs/html/about/about_toc.cs
+++ b/docs/html/about/about_toc.cs
@@ -11,6 +11,7 @@
       <span class="en">Lollipop</span></a></div>
       <ul>
         <li><a href="<?cs var:toroot ?>about/versions/android-5.0.html">Android 5.0 APIs</a></li>
+        <li><a href="<?cs var:toroot ?>about/versions/android-5.0-changes.html">Android 5.0 Changes</a></li>
       </ul>
   </li>
   <li class="nav-section">
diff --git a/docs/html/about/versions/android-5.0-changes.jd b/docs/html/about/versions/android-5.0-changes.jd
new file mode 100644
index 0000000..f12e83c
--- /dev/null
+++ b/docs/html/about/versions/android-5.0-changes.jd
@@ -0,0 +1,525 @@
+page.title=Android 5.0 Changes
+excludeFromSuggestions=true
+sdk.platform.version=5.0
+sdk.platform.apiLevel=21
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>In this document</h2>
+
+<ol id="toc44" class="hide-nested">
+  <li><a href="#UI"><a href="#ART">ART Runtime</a></a></li>
+  <li><a href="#BehaviorNotifications">Notifications</a></li>
+  <li><a href="#BehaviorMediaControl">Media Controls</a></li>
+  <li><a href="#BehaviorGetRecentTasks">getRecentTasks()</a></li>
+  <li><a href="#64BitSupport">64-Bit Android NDK</a></li>
+  <li><a href="#BindService">Binding to a Service</a></li>
+  <li><a href="#Power"><a href="#BehaviorWebView">WebView</a></a></li>
+  <li><a href="#custom_permissions">Custom Permissions</a></li>
+  <li><a href="#ssl">TLS/SSL Configuration</a></li>
+</ol>
+
+<h2>API Differences</h2>
+<ol>
+<li><a href="{@docRoot}sdk/api_diff/21/changes.html">API level 20 to 21 &raquo;</a> </li>
+<li><a href="{@docRoot}sdk/api_diff/preview-21/changes.html">L Developer Preview to 21 &raquo;</a> </li>
+</ol>
+
+
+<h2>See Also</h2>
+<ol>
+<li><a href="{@docRoot}about/versions/lollipop.html">Android Lollipop Highlights</a> </li>
+<li><a href="{@docRoot}about/versions/android-5.0.html">Android 5.0 API Overview</a> </li>
+</ol>
+
+
+</div>
+</div>
+
+<p>API Level: {@sdkPlatformApiLevel}</p>
+<p>Along with new features and capabilities, Android 5.0 includes a variety of changes
+API changes,
+behavior changes, system enhancements, and bug fixes. This document highlights
+some of the key changes that you should be understand and account for in your apps.</p>
+
+<p>If you have previously published an app for Android, be aware that your app
+  might be affected by these changes in Android 5.0.</p>
+
+
+<p>For a high-level look at the new platform features, instead
+see the
+<a href="{@docRoot}about/versions/lollipop.html">Android Lollipop
+highlights</a>.</p>
+
+
+
+<h2 id="ART">Android Runtime (ART)</h2>
+
+<p>In Android 5.0 the ART runtime replaces Dalvik as the platform default. The ART runtime was
+introduced in Android 4.4 on an experimental basis.</p>
+
+<p>For an overview of ART's new features, see
+<a href="https://source.android.com/devices/tech/dalvik/art.html">Introducing
+ART</a>. Some of the major new features are:</p>
+
+<ul>
+  <li>Ahead-of-time (AOT) compilation</li>
+  <li>Improved garbage collection (GC)</li>
+  <li>Improved debugging support</li>
+</ul>
+
+<p>Most Android apps should just work without any changes under ART. However, some
+techniques that work on Dalvik do not work on ART. For information about the
+most important issues, see
+<a href="{@docRoot}guide/practices/verifying-apps-art.html">Verifying App
+Behavior on the Android Runtime (ART)</a>. Pay particular attention if:</p>
+
+<ul>
+  <li>Your app uses Java Native Interface (JNI) to run C/C++ code.</li>
+  <li>You use development tools that generate non-standard code (such as some
+      obfuscators).</li>
+  <li>You use techniques that are incompatible with compacting garbage
+      collection.</li>
+</ul>
+
+
+<h2 id="BehaviorNotifications">Notifications</h2>
+
+<p>Make sure your notifications take these Android 5.0 changes into account.
+ To learn more about designing your notifications for Android 5.0 and higher,
+ see the <a href="{@docRoot}design/patterns/notifications.html">notifications design guide</a>.
+</p>
+
+<h3 id="NotificationsMaterialDesignStyle">Material design style</h3>
+<p>Notifications are drawn with dark text atop white (or very light) backgrounds
+  to match the new material design widgets. Make sure that all your
+  notifications look right with the new color scheme. If your notifications
+look wrong, fix them:</p>
+
+<ul>
+  <li>Use {@link android.app.Notification.Builder#setColor(int) setColor()}
+    to set an accent color in a circle behind your icon image. </li>
+  <li>Update or remove assets that involve color. The system ignores all
+    non-alpha channels in action icons and in the main notification icon. You
+    should assume that these icons will be alpha-only. The system draws
+    notification icons in white and action icons in dark gray.</li>
+</ul>
+
+<h3 id="NotificationsSoundVibration">Sound and vibration</h3>
+<p>If you are currently adding sounds and vibrations to your notifications by
+using the {@link android.media.Ringtone}, {@link android.media.MediaPlayer},
+or {@link android.os.Vibrator} classes, remove this code so that
+the system can present notifications correctly in
+<em>priority</em> mode. Instead, use
+{@link android.app.Notification.Builder} methods to add sounds and
+vibration.</p>
+
+<p>Setting the device to
+{@link android.media.AudioManager#RINGER_MODE_SILENT RINGER_MODE_SILENT} causes
+the device to enter the new priority mode. The device leaves priority
+mode if you set it to
+{@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_NORMAL} or
+{@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_VIBRATE}.</p>
+
+<p>Previously, Android used {@link android.media.AudioManager#STREAM_MUSIC STREAM_MUSIC}
+as the master stream to control volume on tablet devices. In Android 5.0, the
+master volume stream for both phone and tablet devices is now unified, and
+is controlled by {@link android.media.AudioManager#STREAM_RING STREAM_RING} or
+{@link android.media.AudioManager#STREAM_NOTIFICATION STREAM_NOTIFICATION}.</p>
+
+<h3 id="NotificationsLockscreenVisibility">Lock screen visibility</h3>
+<p>By default, notifications now appear on the user's lock screen in Android 5.0.
+Users can choose to protect sensitive information from being exposed, in which
+case the system automatically redacts the text displayed by the notification. To
+customize this redacted notification, use
+{@link android.app.Notification.Builder#setPublicVersion(android.app.Notification)
+  setPublicVersion()}.</p>
+<p>If the notification does not contain personal information, or if you want to
+allow media playback control on the notification, call the
+{@link android.app.Notification.Builder#setVisibility(int) setVisibility()}
+method and set the notification's visibility level to
+{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}.
+</p>
+
+<h3 id="NotificationsMediaPlayback">Media playback</h3>
+<p>If you are implementing notifications that present media playback
+status or transport controls, consider using the new
+{@link android.app.Notification.MediaStyle} template instead of a custom
+{@link android.widget.RemoteViews.RemoteView} object. Whichever approach you
+choose, make sure to set the notification's visibility to
+{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} so that
+your controls are accessible from the lock screen. Note that beginning in
+Android 5.0, the system no longer shows
+{@link android.media.RemoteControlClient} objects on the lock screen. For more
+information, see
+<a href="#BehaviorMediaControl">If your app uses RemoteControlClient</a>.</p>
+
+<h3 id="NotificationsHeadsup">Heads-up notification</h3>
+<p>Notifications may now appear in a small floating window (also called a
+  heads-up notification) when the device is active (that is, the device is
+  unlocked and its screen is on). These notifications appear similar to the
+  compact form of your notification, except that the heads-up notification also
+  shows action buttons. Users can act on, or dismiss, a heads-up notification
+  without leaving the current app.</p>
+
+<p>Examples of conditions that may trigger heads-up notifications include:</p>
+
+<ul>
+  <li>The user's activity is in fullscreen mode (the app uses
+{@link android.app.Notification#fullScreenIntent})</li>
+  <li>The notification has high priority and uses ringtones or vibrations</li>
+</ul>
+
+<p>If your app implements notifications under any of those scenarios, make sure
+that heads-up notifications are presented correctly.</p>
+
+<h2 id="BehaviorMediaControl">Media Controls and RemoteControlClient</h2>
+<p>The {@link android.media.RemoteControlClient} class is now deprecated. Switch
+  to the new {@link android.media.session.MediaSession} API as
+  soon as possible.</p>
+
+<p>Lock screens in Android 5.0 do not show transport controls for
+your {@link android.media.session.MediaSession} or
+{@link android.media.RemoteControlClient}. Instead, your app can provide
+media playback control from the lock screen through a notification. This
+gives your app more control over the presentation of media buttons, while
+providing a consistent experience for users across locked and
+unlocked devices.</p>
+
+<p>Android 5.0 introduces a new
+{@link android.app.Notification.MediaStyle} template for this purpose.
+{@link android.app.Notification.MediaStyle} converts notification
+actions that you added with
+{@link android.app.Notification.Builder#addAction(int, java.lang.CharSequence,
+  android.app.PendingIntent)
+Notification.Builder.addAction()} into compact buttons embedded in your app's
+media playback notifications. Pass your session token to the
+{@link android.app.Notification.MediaStyle#setMediaSession(android.media.session.MediaSession.Token)
+  setSession()} method to inform the system that this notification controls an
+  ongoing media session.</p>
+
+<p>Make sure to set the notification's visibility to
+  {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}
+  to mark the notification as safe to show on any lock screen (secure or
+  otherwise). For more information, see
+  <a href="#LockscreenNotifications">Lock screen notifications</a>.</p>
+
+<p>To display media playback controls if your app is running on the
+Android <a href="{@docRoot}tv/index.html">TV</a> or
+<a href="{@docRoot}wear/index.html">Wear</a> platform, implement the
+{@link android.media.session.MediaSession} class. You should also implement
+{@link android.media.session.MediaSession} if your app needs to receive media
+button events on Android devices.</p>
+
+<h2 id="BehaviorGetRecentTasks">getRecentTasks()</h2>
+
+<p>With the introduction of the new <em>concurrent documents and activities
+tasks</em> feature in Android 5.0 (see <a href="#Recents">Concurrent
+documents and activities in the recents screen</a> below),
+the {@link android.app.ActivityManager#getRecentTasks
+ActivityManager.getRecentTasks()} method is now deprecated to improve user
+privacy. For backward compatibility, this method still returns a small subset of
+its data, including the calling application’s own tasks and possibly some other
+non-sensitive tasks (such as Home). If your app is using this method to retrieve
+its own tasks, use {@link android.app.ActivityManager#getAppTasks() getAppTasks()}
+instead to retrieve that information.</p>
+
+<h2 id="64BitSupport">64-Bit Support in the Android NDK</h2>
+
+<p>Android 5.0 introduces support for 64-bit systems. The 64-bit enhancement
+  increases address space and improves performance, while still supporting
+  existing 32-bit apps fully. The 64-bit support also improves the performance of
+  OpenSSL for cryptography. In addition, this release introduces new native
+  media NDK APIs, as well as native OpenGL ES (GLES) 3.1 support.</p>
+
+<p>To use the 64-bit support provided in Android 5.0, download and install NDK
+  Revision 10c from the
+<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK page</a>. Refer to the
+Revision 10c <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions">release notes</a>
+for more information about important changes and bug fixes to the NDK.</p>
+
+<h2 id="BindService">Binding to a Service</h2>
+
+<p>The
+  {@link android.content.Context#bindService(android.content.Intent, android.content.ServiceConnection, int) Context.bindService()}
+  method now requires an explicit {@link android.content.Intent},
+and throws an exception if given an implicit intent.
+To ensure your app is secure, use an explicit intent when starting or binding
+your {@link android.app.Service}, and do not declare intent filters for the service.</p>
+
+<h2 id="BehaviorWebView">WebView</h2>
+
+<p>Android 5.0 changes the default behavior for your app.</p>
+<ul>
+<li><strong>If your app targets API level 21 or higher:</strong>
+  <ul>
+    <li>The system
+  blocks <a href="https://developer.mozilla.org/en-US/docs/Security/MixedContent"
+  class="external-link">mixed content</a> and third party cookies by default. To allow mixed
+  content and third party cookies, use the
+  {@link android.webkit.WebSettings#setMixedContentMode(int) setMixedContentMode()}
+and {@link android.webkit.CookieManager#setAcceptThirdPartyCookies(android.webkit.WebView, boolean) setAcceptThirdPartyCookies()}
+methods respectively.</li>
+    <li>The system now intelligently chooses portions of the HTML
+      document to draw. This new default behavior helps to reduce memory
+      footprint and increase performance. If you want to
+      render the whole document at once, disable this optimization by calling
+      {@link android.webkit.WebView#enableSlowWholeDocumentDraw()}.</li>
+  </ul>
+</li>
+<li><strong>If your app targets API levels lower than 21:</strong> The system
+  allows mixed content and third party cookies, and always renders the whole
+  document at once.</li>
+</ul>
+
+<h2 id="custom_permissions">Uniqueness Requirement for Custom Permissions</h2>
+
+<p>
+  As documented in the <a href=
+  "{@docRoot}guide/topics/manifest/manifest-intro.html#perms">Permissions</a>
+  overview, Android apps can define custom permissions as a means of managing
+  access to components in a proprietary way, without using the platform’s
+  pre-defined system permissions. Apps define custom permissions in <a href=
+  "http://developer.android.com/guide/topics/manifest/permission-element.html"><code>
+  &lt;permission&gt;</code></a> elements declared in their manifest files.
+</p>
+
+<p>
+  There are a small number of scenarios where defining custom permissions is a
+  legitimate and secure approach. However, creating custom permissions is
+  sometimes unnecessary and can even introduce potential risk to an app,
+  depending on the protection level assigned to the permissions.
+</p>
+
+<p>
+  Android 5.0 includes a behavior change to ensure
+  that only one app can define a given custom permission, unless signed with the 
+  same key as other apps defining the permission. 
+</p>
+
+<h3>
+  Apps using duplicate custom permissions
+</h3>
+
+<p>
+  Any app can define any custom permission it wants, so it can happen
+  that multiple apps might <strong>define the same custom permission</strong>.
+  For example, if two apps offer a similar capability, they might derive the
+  same logical name for their custom permissions. Apps might also incorporate
+  common public libraries or code examples that themselves include the same
+  custom permission definitions.
+</p>
+
+<p>
+  In Android 4.4 and earlier, users were able to install multiple such
+  apps on a given device, although the system assigned the protection level
+  specified by the first-installed app. 
+</p>
+
+<p>
+  Starting in Android 5.0, the system enforces a new
+  <strong>uniqueness restriction on custom permissions</strong> for
+  apps that are signed with different keys. Now only one app on a device can
+  define a given custom permission (as determined by its name), unless the
+  other app defining the permission is signed with the same key. If the user
+  tries to install an app with a duplicate custom permission and is not signed
+  with the same key as the resident app that defines the permission, the system
+  blocks the installation.
+</p>
+
+<h3>
+  Considerations for your app
+</h3>
+
+<p>
+  In Android 5.0 and later, apps can continue to define their own custom
+  permissions just as before and to request custom permissions from other apps
+  through the <code>&lt;uses-permission&gt;</code> mechanism. However with the
+  new requirement introduced in Android 5.0, you should carefully assess
+  possible impacts on your app.
+</p>
+
+<p>
+  Here are some points to consider:
+</p>
+
+<ul>
+  <li>Does your app declare any <a href=
+  "http://developer.android.com/guide/topics/manifest/permission-element.html">
+    <code>&lt;permission&gt;</code></a> elements in its manifest? If so, are
+    they actually necessary to the proper function of your app or service? Or
+    could you use a system default permission instead?
+  </li>
+
+  <li>If you have <a href=
+  "http://developer.android.com/guide/topics/manifest/permission-element.html">
+    <code>&lt;permission&gt;</code></a> elements in your app, do you know where
+    they came from?
+  </li>
+
+  <li>Do you actually intend for other apps to request your custom permissions
+  through <a href=
+  "http://developer.android.com/guide/topics/manifest/uses-permission-element.html">
+    <code>&lt;uses-permission&gt;</code></a>?
+  </li>
+
+  <li>Are you using boilerplate or example code in your app that includes
+  <a href=
+  "http://developer.android.com/guide/topics/manifest/permission-element.html">
+    <code>&lt;permission&gt;</code></a> elements? Are those permission elements
+    actually necessary?
+  </li>
+
+  <li>Do your custom permissions use names that are simple or based on common
+  terms that other apps might share?
+  </li>
+</ul>
+
+<h3>
+  New installs and updates
+</h3>
+
+<p>
+  As mentioned above, for new installs and updates of your app on devices
+  running Android 4.4 or earlier are unaffected and there is no change in
+  behavior. For new installs and updates on devices running Android 5.0 or
+  later, the system <strong>prevents installation of your app</strong> if it
+  defines a custom permission that is already defined by an existing resident
+  app.
+</p>
+
+<h3>
+  Existing installs with Android 5.0 system update
+</h3>
+
+<p>
+  If your app uses custom permissions and is widely distributed and installed,
+  there’s a chance that it will be affected when users receive update their
+  devices to Android 5.0. After the system update is installed, the system
+  revalidates installed apps, including a check of their custom permissions. If
+  your app defines a custom permission that is already defined by another app
+  that has already been validated, and your app is not signed with the same key
+  as the other app, the system <strong>does not re-install your app</strong>.
+</p>
+
+<h3>
+  Recommendations
+</h3>
+
+<p>
+  On devices running Android 5.0 or later, we recommend that you examine your
+  app immediately, make any adjustments needed, and publish the updated version
+  as soon as possible to your users.
+</p>
+
+<ul>
+  <li>If you are using custom permissions in your app, consider their origin
+  and whether you actually need them. Remove all <a href=
+  "http://developer.android.com/guide/topics/manifest/permission-element.html">
+    <code>&lt;permission&gt;</code></a> elements from your app, unless you are
+    certain that they are required for proper function of your app.
+  </li>
+
+  <li>Consider replacing your custom permissions with system default
+  permissions where possible.
+  </li>
+
+  <li>If your app requires custom permissions, rename your custom permissions
+  to be unique to your app, such as by appending them to the full package name
+  of your app.
+  </li>
+
+  <li>If you have a suite of apps <em>signed with different keys</em> and the apps
+  access a shared component by means of a custom permission, make sure that the
+  custom permission is only defined once, in the shared component. Apps that
+  use the shared component should not define the custom permission themselves,
+  but should instead request access through the <a href=
+  "{@docRoot}guide/topics/manifest/uses-permission-element.html">
+    <code>&lt;uses-permission&gt;</code></a> mechanism.
+  </li>
+
+  <li>If you have a suite of apps are <em>signed with the same key</em>,
+  each app can define the same custom permission(s) as <span style="white-space:nowrap;">needed
+  &mdash; the</span> system allows the apps to be installed in the usual way.
+  </li>
+
+</ul>
+
+
+<h2 id="ssl">
+  TLS/SSL Default Configuration Changes
+</h2>
+
+<p>
+  Android 5.0 introduces changes the default TLS/SSL configuration used by apps
+  for HTTPS and other TLS/SSL traffic:
+</p>
+
+<ul>
+  <li>TLSv1.2 and TLSv1.1 protocols are now enabled,</li>
+  <li>AES-GCM (AEAD) cipher suites are now enabled,</li>
+  <li>MD5, 3DES, export, and static key ECDH cipher suites are now disabled,</li>
+  <li>Forward Secrecy cipher suites (ECDHE and DHE) are preferred.</li>
+</ul>
+
+<p>
+  These changes may lead to breakages in HTTPS or TLS/SSL connectivity in a
+  small number of cases listed below.
+</p>
+
+<p>
+  Note that the security ProviderInstaller from Google Play services already
+  offers these changes across Android platform versions back to Android 2.3.
+</p>
+
+<h3>
+  Server does not support any of the enabled ciphers suites
+</h3>
+
+<p>
+  For example, a server might support only 3DES or MD5 cipher suites. The
+  preferred fix is to improve the server’s configuration to enable stronger and
+  more modern cipher suites and protocols. Ideally, TLSv1.2 and AES-GCM should
+  be enabled, and Forward Secrecy cipher suites (ECDHE, DHE) should be enabled
+  and preferred.
+</p>
+
+<p>
+  An alternative is to modify the app to use a custom SSLSocketFactory to
+  communicate with the server. The factory should be designed to create
+  SSLSocket instances which have some of the cipher suites required by the
+  server enabled in addition to default cipher suites.
+</p>
+
+<h3>
+  App is making wrong assumptions about cipher suites used to connect to server
+</h3>
+
+<p>
+  For example, some apps contain a custom X509TrustManager that breaks because
+  it expects the authType parameter to be RSA but encounters ECDHE_RSA or
+  DHE_RSA.
+</p>
+
+<h3>
+  Server is intolerant to TLSv1.1, TLSv1.2 or new TLS extensions
+</h3>
+
+<p>
+  For example, the TLS/SSL handshake with a server is erroneously rejected or
+  stalls. The preferred fix is to upgrade the server to comply with the TLS/SSL
+  protocol. This will make the server successfully negotiate these newer
+  protocols or negotiate TLSv1 or older protocols and ignore TLS extensions it
+  does not understand. In some cases disabling TLSv1.1 and TLSv1.2 on the
+  server may work as a stopgap measure until the server software is upgraded.
+</p>
+
+<p>
+  An alternative is to modify the app to use a custom SSLSocketFactory to
+  communicate with the server. The factory should be designed to create
+  SSLSocket instances with only those protocols enabled which are correctly
+  supported by the server.
+</p>
\ No newline at end of file
diff --git a/docs/html/about/versions/android-5.0.jd b/docs/html/about/versions/android-5.0.jd
index a438420..756b75f 100644
--- a/docs/html/about/versions/android-5.0.jd
+++ b/docs/html/about/versions/android-5.0.jd
@@ -15,17 +15,10 @@
 
 <ol id="toc44" class="hide-nested">
   <li><a href="#ApiLevel">Update your target API level</a></li>
-  <li><a href="#Behaviors">Important Behavior Changes</a>
-    <ol>
-      <li><a href="#ART">If you haven't tested your app against the new Android Runtime (ART)...</a></li>
-      <li><a href="#BehaviorNotifications">If your app implements notifications...</a></li>
-      <li><a href="#BehaviorMediaControl">If your app uses RemoteControlClient...</a></li>
-<li><a href="#BehaviorGetRecentTasks">If your app uses getRecentTasks()...</a></li>
-<li><a href="#64BitSupport">If you are using the Android Native Development Kit (NDK)...</a></li>
-<li><a href="#BindService">If your app binds to a Service...</a></li>
-<li><a href="#BehaviorWebView">If your app uses a WebView...</a></li>
-    </ol>
-  </li>
+
+
+
+
   <li><a href="#UI">User Interface</a>
     <ol>
       <li><a href="#MaterialDesign">Material design support</a></li>
@@ -113,6 +106,13 @@
 <li><a href="{@docRoot}sdk/api_diff/preview-21/changes.html">L Developer Preview to 21 &raquo;</a> </li>
 </ol>
 
+<h2>See Also</h2>
+<ol>
+<li><a href="{@docRoot}about/versions/android-5.0-changes.html">Android 5.0 Behavior Changes</a> </li>
+<li><a href="{@docRoot}about/versions/lollipop.html">Android Lollipop Highlights</a> </li>
+</ol>
+
+
 </div>
 </div>
 
@@ -122,12 +122,19 @@
   offers new features for users and app developers. This document provides an
   introduction to the most notable new APIs.</p>
 
+<p>
+  If you have a published app, make sure to check out the <a href=
+  "{@docRoot}about/versions/android-5.0-changes.html">Android 5.0 Behavior
+  Changes</a> that you should account for in your app. These behavior changes
+  may affect your app on Android 5.0 devices, even if you are not using new APIs
+  or targeting new functionality.
+</p>
+
 <p>For a high-level look at the new platform features, instead
 see the
 <a href="{@docRoot}about/versions/lollipop.html">Android Lollipop
 highlights</a>.</p>
 
-
 <h3 id="Start">Start developing</h3>
 
 <p>To start building apps for Android 5.0, you must first <a href="{@docRoot}sdk/index.html">get
@@ -143,8 +150,6 @@
 ">To test your apps on a real device, flash a Nexus 5 or Nexus 7 with the <br>
 <a href="/preview/index.html#Start"><b>ANDROID PREVIEW SYSTEM IMAGE</b></a>.</p>
 
-
-
 <h3 id="ApiLevel">Update your target API level</h3>
 
 <p>To better optimize your app for devices running Android {@sdkPlatformVersion},
@@ -166,237 +171,18 @@
 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">What is API
 Level?</a></p>
 
-<h2 id="Behaviors">Important Behavior Changes</h2>
+<h3 id="Behaviors">Important behavior changes</h3>
 
-<p>If you have previously published an app for Android, be aware that your app
-  might be affected by changes in Android 5.0.</p>
+<p>If you have previously published an app for Android, be aware that your app might be affected by changes in Android 5.0.</p>
 
-<h3 id="ART">If you haven't tested your app against the new Android Runtime (ART)...</h3>
+<p>Please see <a href="{@docRoot}about/versions/android-5.0-changes.html">Android 5.0 Changes</a> for complete information.</p>
 
-<p>The 4.4 release introduced a new, experimental Android runtime, ART. Under
-4.4, ART was optional, and the default runtime remained Dalvik. With Android
-5.0, ART is now the default runtime.</p>
-
-<p>For an overview of ART's new features, see
-<a href="https://source.android.com/devices/tech/dalvik/art.html">Introducing
-ART</a>. Some of the major new features are:</p>
-
-<ul>
-  <li>Ahead-of-time (AOT) compilation</li>
-  <li>Improved garbage collection (GC)</li>
-  <li>Improved debugging support</li>
-</ul>
-
-<p>Most Android apps should just work without any changes under ART. However, some
-techniques that work on Dalvik do not work on ART. For information about the
-most important issues, see
-<a href="{@docRoot}guide/practices/verifying-apps-art.html">Verifying App
-Behavior on the Android Runtime (ART)</a>. Pay particular attention if:</p>
-
-<ul>
-  <li>Your app uses Java Native Interface (JNI) to run C/C++ code.</li>
-  <li>You use development tools that generate non-standard code (such as some
-      obfuscators).</li>
-  <li>You use techniques that are incompatible with compacting garbage
-      collection. (ART does not currently implement compacting GC, but
-      compacting GC is under development in the Android Open Source
-      Project.)</li>
-</ul>
-
-<h3 id="BehaviorNotifications">If your app implements notifications...</h3>
-
-<p>Make sure your notifications take these Android 5.0 changes into account.
- To learn more about designing your notifications for Android 5.0 and higher,
- see the <a href="{@docRoot}design/patterns/notifications.html">notifications design guide</a>.
-</p>
-
-<h4 id="NotificationsMaterialDesignStyle">Material design style</h4>
-<p>Notifications are drawn with dark text atop white (or very light) backgrounds
-  to match the new material design widgets. Make sure that all your
-  notifications look right with the new color scheme. If your notifications
-look wrong, fix them:</p>
-
-<ul>
-  <li>Use {@link android.app.Notification.Builder#setColor(int) setColor()}
-    to set an accent color in a circle behind your icon image. </li>
-  <li>Update or remove assets that involve color. The system ignores all
-    non-alpha channels in action icons and in the main notification icon. You
-    should assume that these icons will be alpha-only. The system draws
-    notification icons in white and action icons in dark gray.</li>
-</ul>
-
-<h4 id="NotificationsSoundVibration">Sound and vibration</h4>
-<p>If you are currently adding sounds and vibrations to your notifications by
-using the {@link android.media.Ringtone}, {@link android.media.MediaPlayer},
-or {@link android.os.Vibrator} classes, remove this code so that
-the system can present notifications correctly in
-<em>priority</em> mode. Instead, use
-{@link android.app.Notification.Builder} methods to add sounds and
-vibration.</p>
-
-<p>Setting the device to
-{@link android.media.AudioManager#RINGER_MODE_SILENT RINGER_MODE_SILENT} causes
-the device to enter the new priority mode. The device leaves priority
-mode if you set it to
-{@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_NORMAL} or
-{@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_VIBRATE}.</p>
-
-<p>Previously, Android used {@link android.media.AudioManager#STREAM_MUSIC STREAM_MUSIC}
-as the master stream to control volume on tablet devices. In Android 5.0, the
-master volume stream for both phone and tablet devices is now unified, and
-is controlled by {@link android.media.AudioManager#STREAM_RING STREAM_RING} or
-{@link android.media.AudioManager#STREAM_NOTIFICATION STREAM_NOTIFICATION}.</p>
-
-<h4 id="NotificationsLockscreenVisibility">Lock screen visibility</h4>
-<p>By default, notifications now appear on the user's lock screen in Android 5.0.
-Users can choose to protect sensitive information from being exposed, in which
-case the system automatically redacts the text displayed by the notification. To
-customize this redacted notification, use
-{@link android.app.Notification.Builder#setPublicVersion(android.app.Notification)
-  setPublicVersion()}.</p>
-<p>If the notification does not contain personal information, or if you want to
-allow media playback control on the notification, call the
-{@link android.app.Notification.Builder#setVisibility(int) setVisibility()}
-method and set the notification's visibility level to
-{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}.
-</p>
-
-<h4 id="NotificationsMediaPlayback">Media playback</h4>
-<p>If you are implementing notifications that present media playback
-status or transport controls, consider using the new
-{@link android.app.Notification.MediaStyle} template instead of a custom
-{@link android.widget.RemoteViews.RemoteView} object. Whichever approach you
-choose, make sure to set the notification's visibility to
-{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} so that
-your controls are accessible from the lock screen. Note that beginning in
-Android 5.0, the system no longer shows
-{@link android.media.RemoteControlClient} objects on the lock screen. For more
-information, see
-<a href="#BehaviorMediaControl">If your app uses RemoteControlClient</a>.</p>
-
-<h4 id="NotificationsHeadsup">Heads-up notification</h4>
-<p>Notifications may now appear in a small floating window (also called a
-  heads-up notification) when the device is active (that is, the device is
-  unlocked and its screen is on). These notifications appear similar to the
-  compact form of your notification, except that the heads-up notification also
-  shows action buttons. Users can act on, or dismiss, a heads-up notification
-  without leaving the current app.</p>
-
-<p>Examples of conditions that may trigger heads-up notifications include:</p>
-
-<ul>
-  <li>The user's activity is in fullscreen mode (the app uses
-{@link android.app.Notification#fullScreenIntent})</li>
-  <li>The notification has high priority and uses ringtones or vibrations</li>
-</ul>
-
-<p>If your app implements notifications under any of those scenarios, make sure
-that heads-up notifications are presented correctly.</p>
-
-<h3 id="BehaviorMediaControl">If your app uses RemoteControlClient...</h3>
-<p>The {@link android.media.RemoteControlClient} class is now deprecated. Switch
-  to the new {@link android.media.session.MediaSession} API as
-  soon as possible.</p>
-
-<p>Lock screens in Android 5.0 do not show transport controls for
-your {@link android.media.session.MediaSession} or
-{@link android.media.RemoteControlClient}. Instead, your app can provide
-media playback control from the lock screen through a notification. This
-gives your app more control over the presentation of media buttons, while
-providing a consistent experience for users across locked and
-unlocked devices.</p>
-
-<p>Android 5.0 introduces a new
-{@link android.app.Notification.MediaStyle} template for this purpose.
-{@link android.app.Notification.MediaStyle} converts notification
-actions that you added with
-{@link android.app.Notification.Builder#addAction(int, java.lang.CharSequence,
-  android.app.PendingIntent)
-Notification.Builder.addAction()} into compact buttons embedded in your app's
-media playback notifications. Pass your session token to the
-{@link android.app.Notification.MediaStyle#setMediaSession(android.media.session.MediaSession.Token)
-  setSession()} method to inform the system that this notification controls an
-  ongoing media session.</p>
-
-<p>Make sure to set the notification's visibility to
-  {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}
-  to mark the notification as safe to show on any lock screen (secure or
-  otherwise). For more information, see
-  <a href="#LockscreenNotifications">Lock screen notifications</a>.</p>
-
-<p>To display media playback controls if your app is running on the
-Android <a href="{@docRoot}tv/index.html">TV</a> or
-<a href="{@docRoot}wear/index.html">Wear</a> platform, implement the
-{@link android.media.session.MediaSession} class. You should also implement
-{@link android.media.session.MediaSession} if your app needs to receive media
-button events on Android devices.</p>
-
-<h3 id="BehaviorGetRecentTasks">If your app uses getRecentTasks()...</h3>
-
-<p>With the introduction of the new <em>concurrent documents and activities
-tasks</em> feature in Android 5.0 (see <a href="#Recents">Concurrent
-documents and activities in the recents screen</a> below),
-the {@link android.app.ActivityManager#getRecentTasks
-ActivityManager.getRecentTasks()} method is now deprecated to improve user
-privacy. For backward compatibility, this method still returns a small subset of
-its data, including the calling application’s own tasks and possibly some other
-non-sensitive tasks (such as Home). If your app is using this method to retrieve
-its own tasks, use {@link android.app.ActivityManager#getAppTasks() getAppTasks()}
-instead to retrieve that information.</p>
-
-<h3 id="64BitSupport">If you are using the Android Native Development Kit (NDK)...</h3>
-
-<p>Android 5.0 introduces support for 64-bit systems. The 64-bit enhancement
-  increases address space and improves performance, while still supporting
-  existing 32-bit apps fully. The 64-bit support also improves the performance of
-  OpenSSL for cryptography. In addition, this release introduces new native
-  media NDK APIs, as well as native OpenGL ES (GLES) 3.1 support.</p>
-
-<p>To use the 64-bit support provided in Android 5.0, download and install NDK
-  Revision 10c from the
-<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK page</a>. Refer to the
-Revision 10c <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions">release notes</a>
-for more information about important changes and bug fixes to the NDK.</p>
-
-<h3 id="BindService">If your app binds to a Service...</h3>
-
-<p>The
-  {@link android.content.Context#bindService(android.content.Intent, android.content.ServiceConnection, int) Context.bindService()}
-  method now requires an explicit {@link android.content.Intent},
-and throws an exception if given an implicit intent.
-To ensure your app is secure, use an explicit intent when starting or binding
-your {@link android.app.Service}, and do not declare intent filters for the service.</p>
-
-<h3 id="BehaviorWebView">If your app uses WebView...</h3>
-
-<p>Android 5.0 changes the default behavior for your app.</p>
-<ul>
-<li><strong>If your app targets API level 21 or higher:</strong>
-  <ul>
-    <li>The system
-  blocks <a href="https://developer.mozilla.org/en-US/docs/Security/MixedContent"
-  class="external-link">mixed content</a> and third party cookies by default. To allow mixed
-  content and third party cookies, use the
-  {@link android.webkit.WebSettings#setMixedContentMode(int) setMixedContentMode()}
-and {@link android.webkit.CookieManager#setAcceptThirdPartyCookies(android.webkit.WebView, boolean) setAcceptThirdPartyCookies()}
-methods respectively.</li>
-    <li>The system now intelligently chooses portions of the HTML
-      document to draw. This new default behavior helps to reduce memory
-      footprint and increase performance. If you want to
-      render the whole document at once, disable this optimization by calling
-      {@link android.webkit.WebView#enableSlowWholeDocumentDraw()}.</li>
-  </ul>
-</li>
-<li><strong>If your app targets API levels lower than 21:</strong> The system
-  allows mixed content and third party cookies, and always renders the whole
-  document at once.</li>
-</ul>
 
 <h2 id="UI">User Interface</h2>
 
 <h3 id="MaterialDesign">Material design support</h3>
 
-<p>The upcoming release adds support for Android's new <em>material design</em>
+<p>Android 5.0 adds support for Android's new <em>material design</em>
 style. You can create apps with material design that are visually dynamic and
 have UI element transitions that feel natural to users. This support includes:</p>
 
diff --git a/docs/html/distribute/googleplay/googleplay_toc.cs b/docs/html/distribute/googleplay/googleplay_toc.cs
index fc7cd11..b3aa9bf 100644
--- a/docs/html/distribute/googleplay/googleplay_toc.cs
+++ b/docs/html/distribute/googleplay/googleplay_toc.cs
@@ -18,6 +18,12 @@
     </div>
   </li>
   <li class="nav-section">
+    <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/guide.html">
+          <span class="en">Finding Success on Google Play</span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
     <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/tv.html">
           <span class="en">Distributing to <span style="white-space:nowrap">Android TV</span></span>
         </a>
diff --git a/docs/html/distribute/googleplay/guide.jd b/docs/html/distribute/googleplay/guide.jd
new file mode 100644
index 0000000..8317206
--- /dev/null
+++ b/docs/html/distribute/googleplay/guide.jd
@@ -0,0 +1,71 @@
+page.title=Finding Success on Google Play
+page.metaDescription=A guide to help you find success with your app or game business on Google Play.
+meta.tags="distribute", "bestpractices"
+page.tags="google play", "business", "monetize", "engagement"
+page.image=distribute/images/play_dev_guide.png
+
+@jd:body
+
+<p>
+  We’ve created a downloadable guide to help you find success with your app or
+  game business on Google Play. In it, you’ll find features, tips, and best
+  practices to help you build an effective strategy.
+</p>
+
+<p>
+  The guide is separated into the following sections:
+</p>
+<ul>
+  <li>
+    <strong>Publishing on Google Play</strong> &mdash; using the Google Play
+    Developer Console to distribute your app to over 1 billion Android users
+    worldwide.
+  </li>
+
+  <li>
+    <strong>Quality</strong> &mdash; The fundamentals of building a great app
+    and an insight into the Google Play guidelines and policies.
+  </li>
+
+  <li>
+    <strong>Discoverability &amp; reach</strong> &mdash; Maximizing your app's
+    discoverability and reaching the widest audience possible.
+  </li>
+
+  <li>
+    <strong>Engagement &amp; retention</strong> &mdash; Converting
+    installations into active users and improving user retention.
+  </li>
+
+  <li>
+    <strong>Monetization</strong> &mdash; Monetization strategies to generate
+    ongoing, growing revenue streams.
+  </li>
+
+  <li>
+    <strong>Measurement with Google Analytics</strong> &mdash; Understanding
+    your users and improving your app experience, conversions, and marketing.
+  </li>
+
+  <li>
+    <strong>Going global</strong> &mdash; Launching your app in local markets
+    around the world.
+  </li>
+</ul>
+
+<p>
+  Download the guide by clicking the image below or <a href=
+  "http://goo.gl/DFjbrS">get it on Google Play</a>.
+</p>
+
+<p>
+  We’ll release the guide in more languages in the coming months. Check back to
+  this website regularly as we post information on new features and best
+  practices to help you distribute and monetize your app.
+</p>
+  <div class="resource-widget resource-flow-layout col-16"
+    data-query="collection:play_dev_guide"
+    data-cardSizes="9x6"
+    data-maxResults="1">
+  </div>
+
diff --git a/docs/html/distribute/images/play_dev_guide.png b/docs/html/distribute/images/play_dev_guide.png
new file mode 100644
index 0000000..5b0c0d9
--- /dev/null
+++ b/docs/html/distribute/images/play_dev_guide.png
Binary files differ
diff --git a/docs/html/distribute/images/play_dev_guide_b.jpg b/docs/html/distribute/images/play_dev_guide_b.jpg
new file mode 100644
index 0000000..15fd59f
--- /dev/null
+++ b/docs/html/distribute/images/play_dev_guide_b.jpg
Binary files differ
diff --git a/docs/html/distribute/tools/promote/brand.jd b/docs/html/distribute/tools/promote/brand.jd
index 9b9f9a3..22441df 100644
--- a/docs/html/distribute/tools/promote/brand.jd
+++ b/docs/html/distribute/tools/promote/brand.jd
@@ -11,17 +11,17 @@
 
 <p>Use of the Android or Google Play brands must be reviewed by the Android
 Partner Marketing team.  Use the <a
-href="https://docs.google.com/forms/d/1YE5gZpAAcFKjYcUddCsK1Bv9a9Y-luaLVnkazVlaJ2w/viewform">Android and Google Play Brand Permissions Inquiry form</a> to submit your
+href="https://support.google.com/googleplay/contact/brand_developer">Android and Google Play Brand Permissions Inquiry form</a> to submit your
 marketing for review.</p>
 
 <h2 id="brand-android">Android</h2>
 
  <p>The following are guidelines for the Android brand
  and related assets.</p>
- 
+
 
   <h4 style="clear:right">Android in text</h4>
-    
+
   <div style="float:right;clear:right;width:200px;margin:0 0 20px 30px">
     <img alt="" src="{@docRoot}images/brand/mediaplayer.png">
   </div>
@@ -46,7 +46,7 @@
       </ul>
     </li>
     </ul>
-  
+
     <p>Any use of the Android name needs to include this
     attribution in your communication:</p>
     <blockquote><em>Android is a trademark of Google Inc.</em></blockquote></p>
@@ -70,10 +70,10 @@
     <p>When using the Android Robot or any modification of it, proper attribution is
     required under the terms of the <a href="http://creativecommons.org/licenses/by/3.0/">Creative
     Commons Attribution 3.0</a> license:</p>
-   
+
     <blockquote><em>The Android robot is reproduced or modified from work created and shared by Google and
 used according to terms described in the Creative Commons 3.0 Attribution License.</em></blockquote>
-    
+
     <p>You may not file trademark applications incorporating the Android robot
     logo or derivatives thereof within your company logo or business name. We
     want to ensure that the Android robot remains available for all to use.</p>
@@ -119,7 +119,7 @@
        <a href="{@docRoot}images/brand/Google_Play_Store_600.png">600x576</a>
        </p>
   </div>
-  
+
 <h4>Google Play store icon</h4>
 
 <p>You may use the Google Play store icon, but you may not modify it.</p>
@@ -128,29 +128,29 @@
 "Google Play store." However, when labeling the Google Play store icon directly, it's OK to use
 "Play Store" alone to accurately reflect the icon label as it appears on a device.</p>
 
-        
+
 <h4>Google Play badge</h4>
-      
+
   <div style="float:right;clear:right;width:172px;margin-left:30px">
     <img src="{@docRoot}images/brand/en_app_rgb_wo_60.png" alt="">
     <p style="text-align:center">
        <a href="{@docRoot}images/brand/en_app_rgb_wo_45.png">129x45</a> |
        <a href="{@docRoot}images/brand/en_app_rgb_wo_60.png">172x60</a></p>
   </div>
-      
+
   <div style="float:right;clear:right;width:172px;margin-left:30px">
     <img src="{@docRoot}images/brand/en_generic_rgb_wo_60.png" alt="">
     <p style="text-align:center">
        <a href="{@docRoot}images/brand/en_generic_rgb_wo_45.png">129x45</a> |
        <a href="{@docRoot}images/brand/en_generic_rgb_wo_60.png">172x60</a></p>
   </div>
-         
+
   <p>The "Get it on Google Play" and "Android App on Google Play" logos are
     badges that you can use on your website and promotional materials, to point
     to your products on Google Play. Additional Google Play badge formats and
     badges for music, books, magazines, movies, and TV shows are also available.
     Use the  <a
-    href="https://docs.google.com/forms/d/1YE5gZpAAcFKjYcUddCsK1Bv9a9Y-luaLVnkazVlaJ2w/viewform">Android
+    href="https://support.google.com/googleplay/contact/brand_developer">Android
     and Google Play Brand Permissions Inquiry form</a> to request
     those badges.</p>
 
@@ -170,22 +170,22 @@
       </ul>
     </li>
   </ul>
-  
+
   <p>To quickly create a badge that links to your apps on Google Play,
   use the <a
   href="{@docRoot}distribute/tools/promote/badges.html">Google Play badge generator</a>
   (provides the badge in over 40 languages).</p>
-  
+
   <p>To create your own size, download an Adobe&reg; Illustrator&reg; (.ai) file for the
   <a href="{@docRoot}distribute/tools/promote/badge-files.html">Google Play
   badge in over 40 languages</a>.</p>
-    
-  <p>For details on all the ways that you can link to your product details page in Google Play, 
+
+  <p>For details on all the ways that you can link to your product details page in Google Play,
     see <a href="{@docRoot}distribute/tools/promote/linking.html">Linking to your products</a>.</p>
 
 <h2 id="Marketing_Review">Marketing Reviews and Brand Inquiries</h2>
 
 <p>Use the <a
-href="https://docs.google.com/forms/d/1YE5gZpAAcFKjYcUddCsK1Bv9a9Y-luaLVnkazVlaJ2w/viewform">Android
+href="https://support.google.com/googleplay/contact/brand_developer">Android
 and Google Play Brand Permissions Inquiry form</a> to submit any marketing
 reviews or brand inquires. Typical response time is at least one week.</p>
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_back.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_back.png
deleted file mode 100644
index f340a62..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_fore.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_fore.png
deleted file mode 100644
index 2a4e595..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_shadow.png
deleted file mode 100644
index f3a3120..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/land_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_back.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_back.png
deleted file mode 100644
index c40b37c..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_fore.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_fore.png
deleted file mode 100644
index aae684b..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_shadow.png
deleted file mode 100644
index 61a0da9..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/port_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/thumb.png b/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/thumb.png
deleted file mode 100644
index e21a421..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/galaxy_nexus/thumb.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_back.png
new file mode 100644
index 0000000..06695f5
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_back.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_fore.png
new file mode 100644
index 0000000..9fe5409
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_fore.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_shadow.png
new file mode 100644
index 0000000..99f826f
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/land_shadow.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_back.png
new file mode 100644
index 0000000..6e1aec6
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_back.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_fore.png
new file mode 100644
index 0000000..53ec73a
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_fore.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_shadow.png
new file mode 100644
index 0000000..66149c6
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/port_shadow.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_6/thumb.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/thumb.png
new file mode 100644
index 0000000..bc1f492
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_6/thumb.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_back.png
new file mode 100644
index 0000000..fdbc52c
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_back.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_fore.png
new file mode 100644
index 0000000..76fc78e
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_fore.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_shadow.png
new file mode 100644
index 0000000..d40758f
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/land_shadow.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_back.png
new file mode 100644
index 0000000..fd6f88f
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_back.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_fore.png
new file mode 100644
index 0000000..328ceef
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_fore.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_shadow.png
new file mode 100644
index 0000000..13eba2f
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/port_shadow.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_9/thumb.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/thumb.png
new file mode 100644
index 0000000..bb52e6c
--- /dev/null
+++ b/docs/html/distribute/tools/promote/device-art-resources/nexus_9/thumb.png
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_back.png
deleted file mode 100644
index f525e8e..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_fore.png
deleted file mode 100644
index e26bfe1..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_shadow.png
deleted file mode 100644
index ea26b73..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/land_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_back.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_back.png
deleted file mode 100644
index ed4ad0c..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_fore.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_fore.png
deleted file mode 100644
index 74bd077..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_shadow.png
deleted file mode 100644
index bb4bec8..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/port_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/thumb.png b/docs/html/distribute/tools/promote/device-art-resources/nexus_s/thumb.png
deleted file mode 100644
index 8b9a3d9..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/nexus_s/thumb.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_back.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/land_back.png
deleted file mode 100644
index e1eb075..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_fore.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/land_fore.png
deleted file mode 100644
index 15e5f50..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/land_shadow.png
deleted file mode 100644
index 885508a..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/land_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_back.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/port_back.png
deleted file mode 100644
index 290ca35..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_back.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_fore.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/port_fore.png
deleted file mode 100644
index 8b3dca3..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_fore.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_shadow.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/port_shadow.png
deleted file mode 100644
index 895b75e..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/port_shadow.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art-resources/xoom/thumb.png b/docs/html/distribute/tools/promote/device-art-resources/xoom/thumb.png
deleted file mode 100644
index 8fd08a4..0000000
--- a/docs/html/distribute/tools/promote/device-art-resources/xoom/thumb.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/distribute/tools/promote/device-art.jd b/docs/html/distribute/tools/promote/device-art.jd
index 1736060..3902b30 100644
--- a/docs/html/distribute/tools/promote/device-art.jd
+++ b/docs/html/distribute/tools/promote/device-art.jd
@@ -66,7 +66,7 @@
   }
 
   .device-list {
-    padding: 0;
+    padding: 1em 0 0 0;
     margin: 0;
   }
 
@@ -187,6 +187,19 @@
       portSize: [1080,1920],
     },
     {
+      id: 'nexus_6',
+      title: 'Nexus 6',
+      url: 'http://www.google.com/nexus/6/',
+      physicalSize: 6,
+      physicalHeight: 6.27,
+      density: '560DPI',
+      landRes: ['shadow', 'back', 'fore'],
+      landOffset: [489,327],
+      portRes: ['shadow', 'back', 'fore'],
+      portOffset: [327,489],
+      portSize: [1440, 2560],
+    },
+    {
       id: 'nexus_7',
       title: 'Nexus 7',
       url: 'http://www.google.com/nexus/7/',
@@ -201,6 +214,20 @@
       portSize: [800,1280]
     },
     {
+      id: 'nexus_9',
+      title: 'Nexus 9',
+      url: 'http://www.google.com/nexus/9/',
+      physicalSize: 9,
+      physicalHeight: 8.98,
+      actualResolution: [1536,2048],
+      density: 'XHDPI',
+      landRes: ['shadow', 'back', 'fore'],
+      landOffset: [514,350],
+      portRes: ['shadow', 'back', 'fore'],
+      portOffset: [348,514],
+      portSize: [1536,2048],
+    },
+    {
       id: 'nexus_10',
       title: 'Nexus 10',
       url: 'http://www.google.com/nexus/10/',
@@ -212,19 +239,6 @@
       landOffset: [227,217],
       portRes: ['shadow', 'back', 'fore'],
       portOffset: [217,223],
-      portSize: [800,1280]
-    },
-    {
-      id: 'xoom',
-      title: 'Motorola XOOM',
-      url: 'http://www.google.com/phone/detail/motorola-xoom',
-      physicalSize: 10,
-      physicalHeight: 6.61,
-      density: 'MDPI',
-      landRes: ['shadow', 'back', 'fore'],
-      landOffset: [218,191],
-      portRes: ['shadow', 'back', 'fore'],
-      portOffset: [199,200],
       portSize: [800,1280],
       archived: true
     },
@@ -256,34 +270,6 @@
       portSize: [768,1280],
       archived: true
     },
-    {
-      id: 'galaxy_nexus',
-      title: 'Galaxy Nexus',
-      url: 'http://www.android.com/devices/detail/galaxy-nexus',
-      physicalSize: 4.65,
-      physicalHeight: 5.33,
-      density: 'XHDPI',
-      landRes: ['shadow', 'back', 'fore'],
-      landOffset: [371,199],
-      portRes: ['shadow', 'back', 'fore'],
-      portOffset: [216,353],
-      portSize: [720,1280],
-      archived: true
-    },
-    {
-      id: 'nexus_s',
-      title: 'Nexus S',
-      url: 'http://www.google.com/phone/detail/nexus-s',
-      physicalSize: 4.0,
-      physicalHeight: 4.88,
-      density: 'HDPI',
-      landRes: ['shadow', 'back', 'fore'],
-      landOffset: [247,135],
-      portRes: ['shadow', 'back', 'fore'],
-      portOffset: [134,247],
-      portSize: [480,800],
-      archived: true
-    }
   ];
 
   DEVICES = DEVICES.sort(function(x, y) { return x.physicalSize - y.physicalSize; });
diff --git a/docs/html/google/auth/api-client.jd b/docs/html/google/auth/api-client.jd
index 5331d1e..a0836d1 100644
--- a/docs/html/google/auth/api-client.jd
+++ b/docs/html/google/auth/api-client.jd
@@ -15,6 +15,7 @@
     <ol>
       <li><a href="#HandlingFailures">Handle connection failures</a></li>
       <li><a href="#MaintainingState">Maintain state while resolving an error</a></li>
+      <li><a href="#WearableApi">Access the Wearable API</a></li>
     </ol>
   </li>
   <li><a href="#Communicating">Communicate with Google Services</a>
@@ -104,7 +105,17 @@
 <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addScope(com.google.android.gms.common.api.Scope)"
 >{@code addScope()}</a>.</p>
 
-<p>However, before you can begin a connection by calling <a
+<p class="caution">
+<strong>Important:</strong> To avoid client connection errors on devices that do not have the
+<a href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app&hl=en">Android
+Wear app</a> installed, use a separate <a
+href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code
+GoogleApiClient}</a> instance to access only the <a
+href="{@docRoot}reference/com/google/android/gms/wearable/Wearable.html">{@code
+Wearable}</a> API. For more information, see <a href="#WearableApi">Access the Wearable
+API</a>.</p>
+
+<p>Before you can begin a connection by calling <a
 href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()"
 >{@code connect()}</a> on the <a
 href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code
@@ -408,6 +419,45 @@
 </p>
 
 
+<h3 id="WearableApi">Access the Wearable API</h3>
+
+<p>On devices that do not have the <a
+href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app&hl=en">Android
+Wear app</a> installed, connection requests that include the <a
+href="{@docRoot}reference/com/google/android/gms/wearable/Wearable.html">{@code
+Wearable}</a> API fail with the <a
+href="{@docRoot}reference/com/google/android/gms/common/ConnectionResult.html#API_UNAVAILABLE">
+<code>API_UNAVAILABLE</code></a> error code. If your app uses the <a
+href="{@docRoot}reference/com/google/android/gms/wearable/Wearable.html">{@code
+Wearable}</a> API in addition to other Google APIs, use a separate <a
+href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code
+GoogleApiClient}</a> instance to access the <a
+href="{@docRoot}reference/com/google/android/gms/wearable/Wearable.html">{@code
+Wearable}</a> API. This approach enables you to access other Google APIs on devices that are not
+paired with a wearable device.</p>
+
+<p>When you use a separate <a
+href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code
+GoogleApiClient}</a> instance to access only the Wearable API, you can determine
+whether the <a
+href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app&hl=en">Android
+Wear app</a> is installed on the device:</p>
+
+<pre>
+// Connection failed listener method for a client that only
+// requests access to the Wearable API
+&#64;Override
+public void onConnectionFailed(ConnectionResult result) {
+    if (result.getErrorCode() == ConnectionResult.API_UNAVAILABLE) {
+        // The Android Wear app is not installed
+    }
+    ...
+}
+</pre>
+
+
+
+
 
 
 <h2 id="Communicating">Communicate with Google Services</h2>
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index d63580e..a38b80b 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -57,9 +57,9 @@
   },
   "distribute/gp/gpfelanding": {
     "resources": [
+      "distribute/googleplay/guide.html",
       "distribute/googleplay/tv.html",
-      "distribute/googleplay/edu/about.html",
-      "distribute/googleplay/edu/videos.html"
+      "distribute/googleplay/edu/about.html"
     ]
   },
   "distribute/essentials": {
@@ -781,6 +781,12 @@
       "training/tv/index.html"
     ]
   },
+  "play_dev_guide": {
+    "title": "",
+    "resources": [
+      "shareables/distribute/play_dev_guide_secrets_en.pdf"
+    ]
+  },
   "distribute/stories/games": {
     "title": "",
     "resources": [
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index 89d9761..36f26e8 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -1394,5 +1394,18 @@
     "keywords": ["stories"],
     "type": "Case Study Deck",
     "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "shareables/distribute/play_dev_guide_secrets_en.pdf",
+    "timestamp": null,
+    "image": "distribute/images/play_dev_guide_b.jpg",
+    "title": "The Secrets to App Success on Google Play",
+    "summary": "A guide to useful features, tips, and best practices that will help you grow a successful app business on Google Play.",
+    "keywords": ["distribute"],
+    "type": "PDF DOWNLOAD (11MB)",
+    "titleFriendly": ""
   }
 ]);
diff --git a/docs/html/sdk/installing/studio.jd b/docs/html/sdk/installing/studio.jd
index 6991dea..f02cdbc 100644
--- a/docs/html/sdk/installing/studio.jd
+++ b/docs/html/sdk/installing/studio.jd
@@ -340,7 +340,6 @@
 </td>
 </tr>
 </table>
-<p class="note"><strong>Note:</strong> The full SDK/NDK requires 13 GB of disk space.</p>
 </div><!-- end pax -->
 
 
diff --git a/docs/html/tools/index.jd b/docs/html/tools/index.jd
deleted file mode 100644
index 73f8969..0000000
--- a/docs/html/tools/index.jd
+++ /dev/null
@@ -1,122 +0,0 @@
-page.title=Developer Tools
-@jd:body
-
-
-<img src="{@docRoot}images/tools-home.png" style="float:right;" height="347" width="400" />
-
-<div style="position:relative;height:0">
-<div style="position:absolute;width:420px">
-  <p>The Android Developer Tools (ADT) plugin for Eclipse provides
-    a professional-grade development environment for building
-  Android apps. It's a full Java IDE with advanced features to help you build, test, debug,
-  and package your Android apps. </p>
-  <p>Free, open-source, and runs on most major OS platforms.<br>To get started,
-  <a href="{@docRoot}sdk/index.html">download the Android SDK.</a></p>
-</div>
-</div>
-
-<div style="margin-top:20px;"></div>
-
-<div class="col-7" style="margin-left:0">
-<h3>Full Java IDE</h3>
-
-  <ul>
-    <li>Android-specific refactoring, quick fixes, integrated navigation between Java and XML resources.</li>
-    <li>Enhanced XML editors for Android XML resources.</li>
-    <li>Static analysis tools to catch performance, usability, and correctness problems.</li>
-    <li>Build support for complex projects, command-line support for CI through Ant. Includes ProGuard and app-signing. </li>
-    <li>Template-based wizard to create standard Android projects and components.</li>
-  </ul>
-</div>
-
-
-<div class="col-6" style="margin-right:0">
-
-<h3>Graphical UI Builders</h3>
-  <ul>
-    <li>Build rich Android UI with drag and drop.
-    <li>Visualize your UI on tablets, phones, and other devices. Switch themes, locales, even platform versions instantly, without building.</li>
-    <li>Visual refactoring lets you extracts layout for inclusion, convert layouts, extract styles.</li>
-    <li>Editor support for working with custom UI components.</li>
-  </ul>
-
-</div>
-
-
-<div class="col-7" style="clear:both;margin-left:0;">
-
-<h3>On-device Developer Options</h3>
-<ul>
-  <li>Enable debugging over USB.</li>
-  <li>Quickly capture bug reports onto the device.</li>
-  <li>Show CPU usage on screen.</li>
-  <li>Draw debugging information on screen such as layout bounds,
-    updates on GPU views and hardware layers, and other information.</li>
-  <li>Plus many more options to simulate app stresses or enable debugging options.</li>
-</ul>
-<p>To access these settings, open the <em>Developer options</em> in the
-system Settings. On Android 4.2 and higher, the Developer options screen is
-hidden by default. To make it available, go to
-<b>Settings > About phone</b> and tap <b>Build number</b> seven times. Return to the previous
-screen to find Developer options.</p>
-
-</div>
-
-<div class="col-6" style="margin-right:0">
-  <img src="{@docRoot}images/tools/dev-options-inmilk.png" alt="" style="margin:-10px 0 0;">
-</div>
-
-
-<div class="col-7" style="clear:both;margin-left:0;">
-<h3>Develop on Hardware Devices</h3>
-
-  <ul>
-    <li>Use any commercial Android hardware device or multiple devices.</li>
-    <li>Deploy your app to connected devices directy from the IDE.</li>
-    <li>Live, on-device debugging, testing, and profiling.</li>
-  </ul>
-</div>
-
-<div class="col-6" style="margin-right:0">
-<h3>Develop on Virtual Devices</h3>
-  <ul>
-    <li>Emulate any device. Use custom screen sizes, keyboards, and other hardware components. </li>
-    <li>Advanced hardware emulation, including camera, sensors, multitouch, telephony.</li>
-    <li>Develop and test for broad device compatibility.</li>
-  </ul>
-
-</div>
-
-<div style="margin-top:20px;"></div>
-
-<div class="col-7" style="margin-left:0">
-<h3>Powerful Debugging</h3>
-
-  <ul>
-    <li>Full Java debugger with on-device debugging and Android-specific tools.</li>
-    <li>Built-in memory analysis, performance/CPU profiling, OpenGL ES tracing.</li>
-    <li>Graphical tools for debugging and optimizing UI, runtime inspecton of UI structure and performance.</li>
-    <li>Runtime graphical analysis of your app's network bandwidth usage.</li>
-  </ul>
-
-<h3>Testing</h3>
-
-  <ul>
-    <li>Fully instrumentated, scriptable test environment.</li>
-    <li>Integrated reports using standard test UI.</li>
-    <li>Create and run unit tests on hardware devices or emulator.</li>
-  </ul>
-
-<h3>Native Development</h3>
-
-  <ul>
-    <li>Support for compiling and packaging existing code written in C or C++.</li>
-    <li>Support for packaging multiple architectures in a single binary, for broad compatibility.</li>
-  </ul>
-</div>
-
-<div class="col-6" style="margin-right:0">
-  <img src="{@docRoot}images/debugging-tall.png" align="left" style="margin-top:10px">
-</div>
-
-
diff --git a/docs/html/training/articles/security-ssl.jd b/docs/html/training/articles/security-ssl.jd
index 0639fb0..7f43d9c 100644
--- a/docs/html/training/articles/security-ssl.jd
+++ b/docs/html/training/articles/security-ssl.jd
@@ -22,6 +22,7 @@
   <li><a href="#Blacklisting">Blacklisting</a></li>
   <li><a href="#Pinning">Pinning</a></li>
   <li><a href="#ClientCert">Client Certificates</a></li>
+  <li><a href="#nogotofail">Nogotofail: Network Security Testing</a></li>
 </ol>
 
 
@@ -511,8 +512,42 @@
 
 
 
+<h2 id="nogotofail">
+  Nogotofail: A Network Traffic Security Testing Tool
+</h2>
 
+<p>
+  Nogotofail is a tool gives you an easy way to confirm that your apps are safe
+  against known TLS/SSL vulnerabilities and misconfigurations. It's an
+  automated, powerful, and scalable tool for testing network security issues on
+  any device whose network traffic could be made to go through it. </p>
 
+  <p>Nogotofail is useful for three main use cases:
+</p>
+
+<ul>
+  <li>Finding bugs and vulnerabilities.
+  </li>
+
+  <li>Verifying fixes and watching for regressions.
+  </li>
+
+  <li>Understanding what applications and devices are generating what traffic.
+  </li>
+</ul>
+
+<p>
+  Nogotofail works for Android, iOS, Linux, Windows, Chrome OS, OSX, in fact
+  any device you use to connect to the Internet. There’s an easy-to-use client
+  to configure the settings and get notifications on Android and Linux, as well
+  as the attack engine itself which can be deployed as a router, VPN server, or
+  proxy.
+</p>
+
+<p>
+  You can access the tool at the <a href=
+  "https://github.com/google/nogotofail">Nogotofail open source project</a>.
+</p>
 
 
 
diff --git a/docs/html/training/material/images/shadows-depth.png b/docs/html/training/material/images/shadows-depth.png
index 26b6b4a..d28ac79 100644
--- a/docs/html/training/material/images/shadows-depth.png
+++ b/docs/html/training/material/images/shadows-depth.png
Binary files differ
diff --git a/docs/html/training/material/shadows-clipping.jd b/docs/html/training/material/shadows-clipping.jd
index f58d780..c1cd374 100644
--- a/docs/html/training/material/shadows-clipping.jd
+++ b/docs/html/training/material/shadows-clipping.jd
@@ -18,28 +18,36 @@
 </div>
 </div>
 
-<p>Material design introduces depth for UI elements. Depth helps users understand the relative
-importance of each element and focus their attention to the task at hand.</p>
+<p>Material design introduces elevation for UI elements. Elevation helps users understand the
+relative importance of each element and focus their attention to the task at hand.</p>
 
-<p>The elevation of a view, represented by the Z property, determines the size of its shadow:
-views with higher Z values cast bigger shadows. Views only cast shadows on the Z=0 plane; they
-don't cast shadows on other views placed below them and above the Z=0 plane.</p>
+<p>The elevation of a view, represented by the Z property, determines the visual appearance of its
+shadow: views with higher Z values cast larger, softer shadows. Views with higher Z values occlude
+views with lower Z values; however, the Z value of a view does not affect the view's size.</p>
 
-<p>Views with higher Z values occlude views with lower Z values. However, the Z value of a view
-does not affect the view's size.</p>
+<p>Shadows are drawn by the parent of the elevated view, and thus subject to standard view clipping,
+clipped by the parent by default.</p>
 
 <p>Elevation is also useful to create animations where widgets temporarily rise above the
 view plane when performing some action.</p>
 
+<p>For more information about elevation in material design, see
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objects
+in 3D space</a>.</p>
+
 
 <h2 id="Elevation">Assign Elevation to Your Views</h2>
 
-<p>The Z value for a view has two components, elevation and translation. The elevation is the
-static component, and the translation is used for animations:</p>
+<p>The Z value for a view has two components:
+
+<ul>
+<li>Elevation: The static component.</li>
+<li>Translation: The dynamic component used for animations.</li>
+</ul>
 
 <p><code>Z = elevation + translationZ</code></p>
 
-<img src="{@docRoot}training/material/images/shadows-depth.png" width="680" height="177" alt=""/>
+<img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt=""/>
 <p class="img-caption"><strong>Figure 1</strong> - Shadows for different view elevations.</p>
 
 <p>To set the elevation of a view in a layout definition, use the <code>android:elevation</code>
@@ -59,9 +67,9 @@
 <p>You can also use a {@link android.animation.StateListAnimator} to
 specify these animations in a declarative way. This is especially useful for cases where state
 changes trigger animations, like when a user presses a button. For more information, see
-<a href="{@docRoot}training/material/animations.html#ViewState">Animate View State Changes</a></p>.
+<a href="{@docRoot}training/material/animations.html#ViewState">Animate View State Changes</a>.</p>
 
-<p>The Z values are measured in the same units as the X and Y values.</p>
+<p>The Z values are measured in dp (density-independent pixels).</p>
 
 
 <h2 id="Shadows">Customize View Shadows and Outlines</h2>
diff --git a/docs/html/training/tv/start/hardware.jd b/docs/html/training/tv/start/hardware.jd
index 33d396b..fc52602 100644
--- a/docs/html/training/tv/start/hardware.jd
+++ b/docs/html/training/tv/start/hardware.jd
@@ -85,27 +85,27 @@
   </tr>
   <tr>
     <td>Touchscreen</td>
-    <td>android.hardware.touchscreen</td>
+    <td>{@code android.hardware.touchscreen}</td>
   </tr>
   <tr>
     <td>Telephony</td>
-    <td>android.hardware.telephony</td>
+    <td>{@code android.hardware.telephony}</td>
   </tr>
   <tr>
     <td>Camera</td>
-    <td>android.hardware.camera</td>
+    <td>{@code android.hardware.camera}</td>
   </tr>
   <tr>
     <td>Near Field Communications (NFC)</td>
-    <td>android.hardware.nfc</td>
+    <td>{@code android.hardware.nfc}</td>
   </tr>
   <tr>
     <td>GPS</td>
-    <td>android.hardware.location.gps</td>
+    <td>{@code android.hardware.location.gps}</td>
   </tr>
   <tr>
     <td>Microphone</td>
-    <td>android.hardware.microphone</td>
+    <td>{@code android.hardware.microphone}</td>
   </tr>
 </table>
 
@@ -142,20 +142,17 @@
         android:required="false"/&gt;
 </pre>
 
-<p class="caution">
-  <strong>Caution:</strong> Declaring an unavailable hardware feature as required by setting its
-  value to {@code true} in your app manifest prevents your app from being installed on TV
-  devices or appearing in the Android TV home screen launcher.
+<p>
+  All apps intended for use on TV devices must declare that the touch screen feature is not required
+  as described in <a href="{@docRoot}training/tv/start/start.html#no-touchscreen">Get Started with
+  TV Apps</a>. If your app normally uses one or more of the features listed above, change the
+  {@code android:required} attribute setting to {@code false} for those features in your manifest.
 </p>
 
 <p class="caution">
-  <strong>Caution:</strong> Some <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code uses-permission}</a> manifest declarations <em>imply hardware use</em>, which can also
-  prevent your app from being installed and used on TV devices. For example, requesting the
-  {@link android.Manifest.permission#RECORD_AUDIO} permission in your app implies the
-  {@code android.hardware.microphone} hardware feature requirement. In which case, you must declare
-  the microphone feature as not required ({@code android:required="false"}) in your app manifest.
-  For a list of permission requests that imply a hardware feature requirement, see <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions-features">
-  {@code uses-feature}</a> guide.
+  <strong>Caution:</strong> Declaring a hardware feature as required by setting its
+  value to {@code true}  prevents your app from being installed on TV
+  devices or appearing in the Android TV home screen launcher.
 </p>
 
 <p>
@@ -172,6 +169,52 @@
 </p>
 
 
+<h3 id="hardware-permissions">Declaring permissions that imply hardware features</h3>
+
+<p>
+  Some <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code uses-permission}</a>
+  manifest declarations <em>imply hardware features</em>. This behavior means that requesting some
+  permissions in your app manifest can exclude your app from from being installed and used on TV
+  devices. The following commonly requested permissions create an implicit hardware feature
+  requirement:
+</p>
+
+<table>
+  <tr>
+    <th>Permission</th>
+    <th>Implied hardware feature</th>
+  </tr>
+  <tr>
+    <td>{@link android.Manifest.permission#RECORD_AUDIO}</td>
+    <td>{@code android.hardware.microphone}</td>
+  </tr>
+  <tr>
+    <td>{@link android.Manifest.permission#CAMERA}</td>
+    <td>{@code android.hardware.camera} <em>and</em> <br>
+      {@code android.hardware.camera.autofocus}</td>
+  </tr>
+  <tr>
+    <td>{@link android.Manifest.permission#ACCESS_COARSE_LOCATION}</td>
+    <td>{@code android.hardware.location} <em>and</em> <br>
+      {@code android.hardware.location.network}</td>
+  </tr>
+  <tr>
+    <td>{@link android.Manifest.permission#ACCESS_FINE_LOCATION}</td>
+    <td>{@code android.hardware.location} <em>and</em> <br>
+      {@code android.hardware.location.gps}</td>
+  </tr>
+</table>
+
+<p>
+  For a complete list of permission requests that imply a hardware feature requirement, see
+  <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions-features">{@code
+  uses-feature}</a> guide. If your app requests one of the features listed above, include a
+  <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code uses-feature}</a>
+  declaration in your manifest for the implied hardware feature that indicates it is not
+  required ({@code android:required="false"}).
+</p>
+
+
 <h3 id="check-features">Checking for hardware features</h2>
 
 <p>
diff --git a/docs/html/training/tv/start/start.jd b/docs/html/training/tv/start/start.jd
index 3b26abf..aab1a39 100644
--- a/docs/html/training/tv/start/start.jd
+++ b/docs/html/training/tv/start/start.jd
@@ -11,6 +11,7 @@
   <h2>This lesson teaches you how to</h2>
   <ol>
     <li><a href="#dev-project">Setup a TV Project</a></li>
+    <li><a href="#tv-libraries">Add TV Support Libraries</a></li>
     <li><a href="#build-it">Build TV Apps</a></li>
     <li><a href="#run">Run TV Apps</a></li>
   </ol>
@@ -86,17 +87,10 @@
 
 <p>An application intended to run on TV devices must declare a launcher activity for TV
   in its manifest using a {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent filter.
-  This filter identifies your app as being enabled for TV, allowing it to be considered a TV app
-  in Google Play. Declaring this intent also identifies which activity
+  This filter identifies your app as being enabled for TV, and is required for your app to be
+  considered a TV app in Google Play. Declaring this intent also identifies which activity
   in your app to launch when a user selects its icon on the TV home screen.</p>
 
-<p class="caution">
-  <strong>Caution:</strong> If you do not include the {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent filter in
-  your app, it is not visible to users running the Google Play store on TV devices. Also, if your
-  app does not have this filter when you load it onto a TV device using developer tools, the app
-  does not appear in the TV user interface.
-</p>
-
 <p>The following code snippet shows how to include this intent filter in your manifest:</p>
 
 <pre>
@@ -132,6 +126,14 @@
   launch on a TV device.
 </p>
 
+<p class="caution">
+  <strong>Caution:</strong> If you do not include the
+  {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent filter in
+  your app, it is not visible to users running the Google Play store on TV devices. Also, if your
+  app does not have this filter when you load it onto a TV device using developer tools, the app
+  does not appear in the TV user interface.
+</p>
+
 <p>
   If you are modifying an existing app for use on TV, your app should not use the same
   activity layout for TV that it does for phones and tablets. The user interface of your TV app (or
@@ -142,6 +144,31 @@
   "{@docRoot}training/tv/start/layouts.html">Building TV Layouts</a>.
 </p>
 
+
+<h3 id="no-touchscreen">Declare touchscreen not required</h3>
+
+<p>
+  Applications that are intended to run on TV devices do not rely on touch screens for input. In
+  order to make this clear, the manifest of your TV app must declare that a the {@code
+  android.hardware.touchscreen} feature is not required. This setting identifies your app as being
+  able to work on a TV device, and is required for your app to be considered a TV app in Google
+  Play. The following code example shows how to include this manifest declaration:
+</p>
+
+<pre>
+&lt;manifest&gt;
+    <strong>&lt;uses-feature android:name="android.hardware.touchscreen"
+              android:required="false" /&gt;</strong>
+    ...
+&lt;/manifest&gt;
+</pre>
+
+<p class="caution">
+  <strong>Caution:</strong> You must declare that a touch screen is not required in your app
+  manifest, as shown this example code, or your app cannot appear in the Google Play store on TV
+  devices.
+</p>
+
 <h3 id="banner">Provide a home screen banner</h3>
 
 <p>
@@ -152,9 +179,10 @@
 
 <pre>
 &lt;application
-    . . .
+    ...
     android:banner="&#64;drawable/banner" &gt;
-    . . .
+
+    ...
 &lt;/application&gt;
 </pre>
 
@@ -171,7 +199,7 @@
   design guide.
 </p>
 
-<h3 id="tv-libraries">Add TV support libraries</h3>
+<h2 id="tv-libraries">Add TV Support Libraries</h3>
 
 <p>
   The Android SDK includes support libraries that are intended for use with TV apps. These
diff --git a/docs/html/training/wearables/apps/bt-debugging.jd b/docs/html/training/wearables/apps/bt-debugging.jd
index 98cf804..7569e7e 100644
--- a/docs/html/training/wearables/apps/bt-debugging.jd
+++ b/docs/html/training/wearables/apps/bt-debugging.jd
@@ -19,7 +19,7 @@
   </div>
 </div>
 
-<p>You can debug your wearable over Bluetooth by routing it's debug output to the
+<p>You can debug your wearable over Bluetooth by routing its debug output to the
 handheld device that's connected to your development machine.</p>
 
 <h2 id="SetupDevices">Setup Devices for Debugging</h2>
@@ -90,4 +90,4 @@
 adb -e logcat
 adb -e shell
 adb -e bugreport
-</pre>
\ No newline at end of file
+</pre>
diff --git a/docs/html/training/wearables/apps/creating.jd b/docs/html/training/wearables/apps/creating.jd
index 7252ada..018d9f7 100644
--- a/docs/html/training/wearables/apps/creating.jd
+++ b/docs/html/training/wearables/apps/creating.jd
@@ -92,6 +92,11 @@
   <li>Leave the Android Wear app open on your phone.</li>
   <li>Connect the wearable to your machine through USB, so you can install apps directly to it
   as you develop. A message appears on both the wearable and the Android Wear app prompting you to allow debugging.</li>
+  <p class="note"><strong>Note:</strong> If you can not connect your wearable to your machine via USB,
+  follow the directions on
+  <a href="{@docRoot}training/wearables/apps/bt-debugging.html">Debugging over
+  Bluetooth</a>.
+  </p>
   <li>On the Android Wear app, check <strong>Always allow from this computer</strong> and tap
   <strong>OK</strong>.</li>
 </ol>
diff --git a/docs/html/training/wearables/apps/index.jd b/docs/html/training/wearables/apps/index.jd
index 256205b..4bdd6bf 100644
--- a/docs/html/training/wearables/apps/index.jd
+++ b/docs/html/training/wearables/apps/index.jd
@@ -64,7 +64,7 @@
       <dd>Learn how to create and display custom layouts for notifications and
       activities.</dd>
     <dt><a href="{@docRoot}training/wearables/apps/voice.html">Adding Voice Capabilities</a></dt>
-      <dd>Learn how to launch an activity with a voice actions and how to start the
+      <dd>Learn how to launch an activity with voice actions and how to start the
       system speech recognizer app to obtain free-form voice input.</dd>
     <dt><a href="{@docRoot}training/wearables/apps/packaging.html">Packaging Wearable Apps</a></dt>
       <dd>Learn how to package a wearable app inside a
diff --git a/docs/html/training/wearables/data-layer/accessing.jd b/docs/html/training/wearables/data-layer/accessing.jd
index 36e3daa..b7ecf5b 100644
--- a/docs/html/training/wearables/data-layer/accessing.jd
+++ b/docs/html/training/wearables/data-layer/accessing.jd
@@ -12,9 +12,9 @@
 
 <h2>Dependencies and Prerequisites</h2>
 <ol>
-  <li><a href="{@docRoot}training/wearables/apps/environment.html">Creating
-  Wearable Apps > Setting up Your Environment</a></li>
-  <li><a href="{@docRoot}training/wearables/apps/creating.html">Creating
+  <li><a href="{@docRoot}training/wearables/apps/creating.html#SetupEmulator">Creating
+  Wearable Apps > Set Up an Android Wear Emulator or Device</a></li>
+  <li><a href="{@docRoot}training/wearables/apps/creating.html#CreateProject">Creating
     Wearable Apps > Creating a Project</a></li>
 </ol>
 </div>
@@ -55,10 +55,21 @@
                     Log.d(TAG, "onConnectionFailed: " + result);
                 }
             })
+        // Request access only to the Wearable API
         .addApi(Wearable.API)
         .build();
 </pre>
 
+<p class="caution">
+<strong>Important:</strong> To avoid client connection errors on devices that do not have the
+<a href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app&hl=en">Android
+Wear app</a> installed, use a separate <a
+href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code
+GoogleApiClient}</a> instance to access only the <a
+href="{@docRoot}reference/com/google/android/gms/wearable/Wearable.html">{@code
+Wearable}</a> API. For more information, see <a
+href="{@docRoot}google/auth/api-client.html#WearableApi">Access the Wearable API</a>.</p>
+
 <p>Before you use the data layer API, start a connection on your client by calling the
 <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a>
 method, as described in
diff --git a/docs/html/training/wearables/data-layer/data-items.jd b/docs/html/training/wearables/data-layer/data-items.jd
index 63c32ea..f843bb67 100644
--- a/docs/html/training/wearables/data-layer/data-items.jd
+++ b/docs/html/training/wearables/data-layer/data-items.jd
@@ -47,14 +47,14 @@
 
 <p>
 However, instead of working with raw bytes using <a href="{@docRoot}reference/com/google/android/gms/wearable/PutDataRequest.html#setData(byte[])">setData()</a>,
-we recommend you <a href="#data-map">use a data map</a>, which exposes
+we recommend you <a href="#SyncData">use a data map</a>, which exposes
 a data item in an easy-to-use {@link android.os.Bundle}-like interface.
 </p>
 
 <h2 id="SyncData">Sync Data with a Data Map</h2>
 <p>
-When possible, use the <a href="{@docRoot}reference/com/google/android/gms/wearable/DataMap.html"><code>DataMap</code></a> class,
-which lets you work with data items in the form of an Android {@link android.os.Bundle},
+When possible, use the <a href="{@docRoot}reference/com/google/android/gms/wearable/DataMap.html"><code>DataMap</code></a> class.
+This approach lets you work with data items in the form of an Android {@link android.os.Bundle},
 so object serialization and de-serialization is done for you, and you can manipulate data with key-value pairs.
 </p>
 
@@ -120,5 +120,5 @@
 <p>
 This is just a snippet that requires more implementation details. Learn about
 how to implement a full listener service or activity in
-<a href="{@docRoot}training/wearables/data-layer/events.html">Listening for Data Layer Events</a>.
+<a href="{@docRoot}training/wearables/data-layer/events.html#Listen">Listening for Data Layer Events</a>.
 </p>
\ No newline at end of file
diff --git a/docs/html/training/wearables/data-layer/events.jd b/docs/html/training/wearables/data-layer/events.jd
index 9e8acbc..9196a2c 100644
--- a/docs/html/training/wearables/data-layer/events.jd
+++ b/docs/html/training/wearables/data-layer/events.jd
@@ -159,7 +159,7 @@
         }
 
         // Loop through the events and send a message
-        / to the node that created the data item.
+        // to the node that created the data item.
         for (DataEvent event : events) {
             Uri uri = event.getDataItem().getUri();
 
diff --git a/docs/html/training/wearables/data-layer/index.jd b/docs/html/training/wearables/data-layer/index.jd
index 6ef3fc7..73d9ee5 100644
--- a/docs/html/training/wearables/data-layer/index.jd
+++ b/docs/html/training/wearables/data-layer/index.jd
@@ -83,5 +83,3 @@
     <dt><a href="{@docRoot}training/wearables/data-layer/events.html">Handling Data Layer Events</a></dt>
       <dd>Be notified of changes and events to the data layer.</dd>
   </dl>
-
-</div>
\ No newline at end of file
diff --git a/docs/html/training/wearables/data-layer/messages.jd b/docs/html/training/wearables/data-layer/messages.jd
index 71f1bb1..b3afacb8 100644
--- a/docs/html/training/wearables/data-layer/messages.jd
+++ b/docs/html/training/wearables/data-layer/messages.jd
@@ -27,7 +27,7 @@
 such as sending a message to the wearable
 to start an activity. You can also use messages in request/response model
 where one side of the connection sends a message, does some work,
-sends back a response message.</p>
+and sends back a response message.</p>
 
 <h2 id="SendMessage">Send a Message</h2>
 
@@ -95,5 +95,5 @@
 <p>
 This is just a snippet that requires more implementation details. Learn about
 how to implement a full listener service or activity in
-<a href="{@docRoot}training/wearables/data-layer/events.html">Listening for Data Layer Events</a>.
+<a href="{@docRoot}training/wearables/data-layer/events.html#Listen">Listening for Data Layer Events</a>.
 </p>
\ No newline at end of file
diff --git a/docs/html/training/wearables/notifications/creating.jd b/docs/html/training/wearables/notifications/creating.jd
index 84e3311..57ac36e 100644
--- a/docs/html/training/wearables/notifications/creating.jd
+++ b/docs/html/training/wearables/notifications/creating.jd
@@ -4,7 +4,6 @@
 
 <div id="tb-wrapper">
 <div id="tb">
-
 <h2>This lesson teaches you to</h2>
 <ol>
   <li><a href="#Import">Import the Necessary Classes</a></li>
@@ -30,7 +29,6 @@
 layouts and the wearable only displays the text and icons. However, you can create
 <a href="{@docRoot}training/wearables/apps/layouts.html#CustomNotifications">create custom notifications</a>
 that use custom card layouts by creating a wearable app that runs on the wearable device.</p>
-</div>
 
 <h2 id="Import">Import the necessary classes</h2>
 
@@ -255,7 +253,7 @@
 Notification notif = new NotificationCompat.Builder(mContext)
         .setContentTitle("New mail from " + sender)
         .setContentText(subject)
-        .setSmallIcon(R.drawable.new_mail);
+        .setSmallIcon(R.drawable.new_mail)
         .extend(wearableExtender)
         .build();
 </pre>
@@ -278,7 +276,7 @@
 <p>If you ever need to read wearable-specific options at a later time, use the corresponding get
 method for the option. This example calls the
 {@link android.support.v4.app.NotificationCompat.WearableExtender#getHintHideIcon()} method to
-get whether or not this notification hides the icon:
+get whether or not this notification hides the icon:</p>
 <pre>
 NotificationCompat.WearableExtender wearableExtender =
         new NotificationCompat.WearableExtender(notif);
@@ -304,14 +302,3 @@
 features from {@link android.support.v4.app.NotificationCompat.WearableExtender}
 do not work, so make sure to use {@link android.support.v4.app.NotificationCompat}.
 </p>
-
-<pre>
-NotificationCompat.WearableExtender wearableExtender =
-        new NotificationCompat.WearableExtender(notif);
-boolean hintHideIcon = wearableExtender.getHintHideIcon();
- </pre>
-
-<p>The {@link android.support.v4.app.NotificationCompat.WearableExtender} APIs allow you to add
-additional pages to notifications, stack notifications, and more. Continue to the following lessons
-to learn about these features.
-</p>
diff --git a/docs/html/training/wearables/notifications/index.jd b/docs/html/training/wearables/notifications/index.jd
index a7b6733..2833dfa 100644
--- a/docs/html/training/wearables/notifications/index.jd
+++ b/docs/html/training/wearables/notifications/index.jd
@@ -49,5 +49,3 @@
       <dd>Learn how to place all similar notifications from your app in a stack, allowing users to view
       each notification individually without adding multiple cards to the card stream.</dd>
   </dl>
-
-</div>
\ No newline at end of file
diff --git a/docs/html/training/wearables/notifications/stacks.jd b/docs/html/training/wearables/notifications/stacks.jd
index 9a528a4..9e70e1b 100644
--- a/docs/html/training/wearables/notifications/stacks.jd
+++ b/docs/html/training/wearables/notifications/stacks.jd
@@ -87,7 +87,7 @@
 on the summary notification.</p>
 
 <p>This notification does not appear in your stack of notifications on the wearable, but
-appears as the only notification on the handheld device.</p>
+it appears as the only notification on the handheld device.</p>
 
 <pre style="clear:right">
 Bitmap largeIcon = BitmapFactory.decodeResource(getResources(),
diff --git a/docs/html/training/wearables/notifications/voice-input.jd b/docs/html/training/wearables/notifications/voice-input.jd
index 3ce1c80..5a49343 100644
--- a/docs/html/training/wearables/notifications/voice-input.jd
+++ b/docs/html/training/wearables/notifications/voice-input.jd
@@ -86,7 +86,7 @@
  {@link android.support.v4.app.RemoteInput}:</p>
 
 <pre>
-public static final EXTRA_VOICE_REPLY = "extra_voice_reply";
+public static final String EXTRA_VOICE_REPLY = "extra_voice_reply";
 ...
 String replyLabel = getResources().getString(R.string.reply_label);
 String[] replyChoices = getResources().getStringArray(R.array.reply_choices);
@@ -116,7 +116,7 @@
 // Create the reply action and add the remote input
 NotificationCompat.Action action =
         new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
-                getString(R.string.label, replyPendingIntent))
+                getString(R.string.label), replyPendingIntent)
                 .addRemoteInput(remoteInput)
                 .build();
 
@@ -171,4 +171,4 @@
     }
     return null;
 }
-</pre>
\ No newline at end of file
+</pre>