Merge "Docs: Add Audio (OpenSL ES) section to NDK docs on DAC." into mnc-docs
diff --git a/Android.mk b/Android.mk
index 18d9c69..840fda0 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1020,35 +1020,35 @@
 
 include $(BUILD_DROIDDOC)
 
-# ==== docs for the ndk =======================
+# ==== site updates for docs (on the androiddevdocs app engine server) =======================
 include $(CLEAR_VARS)
+
 LOCAL_SRC_FILES:=$(framework_docs_LOCAL_SRC_FILES)
 LOCAL_INTERMEDIATE_SOURCES:=$(framework_docs_LOCAL_INTERMEDIATE_SOURCES)
 LOCAL_STATIC_JAVA_LIBRARIES:=$(framework_docs_LOCAL_STATIC_JAVA_LIBRARIES)
 LOCAL_JAVA_LIBRARIES:=$(framework_docs_LOCAL_JAVA_LIBRARIES)
 LOCAL_MODULE_CLASS:=$(framework_docs_LOCAL_MODULE_CLASS)
 LOCAL_DROIDDOC_SOURCE_PATH:=$(framework_docs_LOCAL_DROIDDOC_SOURCE_PATH)
-LOCAL_DROIDDOC_HTML_DIR:=docs/html-ndk
+LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
 LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
 LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
-# specify a second html input dir and an output path relative to OUT_DIR)
-LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl/intl /
+LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl /
 
-LOCAL_MODULE := online-ndk
+LOCAL_MODULE := online-sdk-dev
 
 LOCAL_DROIDDOC_OPTIONS:= \
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
 		-toroot / \
 		-hdf android.whichdoc online \
 		$(sample_groups) \
+		-useUpdatedTemplates \
 		-hdf android.hasSamples true \
 		-samplesdir $(samples_dir)
 
-LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk-dev
 
 include $(BUILD_DROIDDOC)
 
-
 # ==== docs that have all of the stuff that's @hidden =======================
 include $(CLEAR_VARS)
 
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 87d52e4..77a7c69 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -186,7 +186,7 @@
  *
  * <p>There are a variety of standard Intent action and category constants
  * defined in the Intent class, but applications can also define their own.
- * These strings use java style scoping, to ensure they are unique -- for
+ * These strings use Java-style scoping, to ensure they are unique -- for
  * example, the standard {@link #ACTION_VIEW} is called
  * "android.intent.action.VIEW".</p>
  *
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index e0a61f5..e9b1f01 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -1359,7 +1359,7 @@
 
     /**
      * Feature for {@link #getSystemAvailableFeatures} and
-     * {@link #hasSystemFeature}: The heart rate sensor on this device is an Electrocargiogram.
+     * {@link #hasSystemFeature}: The heart rate sensor on this device is an Electrocardiogram.
      */
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_SENSOR_HEART_RATE_ECG =
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index 5583920..01a5986 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -398,17 +398,24 @@
      * this camera device.</p>
      * <p>For devices at the LEGACY level or above:</p>
      * <ul>
-     * <li>This list will always include (30, 30).</li>
-     * <li>Also, for constant-framerate recording, for each normal
+     * <li>
+     * <p>For constant-framerate recording, for each normal
+     * {@link android.media.CamcorderProfile CamcorderProfile}, that is, a
      * {@link android.media.CamcorderProfile CamcorderProfile} that has
      * {@link android.media.CamcorderProfile#quality quality} in
      * the range [{@link android.media.CamcorderProfile#QUALITY_LOW QUALITY_LOW},
      * {@link android.media.CamcorderProfile#QUALITY_2160P QUALITY_2160P}], if the profile is
      * supported by the device and has
      * {@link android.media.CamcorderProfile#videoFrameRate videoFrameRate} <code>x</code>, this list will
-     * always include (<code>x</code>,<code>x</code>).</li>
-     * <li>For preview streaming use case, this list will always include (<code>min</code>, <code>max</code>) where
-     * <code>min</code> &lt;= 15 and <code>max</code> &gt;= 30.</li>
+     * always include (<code>x</code>,<code>x</code>).</p>
+     * </li>
+     * <li>
+     * <p>Also, a camera device must either not support any
+     * {@link android.media.CamcorderProfile CamcorderProfile},
+     * or support at least one
+     * normal {@link android.media.CamcorderProfile CamcorderProfile} that has
+     * {@link android.media.CamcorderProfile#videoFrameRate videoFrameRate} <code>x</code> &gt;= 24.</p>
+     * </li>
      * </ul>
      * <p>For devices at the LIMITED level or above:</p>
      * <ul>
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index ff6dd32..f79571a 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -885,8 +885,12 @@
      * Tells the underlying networking system that the caller wants to
      * begin using the named feature. The interpretation of {@code feature}
      * is completely up to each networking implementation.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param networkType specifies which network the request pertains to
      * @param feature the name of the feature to be used
      * @return an integer value representing the outcome of the request.
@@ -936,8 +940,12 @@
      * Tells the underlying networking system that the caller is finished
      * using the named feature. The interpretation of {@code feature}
      * is completely up to each networking implementation.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param networkType specifies which network the request pertains to
      * @param feature the name of the feature that is no longer needed
      * @return an integer value representing the outcome of the request.
@@ -1183,8 +1191,12 @@
      * Ensure that a network route exists to deliver traffic to the specified
      * host via the specified network interface. An attempt to add a route that
      * already exists is ignored, but treated as successful.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param networkType the type of the network over which traffic to the specified
      * host is to be routed
      * @param hostAddress the IP address of the host to which the route is desired
@@ -1204,8 +1216,12 @@
      * Ensure that a network route exists to deliver traffic to the specified
      * host via the specified network interface. An attempt to add a route that
      * already exists is ignored, but treated as successful.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param networkType the type of the network over which traffic to the specified
      * host is to be routed
      * @param hostAddress the IP address of the host to which the route is desired
@@ -1405,6 +1421,13 @@
         return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
     }
 
+    /** {@hide} */
+    public static final void enforceChangePermission(Context context) {
+        int uid = Binder.getCallingUid();
+        Settings.checkAndNoteChangeNetworkStateOperation(context, uid, Settings
+                .getPackageNameForUid(context, uid), true /* throwException */);
+    }
+
     /** {@hide */
     public static final void enforceTetherChangePermission(Context context) {
         if (context.getResources().getStringArray(
@@ -1415,8 +1438,8 @@
                     android.Manifest.permission.CONNECTIVITY_INTERNAL, "ConnectivityService");
         } else {
             int uid = Binder.getCallingUid();
-            Settings.checkAndNoteChangeNetworkStateOperation(context, uid, Settings
-                    .getPackageNameForUid(context, uid), true);
+            Settings.checkAndNoteWriteSettingsOperation(context, uid, Settings
+                    .getPackageNameForUid(context, uid), true /* throwException */);
         }
     }
 
@@ -1521,8 +1544,11 @@
      * allowed between the tethered devices and this device, though upstream net
      * access will of course fail until an upstream network interface becomes
      * active.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
      *
      * @param iface the interface name to tether.
      * @return error a {@code TETHER_ERROR} value indicating success or failure type
@@ -1539,8 +1565,11 @@
 
     /**
      * Stop tethering the named interface.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
      *
      * @param iface the interface name to untether.
      * @return error a {@code TETHER_ERROR} value indicating success or failure type
@@ -1640,8 +1669,11 @@
      * attempt to switch to Rndis and subsequently tether the resulting
      * interface on {@code true} or turn off tethering and switch off
      * Rndis on {@code false}.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
      *
      * @param enable a boolean - {@code true} to enable tethering
      * @return error a {@code TETHER_ERROR} value indicating success or failure type
@@ -2310,8 +2342,11 @@
      * network may never attain, and whether a network will attain these states
      * is unknown prior to bringing up the network so the framework does not
      * know how to go about satisfing a request with these capabilities.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
      *
      * @param request {@link NetworkRequest} describing this request.
      * @param networkCallback The {@link NetworkCallback} to be utilized for this
@@ -2333,8 +2368,12 @@
      * network is not found within the given time (in milliseconds) the
      * {@link NetworkCallback#unavailable} callback is called.  The request must
      * still be released normally by calling {@link releaseNetworkRequest}.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param request {@link NetworkRequest} describing this request.
      * @param networkCallback The callbacks to be utilized for this request.  Note
      *                        the callbacks must not be shared - they uniquely specify
@@ -2407,8 +2446,12 @@
      * network may never attain, and whether a network will attain these states
      * is unknown prior to bringing up the network so the framework does not
      * know how to go about satisfing a request with these capabilities.
-     * <p>This method requires the caller to hold the permission
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
+     *
+     * <p>This method requires the caller to hold either the
+     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} permission
+     * or the ability to modify system settings as determined by
+     * {@link android.provider.Settings.System#canWrite}.</p>
+     *
      * @param request {@link NetworkRequest} describing this request.
      * @param operation Action to perform when the network is available (corresponds
      *                  to the {@link NetworkCallback#onAvailable} call.  Typically
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index f959ac4..891c018 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -1436,25 +1436,6 @@
     }
 
     /**
-     * An app can use this method to check if it is currently allowed to change the network
-     * state. In order to be allowed to do so, an app must first declare either the
-     * {@link android.Manifest.permission#CHANGE_NETWORK_STATE} or
-     * {@link android.Manifest.permission#WRITE_SETTINGS} permission in its manifest. If it
-     * is currently disallowed, it can prompt the user to grant it this capability through a
-     * management UI by sending an intent with action
-     * {@link android.provider.Settings#ACTION_MANAGE_WRITE_SETTINGS}.
-     *
-     * @param context A context
-     * @return true if the calling app can change the state of network, false otherwise.
-     * @hide
-     */
-    public static boolean canChangeNetworkState(Context context) {
-        int uid = Binder.getCallingUid();
-        return Settings.isCallingPackageAllowedToChangeNetworkState(context, uid, Settings
-                .getPackageNameForUid(context, uid), false);
-    }
-
-    /**
      * System settings, containing miscellaneous system preferences.  This
      * table holds simple name/value pairs.  There are convenience
      * functions for accessing individual settings entries.
@@ -8331,7 +8312,7 @@
      * write/modify system settings, as the condition differs for pre-M, M+, and
      * privileged/preinstalled apps. If the provided uid does not match the
      * callingPackage, a negative result will be returned. The caller is expected to have
-     * either WRITE_SETTINGS or CHANGE_NETWORK_STATE permission declared.
+     * the WRITE_SETTINGS permission declared.
      *
      * Note: if the check is successful, the operation of this app will be updated to the
      * current time.
@@ -8347,31 +8328,22 @@
     /**
      * Performs a strict and comprehensive check of whether a calling package is allowed to
      * change the state of network, as the condition differs for pre-M, M+, and
-     * privileged/preinstalled apps. If the provided uid does not match the
-     * callingPackage, a negative result will be returned. The caller is expected to have
-     * either of CHANGE_NETWORK_STATE or WRITE_SETTINGS permission declared.
-     * @hide
-     */
-    public static boolean isCallingPackageAllowedToChangeNetworkState(Context context, int uid,
-            String callingPackage, boolean throwException) {
-        return isCallingPackageAllowedToPerformAppOpsProtectedOperation(context, uid,
-                callingPackage, throwException, AppOpsManager.OP_WRITE_SETTINGS,
-                PM_CHANGE_NETWORK_STATE, false);
-    }
-
-    /**
-     * Performs a strict and comprehensive check of whether a calling package is allowed to
-     * change the state of network, as the condition differs for pre-M, M+, and
-     * privileged/preinstalled apps. If the provided uid does not match the
-     * callingPackage, a negative result will be returned. The caller is expected to have
-     * either CHANGE_NETWORK_STATE or WRITE_SETTINGS permission declared.
+     * privileged/preinstalled apps. The caller is expected to have either the
+     * CHANGE_NETWORK_STATE or the WRITE_SETTINGS permission declared. Either of these
+     * permissions allow changing network state; WRITE_SETTINGS is a runtime permission and
+     * can be revoked, but (except in M, excluding M MRs), CHANGE_NETWORK_STATE is a normal
+     * permission and cannot be revoked. See http://b/23597341
      *
-     * Note: if the check is successful, the operation of this app will be updated to the
-     * current time.
+     * Note: if the check succeeds because the application holds WRITE_SETTINGS, the operation
+     * of this app will be updated to the current time.
      * @hide
      */
     public static boolean checkAndNoteChangeNetworkStateOperation(Context context, int uid,
             String callingPackage, boolean throwException) {
+        if (context.checkCallingOrSelfPermission(android.Manifest.permission.CHANGE_NETWORK_STATE)
+                == PackageManager.PERMISSION_GRANTED) {
+            return true;
+        }
         return isCallingPackageAllowedToPerformAppOpsProtectedOperation(context, uid,
                 callingPackage, throwException, AppOpsManager.OP_WRITE_SETTINGS,
                 PM_CHANGE_NETWORK_STATE, true);
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 56689cc..4d52010 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -330,7 +330,8 @@
     <!-- ====================================================================== -->
     <eat-comment />
 
-    <!-- Used for runtime permissions related to user's contacts and profile. -->
+    <!-- Used for runtime permissions related to contacts and profiles on this
+        device. -->
     <permission-group android:name="android.permission-group.CONTACTS"
         android:icon="@drawable/perm_group_contacts"
         android:label="@string/permgrouplab_contacts"
@@ -1037,7 +1038,15 @@
     <eat-comment />
 
     <!-- Allows access to the list of accounts in the Accounts Service.
-        <p>Protection level: dangerous
+
+    <p class="note"><strong>Note:</strong> Beginning with Android 6.0 (API level
+    23), if an app shares the signature of the authenticator that manages an
+    account, it does not need <code>"GET_ACCOUNTS"</code> permission to read
+    information about that account. On Android 5.1 and lower, all apps need
+    <code>"GET_ACCOUNTS"</code> permission to read information about any
+    account.</p>
+
+    <p>Protection level: dangerous
     -->
     <permission android:name="android.permission.GET_ACCOUNTS"
         android:permissionGroup="android.permission-group.CONTACTS"
@@ -1673,12 +1682,12 @@
         android:protectionLevel="signature|privileged" />
 
     <!-- Allows applications to change network connectivity state.
-         <p>Protection level: signature
+         <p>Protection level: normal
     -->
     <permission android:name="android.permission.CHANGE_NETWORK_STATE"
         android:description="@string/permdesc_changeNetworkState"
         android:label="@string/permlab_changeNetworkState"
-        android:protectionLevel="signature|preinstalled|appop|pre23" />
+        android:protectionLevel="normal" />
 
     <!-- Allows an application to clear the caches of all installed
          applications on the device.
diff --git a/docs/html-intl/intl/es/design/get-started/principles.jd b/docs/html-intl/intl/es/design/get-started/principles.jd
index 351a4f7..719a5ce 100644
--- a/docs/html-intl/intl/es/design/get-started/principles.jd
+++ b/docs/html-intl/intl/es/design/get-started/principles.jd
@@ -14,8 +14,8 @@
 
 <h2 id="enchant-me">Cautívame</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">Deléitame de formas sorprendentes</h4>
 <p>Una superficie atractiva, una animación colocada en el lugar correcto o un efecto de sonido bien sincronizado suelen ser experiencias
@@ -23,7 +23,7 @@
 poderosa.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">Los objetos reales son más divertidos que los botones y los menús</h4>
-<p>Permita que los usuarios toquen y manipulen directamente los objetos de su aplicación. Esto reduce el esfuerzo cognitivo
+<p>Permite que los usuarios toquen y manipulen directamente los objetos de tu aplicación. Esto reduce el esfuerzo cognitivo
 que se necesita para llevar a cabo una tarea que resulte satisfactoria a nivel emocional.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,16 +49,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">Permíteme darle un toque personal</h4>
-<p>A los usuarios les gusta agregar toques personales, ya que esto los ayuda a sentirse cómodos y a sentir que tienen el control. Ofrezca
-opciones predeterminadas prácticas y atractivas, pero también tenga en cuenta personalizaciones opcionales y divertidas que no entorpezcan las
+<p>A los usuarios les gusta agregar toques personales, ya que esto los ayuda a sentirse cómodos y a sentir que tienen el control. Ofrece
+opciones predeterminadas prácticas y atractivas, pero también ten en cuenta personalizaciones opcionales y divertidas que no entorpezcan las
 tareas principales.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">Conóceme</h4>
-<p>Con el paso del tiempo, conozca las preferencias de los usuarios. En lugar de pedirles a los usuarios que elijan las mismas cosas una y otra
+<p>Con el paso del tiempo, conoce las preferencias de los usuarios. En lugar de pedirles a los usuarios que elijan las mismas cosas una y otra
 vez, permita que puedan acceder fácilmente a las opciones que ya eligieron antes.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">Simplifica mi vida</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">Sé breve</h4>
 <p>Utilice frases cortas con palabras simples. Las personas tienden a omitir las oraciones largas.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">Las imágenes son más prácticas que las palabras</h4>
-<p>Considere la idea de utilizar imágenes para explicar las ideas. Las imágenes atraen la atención de las personas y pueden ser mucho más eficientes
+<p>Considera la idea de utilizar imágenes para explicar las ideas. Las imágenes atraen la atención de las personas y pueden ser mucho más eficientes
 que las palabras.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">Decide por mí, pero permíteme tener la última palabra</h4>
-<p>Siga su instinto y actúe sin preguntar primero. Tener que elegir demasiadas veces y tomar muchas decisiones hace que las personas
-se sientan molestas. Permita que los usuarios puedan deshacer sus elecciones en caso de que no sean lo que ellos desean.</p>
+<p>Sigue su instinto y actúa sin preguntar primero. Tener que elegir demasiadas veces y tomar muchas decisiones hace que las personas
+se sientan molestas. Permite que los usuarios puedan deshacer sus elecciones en caso de que no sean lo que ellos desean.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="only-show-when-i-need-it">Solo muéstrame lo que necesito, cuando lo necesito</h4>
-<p>Los usuarios se sienten abrumados cuando se les presenta demasiada información al mismo tiempo. Divida las tareas y la información en fragmentos pequeños
-y fáciles de digerir. Oculte las opciones que no son fundamentales en el momento y capacite a los usuarios sobre la marcha.</p>
+<p>Los usuarios se sienten abrumados cuando se les presenta demasiada información al mismo tiempo. Divide las tareas y la información en fragmentos pequeños
+y fáciles de digerir. Oculta las opciones que no son fundamentales en el momento y capacita a los usuarios sobre la marcha.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">Siempre debo saber dónde me encuentro</h4>
-<p>Haga que los usuarios sientan que conocen el camino de regreso. Para ello, diseñe las distintas partes de su aplicación de modo tal que se vean diferentes y
-utilice transiciones para mostrar la relación entre las pantallas. Proporcione comentarios sobre las tareas que están en curso.</p>
+<p>Haz que los usuarios sientan que conocen el camino de regreso. Para ello, diseña las distintas partes de su aplicación de modo tal que se vean diferentes y
+utiliza transiciones para mostrar la relación entre las pantallas. Proporciona comentarios sobre las tareas que están en curso.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,16 +168,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">Nunca pierdas lo que es mío</h4>
-<p>Guarde aquellas cosas que los usuarios crearon y permítales acceder a ellas desde cualquier lugar. Recuerde las configuraciones,
+<p>Guarda aquellas cosas que los usuarios crearon y permíteles acceder a ellas desde cualquier lugar. Recuerda las configuraciones,
 los toques personales y las creaciones en todos los teléfonos, las tablets y las computadoras. Esta es la forma de hacer que las actualizaciones
 sean lo más simple del mundo.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">Si se ve igual, debe funcionar de la misma manera</h4>
-<p>Ayude a los usuarios a distinguir las diferencias funcionales al lograr que se vean diferentes en lugar de sutiles.
+<p>Ayuda a los usuarios a distinguir las diferencias funcionales al lograr que se vean diferentes en lugar de sutiles.
 Evite los modos, que son sitios que lucen similar pero actúan diferente ante la misma entrada.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">Solo interrúmpeme si es importante</h4>
 <p>Al igual que un buen asistente personal, evite a los usuarios los pormenores poco importantes. Las personas desean estar
 concentradas y, a menos que sea fundamental y esté sujeta a un plazo de tiempo, una interrupción puede resultar agobiante y frustrante.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,16 +220,16 @@
 
 <h2 id="make-me-amazing">Permíteme ser asombroso</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="give-me-tricks">Ofréceme trucos que funcionen en todos lados</h4>
-<p>Las personas se sienten muy bien cuando descubren cosas por sí mismos. Logre que su aplicación sea más simple de utilizar al
+<h4 id="give-me-tricks">Ofrézame trucos que funcionen en todos lados</h4>
+<p>Las personas se sienten muy bien cuando descubren cosas por sí mismos. Logra que su aplicación sea más simple de utilizar al
 aprovechar los patrones visuales y la memoria muscular de otras aplicaciones de Android. Por ejemplo, el gesto de deslizar rápidamente
 puede ser un buen acceso directo de navegación.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">No es mi culpa</h4>
-<p>Sea sutil cuando les solicite a los usuarios que realicen correcciones. Ellos desean sentirse inteligentes cuando usan la
-aplicación que usted creó. Si hacen algo mal, bríndeles instrucciones claras de recuperación, pero evite darles detalles técnicos.
-Sería incluso mejor que usted lo solucione en segundo plano.</p>
+<p>Sé sutil cuando solicites a los usuarios que realicen correcciones. Ellos desean sentirse inteligentes cuando usan la
+aplicación que creaste. Si hacen algo mal, bríndales instrucciones claras de recuperación, pero evita darles detalles técnicos.
+Sería incluso mejor que tú lo soluciones en segundo plano.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">Fomenta lo simple</h4>
-<p>Desglose las tareas complejas en pasos más pequeños que se puedan cumplir fácilmente. Ofrezca comentarios sobre las acciones,
+<p>Desglosa las tareas complejas en pasos más pequeños que se puedan cumplir fácilmente. Ofrece comentarios sobre las acciones,
 incluso si es simplemente un halago sutil.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,16 +273,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">Haz el trabajo pesado por mí</h4>
-<p>Haga que los principiantes se sientan como expertos al permitirles hacer cosas que pensaron que nunca podrían hacer. Por
-ejemplo, a través de los accesos directos en los que se combinan múltiples efectos de fotografías, puede lograr que las fotografías de principiantes se vean maravillosas
+<p>Haz que los principiantes se sientan como expertos al permitirles hacer cosas que pensaron que nunca podrían hacer. Por
+ejemplo, a través de los accesos directos en los que se combinan múltiples efectos de fotografías, puedes lograr que las fotografías de principiantes se vean maravillosas
 en solo algunos pasos.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">Haz que lo importante sea rápido</h4>
-<p>No todas las acciones son iguales. Decida qué es lo más importante en su aplicación y haga
+<p>No todas las acciones son iguales. Decide qué es lo más importante en tu aplicación y haz
 que los usuarios lo puedan encontrar fácilmente y utilizar de forma rápida, como el obturador de una cámara o el botón de pausa de un reproductor de música.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/es/design/material/index.jd b/docs/html-intl/intl/es/design/material/index.jd
index 8cd3428..8a8ac85 100644
--- a/docs/html-intl/intl/es/design/material/index.jd
+++ b/docs/html-intl/intl/es/design/material/index.jd
@@ -1,7 +1,7 @@
-page.title=Material Design
+page.title=Material Design para Android
 page.tags=Material,design
 page.type=design
-page.image=design/material/images/MaterialLight.png
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -41,11 +41,11 @@
 
 <p itemprop="description">Material Design es una guía integral para el diseño visual, de movimientos y
 de interacción en distintas plataformas y dispositivos. Android ahora es compatible con las aplicaciones de
-Material Design. Para usar Material Design en sus aplicaciones de Android, siga las pautas descritas
-en la <a href="http://www.google.com/design/spec">especificación de Material Design</a> y use los
+Material Design. Para usar Material Design en tus aplicaciones de Android, sigue las pautas descritas
+en la <a href="http://www.google.com/design/spec">especificación de Material Design</a> y usa los
 nuevos componentes y funcionalidades disponibles en Android 5.0 (nivel de API 21) y versiones posteriores.</p>
 
-<p>En Android, se proporcionan los siguientes elementos que le permitirán crear aplicaciones en Material Design:</p>
+<p>En Android, se proporcionan los siguientes elementos que te permitirán crear aplicaciones en Material Design:</p>
 
 <ul>
   <li>un tema nuevo;</li>
@@ -53,13 +53,13 @@
   <li>nuevas API (interfaces de programación de aplicaciones) para sombras y animaciones personalizadas.</li>
 </ul>
 
-<p>Para obtener más información sobre la implementación de Material Design en Android, consulte
+<p>Para obtener más información sobre la implementación de Material Design en Android, consulta
 <a href="{@docRoot}training/material/index.html">Creación de aplicaciones con Material Design</a>.</p>
 
 
 <h3>Tema Material</h3>
 
-<p>El tema Material le ofrece un nuevo estilo para su aplicación, widgets del sistema que le permiten configurar
+<p>El tema Material te ofrece un nuevo estilo para tu aplicación, widgets del sistema que te permiten configurar
 la paleta de colores y animaciones predeterminadas para información táctil y transiciones de actividades.</p>
 
 <!-- two columns -->
@@ -79,7 +79,7 @@
 <br style="clear:left"/>
 </div>
 
-<p>Para obtener más información, consulte <a href="{@docRoot}training/material/theme.html">Uso del tema
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/theme.html">Uso del tema
 Material</a>.</p>
 
 
@@ -97,13 +97,13 @@
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
-  <p>El nuevo widget <code>CardView</code> le permite mostrar extractos de información importante dentro de
+  <p>El nuevo widget <code>CardView</code> te permite mostrar extractos de información importante dentro de
  tarjetas que tienen apariencia y estilo coherentes.</p>
 </div>
 <br style="clear:left"/>
 </div>
 
-<p>Para obtener más información, consulte <a href="{@docRoot}training/material/lists-cards.html">Creación de listas
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/lists-cards.html">Creación de listas
 y tarjetas</a>.</p>
 
 
@@ -126,24 +126,24 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <em>Para volver a reproducir la película, haga clic en la pantalla del dispositivo.</em>
+    <em>Para volver a reproducir la película, haz clic en la pantalla del dispositivo.</em>
   </div>
 </div>
 
-<p>Para obtener más información, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Definición
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/shadows-clipping.html">Definición
 de vistas de recorte y sombras</a>.</p>
 
 
 <h3>Animaciones</h3>
 
-<p>Las nuevas API de animaciones le permiten crear animaciones personalizadas para la información táctil en los controles de IU,
+<p>Las nuevas API de animaciones te permiten crear animaciones personalizadas para la información táctil en los controles de IU,
 además de realizar cambios en el estado de las vistas y transiciones entre actividades.</p>
 
-<p>Estas API le permiten hacer lo siguiente:</p>
+<p>Estas API te permiten hacer lo siguiente:</p>
 
 <ul>
 <li style="margin-bottom:15px">
-responder a los eventos táctiles de sus vistas mediante animaciones de <strong>información táctil</strong>;
+responder a los eventos táctiles de tus vistas mediante animaciones de <strong>información táctil</strong>;
 </li>
 <li style="margin-bottom:15px">
 ocultar y mostrar vistas con animaciones con <strong>efecto circular</strong>;
@@ -163,24 +163,24 @@
 </ul>
 
 <p>Las animaciones de la información táctil se concentran en diferentes vistas estándar, como los botones. Las nuevas API
-le permiten personalizar estas animaciones y agregarlas a sus vistas personalizadas.</p>
+te permiten personalizar estas animaciones y agregarlas a tus vistas personalizadas.</p>
 
-<p>Para obtener más información, consulte <a href="{@docRoot}training/material/animations.html">Definición de animaciones
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/animations.html">Definición de animaciones
 personalizadas</a>.</p>
 
 
 <h3>Elementos de diseño</h3>
 
-<p>Estas nuevas capacidades para los elementos de diseño le permiten implementar aplicaciones de Material Design:</p>
+<p>Estas nuevas capacidades para los elementos de diseño te permiten implementar aplicaciones de Material Design:</p>
 
 <ul>
 <li>Los <strong>dibujables en vector</strong> se pueden escalar sin perder definición y son perfectos
 para los iconos de las aplicaciones de un solo color.</li>
-<li>El <strong>teñido de los dibujables</strong> le permite definir mapas de bits como máscaras alfa y pintarlos con
+<li>El <strong>teñido de los dibujables</strong> te permite definir mapas de bits como máscaras alfa y pintarlos con
 un color durante el tiempo de ejecución.</li>
-<li>La <strong>extracción de color</strong> le permite extraer automáticamente colores prominentes de una
+<li>La <strong>extracción de color</strong> te permite extraer automáticamente colores prominentes de una
 imagen del mapa de bits.</li>
 </ul>
 
-<p>Para obtener más información, consulte <a href="{@docRoot}training/material/drawables.html">Trabajo con
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/drawables.html">Trabajo con
 elementos de diseño</a>.</p>
diff --git a/docs/html-intl/intl/es/design/patterns/compatibility.jd b/docs/html-intl/intl/es/design/patterns/compatibility.jd
new file mode 100644
index 0000000..fe16ede
--- /dev/null
+++ b/docs/html-intl/intl/es/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=Compatibilidad con versiones anteriores
+page.tags="support"
+page.metaDescription=Notas sobre cómo Android 4.x adapta la IU diseñada para versiones de hardware y de SO anteriores.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>Documentos para desarrolladores</h3>
+    <p>Compatible con diferentes dispositivos</p>
+  </div>
+</a>
+
+<p>Estos son algunos de los cambios importantes en Android 3.0:</p>
+<ul>
+<li>Se dejan de usar las teclas físicas de menú (Atrás, Menú, Búsqueda, Inicio) en favor de la navegación
+mediante controles virtuales (Back, Home, Recents).</li>
+<li>Patrón sólido para el uso de menús en las barras de acción.</li>
+</ul>
+<p>Android 4.0 incorpora estos cambios para tablets en la plataforma del teléfono.</p>
+
+<h2 id="older-hardware">Adaptar Android 4.0 a hardware y aplicaciones anteriores</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Teléfonos con controles de navegación virtuales</h4>
+<p>Las aplicaciones de Android escritas para Android 3.0 y versiones posteriores muestran acciones en la barra de acciones. Las acciones que no
+caben en la barra de acciones o que no son lo suficientemente importantes para que se las muestre en el nivel superior aparecen en la
+ampliación de acciones (action overflow).</p>
+<p>Los usuarios acceden a la ampliación de acciones (action overflow) tocando la barra de acciones.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Teléfonos con teclas de navegación físicas</h4>
+<p>Los teléfonos con Android que tienen teclas físicas de navegación no muestran la barra de navegación virtual en
+la parte inferior de la pantalla. En cambio, la ampliación de acciones (action overflow) está disponible desde la tecla física de menú. La
+ventana emergente con acciones que se muestra tiene el mismo estilo que la del ejemplo anterior, pero aparece en la parte inferior de la pantalla.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Aplicaciones heredadas en teléfonos con controles de navegación virtuales</h4>
+<p>Cuando se ejecuta una aplicación que fue generada para Android 2.3 o versiones anteriores en un teléfono con controles de
+navegación virtuales, aparece un control de ampliación de acciones (action overflow) a la derecha de la barra de navegación virtual. Se
+puede tocar el control para ver las acciones de la aplicación con el estilo del menú tradicional de Android.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/es/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/es/design/patterns/confirming-acknowledging.jd
index fbaa060..9e41189 100644
--- a/docs/html-intl/intl/es/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/es/design/patterns/confirming-acknowledging.jd
@@ -2,14 +2,14 @@
 page.tags=dialog,toast,notification
 @jd:body
 
-<p>En algunos casos, cuando un usuario invoca una acción desde su aplicación, se recomienda <em>confirmar</em> o proporcionar un <em>reconocimiento</em> de dicha acción a través del texto.</p>
+<p>En algunos casos, cuando un usuario invoca una acción desde tu aplicación, se recomienda <em>confirmar</em> o proporcionar un <em>reconocimiento</em> de dicha acción a través del texto.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>Confirmación</strong> es solicitarle al usuario que verifique que realmente desea proceder con una acción que acaba de invocar. En algunos casos, la confirmación se presenta junto con una advertencia o mensaje con información importante relacionada con la acción que el usuario debe aprobar.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p>El <strong>reconocimiento</strong> hace referencia al hecho de mostrar un determinado texto para informarle al usuario que la acción que acaba de invocar ya se completó. De este modo, se elimina la incertidumbre sobre las operaciones implícitas que lleva a cabo el sistema. En algunos casos, el reconocimiento se presenta junto con una opción para deshacer la acción.</p>
   </div>
@@ -18,18 +18,18 @@
 <p>Comunicarse con los usuarios de este modo permite reducir la incertidumbre respecto de acciones pasadas o futuras. Mediante la confirmación o el reconocimiento también se puede evitar que los usuarios cometan errores de los que podrían arrepentirse.</p>
 
 <h2>Cuándo se debe solicitar una confirmación o proporcionar un reconocimiento de las acciones de los usuarios</h2>
-<p>No es necesario que se solicite una confirmación o se proporcione un reconocimiento para todas las acciones. Utilice este diagrama de flujo cuando tenga que tomar decisiones relacionadas con el diseño.</p>
+<p>No es necesario que se solicite una confirmación o se proporcione un reconocimiento para todas las acciones. Utiliza este diagrama de flujo cuando tengas que tomar decisiones relacionadas con el diseño.</p>
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>Confirmación</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Ejemplo: Google Play Books</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>En este ejemplo, el usuario solicitó eliminar un libro de su biblioteca de Google Play. Aparecerá una <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">alerta</a> para confirmar esta acción porque es importante que el usuario comprenda que el libro ya no estará disponible desde ningún dispositivo.</p>
-    <p>Cuando diseñe un cuadro de diálogo de confirmación, asegúrese de que el título sea significativo y que incluya la acción solicitada.</p>
+    <p>Cuando diseñes un cuadro de diálogo de confirmación, asegúrate de que el título sea significativo y que incluya la acción solicitada.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Ejemplo: Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>No es necesario que las confirmaciones se presenten en todas las alertas con dos botones. Luego de iniciar Android Beam, se le solicita al usuario que seleccione el contenido que desea compartir (en este ejemplo, se trata de una fotografía). Si el usuario decide no continuar, simplemente se descartará el teléfono de la lista.</p>
@@ -37,15 +37,15 @@
 </div>
 
 <h2>Reconocimiento</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Ejemplo: Borrador de Gmail abandonado y guardado</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>En este ejemplo, si el usuario navega con los botones Back o Up desde la pantalla de redacción de Gmail, posiblemente ocurrirá algo inesperado: el borrador actual se guardará automáticamente. Esto se mostrará a través de un reconocimiento en forma de aviso. Dicho aviso desaparece luego de algunos segundos.</p>
     <p>En este caso, no se puede incluir la opción de deshacer porque el almacenamiento fue iniciado por la aplicación, no por el usuario. Gracias a esto, se puede continuar redactando el mensaje de forma rápida y fácil con solo navegar hasta la lista de borradores.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>Ejemplo: Conversación de Gmail eliminada</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>Después de que el usuario elimina una conversación de la lista de Gmail, aparece un mensaje de reconocimiento con la opción de deshacer la acción. Dicho reconocimiento seguirá en pantalla hasta que el usuario lleve a cabo una acción no relacionada, como desplazarse por la lista.</p>
@@ -53,14 +53,14 @@
 </div>
 
 <h2>Sin confirmación ni reconocimiento</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Ejemplo: Hacer +1</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
-    <p><strong>No se necesita confirmación</strong>. Si el usuario hizo +1 sin querer, esto no es un problema. Simplemente, puede tocar el botón de nuevo para deshacer la acción.</p>
+    <p><strong>No se necesita confirmación</strong>. Si el usuario eligió +1 sin querer, esto no es un problema. Simplemente, puede tocar el botón de nuevo para deshacer la acción.</p>
     <p><strong>No se necesita un reconocimiento</strong>. El usuario verá que el botón +1 parpadea y cambia a color rojo. Esa es una señal muy clara.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Ejemplo: Eliminación de una aplicación de la pantalla de inicio</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>No se necesita confirmación</strong>. Esta es una acción intencionada: el usuario debe arrastrar y colocar un elemento en un destino relativamente grande y aislado. Por lo tanto, es poco probable que se cometan errores. No obstante, si el usuario se arrepiente de la decisión que tomó, solo demorará algunos segundos en recuperar lo eliminado.</p>
diff --git a/docs/html-intl/intl/es/design/patterns/navigation.jd b/docs/html-intl/intl/es/design/patterns/navigation.jd
index 6332491..e7d73fd 100644
--- a/docs/html-intl/intl/es/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/es/design/patterns/navigation.jd
@@ -12,10 +12,10 @@
 
 <p itemprop="description">La navegación coherente es un componente fundamental de la experiencia general del usuario. Pocas situaciones frustran más a los
 usuarios que la navegación básica que se comporta de forma irregular e inesperada. En Android 3.0,
-se introdujeron cambios significativos en el comportamiento global de la navegación. Si sigue detalladamente
-las pautas de navegación con los botones Back y Up, la navegación en su aplicación será predecible y confiable para los usuarios.</p>
+se introdujeron cambios significativos en el comportamiento global de la navegación. Si sigues detalladamente
+las pautas de navegación con los botones Back y Up, la navegación en tu aplicación será predecible y confiable para los usuarios.</p>
 <p>En Android 2.3 y versiones anteriores, se confió en el botón <em>Back</em> del sistema para respaldar la navegación dentro de una
-aplicación. Con la introducción de las barras de acciones en Android 3.0, apareció un segundo mecanismo de navegación:
+aplicación. Con la introducción de las barras de acción en Android 3.0, apareció un segundo mecanismo de navegación:
 el botón <em>Up</em>, que consiste en el icono de la aplicación y una pequeña flecha a la izquierda.</p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
@@ -26,7 +26,7 @@
 entre pantallas. Por ejemplo, si en la pantalla A se muestra una lista de elementos y, si se selecciona un elemento, se conduce al usuario a la
 pantalla B (en la que se presenta ese elemento de forma más detallada), entonces en la pantalla B se debe mostrar el botón Up para regresar
 a la pantalla A.</p>
-<p>Si una pantalla aparece en la parte superior de una aplicación (es decir, en el inicio de la aplicación), no debe incluir el botón Up
+<p>Si una pantalla aparece en la parte superior de una aplicación (es decir, en el inicio de la aplicación), no debes incluir el botón Up
 .</p>
 
 <p>El botón Back del sistema se utiliza para navegar, en orden cronológico inverso, por el historial
@@ -47,11 +47,11 @@
 <li>descartar las barras de acción contextuales y eliminar el resaltado de los elementos seleccionados;</li>
 <li>ocultar el teclado en la pantalla (IME [Editores de métodos de entrada]).</li>
 </ul>
-<h2 id="within-app">Navegación dentro de su aplicación</h2>
+<h2 id="within-app">Navegación dentro de tu aplicación</h2>
 
 <h4>Navegación hacia pantallas con múltiples puntos de entrada</h4>
 <p>En algunos casos, las pantallas no tienen una posición fija dentro de la jerarquía de la aplicación, y se puede acceder a ellas
-desde múltiples puntos de entrada (como la pantalla Configuración, a la que se puede acceder desde cualquier otra pantalla
+desde múltiples puntos de entrada (como la pantalla de configuración, a la que se puede acceder desde cualquier otra pantalla
 de la aplicación). En este caso, el botón Up debe permitir regresar a la pantalla remitente, por lo que se comportaría
 de forma idéntica al botón Back.</p>
 <h4>Cambio de vista dentro de una pantalla</h4>
@@ -66,7 +66,7 @@
 <li>modificación de las características de la pantalla (como el zoom).</li>
 </ul>
 <h4>Navegación entre pantallas relacionadas</h4>
-<p>Si su aplicación es compatible con la navegación desde una lista de elementos hacia una vista de detalles de alguno de esos elementos, generalmente,
+<p>Si tu aplicación es compatible con la navegación desde una lista de elementos hacia una vista de detalles de alguno de esos elementos, generalmente,
 es preferible respaldar la navegación de dirección desde ese elemento a otro anterior
 o siguiente en la lista. Por ejemplo, en Gmail, es fácil deslizarse hacia la izquierda o la derecha desde una conversación
 para ver una conversación anterior o más nueva en la misma bandeja de entrada. Al igual que cuando se cambia la vista dentro de una pantalla, en este tipo de
@@ -82,17 +82,17 @@
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
 
-<p>Usted puede lograr que el comportamiento del botón Up sea incluso más inteligente teniendo en cuenta sus conocimientos de la vista
+<p>Puedes lograr que el comportamiento del botón Up sea incluso más inteligente teniendo en cuenta tus conocimientos de la vista
 detallada. Si extendemos el ejemplo de Play Store mencionado antes, imaginemos que el usuario navegó desde el último
-libro visto hacia los detalles de la adaptación de la película. En ese caso, mediante el botón Up podrá regresar a un contenedor
+libro visto hacia los detalles de la adaptación de la película. En ese caso, mediante el botón Up podrás regresar a un contenedor
 (Películas) por el que el usuario no navegó anteriormente.</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
 
 <h2 id="into-your-app">Navegación dentro de la aplicación a través de los widgets y las notificaciones de la pantalla de inicio</h2>
 
-<p>Podrá utilizar los widgets y las notificaciones de la pantalla de inicio para ayudar a los usuarios a navegar directamente hacia las pantallas
-que se encuentran en posiciones más profundas dentro de la jerarquía de su aplicación. Por ejemplo, tanto el widget de la bandeja de entrada de Gmail como las notificaciones de los mensajes nuevos
+<p>Podrás utilizar los widgets y las notificaciones de la pantalla de inicio para ayudar a los usuarios a navegar directamente hacia las pantallas
+que se encuentran en posiciones más profundas dentro de la jerarquía de tu aplicación. Por ejemplo, tanto el widget de la bandeja de entrada de Gmail como las notificaciones de los mensajes nuevos
  pueden omitir la pantalla Bandeja de entrada y llevar al usuario directamente hacia una vista de conversación.</p>
 
 <p>En ambos casos, el botón Up se debe utilizar de la siguiente manera:</p>
@@ -100,12 +100,12 @@
 <ul>
 <li><em>Si a la pantalla de destino generalmente se llega desde una determinada pantalla dentro de su
 aplicación</em>, el botón Up debe permitir la navegación hacia esa pantalla.</li>
-<li><em>De lo contrario, </em>el botón Up debe permitir la navegación hacia la pantalla que está en el nivel superior ("Inicio") de su aplicación.</li>
+<li><em>De lo contrario, </em>el botón Up debe permitir la navegación hacia la pantalla que está en el nivel superior ("Inicio") de tu aplicación.</li>
 </ul>
 
-<p>En el caso del botón Back, la navegación debe ser más predecible. Para ello, coloque en la
+<p>En el caso del botón Back, la navegación debe ser más predecible. Para ello, coloca en la
 pila de retroceso de la tarea la ruta completa de la navegación ascendente hacia la pantalla que se encuentra en el nivel superior de la aplicación. De este modo, los usuarios que
-no recuerdan cómo ingresaron a su aplicación podrán navegar hacia la pantalla del nivel superior de la aplicación antes de
+no recuerdan cómo ingresaron a tu aplicación podrán navegar hacia la pantalla del nivel superior de la aplicación antes de
 salir.</p>
 
 <p>A modo de ejemplo, el widget de la pantalla Inicio de Gmail posee un botón para llevar al usuario directamente a la pantalla de
@@ -116,7 +116,7 @@
 
 <h4>Notificaciones indirectas</h4>
 
-<p>Cuando su aplicación necesita presentar información sobre múltiples eventos de forma simultánea, puede utilizar una
+<p>Cuando tu aplicación necesita presentar información sobre múltiples eventos de forma simultánea, puede utilizar una
 sola notificación que dirija al usuario a una pantalla intersticial. En esta pantalla, se resumen dichos
 eventos y se proporcionan rutas para que el usuario navegue más profundamente por la aplicación. Las notificaciones de este estilo se
 denominan <em>notificaciones indirectas</em>.</p>
@@ -127,11 +127,11 @@
 pantalla intersticial, los botones Up y Back se comportan del mismo modo que lo hacen en las notificaciones estándar, como se describió antes:
 navegan dentro de la aplicación en lugar de regresar a la pantalla intersticial.</p>
 
-<p>Por ejemplo, supongamos que un usuario de Gmail recibe una notificación indirecta del calendario Si se toca
+<p>Por ejemplo, supongamos que un usuario de Gmail recibe una notificación indirecta del calendario. Si se toca
 esta notificación, se abrirá la pantalla intersticial, en la que se mostrarán recordatorios de varios
 eventos diferentes. Si se toca Back desde la pantalla intersticial, el usuario volverá a Gmail. Si se toca un evento
 en particular, el usuario saldrá de la pantalla intersticial e ingresará en la aplicación Calendario, donde se mostrarán detalles del
-evento. En la pantalla de detalles del evento, es posible navegar con los botones Up y Back hacia la vista superior del calendario.</p>
+evento. En la pantalla de detalles del evento, es posible navegar con los botones Up y Back hacia la visomunmenteta superior del calendario.</p>
 
 <img src="{@docRoot}design/media/navigation_indirect_notification.png">
 
@@ -154,19 +154,19 @@
 
 <p>Una de las principales ventajas del sistema Android es la capacidad de las aplicaciones de activarse
 mutuamente, por lo que el usuario puede navegar directamente desde una aplicación hacia otra. Por ejemplo, una
-aplicación que debe tomar una fotografía puede activar la aplicación de la cámara, la cual mostrará la fotografía
+aplicación que debe tomar una fotografía puede area appactivar la aplicación de la cámara, la cual mostrará la fotografía
 en la aplicación que la activó. Esto representa una gran ventaja tanto para el desarrollador, quien puede aprovechar fácilmente el
-código de otras aplicaciones, y también para el usuario, quien disfruta de una experiencia coherente para acciones
+código de otras aplicaciones, como para el usuario, quien disfruta de una experiencia coherente para acciones
 que se realizan comúnmente.</p>
 
-<p>Para comprender la navegación entre aplicaciones, es importante que entienda el comportamiento del marco de Android,
+<p>Para comprender la navegación entre aplicaciones, es importante que se entienda el comportamiento del framework de Android,
 que se explica a continuación.</p>
 
 <h4>Actividades, tareas e intentos</h4>
 
 <p>En Android, una <strong>actividad</strong> es un componente de la aplicación que define una pantalla de
-información y todas las acciones relacionadas que el usuario puede llevar a cabo. Su aplicación es un conjunto de
-actividades formado por las actividades que usted crea y aquellas que reutiliza de otras aplicaciones.</p>
+información y todas las acciones relacionadas que el usuario puede llevar a cabo. Tu aplicación es un conjunto de
+actividades formado por las actividades que creas y aquellas que reutilizas de otras aplicaciones.</p>
 
 <p>Una <strong>tarea</strong> es la secuencia de actividades que un usuario realiza para lograr un objetivo. En
 una sola tarea, se pueden utilizar actividades de una sola aplicación o se pueden utilizar actividades de varias
@@ -179,10 +179,10 @@
 
 <h4>Ejemplo: navegación entre aplicaciones para respaldar el uso compartido</h4>
 
-<p>Para comprender cómo las actividades, las tareas y los intentos funcionan en conjunto, considere cómo una aplicación les permite a los usuarios
-compartir contenido a través de otra aplicación. Por ejemplo, si ejecuta la aplicación Play Store desde la pantalla de inicio, se iniciará
-una nueva tarea A (vea la imagen a continuación). Después de navegar por Play Store y de tocar un libro promocionado
-para ver la información detallada, el usuario permanece en la misma tarea y la extiende al agregar actividades. Si se desencadena la acción
+<p>Para comprender cómo las actividades, las tareas y los intentos (intents) funcionan en conjunto, considera cómo una aplicación les permite a los usuarios
+compartir contenido a través de otra aplicación. Por ejemplo, si se ejecuta la aplicación Play Store desde la pantalla de inicio, se iniciará
+una nueva tarea A (consulta la imagen a continuación). Después de navegar por Play Store y de tocar un libro promocionado
+para ver su información detallada, el usuario permanece en la misma tarea y la extiende al agregar actividades. Si se desencadena la acción
 Compartir, se le mostrará al usuario un cuadro de diálogo con una lista de todas las actividades (provenientes de diferentes aplicaciones)
 que se registraron para concretar el intento de compartir.</p>
 
@@ -208,6 +208,6 @@
 Recientes). Si Gmail ya estaba ejecutando su propia tarea en segundo plano, esta se reemplazará con la
 tarea B, y el contexto anterior se abandonará para darle preferencia al nuevo objetivo del usuario.</p>
 
-<p>Cuando su aplicación se registre para manipular los intentos de una actividad que se encuentra en un nivel profundo dentro de la jerarquía de la aplicación,
-consulte <a href="#into-your-app">Navegación dentro de la aplicación a través de los widgets y
+<p>Cuando tu aplicación se registre para manipular los intentos de una actividad que se encuentra en un nivel profundo dentro de la jerarquía de la aplicación,
+consulta <a href="#into-your-app">Navegación dentro de la aplicación a través de los widgets y
 las notificaciones de la pantalla de inicio</a> para obtener información sobre cómo especificar la navegación del botón Up.</p>
diff --git a/docs/html-intl/intl/es/index.jd b/docs/html-intl/intl/es/index.jd
index 89f6362..46974cfe 100644
--- a/docs/html-intl/intl/es/index.jd
+++ b/docs/html-intl/intl/es/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/es/training/material/animations.jd b/docs/html-intl/intl/es/training/material/animations.jd
index 7a13583..5bd289e 100644
--- a/docs/html-intl/intl/es/training/material/animations.jd
+++ b/docs/html-intl/intl/es/training/material/animations.jd
@@ -1,10 +1,10 @@
-page.title=Definir animaciones personalizadas 
+page.title=Definir animaciones personalizadas
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#Touch">Personalizar la respuesta táctil</a></li>
   <li><a href="#Reveal">Usar el efecto Revelar</a></li>
@@ -15,13 +15,16 @@
 <h2>También deberías leer</h2>
 <ul>
   <li><a href="http://www.google.com/design/spec">Especificación de Material Design</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Diseño material en Android</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design en Android</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>Las animaciones en Material Design proporcionan a los usuarios comentarios sobre sus acciones y continuidad visual a medida que los usuarios interactúan con su aplicación. El tema material proporciona algunas animaciones predeterminadas para botones y transiciones de actividades; Android 5.0 (nivel de API 21) y superior te permite personalizar estas animaciones y crear unas nuevas:</p>
+<p>Las animaciones en Material Design proporcionan a los usuarios comentarios sobre sus acciones y continuidad visual
+a medida que los usuarios interactúan con su aplicación. El tema material proporciona algunas animaciones predeterminadas
+para botones y transiciones de actividades; Android 5.0 (API nivel 21) y superior te permite personalizar estas
+animaciones y crear unas nuevas:</p>
 
 <ul>
 <li>Respuesta táctil</li>
@@ -34,28 +37,42 @@
 
 <h2 id="Touch">Personalizar la respuesta táctil</h2>
 
-<p>La respuesta táctil en Material Design proporciona una confirmación visual instantánea en el punto de contacto cuando los usuarios interactúan con los elementos de la IU (interfaz de usuario, en inglés: UI, User Interface). Las animaciones predeterminadas de la respuesta táctil para botones usan la nueva clase {@link android.graphics.drawable.RippleDrawable}, que realiza una transición entre diferentes estados con un efecto de ondas.</p>
+<p>La respuesta táctil en Material Design proporciona una confirmación visual instantánea en el punto
+de contacto cuando los usuarios interactúan con los elementos de la IU. Las animaciones predeterminadas de la respuesta táctil para
+botones usan la nueva clase {@link android.graphics.drawable.RippleDrawable}, que realiza una transición
+entre diferentes estados con un efecto de ondas.</p>
 
-<p>En la mayoría de los casos, debes aplicar esta funcionalidad en tu vista XML al especificar el fondo de la vista como:</p>
+<p>En la mayoría de los casos, debes aplicar esta funcionalidad en la vista XML especificando el fondo
+de la vista como:</p>
 
 <ul>
-<li><code>?android:attr/selectableItemBackground</code> para un efecto de ondas con límites</li>
-<li><code>?android:attr/selectableItemBackgroundBorderless</code> para un efecto de ondas que se extiende más allá de la vista</li>
+<li><code>?android:attr/selectableItemBackground</code> para un efecto de ondas con límites.</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> para un efecto de ondas que se extiende más allá de
+la vista. Se lo dibujará en la vista primaria más cercana de la vista (que lo limitará) con un fondo de valor no
+nulo.</li>
 </ul>
 
-<p class="note"><strong>Nota:</strong> <code>selectableItemBackgroundBorderless</code> es un nuevo atributo introducido en el nivel de API 21.</p>
+<p class="note"><strong>Nota:</strong> <code>selectableItemBackgroundBorderless</code> es un nuevo
+atributo introducido en la API de nivel 21.</p>
 
 
-<p>Alternativamente, puedes definir un {@link android.graphics.drawable.RippleDrawable} como un recurso XML que usa el elemento <code>ripple</code>.</p>
+<p>Alternativamente, puedes definir un {@link android.graphics.drawable.RippleDrawable}
+como un recurso XML que usa el elemento <code>ripple</code>.</p>
 
-<p>Puedes asignar un color a los objetos {@link android.graphics.drawable.RippleDrawable}. Para cambiar el color predeterminado de la respuesta táctil, usa el atributo <code>android:colorControlHighlight</code> del tema.</p>
+<p>Puedes asignar un color a los objetos {@link android.graphics.drawable.RippleDrawable}. Para cambiar
+el color predeterminado de la respuesta táctil, usa el atributo <code>android:colorControlHighlight</code>
+del tema.</p>
 
-<p>Para más información, consulta la referencia de la API para la clase {@link android.graphics.drawable.RippleDrawable}.</p>
+<p>Para más información, consulta la referencia de la API para la clase {@link
+android.graphics.drawable.RippleDrawable}.</p>
 
 
 <h2 id="Reveal">Usar el efecto revelar</h2>
 
-<p>Las animaciones del efecto revelar proporcionan a los usuarios una continuidad visual cuando muestras u ocultas un grupo de elementos de la IU. El método {@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} te permite animar un círculo de recorte para revelar u ocultar una vista.</p>
+<p>Las animaciones del efecto revelar proporcionan a los usuarios una continuidad visual cuando muestras u ocultas un grupo de elementos
+de la IU. El método {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} te permite animar un círculo de recorte para
+revelar u ocultar una vista.</p>
 
 <p>Para revelar una vista previamente invisible usando este efecto:</p>
 
@@ -122,22 +139,32 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Figura 1</strong>: una transición con elementos compartidos.</p>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Figura 1</strong>: una
+transición con elementos compartidos.</p>
     <em>Para volver a reproducir la película, haz clic en la pantalla del dispositivo.</em>
   </div>
 </div>
 
-<p>Las transiciones de actividades en las aplicaciones de Material Design proporcionan conexiones visuales entre diferentes estados mediante el movimiento y las transformaciones entre elementos comunes. Puedes especificar las animaciones personalizadas para entrar y salir de las transiciones y para las transiciones de elementos compartidos entre actividades.</p>
+<p>Las transiciones de actividades en las aplicaciones de Material Design proporcionan conexiones visuales entre diferentes estados
+mediante el movimiento y las transformaciones entre elementos comunes. Puedes especificar las animaciones personalizadas para
+entrar y salir de las transiciones y para las transiciones de elementos compartidos entre actividades.</p>
 
 <ul>
-<li>Una transición de <strong>entrada</strong> determina cómo entran en escena las vistas en una actividad. Por ejemplo, en la transición de entrada <em>expandir</em>, las vistas entran en escena desde el exterior y vuelan hacia el centro de la pantalla.</li>
+<li>Una transición de <strong>entrada</strong> determina cómo entran en escena las vistas en una actividad.
+Por ejemplo, en la transición de entrada <em>expandir</em>, las vistas entran en escena desde el exterior
+y vuelan hacia el centro de la pantalla.</li>
 
-<li>Una transición de <strong>salida</strong> determina cómo salen de escena las vistas en una actividad. Por ejemplo, en la transición de entrada <em>expandir</em>, las vistas salen de escena lejos del centro.</li>
+<li>Una transición de <strong>salida</strong> determina cómo salen de escena las vistas en una actividad. Por
+ejemplo, en la transición de salida <em>expandir</em>, las vistas salen de escena lejos del
+centro.</li>
 
-<li>Una transición <strong>elementos compartidos</strong> determina cómo las vistas que están compartidas entre dos actividades realizan una transición entre las mismas. Por ejemplo, si dos actividades tienen la misma imagen en diferentes posiciones y tamaños, la transición de elementos compartidos <em>changeImageTransform</em> traduce y escala la imagen suavemente entre estas actividades.</li>
+<li>Una transición de <strong>elementos compartidos</strong> determina cómo las vistas que están compartidas entre
+dos actividades realizan la transición entre estas. Por ejemplo, si dos actividades tienen la misma
+imagen en diferentes posiciones y tamaños, la transición de elementos compartidos <em>changeImageTransform</em>
+traduce y escala la imagen suavemente entre estas actividades.</li>
 </ul>
 
-<p>Android 5.0 (nivel de API 21) admite estas transiciones de entrada y salida:</p>
+<p>Android 5.0 (API nivel 21) admite estas transiciones de entrada y salida:</p>
 
 <ul>
 <li><em>expandir</em>: desplaza vistas hacia adentro o hacia afuera del centro de la escena.</li>
@@ -145,9 +172,11 @@
 <li><em>difuminar</em>: agrega o quita una vista de la escena al cambiar su opacidad.</li>
 </ul>
 
-<p>Toda transición que extiende la clase {@link android.transition.Visibility} está admitida como una transición de entrada o salida. Para más información, consulta la referencia de la API para la clase {@link android.transition.Transition}.</p>
+<p>Toda transición que extiende la clase {@link android.transition.Visibility} se admite
+como una transición de entrada o salida. Para más información, consulta la referencia de la API para la clase
+{@link android.transition.Transition}.</p>
 
-<p>Android 5.0 (nivel de API 21) también admite estas transiciones de elementos compartidos:</p>
+<p>Android 5.0 (API nivel 21) también admite estas transiciones de elementos compartidos:</p>
 
 <ul>
 <li><em>changeBounds</em>: anima los cambios en los límites de las vistas de destino.</li>
@@ -156,7 +185,8 @@
 <li><em>changeImageTransform</em>: anima los cambios de tamaño y escala de imágenes de destino.</li>
 </ul>
 
-<p>Cuando habilitas las transiciones de actividades en tu aplicación, la transición entre difuminados predeterminada se activa entre las actividades que ingresan y salen.</p>
+<p>Cuando habilitas las transiciones de actividades en tu aplicación, la transición entre difuminados predeterminada se
+activa entre las actividades que ingresan y salen.</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
@@ -165,7 +195,9 @@
 
 <h3>Especificar transiciones personalizadas</h3>
 
-<p>Primero, habilita las transiciones de contenido de la ventana con el atributo <code>android:windowContentTransitions</code> cuando definas un estilo que herede del tema material. También puedes especificar transiciones de entrada, salida y elementos compartidos en tu definición de estilo:</p>
+<p>Primero, habilita las transiciones de contenido de la ventana con el atributo <code>android:windowContentTransitions</code>
+cuando definas un estilo que herede del tema material. También puedes especificar
+transiciones de entrada, salida y elementos compartidos en tu definición de estilo:</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p>El elemento <code>changeImageTransform</code> corresponde a la clase {@link android.transition.ChangeImageTransform}. Para más información, consulta la referencia de la API para {@link android.transition.Transition}.</p>
+<p>El elemento <code>changeImageTransform</code> corresponde a la clase
+{@link android.transition.ChangeImageTransform}. Para más información, consulta la referencia de la
+API para {@link android.transition.Transition}.</p>
 
-<p>Para habilitar las transiciones del contenido de las ventanas en tu código haz una llamada al método {@link android.view.Window#requestFeature Window.requestFeature()}:</p>
+<p>Para habilitar las transiciones del contenido de las ventanas en tu código, llama al método
+{@link android.view.Window#requestFeature Window.requestFeature()}:</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,31 +241,45 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>Para especificar transiciones en tu código, llama estos métodos con un objeto {@link android.transition.Transition}:</p>
+<p>Para especificar transiciones en tu código, llama a estos métodos con un objeto {@link
+android.transition.Transition}:</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>Los métodos {@link android.view.Window#setExitTransition setExitTransition()} y {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} definen la transición de salida para la actividad de llamada. Los métodos {@link android.view.Window#setEnterTransition setEnterTransition()} y {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} definen la transición de entrada para la actividad requerida.</p>
+<p>Los métodos {@link android.view.Window#setExitTransition setExitTransition()} y {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} definen
+la transición de salida para la actividad que realiza la llamada. Los métodos {@link android.view.Window#setEnterTransition
+setEnterTransition()} y {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} definen la transición de entrada para la actividad invocada.</p>
 
-<p>Para obtener el efecto completo de una transición, debes habilitar las transiciones de contenido de las ventanas en las actividades de llamada o requeridas. De lo contrario, la actividad de llamada comenzará la transición de salida, pero luego observarás una ventana de transición (como escalar o difuminar).</p>
+<p>Para obtener el efecto completo de una transición, debes habilitar las transiciones de contenido de las ventanas tanto para las
+actividades que realizan la llamada como para aquellas que son invocadas. De lo contrario, la actividad que realiza la llamada comenzará la transición de salida,
+pero luego observarás una ventana de transición (como escalar o difuminar).</p>
 
-<p>Para comenzar una transición de entrada lo antes posible, usa el método {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} en la actividad requerida. Esto te permite tener transiciones de entrada más intensas.</p>
+<p>Para comenzar una transición de entrada lo antes posible, usa el método
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+en la actividad invocada. Esto te permite tener transiciones de entrada más intensas.</p>
 
 <h3>Iniciar una actividad mediante el uso de transiciones</h3>
 
-<p>Si permites transiciones y estableces una transición de salida para una actividad, la transición se activa cuando inicias otra actividad como alguna de las siguientes:</p>
+<p>Si permites transiciones y estableces una transición de salida para una actividad, la transición se activa
+cuando inicias otra actividad, como alguna de las siguientes:</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>Si estableciste una transición de entrada para la segunda actividad, la transición también se activa cuando se inicia la actividad. Para deshabilitar las transiciones cuando inicias otra actividad, proporciona una agrupación de opciones <code>null</code>.</p>
+<p>Si estableciste una transición de entrada para la segunda actividad, la transición también se activa
+cuando se inicia la actividad. Para deshabilitar las transiciones cuando inicias otra actividad, proporciona
+una agrupación de opciones <code>null</code>.</p>
 
 <h3>Iniciar una actividad con un elemento compartido</h3>
 
@@ -240,8 +289,10 @@
 <li>Habilita las transiciones de contenido de ventanas en tu tema.</li>
 <li>Especifica una transición de elementos compartidos en tu estilo.</li>
 <li>Define tu transición como un recurso XML.</li>
-<li>Asigna un nombre en común para los elementos compartidos en ambos diseños con el atributo <code>android:transitionName</code>.</li>
-<li>Usa el método {@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()}.</li>
+<li>Asigna un nombre en común para los elementos compartidos en ambos diseños con el atributo
+<code>android:transitionName</code>.</li>
+<li>Usa el método {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()}.</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>Para las vistas dinámicas compartidas que generas en tu código, usa el método {@link android.view.View#setTransitionName View.setTransitionName()} para especificar un nombre del elemento en común en ambas actividades.</p>
+<p>Para las vistas dinámicas compartidas que generas en tu código, usa el método
+{@link android.view.View#setTransitionName View.setTransitionName()} para especificar un nombre de
+elemento en común en ambas actividades.</p>
 
-<p>Para invertir la animación de transición de escenas cuando terminas la segunda actividad, llama al método {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} en lugar del {@link android.app.Activity#finish Activity.finish()}.</p>
+<p>Para invertir la animación de transición de escenas cuando terminas la segunda actividad, llama al método
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+en lugar del {@link android.app.Activity#finish Activity.finish()}.</p>
 
 <h3>Iniciar una actividad con múltiples elementos compartidos</h3>
 
-<p>Para realizar una animación de transición de escenas entre dos actividades que tienen más de un elemento compartido, define los elementos compartidos en ambos diseños con el atributo <code>android:transitionName</code> (o usa el método {@link android.view.View#setTransitionName View.setTransitionName()} en ambas actividades) y crea un objeto {@link android.app.ActivityOptions} como se indica a continuación:</p>
+<p>Para realizar una animación de transición de escenas entre dos actividades que tienen más de un elemento
+compartido, define los elementos compartidos en ambos diseños con el atributo <code>android:transitionName</code>
+(o usa el método {@link android.view.View#setTransitionName View.setTransitionName()}
+en ambas actividades) y crea un objeto {@link android.app.ActivityOptions} como se indica a continuación:</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">Usar movimiento curvo</h2>
 
-<p>Las animaciones en Material Design se basan en curvas para la interpolación de tiempo y los modelos de movimiento espacial. Con Android 5.0 (nivel de API 21) y superior, puedes definir las curvas de sincronización personalizadas y los modelos de movimientos curvos para las animaciones.</p>
+<p>Las animaciones en Material Design se basan en curvas para la interpolación de tiempo y los modelos de movimiento
+espacial. Con Android 5.0 (API nivel 21) y superior, puedes definir las curvas de sincronización personalizadas y
+los modelos de movimientos curvos para las animaciones.</p>
 
-<p>La clase {@link android.view.animation.PathInterpolator} es un nuevo interpolador que se basa en una curva Bézier o un objeto {@link android.graphics.Path}. Este interpolador especifica una curva de movimiento en un cuadrado de 1x1, con puntos de anclaje a (0,0) y (1,1), y puntos de control según lo especificado en los argumentos del constructor. También puedes definir un interpolador para la ruta de acceso como un recurso XML:</p>
+<p>La clase {@link android.view.animation.PathInterpolator} es un nuevo interpolador que se basa en una curva
+Bézier o un objeto {@link android.graphics.Path}. Este interpolador especifica una curva de movimiento
+en un cuadrado de 1x1, con puntos de anclaje a (0,0) y (1,1), y puntos de control según lo especificado en los argumentos del
+constructor. También puedes definir un interpolador para la ruta de acceso como un recurso XML:</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>El sistema proporciona recursos XML para las tres curvas básicas en la especificación de Material Design:</p>
+<p>El sistema proporciona recursos XML para las tres curvas básicas en la especificación
+de Material Design:</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>Puedes pasar un objeto {@link android.view.animation.PathInterpolator} al método {@link android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
+<p>Puedes pasar un objeto {@link android.view.animation.PathInterpolator} al método {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
 
-<p>La clase {@link android.animation.ObjectAnimator} tiene nuevos constructores que te permiten animar coordenadas junto a una ruta de acceso, usando dos o más propiedades a la vez. Por ejemplo, el siguiente animador usa un objeto{@link android.graphics.Path} para animar las propiedades X e Y de una vista:</p>
+<p>La clase {@link android.animation.ObjectAnimator} tiene nuevos constructores que te permiten animar
+coordenadas junto a una ruta de acceso, usando dos o más propiedades a la vez. Por ejemplo, el siguiente animador
+usa un objeto{@link android.graphics.Path} para animar las propiedades X e Y de una vista:</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -317,7 +384,9 @@
 
 <h2 id="ViewState">Animar cambios de estados de las vistas</h2>
 
-<p>La clase {@link android.animation.StateListAnimator} te permite definir los animadores que se ejecutan cuando cambia el estado de una vista. En el siguiente ejemplo, se muestra cómo definir un {@link android.animation.StateListAnimator} como un recurso XML:</p>
+<p>La clase {@link android.animation.StateListAnimator} te permite definir los animadores que se ejecutan cuando
+cambia el estado de una vista. En el siguiente ejemplo, se muestra cómo definir un {@link
+android.animation.StateListAnimator} como un recurso XML:</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>Para adjuntar animaciones personalizadas de los estados de visualizaciones, define un animador usando el elemento <code>selector</code> en un archivo de recurso XML como en este ejemplo y asígnalo a tu vista con el atributo <code>android:stateListAnimator</code>. Para asignar un animador de lista de estados a una vista en tu código, usa el método {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} y asigna el animador a tu vista con el método {@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
+<p>Para adjuntar animaciones personalizadas de los estados de visualizaciones, define un animador usando el elemento
+<code>selector</code> en un archivo de recurso XML como en este ejemplo y asígnalo a tu
+vista con el atributo <code>android:stateListAnimator</code>. Para asignar un animador de lista de estados
+a una vista en tu código, usa el método {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} y asigna el animador a tu vista con el método
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
 
-<p>Cuando tu tema extiende al tema material, los botones tendrán una animación Z de manera predeterminada. Para evitar este comportamiento en tus botones, establece el atributo <code>android:stateListAnimator</code> para <code>@null</code>.</p>
+<p>Cuando tu tema extiende al tema material, los botones tendrán una animación Z de manera predeterminada. Para evitar este
+comportamiento en los botones, establece el atributo <code>android:stateListAnimator</code> en
+<code>@null</code>.</p>
 
-<p>La clase {@link android.graphics.drawable.AnimatedStateListDrawable} te permite crear elementos de diseño que muestren animaciones entre los cambios de estados de la vista asociada. Algunos de los widgets del sistema en Android 5.0 usan estas animaciones de manera predeterminada. En el siguiente ejemplo, se muestra cómo definir un {@link android.graphics.drawable.AnimatedStateListDrawable} como un recurso XML:</p>
+<p>La clase {@link android.graphics.drawable.AnimatedStateListDrawable} te permite crear elementos de diseño
+que muestren animaciones entre los cambios de estados de la vista asociada. Algunos de los widgets del sistema en
+Android 5.0 usan estas animaciones de manera predeterminada. En el siguiente ejemplo, se muestra cómo
+definir un {@link android.graphics.drawable.AnimatedStateListDrawable} como un recurso XML:</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -379,19 +458,28 @@
 
 <h2 id="AnimVector">Animar interfaces dibujables en vector</h2>
 
-<p>Las <a href="{@docRoot}training/material/drawables.html#VectorDrawables">interfaces dibujables en vector</a> son escalables sin perder definición. La clase {@link android.graphics.drawable.AnimatedVectorDrawable} te permite animar las propiedades de un elemento de diseño en vector.</p>
+<p>Las <a href="{@docRoot}training/material/drawables.html#VectorDrawables">interfaces dibujables en vector</a> son
+escalables sin perder definición. La clase {@link android.graphics.drawable.AnimatedVectorDrawable}
+te permite animar las propiedades de un elemento de diseño en vector.</p>
 
 <p>Generalmente, las interfaces animadas dibujables en vector se definen en tres archivos XML:</p>
 
 <ul>
-<li>Una interfaz dibujable en vector con el elemento <code>&lt;vector&gt;</code> en <code>res/drawable/</code></li>
-<li>Una interfaz dibujable animada en vector con el elemento <code>&lt;animated-vector&gt;</code> en <code>res/drawable/</code></li>
-<li>Uno o más animadores de objeto con el elemento <code>&lt;objectAnimator&gt;</code> en <code>res/anim/</code></li>
+<li>Una interfaz dibujable en vector con el elemento <code>&lt;vector&gt;</code> en
+<code>res/drawable/</code></li>
+<li>Una interfaz dibujable animada en vector con el elemento <code>&lt;animated-vector&gt;</code> en
+<code>res/drawable/</code></li>
+<li>Uno o más animadores de objeto con el elemento <code>&lt;objectAnimator&gt;</code> en
+<code>res/anim/</code></li>
 </ul>
 
-<p>Las interfaces animadas dibujables en vector pueden animar los atributos de los elementos <code>&lt;group&gt;</code> y <code>&lt;path&gt;</code>. Los elementos <code>&lt;group&gt;</code> definen un conjunto de rutas de acceso o subgrupos y el elemento <code>&lt;path&gt;</code> define rutas de acceso para dibujar.</p>
+<p>Las interfaces animadas dibujables en vector pueden animar los atributos de los elementos <code>&lt;group&gt;</code> y
+<code>&lt;path&gt;</code>. Los elementos <code>&lt;group&gt;</code> definen un conjunto de
+rutas de acceso o subgrupos y el elemento <code>&lt;path&gt;</code> define rutas de acceso para dibujar.</p>
 
-<p>Cuando definas una interfaz dibujable en vector que desees animar, usa el atributo <code>android:name</code> para asignar un nombre único a grupos o rutas de acceso, de manera que puedas hacer referencia a ellos desde tus definiciones del animador. Por ejemplo:</p>
+<p>Cuando definas una interfaz dibujable en vector que desees animar, usa el atributo <code>android:name</code>
+para asignar un nombre único a grupos o rutas de acceso, de manera que puedas hacer referencia a ellos desde tus definiciones del
+animador. Por ejemplo:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>La definición de la interfaz animada dibujable en vector hace referencia a grupos y rutas de acceso en el elemento de diseño en vector por sus nombres:</p>
+<p>La definición de la interfaz animada dibujable en vector hace referencia a grupos y rutas de acceso en el elemento de diseño en vector
+por sus nombres:</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>Las definiciones de animación representan objetos {@link android.animation.ObjectAnimator} o {@link android.animation.AnimatorSet}. El primer animador en este ejemplo rota el grupo objetivo unos 360 grados:</p>
+<p>Las definiciones de animación representan objetos {@link android.animation.ObjectAnimator} o {@link
+android.animation.AnimatorSet}. El primer animador en este ejemplo rota el grupo
+objetivo unos 360 grados:</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>El segundo animador en este ejemplo transforma la ruta de acceso de la interfaz dibujable en vector de una forma a otra. Ambas rutas de acceso deben ser compatibles para transformar: deben tener el mismo número de comandos y el mismo número de parámetros para cada comando.</p>
+<p>El segundo animador en este ejemplo transforma la ruta de acceso de la interfaz dibujable en vector de una forma a
+otra. Ambas rutas de acceso deben ser compatibles para transformarse: deben tener el mismo número de comandos
+y el mismo número de parámetros para cada comando.</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>Para más información, consulta la referencia de API para {@link android.graphics.drawable.AnimatedVectorDrawable}.</p> 
\ No newline at end of file
+<p>Para más información, consulta la referencia de la API para {@link
+android.graphics.drawable.AnimatedVectorDrawable}.</p>
diff --git a/docs/html-intl/intl/es/training/material/compatibility.jd b/docs/html-intl/intl/es/training/material/compatibility.jd
index 8295cf9..ad2e953 100644
--- a/docs/html-intl/intl/es/training/material/compatibility.jd
+++ b/docs/html-intl/intl/es/training/material/compatibility.jd
@@ -1,10 +1,10 @@
-page.title=Mantener la compatibilidad 
+page.title=Mantener la compatibilidad
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#Theme">Definir estilos alternativos</a></li>
   <li><a href="#Layouts">Proporcionar diseños alternativos</a></li>
@@ -20,42 +20,63 @@
 </div>
 
 
-<p>Algunas características de Material Design como el tema material y las transiciones de actividades personalizadas solo están disponibles en Android 5.0 (nivel 21 de la API) y superior. Sin embargo, puedes diseñar tus aplicaciones para usar estas características al ejecutar en dispositivos que admiten Material Design y aún son compatibles con dispositivos que ejecutan versiones anteriores de Android.</p>
+<p>Algunas características de Material Design, como el tema material y las transiciones de actividades personalizadas, solo
+están disponibles en Android 5.0 (API nivel 21) y superior. Sin embargo, puedes diseñar tus aplicaciones para
+usar estas características cuando se ejecutan en dispositivos que admiten Material Design y aún son compatibles
+con dispositivos que ejecutan versiones anteriores de Android.</p>
 
 
 <h2 id="Theme">Definir estilos alternativos</h2>
 
-<p>Puedes configurar tu aplicación para usar el tema material en los dispositivos que los admiten y revertir a un tema anterior en los dispositivos que ejecutan versiones anteriores de Android:</p>
+<p>Puedes configurar tu aplicación para usar el tema material en los dispositivos que los admiten y revertir
+a un tema anterior en los dispositivos que ejecutan versiones anteriores de Android:</p>
 
 <ol>
-<li>Define un tema que herede de un tema anterior (como Holo) en <code>res/values/styles.xml</code>.</li>
-<li>Define un tema con el mismo nombre que hereda del tema material en <code>res/values-v21/styles.xml</code>.</li>
+<li>Define un tema que herede de un tema anterior (como Holo) en
+<code>res/values/styles.xml</code>.</li>
+<li>Define un tema con el mismo nombre que hereda del tema material en
+<code>res/values-v21/styles.xml</code>.</li>
 <li>Establece este tema como el tema de tu aplicación en el archivo de manifiesto.</li>
 </ol>
 
-<p class="note"><strong>Nota:</strong> Si tu aplicación usa el tema material pero no proporciona un tema alternativo, tu aplicación no se ejecutará en versiones de Android anteriores a la versión 5.0.
+<p class="note"><strong>Nota:</strong>
+Si tu aplicación usa el tema material pero no proporciona un tema alternativo,
+tu aplicación no se ejecutará en versiones de Android anteriores a la versión 5.0.
 </p>
 
 
 <h2 id="Layouts">Proporcionar diseños alternativos</h2>
 
-<p>Si los diseños que realizas de acuerdo con las pautas de Material Design no usan ninguno de los nuevos atributos XML introducidos en Android 5.0 (nivel de API 21), estos trabajarán en versiones anteriores de Android. De lo contrario, puedes proporcionar diseños alternativos. También puedes proporcionar diseños alternativos para personalizar la apariencia de tu aplicación en versiones anteriores de Android.</p>
+<p>Si los diseños que realizas de acuerdo con las pautas de Material Design no usan ninguno de
+los nuevos atributos XML introducidos en Android 5.0 (API nivel 21), estos trabajarán en
+versiones anteriores de Android. De lo contrario, puedes proporcionar diseños alternativos. También puedes proporcionar diseños
+alternativos para personalizar la apariencia de tu aplicación en versiones anteriores de Android.</p>
 
-<p>Crea tus archivos de diseño para Android 5.0 (nivel de API 21) dentro de <code>res/layout-v21/</code> y tus archivos de diseño alternativo para versiones anteriores de Android dentro de <code>res/layout/</code>. Por ejemplo, <code>res/layout/my_activity.xml</code> es un diseño alternativo para <code>res/layout-v21/my_activity.xml</code>.</p>
+<p>Crea tus archivos de diseño para Android 5.0 (API nivel 21) dentro de <code>res/layout-v21/</code> y
+tus archivos de diseño alternativo para versiones anteriores de Android dentro de <code>res/layout/</code>.
+Por ejemplo, <code>res/layout/my_activity.xml</code> es un diseño alternativo para
+<code>res/layout-v21/my_activity.xml</code>.</p>
 
-<p>Para evitar duplicación de código, define tus estilos en <code>res/values/</code>, modifica estilos en <code>res/values-v21/</code> para las nuevas API y usa transmisión por herencia de estilos, al definir estilos base en <code>res/values/</code> y al heredar de estos en <code>res/values-v21/</code>.</p>
+<p>Para evitar duplicación de código, define tus estilos en <code>res/values/</code>, modifica
+estilos en <code>res/values-v21/</code> para las nuevas API y usa transmisión por herencia de estilos, definiendo estilos
+base en <code>res/values/</code> y heredando de los que están en <code>res/values-v21/</code>.</p>
 
 
 <h2 id="SupportLib">Usar la Biblioteca de soporte</h2>
 
-<p>Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a> r21 y superiores incluyen las siguientes características de Material Design:</p>
+<p>Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a>
+r21 y superiores incluyen las siguientes características de Material Design:</p>
 
 <ul>
-<li><a href="{@docRoot}training/material/theme.html">Estilos de Material Design</a> para algunos widgets del sistema cuando aplicas uno de los temas <code>Theme.AppCompat</code>.</li>
-<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos del tema de la paleta de colores</a> en los temas <code>Theme.AppCompat</code>.</li>
-<li>El widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">mostrar conjuntos de datos</a>.</li>
+<li><a href="{@docRoot}training/material/theme.html">Estilos de Material Design</a> para algunos widgets
+del sistema cuando aplicas uno de los temas <code>Theme.AppCompat</code>.</li>
+<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos del tema de la paleta de colores</a>
+en los temas <code>Theme.AppCompat</code>.</li>
+<li>El widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">mostrar conjuntos
+de datos</a>.</li>
 <li>El widget {@link android.support.v7.widget.CardView} para <a href="{@docRoot}training/material/lists-cards.html#CardView">crear tarjetas</a>.</li>
-<li>La clase {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extraer colores prominentes de imágenes</a>.</li>
+<li>La clase {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extraer colores prominentes de
+imágenes</a>.</li>
 </ul>
 
 <h3>Widgets del sistema</h3>
@@ -73,7 +94,8 @@
 
 <h3>Paleta de colores</h3>
 
-<p>Para obtener estilos de Material Design y personalizar la paleta de colores con la Biblioteca de soporte v7 de Android, aplica uno de los temas <code>Theme.AppCompat</code>:</p>
+<p>Para obtener estilos de Material Design y personalizar la paleta de colores con la Biblioteca de soporte
+v7 de Android, aplica uno de los temas <code>Theme.AppCompat</code>:</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -87,16 +109,21 @@
 
 <h3>Listas y tarjetas</h3>
 
-<p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link android.support.v7.widget.CardView} están disponible en versiones anteriores de Android mediante la Biblioteca de soporte v7 con estas limitaciones:</p>
+<p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link
+android.support.v7.widget.CardView} están disponible en versiones anteriores de Android mediante
+la Biblioteca de soporte v7 con estas limitaciones:</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView} regresa a una implementación de sombras programáticas mediante el uso de espaciado adicional.</li>
-<li>{@link android.support.v7.widget.CardView} no recorta las vistas de sus hijos que forman intersecciones con esquinas redondeadas.</li>
+<li>{@link android.support.v7.widget.CardView} regresa a una implementación de sombras programáticas
+mediante el uso de espaciado adicional.</li>
+<li>{@link android.support.v7.widget.CardView} no recorta las vistas de sus hijos que forman intersecciones
+con esquinas redondeadas.</li>
 </ul>
 
 
 <h3>Dependencias</h3>
 
-<p>Para usar estas características en versiones de Android anteriores a la 5.0 (nivel de API 21), incluye en tu proyecto la Biblioteca de soporte v7 de Android como una <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Dependencia Gradle</a>:</p>
+<p>Para usar estas características en versiones de Android anteriores a la 5.0 (API nivel 21), incluye
+en tu proyecto la Biblioteca de soporte v7 de Android como una <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">dependencia de Gradle</a>:</p>
 
 <pre>
 dependencies {
@@ -120,7 +147,9 @@
 <li>Matiz de la interfaz dibujable</li>
 </ul>
 
-<p>Para conservar la compatibilidad con versiones anteriores de Android, comprueba el sistema {@link android.os.Build.VERSION#SDK_INT version} en tiempo de ejecución antes de invocar las API para cualquiera de estas características:</p>
+<p>Para conservar la compatibilidad con versiones anteriores de Android, comprueba la {@link
+android.os.Build.VERSION#SDK_INT version} del sistema en tiempo de ejecución antes de invocar las API para cualquiera de estas
+características:</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>Nota:</strong> Para especificar qué versiones de Android admite tu aplicación, usa los atributos <code>android:minSdkVersion</code> y <code>android:targetSdkVersion</code> en tu archivo de manifiesto. Para usar las características de Material Design en Android 5.0, establece el atributo <code>android:targetSdkVersion</code> para <code>21</code>. Para más información, consulta la <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guía de &lt;uses-sdk&gt; de la API</a>.</p> 
\ No newline at end of file
+<p class="note"><strong>Nota:</strong> Para especificar qué versiones de Android admite tu aplicación,
+usa los atributos <code>android:minSdkVersion</code> y <code>android:targetSdkVersion</code>
+en tu archivo de manifiesto. Para usar las características de Material Design en Android 5.0, establece el
+atributo <code>android:targetSdkVersion</code> en <code>21</code>. Para más información, consulta
+la <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guía de &lt;uses-sdk&gt; de la
+API</a>.</p>
diff --git a/docs/html-intl/intl/es/training/material/drawables.jd b/docs/html-intl/intl/es/training/material/drawables.jd
index 5979f37..6bfeff9 100644
--- a/docs/html-intl/intl/es/training/material/drawables.jd
+++ b/docs/html-intl/intl/es/training/material/drawables.jd
@@ -1,10 +1,10 @@
-page.title=Trabajar con interfaces dibujables 
+page.title=Trabajar con interfaces dibujables
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#DrawableTint">Cambiar el matiz de los recursos dibujables</a></li>
   <li><a href="#ColorExtract">Extraer colores prominentes de una imagen</a></li>
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">Cambiar el matiz de los recursos dibujables</h2>
 
-<p>Con Android 5.0 (nivel de API 21) y superior, puedes cambiar el matiz de los mapas de bits y nueve parches definidos como máscaras alfa. Puedes cambiar el matiz con recursos de colores o atributos de temas que se resuelven a recursos de colores (por ejemplo, <code>?android:attr/colorPrimary</code>). Generalmente, puedes crear estos materiales solo una vez y agregarles color automáticamente para que coincidan con tu tema.</p>
+<p>Con Android 5.0 (API nivel 21) y superior, puedes cambiar el matiz de los mapas de bits y nueve parches definidos como
+máscaras alfa. Puedes cambiar el matiz con recursos de colores o atributos de temas que se resuelven a
+recursos de colores (por ejemplo, <code>?android:attr/colorPrimary</code>). Generalmente, puedes crear estos recursos
+solo una vez y agregarles color automáticamente para que coincidan con tu tema.</p>
 
-<p>Puedes aplicar un matiz a los objetos {@link android.graphics.drawable.BitmapDrawable} o {@link android.graphics.drawable.NinePatchDrawable} con el método {@code setTint()}. También puedes establecer el color de matiz y el modo en tus diseños con los atributos <code>android:tint</code> y <code>android:tintMode</code>.</p>
+<p>Puedes aplicar un matiz a los objetos {@link android.graphics.drawable.BitmapDrawable} o {@link
+android.graphics.drawable.NinePatchDrawable} con el método {@code setTint()}. También puedes
+establecer el color de matiz y el modo en tus diseños con los atributos <code>android:tint</code> y
+<code>android:tintMode</code>.</p>
 
 
 <h2 id="ColorExtract">Extraer colores prominentes de una imagen</h2>
 
-<p>La Biblioteca de soporte de Android r21 y superiores incluye la clase {@link android.support.v7.graphics.Palette}, que te permite extraer colores prominentes de una imagen. Esta clase extrae los siguientes colores prominentes:</p>
+<p>La Biblioteca de soporte de Android r21 y superiores incluye la clase {@link
+android.support.v7.graphics.Palette}, que te permite extraer colores prominentes de una imagen.
+Esta clase extrae los siguientes colores prominentes:</p>
 
 <ul>
 <li>Brillante</li>
@@ -49,34 +57,44 @@
 <li>Claro apagado</li>
 </ul>
 
-<p>Para extraer estos colores, pasa un objeto {@link android.graphics.Bitmap} al método estático {@link android.support.v7.graphics.Palette#generate Palette.generate()} en el subproceso de fondo en donde cargas tus imágenes. Si no puedes usar dicho subproceso, llama al método {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} y proporciona un oyente (o gestor de eventos) en su lugar.</p>
+<p>Para extraer estos colores, pasa un objeto {@link android.graphics.Bitmap} al método estático
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} en el subproceso en
+segundo plano en donde cargas tus imágenes. Si no puedes usar dicho subproceso, llama al método
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} y proporciona
+un gestor de eventos en su lugar.</p>
 
-<p>Puedes recuperar los colores prominentes de la imagen mediante los métodos de obtención en la clase <code>Palette</code>, como <code>Palette.getVibrantColor</code>.</p>
+<p>Puedes recuperar los colores prominentes de la imagen mediante los métodos de obtención en la clase
+<code>Palette</code>, como <code>Palette.getVibrantColor</code>.</p>
 
-<p>Para usar la clase {@link android.support.v7.graphics.Palette} en tu proyecto, agrega la siguiente <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Dependencia Gradle</a> al módulo de tu aplicación:</p>
+<p>Para usar la clase {@link android.support.v7.graphics.Palette} en tu proyecto, agrega la siguiente
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Dependencia Gradle</a> al módulo de
+tu aplicación:</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>Para más información, consulta la referencia de la API para la clase {@link android.support.v7.graphics.Palette}.</p>
+<p>Para más información, consulta la referencia de la API para la clase {@link android.support.v7.graphics.Palette}.
+</p>
 
 
 <h2 id="VectorDrawables">Crear interfaces dibujables en vector</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>Video</h3>
     <p>Gráficos en vector de Android</p>
 </div>
 </a>
 
-<p>En Android 5.0 (nivel de API 21) y superiores, puedes definir las interfaces dibujables en vector, que escalan sin perder definición. Solo necesitas un archivo de recurso para una imagen en vector, en oposición a un archivo de recurso para la densidad de cada pantalla en el caso de imágenes de mapa de bits. Para crear una imagen en vector, defines los detalles de la forma dentro de un elemento XML <code>&lt;vector&gt;</code>.</p>
+<p>En Android 5.0 (API nivel 21) y superiores, puedes definir las interfaces dibujables en vector, que escalan sin
+perder definición. Solo necesitas un archivo de recurso para una imagen en vector, en oposición a un archivo de recurso para
+la densidad de cada pantalla en el caso de imágenes de mapa de bits. Para crear una imagen en vector, defines los detalles
+de la forma dentro de un elemento XML <code>&lt;vector&gt;</code>.</p>
 
 <p>El siguiente ejemplo define una imagen en vector con la forma de un corazón:</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>Las imágenes en vector están representadas en Android como objetos {@link android.graphics.drawable.VectorDrawable}. Para más información sobre la sintaxis <code>pathData</code>, consulta la <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">referencia de ruta de acceso SVG</a>. Para más información sobre la animación de las propiedades de las interfaces dibujables en vector, consulta <a href="{@docRoot}training/material/animations.html#AnimVector">Animación de interfaces dibujables en vector</a>.</p> 
\ No newline at end of file
+<p>Las imágenes en vector están representadas en Android como objetos {@link android.graphics.drawable.VectorDrawable}.
+ Para más información sobre la sintaxis <code>pathData</code>, consulta la <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">referencia de ruta de acceso SVG</a>. Para más información
+sobre la animación de las propiedades de las interfaces dibujables en vector, consulta
+<a href="{@docRoot}training/material/animations.html#AnimVector">Animación de interfaces dibujables en vector</a>.</p>
diff --git a/docs/html-intl/intl/es/training/material/get-started.jd b/docs/html-intl/intl/es/training/material/get-started.jd
index 50a762d..bd67316 100644
--- a/docs/html-intl/intl/es/training/material/get-started.jd
+++ b/docs/html-intl/intl/es/training/material/get-started.jd
@@ -1,10 +1,10 @@
-page.title=Comencemos 
+page.title=Comencemos
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#ApplyTheme">Aplicar el tema Material</a></li>
   <li><a href="#Layouts">Realizar tus diseños</a></li>
@@ -40,20 +40,27 @@
 
 <h3>Mantener la compatibilidad con versiones anteriores</h3>
 
-<p>Puedes agregar muchas características de Material Design a tu aplicación mientras mantienes la compatibilidad con las versiones anteriores a Android 5.0. Para más información, consulta <a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a>.</p>
+<p>Puedes agregar muchas características de Material Design a tu aplicación mientras mantienes la compatibilidad con las
+versiones anteriores a Android 5.0. Para más información, consulta
+<a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a>.</p>
 
 <h3>Actualización de tu aplicación con Material Design</h3>
 
-<p>Para actualizar una aplicación existente para incorporar Material Design, actualiza tus diseños siguiendo las pautas de Material Design. Además, asegúrate de incorporar profundidad, respuesta táctil y animaciones.</p>
+<p>Para actualizar una aplicación existente para incorporar Material Design, actualiza tus diseños siguiendo
+las pautas de Material Design. Además, asegúrate de incorporar profundidad, respuesta táctil y
+animaciones.</p>
 
 <h3>Crear nuevas aplicaciones con Material Design</h3>
 
-<p>Si creas una nueva aplicación con las características de Material Design, las <a href="http://www.google.com/design/spec">pautas de Material Design</a> te proporcionan un framework de diseño cohesivo. Sigue estas pautas y usa la nueva funcionalidad del framework de Android para diseñar y desarrollar tu aplicación.</p>
+<p>Si creas una nueva aplicación con las características de Material Design, las <a href="http://www.google.com/design/spec">pautas de Material Design</a> te proporcionan un framework
+de diseño cohesivo. Sigue estas pautas y usa la nueva funcionalidad del framework de
+Android para diseñar y desarrollar tu aplicación.</p>
 
 
 <h2 id="ApplyTheme">Aplicar el tema Material</h2>
 
-<p>Para aplicar el tema material en tu aplicación, especifica el estilo que hereda de <code>android:Theme.Material</code>:</p>
+<p>Para aplicar el tema material en tu aplicación, especifica el estilo que hereda de
+<code>android:Theme.Material</code>:</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>El tema material proporciona widgets de sistema actualizados y te permite establecer la paleta de colores y las animaciones predeterminadas para la respuesta táctil y las transiciones de actividades. Para obtener más detalles, consulta <a href="{@docRoot}training/material/theme.html">Usar el tema Material</a>.</p>
+<p>El tema material proporciona widgets de sistema actualizados y te permite establecer la paleta de colores y las animaciones
+predeterminadas para la respuesta táctil y las transiciones de actividades. Para obtener más detalles, consulta
+<a href="{@docRoot}training/material/theme.html">Usar el tema Material</a>.</p>
 
 
 <h2 id="Layouts">Realizar tus diseños</h2>
 
-<p>Además de aplicar y personalizar el tema material, tus diseños deben cumplir con las <a href="http://www.google.com/design/spec">pautas de Material Design</a>. Cuando realices tus diseños, presta especial atención a lo siguiente:</p>
+<p>Además de aplicar y personalizar el tema material, tus diseños deben cumplir con
+las <a href="http://www.google.com/design/spec">pautas de Material Design</a>. Cuando realices
+tus diseños, presta especial atención a lo siguiente:</p>
 
 <ul>
 <li>Cuadrículas de referencia</li>
@@ -83,7 +94,9 @@
 
 <h2 id="Depth">Especificar la elevación en tus vistas</h2>
 
-<p>Las vistas pueden proyectar sombras y el valor de elevación de una vista determina el tamaño de su sombra y el orden en que será dibujada. Para establecer la elevación de una vista, usa el atributo <code>android:elevation</code> en tus diseños:</p>
+<p>Las vistas pueden proyectar sombras y el valor de elevación de una vista
+determina el tamaño de su sombra y el orden en que será dibujada. Para establecer la elevación de una vista, usa el atributo
+<code>android:elevation</code> en tus diseños:</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>La nueva propiedad <code>translationZ</code> te permite crear animaciones que reflejen cambios temporales en la elevación de una vista. Los cambios de elevación pueden ser útiles cuando <a href="{@docRoot}training/material/animations.html#ViewState">responden a gestos táctiles</a>.</p>
+<p>La nueva propiedad <code>translationZ</code> te permite crear animaciones que reflejen cambios
+temporales en la elevación de una vista. Los cambios de elevación pueden ser útiles cuando
+<a href="{@docRoot}training/material/animations.html#ViewState">responden a gestos
+táctiles</a>.</p>
 
-<p>Para obtener más detalles, consulta <a href="{@docRoot}training/material/shadows-clipping.html">Definir vistas de recorte y sombras</a>.</p>
+<p>Para obtener más detalles, consulta <a href="{@docRoot}training/material/shadows-clipping.html">Definir
+vistas de recorte y sombras</a>.</p>
 
 
 <h2 id="ListsCards">Crear listas y tarjetas</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} es una versión más acoplable de {@link android.widget.ListView} que admite diferentes tipos de diseños y proporciona mejoras en el rendimiento. {@link android.support.v7.widget.CardView} te permite mostrar partes de información dentro de las tarjetas con una apariencia consistente entre distintas aplicaciones. El siguiente ejemplo de códigos muestra cómo incluir un {@link android.support.v7.widget.CardView} en tu diseño:</p>
+<p>{@link android.support.v7.widget.RecyclerView} es una versión más acoplable de {@link
+android.widget.ListView} que admite diferentes tipos de diseños y proporciona mejoras en el rendimiento.
+{@link android.support.v7.widget.CardView} te permite mostrar partes de información dentro de las tarjetas con
+una apariencia uniforme entre distintas aplicaciones. El siguiente ejemplo de códigos muestra cómo incluir un
+{@link android.support.v7.widget.CardView} en tu diseño:</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>Para más información, consulta <a href="{@docRoot}training/material/lists-cards.html">Crear listas y tarjetas</a>.</p>
+<p>Para obtener más información, consulta <a href="{@docRoot}training/material/lists-cards.html">Crear listas
+y tarjetas</a>.</p>
 
 
 <h2 id="Animations">Personalizar tus animaciones</h2>
 
-<p>Android 5.0 (nivel de API 21) incluye nuevas API para crear animaciones personalizadas en tu aplicación. Por ejemplo, puedes habilitar las transiciones de actividades y definir una transición de salida dentro de una actividad:</p>
+<p>Android 5.0 (API nivel 21) incluye nuevas API para crear animaciones personalizadas en tu aplicación.
+Por ejemplo, puedes habilitar las transiciones de actividades y definir una transición de salida dentro de una
+actividad:</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -144,4 +168,4 @@
 
 <p>Cuando comienzas otra actividad desde esta actividad, se activa la transición de salida.</p>
 
-<p>Para más información sobre las nuevas API de animación, consulta <a href="{@docRoot}training/material/animations.html">Definir animaciones personalizadas</a>.</p> 
\ No newline at end of file
+<p>Para más información sobre las nuevas API de animación, consulta <a href="{@docRoot}training/material/animations.html">Definir animaciones personalizadas</a>.</p>
diff --git a/docs/html-intl/intl/es/training/material/index.jd b/docs/html-intl/intl/es/training/material/index.jd
index 57750b9..1af0ead 100644
--- a/docs/html-intl/intl/es/training/material/index.jd
+++ b/docs/html-intl/intl/es/training/material/index.jd
@@ -1,7 +1,7 @@
-page.title=Crear aplicaciones con Material Design
-page.type=diseño
-page.image=images/material.png
-page.metaDescription=Aprende a aplicar Material Design a tus aplicaciones. 
+page.title=Material Design para desarrolladores
+page.image=images/cards/material_2x.png
+page.metaDescription=Aprende a aplicar Material Design a tus aplicaciones.
+
 
 @jd:body
 
@@ -9,13 +9,17 @@
 <div id="tb">
   <h2>Dependencias y requisitos previos</h2>
   <ul>
-    <li>Android 5.0 (nivel de API 21)</li>
-    <li>Android Studio 0.8</li>
+    <li>Android 5.0 (API nivel 21)</li>
   </ul>
 </div>
 </div>
 
-<p>Material Design es una guía integral para diseño visual, de movimiento e interacción en distintas plataformas y dispositivos. Para usar Material Design en tus aplicaciones de Android, sigue las pautas descritas en la <a href="http://www.google.com/design/spec/material-design/introduction.html">especificación de Material Design</a> y usa los nuevos componentes y funcionalidades disponibles en Android 5.0 (nivel de API 21).</p>
+<p>Material Design es una guía integral para el diseño visual, de movimientos y de interacción en distintas
+plataformas y dispositivos. Para usar Material Design en tus aplicaciones de Android, sigue las pautas
+descritas en la
+<a href="http://www.google.com/design/spec/material-design/introduction.html">especificación de Material
+Design</a> y usa los nuevos componentes y funcionalidades disponibles en Android 5.0
+(API nivel 21).</p>
 
 <p>Esta clase muestra cómo crear aplicaciones de Material Design con los siguientes elementos:</p>
 
@@ -27,7 +31,8 @@
 <li>Animaciones personalizadas</li>
 </ul>
 
-<p>Esta clase también te enseña cómo mantener la compatibilidad con versiones anteriores de Android 5.0 (nivel de API 21) cuando usas las características de Material Design en tu aplicación.</p>
+<p>Esta clase también te enseña cómo mantener la compatibilidad con versiones anteriores de Android
+5.0 (API nivel 21) cuando usas las características de Material Design en tu aplicación.</p>
 
 <h2>Lecciones</h2>
 
@@ -52,4 +57,4 @@
 
   <dt><a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a></dt>
   <dd>Aprende a mantener la compatibilidad con versiones de plataforma anteriores a Android 5.0.</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/es/training/material/lists-cards.jd b/docs/html-intl/intl/es/training/material/lists-cards.jd
index dc3f67c..1d5db98 100644
--- a/docs/html-intl/intl/es/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/es/training/material/lists-cards.jd
@@ -1,10 +1,10 @@
-page.title=Crear listas y tarjetas 
+page.title=Crear listas y tarjetas
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#RecyclerView">Crear listas</a></li>
   <li><a href="#CardView">Crear tarjetas</a></li>
@@ -19,55 +19,79 @@
 </div>
 
 
-<p>Para crear listas completas y tarjetas con estilos de Material Design en tus aplicaciones, puedes usar los widgets {@link android.support.v7.widget.RecyclerView} y {@link android.support.v7.widget.CardView}.</p>
+<p>Para crear listas completas y tarjetas con estilos de Material Design en tus aplicaciones, puedes usar los widgets
+{@link android.support.v7.widget.RecyclerView} y {@link android.support.v7.widget.CardView}.
+</p>
 
 
 <h2 id="RecyclerView">Crear listas</h2>
 
-<p>El widget {@link android.support.v7.widget.RecyclerView} es una versión más flexible y avanzada de {@link android.widget.ListView}. Este widget es un contenedor para mostrar grandes conjuntos de datos que se pueden desplazar de manera muy eficiente al mantener una cantidad limitada de vistas. Usa el widget {@link android.support.v7.widget.RecyclerView} cuando tengas conjuntos de datos cuyos elementos cambien en tiempo de ejecución sobre la base de la acción del usuario o los eventos de la red.</p>
+<p>El widget {@link android.support.v7.widget.RecyclerView} es una versión más
+flexible y avanzada de {@link android.widget.ListView}. Este widget es un contenedor para mostrar grandes conjuntos de
+datos que se pueden desplazar de manera muy eficiente al mantener una cantidad limitada de vistas. Usa el widget
+{@link android.support.v7.widget.RecyclerView} cuando tengas conjuntos de datos cuyos elementos
+cambien en tiempo de ejecución sobre la base de la acción del usuario o los eventos de la red.</p>
 
-<p>La clase {@link android.support.v7.widget.RecyclerView} simplifica la pantalla y la manipulación de grandes conjuntos de datos al proporcionar lo siguiente:</p>
+<p>La clase {@link android.support.v7.widget.RecyclerView} simplifica la pantalla y la manipulación de grandes conjuntos de
+datos al proporcionar lo siguiente:</p>
 
 <ul>
   <li>Administradores de diseño para el posicionamiento de elementos</li>
   <li>Animaciones predeterminadas para las operaciones comunes con elementos, como quitar o agregar elementos</li>
 </ul>
 
-<p>También tienes la flexibilidad para definir administradores de diseño personalizados y animaciones para los widgets {@link android.support.v7.widget.RecyclerView}.</p>
+<p>También tienes la flexibilidad para definir administradores de diseño personalizados y animaciones para los widgets {@link
+android.support.v7.widget.RecyclerView}.</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>Figura 1</strong>. El widget <code>RecyclerView</code>.
 </p>
 
-<p>Para usar el widget {@link android.support.v7.widget.RecyclerView}, tienes que especificar un adaptador y un administrador de diseño. Para crear un adaptador, extiende la clase {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Los detalles de la implementación dependen de las especificaciones de tu conjunto de datos y los tipos de vistas. Para más información, consulta los <a href="#RVExamples">ejemplos</a> que figuran a continuación.</p>
+<p>Para usar el widget {@link android.support.v7.widget.RecyclerView}, tienes que especificar un
+adaptador y un administrador de diseño. Para crear un adaptador, extiende la clase {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Los detalles
+de la implementación dependen de las especificaciones de tu conjunto de datos y los tipos de vistas. Para más
+información, consulta los <a href="#RVExamples">ejemplos</a> que figuran a continuación.</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
 <p class="img-caption" style="margin-left:8px">
-<strong>Figura 2</strong>: listas con <code>RecyclerView</code>.
+<strong>Figura 2</strong>. Listas con <code>RecyclerView</code>.
 </p>
 </div>
 
-<p>Un <strong>administrador de diseño</strong> posiciona las vistas de artículos dentro de un {@link android.support.v7.widget.RecyclerView} y determina cuándo volver a usar las vistas de elementos que ya no están visibles para el usuario. Para reutilizar (o <em>reciclar</em>) una vista, un administrador de diseño puede solicitarle al adaptador que reemplace el contenido de la vista con un elemento diferente del conjunto de datos. De esta manera, cuando se reciclan las vistas se mejora el rendimiento al evitar la creación de vistas innecesarias o realizar búsquedas costosas de {@link android.app.Activity#findViewById findViewById()}.</p>
+<p>Un <strong>administrador de diseño</strong> posiciona las vistas de artículos dentro de un {@link
+android.support.v7.widget.RecyclerView} y determina cuándo volver a usar las vistas de elementos que ya
+no están visibles para el usuario. Para reutilizar (o <em>reciclar</em>) una vista, un administrador de diseño puede solicitarle al
+adaptador que reemplace el contenido de la vista con un elemento diferente del conjunto de datos. De esta manera,
+cuando se reciclan las vistas se mejora el rendimiento al evitar la creación de vistas innecesarias o
+realizar búsquedas costosas de {@link android.app.Activity#findViewById findViewById()}.</p>
 
 <p>{@link android.support.v7.widget.RecyclerView} te proporciona estos administradores de diseño incorporados:</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} muestra elementos en una lista de desplazamiento horizontal o vertical.</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} muestra elementos en una lista de desplazamiento horizontal o
+vertical.</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} muestra elementos en una cuadrícula.</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} muestra elementos en una cuadrícula escalonada.</li>
 </ul>
 
-<p>Para crear un administrador de diseño personalizado, extiende la clase {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
+<p>Para crear un administrador de diseño personalizado, extiende la clase {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
 
 <h3>Animaciones</h3>
 
-<p>Las animaciones para agregar o eliminar elementos están permitidas en forma predeterminada en {@link android.support.v7.widget.RecyclerView}. Para personalizar estas animaciones, extiende la clase {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} y usa el método {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}.</p>
+<p>Las animaciones para agregar o eliminar elementos están permitidas en forma predeterminada en {@link
+android.support.v7.widget.RecyclerView}. Para personalizar estas animaciones, extiende la clase
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} y usa
+el método {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}.
+</p>
 
 <h3 id="RVExamples">Ejemplos</h3>
 
-<p>El siguiente ejemplo de códigos demuestra cómo agregar el {@link android.support.v7.widget.RecyclerView} a un diseño:</p>
+<p>El siguiente ejemplo de códigos demuestra cómo agregar el widget
+{@link android.support.v7.widget.RecyclerView} a un diseño:</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>Una vez que hayas agregado un widget {@link android.support.v7.widget.RecyclerView} a tu diseño, obtén un identificador para el objeto, conéctalo a un administrador de diseño y adjunta un adaptador para los datos que se van a mostrar:</p>
+<p>Una vez que hayas agregado un widget {@link android.support.v7.widget.RecyclerView} a tu diseño,
+obtén un identificador para el objeto, conéctalo a un administrador de diseño y adjunta un adaptador para los datos
+que se van a mostrar:</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>El adaptador proporciona acceso a los elementos en tu conjunto de datos, crea vistas para los elementos y reemplaza el contenido de algunas de las vistas con estos elementos de datos nuevos cuando el elemento original ya no está visible. El siguiente ejemplo de código muestra una implementación simple para un conjunto de datos que consta de una matriz de cadenas mostradas mediante el uso de widgets {@link android.widget.TextView}:</p>
+<p>El adaptador proporciona acceso a los elementos en tu conjunto de datos, crea vistas para los elementos y
+reemplaza el contenido de algunas de las vistas con estos elementos de datos nuevos cuando el elemento original ya no está
+visible. El siguiente ejemplo de código muestra una implementación simple para un conjunto de datos que consta
+de una matriz de cadenas mostradas mediante el uso de widgets {@link android.widget.TextView}:</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -171,19 +200,29 @@
 
 <h2 id="CardView">Crear tarjetas</h2>
 
-<p>{@link android.support.v7.widget.CardView} extiende la clase {@link android.widget.FrameLayout} y te permite mostrar información dentro de tarjetas que tienen una apariencia consistente en la plataforma. Los widgets {@link android.support.v7.widget.CardView} pueden tener sombras y esquinas redondeadas.</p>
+<p>{@link android.support.v7.widget.CardView} extiende la clase {@link android.widget.FrameLayout}
+y te permite mostrar información dentro de tarjetas que tienen una apariencia uniforme en la plataforma. Los widgets {@link
+android.support.v7.widget.CardView} pueden tener sombras y esquinas redondeadas.</p>
 
-<p>Para crear una tarjeta con una sombra, usa el atributo <code>card_view:cardElevation</code>. {@link android.support.v7.widget.CardView} usa elevación real y sombras dinámicas en Android 5.0 (nivel de API 21) y superior, y regresa a una implementación de sombras programáticas en versiones anteriores. Para más información, consulta <a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a>.</p>
+<p>Para crear una tarjeta con una sombra, usa el atributo <code>card_view:cardElevation</code>.
+{@link android.support.v7.widget.CardView} usa elevación real y sombras dinámicas en Android 5.0
+(API nivel 21) y superior, y regresa a una implementación de sombras programáticas en versiones anteriores.
+Para más información, consulta <a href="{@docRoot}training/material/compatibility.html">Mantener
+la compatibilidad</a>.</p>
 
-<p>Usa estas propiedades para personalizar la apariencia del widget {@link android.support.v7.widget.CardView}:</p>
+<p>Usa estas propiedades para personalizar la apariencia del widget
+{@link android.support.v7.widget.CardView}:</p>
 
 <ul>
-  <li>Para establecer el radio de la esquina en tus diseños, usa el atributo <code>card_view:cardCornerRadius</code>.</li>
+  <li>Para establecer el radio de la esquina en tus diseños, usa el atributo <code>card_view:cardCornerRadius</code>.
+</li>
   <li>Para establecer el radio en tu código, usa el método <code>CardView.setRadius</code>.</li>
-  <li>Para establecer el color de fondo de una tarjeta, usa el atributo <code>card_view:cardBackgroundColor</code>.</li>
+  <li>Para establecer el color de fondo de una tarjeta, usa el atributo <code>card_view:cardBackgroundColor</code>.
+</li>
 </ul>
 
-<p>El siguiente ejemplo de código muestra cómo incluir un widget {@link android.support.v7.widget.CardView} en tu diseño:</p>
+<p>El siguiente ejemplo de código muestra cómo incluir un widget {@link android.support.v7.widget.CardView}
+en tu diseño:</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -212,7 +251,11 @@
 
 <h2 id="Dependencies">Agregar dependencias</h2>
 
-<p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link android.support.v7.widget.CardView} son parte de las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a>. Para usar estos widgets en tu proyecto, agrega estas <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Dependencias de Gradle</a> al módulo de tu aplicación:</p>
+<p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link android.support.v7.widget.CardView}
+son parte de las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de
+soporte v7</a>. Para usar estos widgets en tu proyecto, agrega estas
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Dependencias de Gradle</a> al módulo
+de tu aplicación:</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/es/training/material/shadows-clipping.jd b/docs/html-intl/intl/es/training/material/shadows-clipping.jd
index 5e6aa35..5509fc8 100644
--- a/docs/html-intl/intl/es/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/es/training/material/shadows-clipping.jd
@@ -1,10 +1,10 @@
-page.title=Definir vistas de recorte y sombras 
+page.title=Definir vistas de recorte y sombras
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#Elevation">Asignar elevación a tus vistas</a></li>
   <li><a href="#Shadows">Personalizar vistas de sombras y contornos</a></li>
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>Material Design introduce una elevación para los elementos de la IU. La elevación ayuda a los usuarios a comprender la importancia relativa de cada elemento y a centrar su atención en la tarea a realizar.</p>
+<p>Material Design introduce una elevación para los elementos de la IU. La elevación ayuda a los usuarios a comprender la
+importancia relativa de cada elemento y a centrar su atención en la tarea para realizar.</p>
 
-<p>La elevación de una vista, representada por la propiedad Z, determina la apariencia visual de su sombra: las vistas con valores de Z superiores, proyectan sombras más grandes y suaves. Las vistas con valores Z superiores ocluyen las vistas con valores Z inferiores. Sin embargo, el valor Z de una vista no afecta el tamaño de la vista.</p>
+<p>La elevación de una vista, representada por la propiedad Z, determina la apariencia visual de su
+sombra: las vistas con valores Z superiores, proyectan sombras más grandes y suaves. Las vistas con valores Z superiores ocluyen
+las vistas con valores Z inferiores. Sin embargo, el valor Z de una vista no afecta el tamaño de la vista.</p>
 
-<p>El padre de la vista elevada se encarga de dibujar las sombras y así, sujeto al recorte de vista estándar, es recortado por el padre de manera predeterminada.</p>
+<p>El padre de la vista elevada se encarga de dibujar las sombras y así, sujetas al recorte de vista estándar, son
+recortadas por el padre de manera predeterminada.</p>
 
-<p>La elevación también es útil para crear animaciones donde los widgets suben temporalmente sobre el plano visual cuando realizan alguna acción.</p>
+<p>La elevación también es útil para crear animaciones donde los widgets suben temporalmente sobre el
+plano visual cuando realizan alguna acción.</p>
 
-<p>Para más información sobre la elevación en Material Design, consulta <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objetos en el espacio 3D</a>.</p>
+<p>Para más información sobre la elevación en Material Design, consulta
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objetos
+en el espacio 3D</a>.</p>
 
 
 <h2 id="Elevation">Asignar elevación a tus vistas</h2>
 
-<p>El valor Z de una vista cualquiera tiene dos componentes: <ul>
+<p>El valor Z de una vista cualquiera tiene dos componentes:
+
+<ul>
 <li>Elevación: El componente estático.</li>
 <li>Traducción: El componente dinámico usado para las animaciones.</li>
 </ul>
@@ -41,20 +50,32 @@
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
 <p class="img-caption"><strong>Figura 1</strong>: sombras para diferentes elevaciones de vistas.</p>
 
-<p>Para establecer la elevación de una vista al definir un diseño, usa el atributo <code>android:elevation</code>. Para establecer la elevación de una vista en el código de una actividad, usa el método {@link android.view.View#setElevation View.setElevation()}.</p>
+<p>Para establecer la elevación de una vista al definir un diseño, usa el atributo <code>android:elevation</code>.
+ Para establecer la elevación de una vista en el código de una actividad, usa el método
+{@link android.view.View#setElevation View.setElevation()}.</p>
 
-<p>Para establecer la traducción de una vista, usa el método {@link android.view.View#setTranslationZ View.setTranslationZ()}.</p>
+<p>Para establecer la traducción de una vista, usa el método {@link android.view.View#setTranslationZ
+View.setTranslationZ()}.</p>
 
-<p>Los nuevos métodos {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} y {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} te permiten animar fácilmente la elevación de las vistas. Para más información, consulta la referencia de la API para {@link android.view.ViewPropertyAnimator} y la guía del desarrollador <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Animación de propiedades</a>.</p>
+<p>Los nuevos métodos {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} y {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} te permiten
+animar fácilmente la elevación de las vistas. Para más información, consulta la referencia de la API para
+{@link android.view.ViewPropertyAnimator} y la guía del desarrollador <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Animación de propiedades</a>.
+</p>
 
-<p>También puedes usar un {@link android.animation.StateListAnimator} para especificar estas animaciones de manera declarativa. Esto es especialmente útil para casos en donde los cambios de estados desencadenan animaciones, como cuando un usuario pulsa un botón. Para más información, consulta <a href="{@docRoot}training/material/animations.html#ViewState">Animar cambios de estados de las vistas</a>.</p>
+<p>También puedes usar un {@link android.animation.StateListAnimator} para
+especificar estas animaciones de manera declarativa. Esto es especialmente útil para casos en donde los cambios de
+estados desencadenan animaciones, como cuando un usuario pulsa un botón. Para más información, consulta
+<a href="{@docRoot}training/material/animations.html#ViewState">Animar cambios de estados de las vistas</a>.</p>
 
 <p>Los valores Z se miden en dp (píxeles independientes de la densidad).</p>
 
 
 <h2 id="Shadows">Personalizar visualización de sombras y contornos</h2>
 
-<p>Los límites del elemento de diseño de fondo de una vista determinan la forma predeterminada de su sombra. Los <strong>contornos</strong> representan la forma externa de un objeto gráfico y definen el área de la onda para la respuesta táctil.</p>
+<p>Los límites de la interfaz dibujable en segundo plano de una vista determinan la forma predeterminada de su sombra.
+Los <strong>contornos</strong> representan la forma externa de un objeto gráfico y definen el área del efecto de ondas
+para la respuesta táctil.</p>
 
 <p>Examina esta vista, definida con una interfaz dibujable en segundo plano:</p>
 
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>La vista proyecta una sombra con esquinas redondeadas, ya que la interfaz dibujable en segundo plano define el contorno de la vista. Un contorno personalizado reemplazaría la forma predeterminada de la sombra de una vista.</p>
+<p>La vista proyecta una sombra con esquinas redondeadas, ya que la interfaz dibujable en segundo plano
+define el contorno de la vista. Un contorno personalizado reemplazaría la forma predeterminada de la sombra de una vista.</p>
 
 <p>Para definir un contorno personalizado para una vista en tu código:<p>
 
 <ol>
 <li>Extiende la clase {@link android.view.ViewOutlineProvider}.</li>
 <li>Reemplaza el método {@link android.view.ViewOutlineProvider#getOutline getOutline()}.</li>
-<li>Asigna el nuevo proveedor de contornos a tu vista con el método {@link android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
+<li>Asigna el nuevo proveedor de contornos a tu vista con el método {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
 </ol>
 
-<p>Puedes crear contornos rectangulares y ovalados con esquinas redondeadas mediante el uso de métodos en la clase {@link android.graphics.Outline}. El proveedor de contornos predeterminado para las vistas obtiene el contorno a partir del plano de fondo de la vista. Para evitar que una vista proyecte una sombra, establece su proveedor de contornos a <code>null</code>.</p>
+<p>Puedes crear contornos rectangulares y ovalados con esquinas redondeadas mediante el uso de métodos en la clase
+{@link android.graphics.Outline}. El proveedor de contornos predeterminado para las
+vistas obtiene el contorno a partir del plano de fondo de la vista. Para evitar que una vista proyecte una sombra, establece su proveedor de contornos
+en <code>null</code>.</p>
 
 
 <h2 id="Clip">Recortar vistas</h2>
 
-<p>Recortar vistas te permite cambiar fácilmente la forma de una vista. Puedes recortar vistas para mantener una consistencia con otros elementos del diseño o para cambiar la forma de una vista en respuesta a una señal de entrada del usuario. Puedes recortar una vista a partir de su área de contorno mediante el método {@link android.view.View#setClipToOutline View.setClipToOutline()} o el atributo <code>android:clipToOutline</code>. Solo los contornos rectangulares, circulares y redondeados admiten el recorte, según lo determinado por el método {@link android.graphics.Outline#canClip Outline.canClip()}.</p>
+<p>Recortar vistas te permite cambiar fácilmente la forma de una vista. Puedes recortar vistas para
+mantener la uniformidad con otros elementos del diseño o para cambiar la forma de una vista en respuesta a una señal de entrada del usuario.
+Puedes recortar una vista a partir de su área de contorno mediante el método {@link android.view.View#setClipToOutline
+View.setClipToOutline()} o el atributo <code>android:clipToOutline</code>. Solo
+los contornos rectangulares, circulares y redondeados admiten el recorte, según lo determinado por el método
+{@link android.graphics.Outline#canClip Outline.canClip()}.</p>
 
-<p>Para recortar una vista a partir de una interfaz dibujable, establece la interfaz dibujable como el plano de fondo de la vista (como se muestra más arriba) y llama al método {@link android.view.View#setClipToOutline View.setClipToOutline()}.</p>
+<p>Para recortar una vista a partir de una interfaz dibujable, establece la interfaz dibujable como el plano de fondo de la vista
+(como se muestra más arriba) y llama al método {@link android.view.View#setClipToOutline View.setClipToOutline()}.
+</p>
 
-<p>Recortar vistas es una operación costosa, asi que no animes la forma que usas para recortar una vista. Para lograr este efecto, usa la animación <a href="{@docRoot}training/material/animations.html#Reveal">Efecto revelar</a>.</p> 
\ No newline at end of file
+<p>Recortar vistas es una operación costosa, así que no animes la forma que usas para
+recortar una vista. Para lograr este efecto, usa la animación <a href="{@docRoot}training/material/animations.html#Reveal">Efecto revelar</a>.</p>
diff --git a/docs/html-intl/intl/es/training/material/theme.jd b/docs/html-intl/intl/es/training/material/theme.jd
index c949483..d748c43 100644
--- a/docs/html-intl/intl/es/training/material/theme.jd
+++ b/docs/html-intl/intl/es/training/material/theme.jd
@@ -1,10 +1,10 @@
-page.title=Usar el tema Material 
+page.title=Usar el tema Material
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-<h2>Esta lección te enseña a</h2>
+<h2>Esta lección te enseña a realizar lo siguiente:</h2>
 <ol>
   <li><a href="#ColorPalette">Personalizar la paleta de colores</a></li>
   <li><a href="#StatusBar">Personalizar la barra de estado</a></li>
@@ -27,9 +27,12 @@
   <li>Animaciones para transiciones de actividades</li>
 </ul>
 
-<p>Puedes personalizar la apariencia del tema material según la identidad de tu marca, con una paleta de colores que esté bajo tu control. Puedes cambiar el matiz de la barra de acción y la barra de estado mediante atributos de temas, como se muestra en la <a href="#fig3">Figura 3</a>.</p>
+<p>Puedes personalizar la apariencia del tema material
+según la identidad de tu marca, con una paleta de colores que esté bajo tu control. Puedes cambiar el matiz de la barra de acción y
+la barra de estado mediante atributos de temas, como se muestra en la <a href="#fig3">figura 3</a>.</p>
 
-<p>Los widgets del sistema tienen un nuevo diseño y animaciones para respuesta táctil. Puedes personalizar tu aplicación cambiando su paleta de colores, las animaciones de la respuesta táctil y sus transiciones de actividades.</p>
+<p>Los widgets del sistema tienen un nuevo diseño y animaciones para respuesta táctil. Puedes personalizar tu aplicación cambiando su
+paleta de colores, las animaciones de la respuesta táctil y sus transiciones de actividades.</p>
 
 <p>El tema material se define como:</p>
 
@@ -39,7 +42,8 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>Para obtener una lista de estilos de Material, consulta la referencia de la API para {@link android.R.style R.style}.</p>
+<p>Para obtener una lista de estilos de Material, consulta la referencia de la API para
+{@link android.R.style R.style}.</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
@@ -59,13 +63,18 @@
 </div>
 
 <p class="note">
-<strong>Nota:</strong> El tema material solo está disponible en Android 5.0 (nivel de API 21) y superior. Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a> proporcionan temas con estilos de Material Design para algunos widgets y admiten la personalización de la paleta de colores. Para más información, consulta <a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a>.
+<strong>Nota:</strong> El tema material solo está disponible en Android 5.0 (API nivel 21) y
+superior. Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a>
+proporcionan temas con estilos de Material Design para algunos widgets y admiten la personalización de la paleta de
+colores. Para más información, consulta
+<a href="{@docRoot}training/material/compatibility.html">Mantener la compatibilidad</a>.
 </p>
 
 
 <h2 id="ColorPalette">Personalizar la paleta de colores</h2>
 
-<p style="margin-bottom:30px">Si deseas personalizar los colores base del tema para que se adapten a tu marca, define tus colores personalizados mediante los atributos de temas cuando heredes del tema material:</p>
+<p style="margin-bottom:30px">Si deseas personalizar los colores base del tema para que se adapten a tu marca, define
+tus colores personalizados mediante los atributos de temas cuando heredes del tema material:</p>
 
 <pre>
 &lt;resources>
@@ -91,17 +100,32 @@
 
 <h2 id="StatusBar">Personalizar la barra de estado</h2>
 
-<p>El tema material te permite personalizar fácilmente la barra de estado, especifica un color que se adapte a tu marca y proporciona suficiente contraste para mostrar los íconos de estado en blanco. Si quieres establecer un color personalizado para la barra de estado, usa el atributo <code>android:statusBarColor</code> cuando extiendas el tema material. <code>android:statusBarColor</code> hereda el valor de <code>android:colorPrimaryDark</code> en forma predeterminada.</p>
+<p>El tema material te permite personalizar fácilmente la barra de estado, especifica un
+color que se adapte a tu marca y proporciona suficiente contraste para mostrar los íconos de estado en blanco. Si
+quieres establecer un color personalizado para la barra de estado, usa el atributo <code>android:statusBarColor</code>
+cuando extiendas el tema material. <code>android:statusBarColor</code> hereda el
+valor de <code>android:colorPrimaryDark</code> en forma predeterminada.</p>
 
-<p>También puedes dibujar por detrás de la barra de estado. Por ejemplo, si quieres que la barra de estado se muestre en forma transparente sobre una foto, aplica un sutil degradado oscuro para garantizar que los íconos de estado blancos sigan visibles. Para hacerlo, establece el atributo <code>android:statusBarColor</code> a <code>&#64;android:color/transparent</code> y ajusta los indicadores de la ventana según lo requerido. También puedes usar el método {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} para las animaciones o el difuminado.</p>
+<p>También puedes dibujar por detrás de la barra de estado. Por ejemplo, si quieres que la barra de estado se
+muestre en forma transparente sobre una foto, aplica un sutil degradado oscuro para garantizar que los íconos
+de estado blancos sigan visibles. Para hacerlo, establece el atributo <code>android:statusBarColor</code> en
+<code>&#64;android:color/transparent</code> y ajusta los indicadores de la ventana según lo requerido. También puedes
+usar el método {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} para
+las animaciones o el difuminado.</p>
 
 <p class="note">
-<strong>Nota:</strong> La barra de estado casi siempre debe estar delimitada claramente de la barra de herramientas principal, excepto para los casos en donde muestres imágenes de un extremo a otro o contenido multimedia detrás de estas barras, y también cuando uses un degradado para garantizar que los íconos aún sean visibles.
+<strong>Nota:</strong> La barra de estado casi siempre debe estar delimitada claramente de la
+barra de herramientas principal, excepto para los casos en donde muestres imágenes de un extremo a otro o contenido multimedia detrás
+de estas barras, y también cuando uses un degradado para garantizar que los íconos aún sean visibles.
 </p>
 
-<p>Cuando personalizas la barra de navegación y la barra de estado, o bien tendrás que hacer que ambas sean transparentes o modifica solo la barra de estado. La barra de navegación debe permanecer de color negro en todos los otros casos.</p>
+<p>Cuando personalizas la barra de navegación y la barra de estado, haz que ambas sean transparentes o modifica
+solo la barra de estado. La barra de navegación debe permanecer de color negro en todos los otros casos.</p>
 
 
-<h2 id="Inheritance">Cambiar el tema de vistas individuales</h3>
+<h2 id="Inheritance">Vistas individuales del tema</h3>
 
-<p>Los elementos en las definiciones de diseño XML pueden especificar el atributo <code>android:theme</code>, que hace referencia al recurso del tema. Este atributo modifica el tema para el elemento y cualquier elemento hijo, y esto es útil para modificar las paletas de colores de los temas en una porción específica de una interfaz.</p> 
\ No newline at end of file
+<p>Los elementos en las definiciones de diseño XML pueden especificar el atributo <code>android:theme</code>,
+que hace referencia al recurso del tema. Este atributo modifica el tema para el elemento y cualquier
+elemento secundario, y esto es útil para modificar las paletas de colores de los temas en una porción específica
+de una interfaz.</p>
diff --git a/docs/html-intl/intl/in/design/get-started/principles.jd b/docs/html-intl/intl/in/design/get-started/principles.jd
new file mode 100644
index 0000000..9aed08e
--- /dev/null
+++ b/docs/html-intl/intl/in/design/get-started/principles.jd
@@ -0,0 +1,307 @@
+page.title=Prinsip Desain Android
+@jd:body
+
+<p>Prinsip desain ini dikembangkan oleh dan untuk Tim Pengalaman Pengguna
+ Android agar selalu mempertimbangkan kepentingan pengguna.
+Untuk pengembang dan desainer Android, mereka terus
+meletakkan dasar pedoman desain yang lebih detail untuk beragam tipe
+perangkat.</p>
+
+<p>
+Perhatikan prinsip-prinsip ini saat Anda menerapkan
+kreativitas dan pemikiran desain sendiri. Menyimpang dengan sengaja.
+</p>
+
+<h2 id="enchant-me">Pikat Saya</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="delight-me">Senangkan saya dengan cara yang mengejutkan</h4>
+<p>Permukaan yang cantik, animasi yang ditempatkan dengan hati-hati, atau efek suara di saat yang tepat sungguh menyenangkan untuk
+dinikmati. Efek yang lembut menimbulkan perasaan serba mudah dan kesadaran bahwa kekuatan yang
+bisa diandalkan ada dalam genggaman.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_delight.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="real-objects-more-fun">Objek sungguhan lebih menyenangkan daripada tombol dan menu</h4>
+<p>Biarkan orang langsung menyentuh dan memanipulasi objek dalam aplikasi Anda. Ini mengurangi upaya kognitif
+yang diperlukan untuk menjalankan tugas sekaligus membuatnya lebih memuaskan secara emosional.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_real_objects.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="make-it-mine">Biarkan saya memilikinya</h4>
+<p>Orang suka menambahkan sentuhan pribadi karena membantu mereka merasa betah dan memegang kendali. Memberikan
+default yang pantas dan indah, tetapi juga mempertimbangkan penyesuaian opsional yang menyenangkan, yang tidak mengganggu
+tugas utama.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_make_it_mine.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="get-to-know-me">Kenali saya</h4>
+<p>Pelajari preferensi orang dari waktu ke waktu. Daripada meminta mereka untuk membuat pilihan yang sama
+berulang-ulang, tempatkan pilihan sebelumnya agar mudah dijangkau.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_get_to_know_me.png">
+
+  </div>
+</div>
+
+<h2 id="simplify-my-life">Sederhanakan Hidup Saya</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="keep-it-brief">Persingkat</h4>
+<p>Gunakan frasa pendek dengan kata-kata sederhana. Orang cenderung melewatkan kalimat-kalimat panjang.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_keep_it_brief.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="pictures-faster-than-words">Gambar lebih cepat dibanding kata-kata</h4>
+<p>Pertimbangkan menggunakan gambar untuk menjelaskan gagasan. Gambar menarik perhatian orang dan bisa jauh lebih efisien
+dibanding kata-kata.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_pictures.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="decide-for-me">Putuskan untuk saya tetapi biarkan saya yang menentukan</h4>
+<p>Gunakan tebakan terbaik Anda dan bertindaklah daripada meminta terlebih dahulu. Terlalu banyak pilihan dan keputusan membuat orang
+tidak suka. Untuk berjaga-jaga jika Anda salah, izinkan 'pembatalan'.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_decide_for_me.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="only-show-when-i-need-it">Cukup tunjukkan yang saya perlukan ketika saya memerlukannya</h4>
+<p>Orang merasa kewalahan ketika melihat terlalu banyak hal sekaligus. Uraikan tugas dan informasi menjadi potongan-potongan
+kecil yang mudah dicerna. Sembunyikan opsi yang tidak perlu pada saat ini, dan ajari orang sambil jalan.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_information_when_need_it.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="always-know-where-i-am">Saya harus selalu tahu di mana saya berada</h4>
+<p>Beri orang kepercayaan diri bahwa mereka tahu di mana berada. Buat agar tempat-tempat dalam aplikasi Anda terlihat berbeda dan
+gunakan transisi untuk menunjukkan hubungan antar layar. Berikan umpan balik tentang tugas yang sedang berlangsung.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_navigation.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="never-lose-my-stuff">Jangan sekali-kali menghilangkan milik saya</h4>
+<p>Simpan apa yang telah susah-payah dibuat orang dan biarkan mereka mengaksesnya dari mana saja. Ingat pengaturan,
+sentuhan pribadi, dan kreasi lintas ponsel, tablet, dan komputer. Itu membuat pemutakhiran menjadi
+hal termudah di dunia.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="looks-same-should-act-same">Jika terlihat sama, seharusnya fungsinya sama</h4>
+<p>Bantu orang merasakan perbedaan fungsional dengan membuat mereka terlihat berbeda daripada mirip.
+Hindari mode, yaitu tempat yang terlihat mirip tetapi berbeda fungsinya pada input yang sama.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_looks_same.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="interrupt-only-if-important">Sela saya jika penting saja</h4>
+<p>Layaknya asisten pribadi yang baik, lindungi orang dari detail yang tidak penting. Orang ingin tetap
+fokus, dan kecuali jika memang penting dan sensitif waktu, interupsi bisa melelahkan dan menjengkelkan.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_important_interruption.png">
+
+  </div>
+</div>
+
+<h2 id="make-me-amazing">Buat Saya Terpesona</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="give-me-tricks">Beri saya trik yang efektif di mana saja</h4>
+<p>Orang merasa senang ketika mereka memahami sendiri sesuatu. Jadikan aplikasi Anda lebih mudah dipelajari dengan
+memanfaatkan pola visual dan memori otot dari aplikasi Android lainnya. Misalnya, gerakan menggeser
+dapat menjadi pintasan navigasi yang bagus.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_tricks.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="its-not-my-fault">Bukan salah saya</h4>
+<p>Bersikap ramahlah dalam meminta orang untuk melakukan koreksi. Mereka ingin merasa pintar ketika menggunakan
+aplikasi Anda. Jika terjadi kesalahan, berikan petunjuk perbaikan yang jelas tetapi lepaskan mereka dari detail teknis.
+Jika Anda dapat memperbaikinya secara diam-diam, tentu lebih baik.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_error.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="sprinkle-encouragement">Berikan dorongan</h4>
+<p>Uraikan tugas-tugas rumit menjadi langkah-langkah kecil yang dapat dilakukan dengan mudah. Beri umpan balik tentang tindakan,
+meskipun hanya sesuatu yang sederhana.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="do-heavy-lifting-for-me">Lakukan pekerjaan yang sulit untuk saya</h4>
+<p>Buatlah pemula merasa seperti ahli dengan memungkinkan mereka untuk melakukan hal-hal yang mereka pikir tidak akan bisa. 
+Misalnya, pintasan yang menggabungkan beberapa efek foto dapat membuat foto amatir terlihat mengagumkan hanya
+dalam beberapa langkah.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_heavy_lifting.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="make-important-things-fast">Percepat hal penting</h4>
+<p>Tidak semua tindakan itu sama. Putuskan apa yang terpenting dalam aplikasi Anda dan permudah untuk menemukannya serta
+cepat untuk digunakan, seperti tombol rana pada kamera, atau tombol jeda pada pemutar musik.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_make_important_fast.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/in/design/material/index.jd b/docs/html-intl/intl/in/design/material/index.jd
new file mode 100644
index 0000000..0cb4dbc
--- /dev/null
+++ b/docs/html-intl/intl/in/design/material/index.jd
@@ -0,0 +1,186 @@
+page.title=Material Design for Android
+page.tags=Material,design
+page.type=design
+page.image=images/cards/design-material-for-android_2x.jpg
+
+@jd:body
+
+<!-- developer docs box -->
+<a class="notice-developers right" href="{@docRoot}training/material/index.html">
+  <div>
+    <h3>Dokumen Pengembang</h3>
+    <p>Membuat Aplikasi dengan Desain Bahan</p>
+  </div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=p4gmvHyuZzw">
+<div>
+    <h3>Video</h3>
+    <p>Pengantar Desain Bahan</p>
+</div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=YaG_ljfzeUw">
+<div>
+    <h3>Video</h3>
+    <p>Kertas dan Tinta: Bahan Penting</p>
+</div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=XOcCOBe8PTc">
+<div>
+    <h3>Video</h3>
+    <p>Desain Bahan di Aplikasi Google I/O</p>
+</div>
+</a>
+
+
+
+<p itemprop="description">Desain bahan adalah panduan komprehensif untuk desain visual, gerak, dan
+interaksi lintas platform dan perangkat. Android kini menyertakan dukungan untuk
+aplikasi desain bahan. Untuk menggunakan desain bahan di aplikasi Android, ikuti panduan yang didefinisikan
+dalam <a href="http://www.google.com/design/spec">spesifikasi desain bahan</a> dan gunakan
+komponen dan fungsionalitas baru yang tersedia di Android 5.0 (API level 21) ke atas.</p>
+
+<p>Android menyediakan elemen berikut untuk membangun aplikasi desain bahan:</p>
+
+<ul>
+  <li>Tema baru</li>
+  <li>Widget baru untuk tampilan yang kompleks</li>
+  <li>API baru untuk animasi dan bayangan custom</li>
+</ul>
+
+<p>Untuk informasi selengkapnya tentang mengimplementasikan desain bahan pada Android, lihat
+<a href="{@docRoot}training/material/index.html">Membuat Aplikasi dengan Desain Bahan</a>.</p>
+
+
+<h3>Tema Bahan</h3>
+
+<p>Tema bahan menyediakan gaya baru untuk aplikasi Anda, widget sistem yang memungkinkan Anda mengatur
+palet warnanya, dan animasi default untuk umpan balik sentuh dan transisi aktivitas.</p>
+
+<!-- two columns -->
+<div style="width:700px;margin-top:25px;margin-bottom:20px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238" />
+  <div style="width:140px;margin:0 auto">
+  <p style="margin-top:8px">Tema bahan gelap</p>
+  </div>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238" />
+  <div style="width:140px;margin:0 auto">
+  <p style="margin-top:8px">Tema bahan terang</p>
+  </div>
+</div>
+<br style="clear:left"/>
+</div>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/theme.html">Menggunakan Tema
+Bahan</a>.</p>
+
+
+<h3>Daftar dan Kartu</h3>
+
+<p>Android menyediakan dua widget baru untuk menampilkan kartu dan daftar dengan gaya desain bahan
+dan animasi:</p>
+
+<!-- two columns -->
+<div style="width:700px;margin-top:25px;margin-bottom:20px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" />
+  <p>Widget <code>RecyclerView</code> baru adalah versi <code>ListView</code>
+ yang lebih mudah dimasukkan dan mendukung beragam tipe layout serta memberikan peningkatan kinerja.</p>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
+  <p>Widget <code>CardView</code> baru memungkinkan Anda menampilkan potongan informasi penting dalam
+  kartu yang memiliki tampilan dan cara kerja yang konsisten.</p>
+</div>
+<br style="clear:left"/>
+</div>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/lists-cards.html">Membuat Daftar
+dan Kartu</a>.</p>
+
+
+<h3>Bayangan Tampilan</h3>
+
+<p>Selain properti X dan Y, tampilan di Android kini memiliki
+properti Z. Properti baru ini mewakili ketinggian tampilan, yang menentukan:</p>
+
+<ul>
+<li>Ukuran bayangan: tampilan dengan nilai Z lebih tinggi menghasilkan bayangan lebih besar.</li>
+<li>Urutan penggambaran: tampilan dengan nilai Z lebih tinggi muncul di atas tampilan lainnya.</li>
+</ul>
+
+<div style="width:290px;margin-left:35px;float:right">
+  <div class="framed-nexus5-port-span-5">
+  <video class="play-on-hover" autoplay>
+    <source src="{@docRoot}design/material/videos/ContactsAnim.mp4"/>
+    <source src="{@docRoot}design/videos/ContactsAnim.webm"/>
+    <source src="{@docRoot}design/videos/ContactsAnim.ogv"/>
+  </video>
+  </div>
+  <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+    <em>Untuk memutar ulang film, klik layar perangkat</em>
+  </div>
+</div>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/shadows-clipping.html">Mendefinisikan
+Bayangan dan Memangkas Tampilan</a>.</p>
+
+
+<h3>Animasi</h3>
+
+<p>API animasi baru memungkinkan Anda membuat animasi custom untuk umpan balik sentuh dalam kontrol UI,
+perubahan status tampilan, dan transisi aktivitas.</p>
+
+<p>API ini memungkinkan Anda:</p>
+
+<ul>
+<li style="margin-bottom:15px">
+Merespons kejadian sentuh dalam tampilan Anda dengan animasi <strong>umpan balik sentuh</strong>.
+</li>
+<li style="margin-bottom:15px">
+Menyembunyikan dan memperlihatkan tampilan dengan animasi <strong>membuka melingkar</strong>.
+</li>
+<li style="margin-bottom:15px">
+Peralihan antar aktivitas dengan animasi <strong>transisi aktivitas</strong> custom.
+</li>
+<li style="margin-bottom:15px">
+Membuat animasi yang lebih alami dengan <strong>gerak melengkung</strong>.
+</li>
+<li style="margin-bottom:15px">
+Menganimasikan perubahan dalam satu atau beberapa properti tampilan dengan animasi <strong>perubahan status tampilan</strong>.
+</li>
+<li style="margin-bottom:15px">
+Menampilkan animasi di <strong>drawable daftar status</strong> di antara perubahan status tampilan.
+</li>
+</ul>
+
+<p>Animasi umpan balik sentuh dimasukkan ke dalam beberapa tampilan standar, misalnya tombol. API baru
+ini memungkinkan Anda menyesuaikan animasi ini dan menambahkannya ke tampilan custom Anda.</p>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/animations.html">Mendefinisikan Animasi
+Custom</a>.</p>
+
+
+<h3>Drawable</h3>
+
+<p>Kemampuan baru untuk drawable ini membantu Anda mengimplementasikan aplikasi desain bahan:</p>
+
+<ul>
+<li><strong>Drawable vektor</strong> bisa diubah skalanya tanpa kehilangan definisi dan cocok
+untuk ikon satu-warna dalam-aplikasi.</li>
+<li><strong>Pewarnaan drawable</strong> memungkinkan Anda mendefinisikan bitmap sebagai alpha-mask dan mewarnainya
+saat runtime.</li>
+<li><strong>Ekstraksi warna</strong> memungkinkan Anda mengekstrak warna mencolok secara otomatis dari
+gambar bitmap.</li>
+</ul>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/drawables.html">Bekerja dengan
+Drawable</a>.</p>
diff --git a/docs/html-intl/intl/in/design/patterns/compatibility.jd b/docs/html-intl/intl/in/design/patterns/compatibility.jd
new file mode 100644
index 0000000..cafaac4
--- /dev/null
+++ b/docs/html-intl/intl/in/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=Kompatibilitas Mundur
+page.tags="support"
+page.metaDescription=Catatan tentang bagaimana Android 4.x menyesuaikan UI yang didesain untuk perangkat keras dan versi OS yang lebih lama.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>Dokumen Pengembang</h3>
+    <p>Mendukung Perangkat Berbeda</p>
+  </div>
+</a>
+
+<p>Perubahan signifikan dalam Android 3.0 meliputi:</p>
+<ul>
+<li>Dihilangkannya tombol perangkat keras navigasi (Back, Menu, Search, Home) untuk membantu menangani navigasi
+  melalui kontrol maya (Back, Home, Recents).</li>
+<li>Pola yang tangguh untuk penggunaan menu pada action-bar.</li>
+</ul>
+<p>Android 4.0 membawa perubahan ini untuk tablet dengan platform ponsel.</p>
+
+<h2 id="older-hardware">Menyesuaikan Android 4.0 dengan Perangkat Keras dan Aplikasi yang Lebih Lama</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Ponsel dengan kontrol navigasi virtual</h4>
+<p>Aplikasi Android yang ditulis untuk Android 3.0 dan yang lebih baru menampilkan tindakan dalam action-bar. Tindakan yang tidak
+muat dalam action-bar atau tidak cukup penting untuk ditampilkan di tingkat atas akan muncul dalam
+action-overflow.</p>
+<p>Pengguna mengakses action-overflow dengan menyentuhnya dalam action-bar.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Ponsel dengan tombol navigasi fisik</h4>
+<p>Ponsel Android dengan tombol perangkat keras navigasi biasa tidak menampilkan baris navigasi virtual di
+bagian bawah layar. Sebagai gantinya, action-overflow tersedia dari tombol perangkat keras menu. Popup
+tindakan yang dihasilkan memiliki gaya yang sama dengan contoh sebelumnya, tetapi ditampilkan di bagian bawah layar.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Aplikasi lama pada ponsel dengan kontrol navigasi virtual</h4>
+<p>Bila Anda menjalankan aplikasi yang dibuat untuk Android 2.3 atau yang lebih lama pada ponsel
+dengan kontrol navigasi virtual, sebuah kontrol action-overflow akan muncul di sebelah kanan baris navigasi virtual. Anda
+dapat menyentuh kontrol itu untuk menampilkan tindakan aplikasi dalam gaya menu Android biasa.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/in/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/in/design/patterns/confirming-acknowledging.jd
new file mode 100644
index 0000000..d22e924
--- /dev/null
+++ b/docs/html-intl/intl/in/design/patterns/confirming-acknowledging.jd
@@ -0,0 +1,70 @@
+page.title=Mengonfirmasi &amp; Mengakui
+page.tags=dialog,toast,notification
+@jd:body
+
+<p>Dalam beberapa situasi, bila pengguna memanggil suatu tindakan dalam aplikasi Anda, ada baiknya <em>mengonfirmasi</em> atau <em>mengakui</em> tindakan itu melalui teks.</p>
+
+<div class="cols">
+  <div class="col-6">
+    <img src="{@docRoot}design/media/confirm_ack_confirming.png">
+    <p><strong>Mengonfirmasi</strong> adalah meminta pengguna untuk memverifikasi bahwa mereka benar-benar ingin melanjutkan tindakan yang baru saja mereka panggil. Dalam beberapa kasus, konfirmasi ditampilkan bersama-sama dengan peringatan atau informasi penting yang terkait dengan tindakan yang perlu mereka pertimbangkan.</p>
+  </div>
+  <div class="col-6">
+    <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
+    <p><strong>Mengakui</strong> adalah menampilkan teks untuk memberi tahu pengguna bahwa tindakan yang baru mereka panggil sudah dilakukan. Ini menghilangkan ketidakpastian tentang operasi implisit yang dilakukan sistem. Dalam beberapa kasus, pengakuan ditampilkan bersama dengan opsi untuk membatalkan tindakan.</p>
+  </div>
+</div>
+
+<p>Berkomunikasi pada pengguna dengan cara ini bisa membantu mengurangi ketidakpastian tentang hal-hal yang sudah atau akan terjadi. Mengonfirmasi atau mengakui juga dapat mencegah pengguna melakukan kesalahan yang akan mereka sesali.</p>
+
+<h2>Kapan Harus Mengonfirmasi atau Mengakui Tindakan Pengguna</h2>
+<p>Tidak semua tindakan memerlukan konfirmasi atau pengakuan. Gunakan bagan alur ini untuk memandu keputusan desain Anda.</p>
+<img src="{@docRoot}design/media/confirm_ack_flowchart.png">
+
+<h2>Mengonfirmasi</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Contoh: Google Play Books</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
+    <p>Dalam contoh ini, pengguna telah meminta untuk menghapus sebuah buku dari perpustakaan Google Play mereka. Sebuah <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">peringatan</a> muncul untuk mengonfirmasi tindakan ini karena perlu dipahami bahwa buku tersebut tidak akan tersedia lagi dari perangkat apa pun.</p>
+    <p>Saat membuat dialog konfirmasi, buat judul bermakna dengan mencerminkan tindakan yang diminta.</p>
+  </div>
+  <div class="col-7">
+    <h4>Contoh: Android Beam</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
+    <p>Konfirmasi tidak harus ditampilkan dalam peringatan dengan dua tombol. Setelah menjalankan Android Beam, pengguna diminta untuk menyentuh konten yang akan dibagikan (dalam contoh ini, sebuah foto). Jika mereka memutuskan untuk tidak melanjutkan, mereka tinggal memindahkan ponsel.</p>
+  </div>
+</div>
+
+<h2>Mengakui</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Contoh: Draf Gmail batal yang disimpan</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
+    <p>Dalam contoh ini, jika pengguna menyusuri ke belakang atau ke atas dari layar pembuatan email di Gmail, sesuatu yang tak diharapkan bisa terjadi: draf saat itu akan disimpan secara otomatis. Pengakuan dalam bentuk pemberitahuan akan lebih jelas. Ini menghilang setelah beberapa detik.</p>
+    <p>Pembatalan tidak cocok di sini karena penyimpanan dilakukan oleh aplikasi, bukan pengguna. Cepat dan mudah untuk melanjutkan penulisan pesan dengan menyusuri daftar draf.</p>
+
+  </div>
+  <div class="col-6">
+    <h4>Contoh: Percakapan Gmail dihapus</h4>
+    <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
+    <p>Setelah pengguna menghapus percakapan dari daftar dalam Gmail, sebuah pengakuan muncul tanpa opsi pembatalan. Pengakuan tetap ada sampai pengguna melakukan tindakan yang tidak berkaitan, seperti menggulir daftar.</p>
+  </div>
+</div>
+
+<h2>Tidak ada Konfirmasi atau Pengakuan</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Contoh: memberikan +1</h4>
+    <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
+    <p><strong>Konfirmasi tidak diperlukan</strong>. Jika pengguna telah memberikan +1 secara tidak sengaja, tidak masalah. Mereka cukup menyentuh kembali tombol itu untuk membatalkan tindakan.</p>
+    <p><strong>Pengakuan tidak diperlukan</strong>. Pengguna akan melihat tombol +1 memantul dan berubah merah. Itu tanda yang sangat jelas.</p>
+  </div>
+  <div class="col-7">
+    <h4>Contoh: Menghapus aplikasi dari Layar Beranda</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
+    <p><strong>Konfirmasi tidak diperlukan</strong>. Ini adalah tindakan yang disengaja: pengguna harus menyeret dan meletakkan sebuah item di atas target yang relatif besar dan terpisah. Karena itu, kecil kemungkinan terjadi ketidaksengajaan. Tetapi jika pengguna menyesali keputusan itu, maka hanya perlu beberapa detik untuk mengembalikannya lagi.</p>
+    <p><strong>Pengakuan tidak diperlukan</strong>. Pengguna akan mengetahui bahwa aplikasi itu tidak ada di Layar Beranda karena mereka menghilangkannya dengan cara menyeretnya.</p>
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/in/design/patterns/navigation.jd b/docs/html-intl/intl/in/design/patterns/navigation.jd
new file mode 100644
index 0000000..a8afaaa
--- /dev/null
+++ b/docs/html-intl/intl/in/design/patterns/navigation.jd
@@ -0,0 +1,213 @@
+page.title=Navigasi dengan Back dan Up
+page.tags="navigation","activity","task","up navigation","back navigation"
+page.image=/design/media/navigation_between_siblings_gmail.png
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
+  <div>
+    <h3>Dokumen Pengembang</h3>
+    <p>Mengimplementasikan Navigasi yang Efektif</p>
+  </div>
+</a>
+
+<p itemprop="description">Navigasi yang konsisten merupakan komponen penting dari keseluruhan pengalaman pengguna. Hampir tidak ada yang lebih membingungkan
+pengguna selain navigasi dasar yang perilakunya tidak konsisten dan tidak sesuai harapan. Android 3.0
+memperkenalkan perubahan besar dalam perilaku navigasi global. Mengikuti dengan saksama
+panduan untuk Back dan Up akan membuat navigasi aplikasi Anda dapat diprediksi dan dapat diandalkan pengguna.</p>
+<p>Android 2.3 dan versi sebelumnya mengandalkan tombol <em>Back</em> sistem untuk mendukung navigasi dalam
+aplikasi. Dengan diperkenalkannya action-bar dalam Android 3.0, mekanisme navigasi kedua muncul:
+tombol <em>Up</em>, yang terdiri dari ikon aplikasi dan tanda panah yang menunjuk ke kiri.</p>
+
+<img src="{@docRoot}design/media/navigation_with_back_and_up.png">
+
+<h2 id="up-vs-back">Up vs. Back</h2>
+
+<p>Tombol Up digunakan untuk berpindah dalam aplikasi berdasarkan hubungan hierarki
+antar layar. Misalnya, jika layar A menampilkan daftar item, dan memilih sebuah item akan membuka
+layar B (yang menampilkan item tersebut secara lebih detail), maka layar B akan menawarkan tombol Up untuk
+kembali ke layar A.</p>
+<p>Jika suatu layar merupakan yang teratas dalam aplikasi (yaitu layar Home aplikasi), maka tidak perlu menampilkan tombol
+Up.</p>
+
+<p>Tombol Back sistem digunakan untuk berpindah, dalam urutan kronologis terbalik, melalui riwayat
+layar yang baru dibuka oleh pengguna. Biasanya ini berdasarkan hubungan sementara
+antar layar, dan bukan hierarki aplikasi.</p>
+
+<p>Bila layar yang dilihat sebelumnya juga merupakan induk hierarki dari layar yang sekarang, menekan tombol
+Back akan sama hasilnya dengan menekan tombol Up&mdash;ini adalah kejadian
+biasa. Akan tetapi, berbeda dengan tombol Up, yang memastikan pengguna tetap berada dalam aplikasi Anda, tombol Back
+dapat mengembalikan pengguna ke layar Home, atau bahkan ke aplikasi lain.</p>
+
+<img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
+
+<p>Tombol Back juga mendukung beberapa perilaku yang tidak terkait langsung dengan navigasi antar layar:
+</p>
+<ul>
+<li>Menghilangkan jendela mengambang (dialog, popup)</li>
+<li>Menghilangkan action-bar kontekstual, dan menghapus sorotan dari item yang dipilih</li>
+<li>Menyembunyikan keyboard di layar (IME)</li>
+</ul>
+<h2 id="within-app">Navigasi Dalam Aplikasi Anda</h2>
+
+<h4>Berpindah ke layar yang memiliki beberapa titik masuk</h4>
+<p>Kadang-kadang layar tidak memiliki posisi pasti dalam hierarki aplikasi, dan bisa dimasuki
+dari berbagai titik masuk&mdash;seperti layar pengaturan yang dapat dibuka dari layar lain
+dalam aplikasi Anda. Dalam hal ini, tombol Up akan memilih untuk kembali ke layar pengarah, yang cara kerjanya
+sama dengan tombol Back.</p>
+<h4>Mengubah tampilan dalam layar</h4>
+<p>Mengubah opsi tampilan untuk layar tidak mengubah perilaku Up atau Back: layar tetap
+berada di tempat yang sama dalam hierarki aplikasi, dan tidak dibuat riwayat navigasi yang baru.</p>
+<p>Contoh perubahan tampilan tersebut adalah:</p>
+<ul>
+<li>Mengganti tampilan menggunakan tab dan/atau geser kiri dan kanan</li>
+<li>Mengubah tampilan menggunakan tarik-turun (alias tab turun)</li>
+<li>Memfilter daftar</li>
+<li>Menyortir daftar</li>
+<li>Mengubah karakteristik tampilan (seperti zoom)</li>
+</ul>
+<h4>Berpindah antar layar yang seinduk</h4>
+<p>Bila aplikasi Anda mendukung navigasi dari daftar item ke tampilan detail salah satu item tersebut, aplikasi
+juga sering diharapkan mendukung navigasi langsung dari item itu ke item sebelumnya atau
+sesudahnya dalam daftar. Misalnya, dalam Gmail, begitu mudah untuk bergeser ke kiri atau kanan dari sebuah percakapan
+untuk melihat percakapan yang lebih baru atau lebih lama dalam Inbox yang sama. Sama seperti saat mengubah tampilan dalam layar, navigasi
+ini tidak mengubah perilaku Up atau Back.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
+
+<p>Akan tetapi, pengecualian khusus terhadap hal ini terjadi saat menjelajah di antara tampilan detail terkait yang tidak disatukan
+oleh daftar yang merujuknya&mdash;misalnya, saat menjelajahi Play Store di antara aplikasi dari
+pengembang yang sama, atau album dari artis yang sama. Dalam hal ini, mengikuti setiap tautan akan membuat
+riwayat, sehingga tombol Back akan menyusuri setiap layar yang dilihat sebelumnya. Tombol Up akan terus
+melewatkan semua layar terkait ini dan berpindah ke layar kontainer yang terakhir dilihat.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
+
+<p>Anda dapat menjadikan perilaku tombol Up lebih cerdas lagi berdasarkan pengetahuan Anda tentang tampilan
+detail. Dengan memperluas contoh Play Store dari atas, bayangkan pengguna yang telah berpindah dari Buku
+terakhir yang dilihat ke detail untuk adaptasi Film. Dalam hal itu, tombol Up dapat kembali ke kontainer
+(Movies) yang sebelumnya belum dilalui pengguna.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
+
+<h2 id="into-your-app">Navigasi ke Aplikasi Anda melalui Widget dan Pemberitahuan Layar Home</h2>
+
+<p>Anda bisa menggunakan widget atau pemberitahuan layar Home untuk membantu pengguna berpindah langsung ke layar
+jauh dalam hierarki aplikasi Anda. Misalnya, widget Inbox dan pemberitahuan pesan baru di Gmail dapat
+melewatkan layar Inbox, dan membawa pengguna langsung ke tampilan percakapan.</p>
+
+<p>Untuk kedua kasus ini, tangani tombol Up sebagai berikut:</p>
+
+<ul>
+<li><em>Jika layar tujuan biasanya dicapai dari satu layar tertentu dalam aplikasi
+Anda</em>, tombol Up akan mengarahkannya ke layar itu.</li>
+<li><em>Jika tidak</em>, tombol Up akan mengarahkan ke layar teratas ("Home") dari aplikasi Anda.</li>
+</ul>
+
+<p>Dalam hal tombol Back, Anda harus membuat navigasi lebih bisa diprediksi dengan menyisipkan ke dalam
+back-stack tugas path navigasi naik lengkap menuju layar teratas aplikasi. Ini memungkinkan pengguna
+yang lupa cara masuk ke aplikasi Anda untuk berpindah ke layar teratas aplikasi sebelum
+keluar.</p>
+
+<p>Sebagai contoh, widget layar Home di Gmail memiliki tombol untuk menuju langsung ke layar
+Compose. Tombol Up atau Back dari layar Compose akan membawa pengguna ke Inbox, dan dari sana tombol
+Back berlanjut ke Home.</p>
+
+<img src="{@docRoot}design/media/navigation_from_outside_back.png">
+
+<h4>Pemberitahuan tidak langsung</h4>
+
+<p>Jika aplikasi Anda perlu menampilkan informasi tentang beberapa kejadian sekaligus, aplikasi dapat menggunakan
+pemberitahuan tunggal yang mengarahkan pengguna ke layar antara. Layar ini merangkum semua
+kejadian tersebut, dan menyediakan path bagi pengguna untuk menjelajah ke dalam aplikasi. Pemberitahuan dengan gaya seperti ini
+disebut <em>pemberitahuan tidak langsung</em>.</p>
+
+<p>Berbeda dengan pemberitahuan standar (langsung), menekan tombol Back dari 
+layar antara pada pemberitahuan tidak langsung akan mengembalikan pengguna ke titik pemicu pemberitahuan tersebut&mdash;tidak ada
+layar tambahan yang disisipkan ke dalam back-stack. Setelah pengguna melanjutkan ke dalam aplikasi dari
+layar antara, tombol Up dan Back akan berperilaku seperti pada pemberitahuan standar, sebagaimana dijelaskan di atas:
+menyusuri ke dalam aplikasi dan bukan kembali ke layar antara.</p>
+
+<p>Misalnya, anggaplah seorang pengguna di Gmail menerima pemberitahuan tidak langsung dari Kalender. Menyentuh
+pemberitahuan ini akan membuka layar antara, yang menampilkan pengingat beberapa macam
+kejadian. Menyentuh Back dari layar antara akan mengembalikan pengguna ke Gmail. Menyentuh kejadian
+tertentu akan membawa pengguna dari layar antara ke aplikasi Kalender lengkap untuk menampilkan detail
+kejadian. Dari detail kejadian, tombol Up dan Back akan mengarahkan ke tampilan Kalender tingkat atas.</p>
+
+<img src="{@docRoot}design/media/navigation_indirect_notification.png">
+
+<h4>Pemberitahuan pop-up</h4>
+
+<p><em>Pemberitahuan pop-up</em> akan melewatkan laci pemberitahuan, bukan muncul secara langsung di
+hadapan pengguna. Ini jarang digunakan, dan <strong>harus dicadangkan untuk peristiwa yang memerlukan respons tepat waktu
+dan diperlukan interupsi dari konteks pengguna</strong>. Misalnya,
+Talk menggunakan gaya ini untuk memberi tahu pengguna tentang ajakan dari teman untuk bergabung dalam chatting video, karena
+ajakan ini akan kedaluwarsa secara otomatis setelah beberapa detik.</p>
+
+<p>Dalam hal perilaku navigasi, pemberitahuan pop-up sangat mirip perilaku pemberitahuan
+tidak langsung pada layar antara. Tombol Back akan menghilangkan pemberitahuan pop-up. Jika pengguna berpindah
+dari pop-up ke aplikasi yang memberi tahu, tombol Up dan Back akan mengikuti aturan pemberitahuan standar,
+berpindah dalam aplikasi.</p>
+
+<img src="{@docRoot}design/media/navigation_popup_notification.png">
+
+<h2 id="between-apps">Navigasi Antar Aplikasi</h2>
+
+<p>Salah satu kekuatan dasar sistem Android adalah kemampuan aplikasi untuk saling
+mengaktifkan, sehingga pengguna dapat berpindah langsung dari satu aplikasi ke aplikasi lainnya. Misalnya, sebuah
+aplikasi yang perlu mengambil foto dapat mengaktifkan aplikasi Kamera, yang akan mengembalikan foto
+ke aplikasi perujuk. Ini sangat menguntungkan pengembang, yang bisa dengan mudah memanfaatkan
+kode dari aplikasi lain, maupun pengguna, yang menikmati pengalaman konsisten untuk tindakan yang biasa
+dilakukan.</p>
+
+<p>Untuk memahami navigasi antar aplikasi, maka perlu memahami perilaku kerangka kerja Android
+yang akan dibahas di bawah ini.</p>
+
+<h4>Aktivitas, tugas, dan intent</h4>
+
+<p>Dalam Android, <strong>aktivitas</strong> adalah komponen aplikasi yang mendefinisikan layar
+informasi dan semua tindakan terkait yang dapat dilakukan pengguna. Aplikasi Anda adalah kumpulan
+aktivitas, yang terdiri dari aktivitas yang Anda buat dan aktivitas yang Anda gunakan ulang dari aplikasi lain.</p>
+
+<p><strong>Tugas</strong> adalah urutan aktivitas yang diikuti pengguna untuk mencapai tujuan. 
+Tugas tunggal dapat memanfaatkan aktivitas dari satu aplikasi saja, atau dapat memanfaatkan aktivitas dari sejumlah
+aplikasi berbeda.</p>
+
+<p><strong>Intent</strong> adalah mekanisme bagi satu aplikasi untuk memberi isyarat minta bantuan
+aplikasi lain dalam menjalankan suatu tindakan. Aktivitas aplikasi dapat menunjukkan intent
+ apa saja yang dapat diresponsnya. Untuk intent umum seperti "Share", pengguna mungkin telah menginstal beberapa aplikasi
+yang dapat memenuhi permintaan itu.</p>
+
+<h4>Contoh: berpindah antar aplikasi untuk mendukung berbagi</h4>
+
+<p>Untuk memahami cara kerja sama aktivitas, tugas, dan intent, perhatikan bagaimana sebuah aplikasi memungkinkan pengguna
+untuk berbagi konten dengan menggunakan aplikasi lain. Misalnya, membuka aplikasi Play Store dari Home akan memulai
+Task A baru (lihat gambar di bawah). Setelah menyusuri Play Store dan menyentuh buku yang dipromosikan
+untuk melihat detailnya, pengguna tetap berada dalam tugas yang sama, memperluasnya dengan menambahkan aktivitas. Memicu
+tindakan Share akan memberi tahu pengguna dengan dialog berisi daftar aktivitas (dari aplikasi berbeda)
+yang telah terdaftar untuk menangani intent Share.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_inward.png">
+
+<p>Bila pengguna memilih untuk berbagi melalui Gmail, aktivitas penulisan di Gmail akan ditambahkan sebagai kelanjutan dari
+Task A&mdash;tidak ada tugas baru yang dibuat. Jika Gmail sedang menjalankan tugasnya di latar belakang, maka
+tidak akan terpengaruh.</p>
+
+<p>Dari aktivitas penulisan, mengirim pesan atau menyentuh tombol Back akan mengembalikan pengguna ke
+aktivitas detail buku tersebut. Penyentuhan tombol Back berikutnya akan terus mengarahkan kembali melalui Play
+Store, sampai akhirnya tiba di Home.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_back.png">
+
+<p>Akan tetapi, dengan menyentuh tombol Up dari aktivitas penulisan, pengguna menunjukkan keinginan untuk tetap berada di
+Gmail. Aktivitas daftar percakapan Gmail muncul, Task B yang baru akan dibuat untuk itu. Tugas baru
+selalu terkait ke Home, maka menyentuh tombol Back dari daftar percakapan akan mengembalikan ke sana.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_up.png">
+
+<p>Task A tetap berjalan di latar belakang, dan pengguna nanti dapat kembali ke sana (misalnya, melalui layar
+Recents). Jika Gmail sedang menjalankan tugasnya di latar belakang, maka itu akan digantikan
+dengan Task B&mdash;konteks sebelumnya akan diabaikan demi tujuan baru pengguna.</p>
+
+<p>Jika register aplikasi Anda menangani intent dengan aktivitas yang jauh di dalam hierarki aplikasi,
+lihat <a href="#into-your-app">Navigasi Aplikasi Anda melalui Widget Layar Home dan
+Pemberitahuan</a> untuk panduan mengenai cara menetapkan navigasi Up.</p>
diff --git a/docs/html-intl/intl/in/sdk/index.jd b/docs/html-intl/intl/in/sdk/index.jd
index 712e8ea..248a4b8 100644
--- a/docs/html-intl/intl/in/sdk/index.jd
+++ b/docs/html-intl/intl/in/sdk/index.jd
@@ -1,62 +1,15 @@
 page.title=Unduh Android Studio dan SDK Tools
 page.tags=sdk, android studio
+page.image=images/cards/android-studio_2x.png
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Unduh Android IDE resmi dan alat pengembang untuk membuat aplikasi bagi ponsel, tablet, perangkat wearable, TV Android dan lainnya.
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +17,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +35,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -283,8 +223,9 @@
 
 <div class="col-13">&nbsp;</div><!-- provides top margin for content -->
 
-<img src="{@docRoot}images/tools/studio-hero.png" srcset="{@docRoot}images/tools/studio-hero_2x.png 2x, {@docRoot}images/tools/studio-hero.png 1x" width="760" height="400" />
-
+<img src="{@docRoot}images/tools/studio-hero.png"
+srcset="{@docRoot}images/tools/studio-hero_2x.png 2x, {@docRoot}images/tools/studio-hero.png 1x"
+width="760" alt="" />
 
 <div style="color: #fff; width:226px; height:0; overflow:visible; position:absolute; top:40px; left:25px">
 
@@ -293,15 +234,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">Android IDE resmi</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK Tools</li>
 <li>Platform Android 6.0 (Marshmallow)</li>
 <li>Citra sistem emulator Android 6.0 dengan Google API</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Unduh</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/in/sdk/installing/adding-packages.jd b/docs/html-intl/intl/in/sdk/installing/adding-packages.jd
index b98e27b..2fc5c3e 100644
--- a/docs/html-intl/intl/in/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/in/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=Menambahkan Paket SDK
 
 page.tags=sdk manager
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/in/training/material/animations.jd b/docs/html-intl/intl/in/training/material/animations.jd
new file mode 100644
index 0000000..e57a03f
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/animations.jd
@@ -0,0 +1,550 @@
+page.title=Mendefinisikan Animasi Custom
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#Touch">Menyesuaikan Umpan Balik Sentuh</a></li>
+  <li><a href="#Reveal">Menggunakan Reveal Effect</a></li>
+  <li><a href="#Transitions">Menyesuaikan Transisi Aktivitas</a></li>
+  <li><a href="#ViewState">Menganimasikan Perubahan Status Tampilan</a></li>
+  <li><a href="#AnimVector">Menganimasikan Drawable Vektor</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Animasi dalam desain bahan memberi pengguna umpan balik tentang tindakannya dan menyediakan
+kesinambungan visual saat pengguna berinteraksi dengan aplikasi Anda. Tema bahan menyediakan beberapa animasi default
+untuk tombol dan transisi aktivitas, dan Android 5.0 (API level 21) ke atas memungkinkan Anda menyesuaikan
+animasi ini dan membuat yang baru:</p>
+
+<ul>
+<li>Umpan balik sentuh</li>
+<li>Singkap Melingkar</li>
+<li>Transisi aktivitas</li>
+<li>Gerakan melengkung</li>
+<li>Perubahan status tampilan</li>
+</ul>
+
+
+<h2 id="Touch">Menyesuaikan Umpan Balik Sentuh</h2>
+
+<p>Umpan balik sentuh dalam desain bahan menyediakan konfirmasi visual seketika pada
+titik kontak bila pengguna berinteraksi dengan elemen UI. Animasi umpan balik sentuh default
+untuk tombol menggunakan kelas {@link android.graphics.drawable.RippleDrawable} baru, yang bertransisi
+di antara berbagai status dengan efek riak.</p>
+
+<p>Di sebagian besar kasus, Anda harus menerapkan fungsionalitas ini dalam XML tampilan dengan menetapkan
+latar belakang tampilan sebagai:</p>
+
+<ul>
+<li><code>?android:attr/selectableItemBackground</code> untuk riak berbatas.</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> untuk riak yang meluas ke luar
+tampilan. Latar belakang ini akan digambar di atas, dan dibatasi oleh, induk tampilan terdekat dengan
+latar belakang non-null.</li>
+</ul>
+
+<p class="note"><strong>Catatan:</strong> <code>selectableItemBackgroundBorderless</code> adalah
+atribut baru yang diperkenalkan di API level 21.</p>
+
+
+<p>Atau, Anda bisa mendefinisikan {@link android.graphics.drawable.RippleDrawable}
+sebagai sumber daya XML dengan menggunakan elemen <code>ripple</code>.</p>
+
+<p>Anda bisa menetapkan warna ke objek-objek {@link android.graphics.drawable.RippleDrawable}. Untuk mengubah
+warna default umpan balik sentuh, gunakan atribut <code>android:colorControlHighlight</code>
+tema.</p>
+
+<p>Untuk informasi selengkapnya, lihat referensi API bagi kelas {@link
+android.graphics.drawable.RippleDrawable}.</p>
+
+
+<h2 id="Reveal">Menggunakan Reveal Effect</h2>
+
+<p>Animasi singkap memberi pengguna kesinambungan visual saat menampilkan atau menyembunyikan sekelompok
+elemen UI. Metode {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} memungkinkan Anda menganimasikan lingkaran terpangkas
+untuk memperlihatkan atau menyembunyikan tampilan.</p>
+
+<p>Untuk memperlihatkan tampilan yang sebelumnya tidak terlihat dengan menggunakan efek ini:</p>
+
+<pre>
+// previously invisible view
+View myView = findViewById(R.id.my_view);
+
+// get the center for the clipping circle
+int cx = (myView.getLeft() + myView.getRight()) / 2;
+int cy = (myView.getTop() + myView.getBottom()) / 2;
+
+// get the final radius for the clipping circle
+int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
+
+// create the animator for this view (the start radius is zero)
+Animator anim =
+    ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
+
+// make the view visible and start the animation
+myView.setVisibility(View.VISIBLE);
+anim.start();
+</pre>
+
+<p>Untuk menyembunyikan sebuah tampilan yang sebelumnya terlihat dengan menggunakan efek ini:</p>
+
+<pre>
+// previously visible view
+final View myView = findViewById(R.id.my_view);
+
+// get the center for the clipping circle
+int cx = (myView.getLeft() + myView.getRight()) / 2;
+int cy = (myView.getTop() + myView.getBottom()) / 2;
+
+// get the initial radius for the clipping circle
+int initialRadius = myView.getWidth();
+
+// create the animation (the final radius is zero)
+Animator anim =
+    ViewAnimationUtils.createCircularReveal(myView, cx, cy, initialRadius, 0);
+
+// make the view invisible when the animation is done
+anim.addListener(new AnimatorListenerAdapter() {
+    &#64;Override
+    public void onAnimationEnd(Animator animation) {
+        super.onAnimationEnd(animation);
+        myView.setVisibility(View.INVISIBLE);
+    }
+});
+
+// start the animation
+anim.start();
+</pre>
+
+
+<h2 id="Transitions">Menyesuaikan Transisi Aktivitas</h2>
+
+<!-- shared transition video -->
+<div style="width:290px;margin-left:35px;float:right">
+  <div class="framed-nexus5-port-span-5">
+  <video class="play-on-hover" autoplay="">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.mp4">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.webm">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.ogv">
+  </video>
+  </div>
+  <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Gambar 1</strong> - Transisi
+    dengan elemen bersama.</p>
+    <em>Untuk memutar ulang film, klik layar perangkat</em>
+  </div>
+</div>
+
+<p>Transisi aktivitas dalam aplikasi desain bahan memberikan koneksi visual antar berbagai status
+melalui gerakan dan transformasi di antara elemen umum. Anda bisa menetapkan animasi custom untuk
+masuk ke dan keluar dari transisi dan untuk transisi elemen bersama di antara aktivitas.</p>
+
+<ul>
+<li>Transisi <strong>masuk</strong> menentukan cara tampilan di aktivitas memasuki suatu babak.
+misalnya, dalam transisi masuk <em>explode</em>, tampilan memasuki babak dari sisi luar
+dan melayang masuk ke arah tengah layar.</li>
+
+<li>Transisi <strong>keluar</strong> menentukan cara tampilan di aktivitas keluar dari suatu babak. Misalnya
+, dalam transisi keluar <em>explode</em>, tampilan akan keluar dari babak dari bagian
+tengahnya.</li>
+
+<li>Transisi <strong>elemen bersama</strong> menentukan cara menggunakan bersama suatu tampilan
+oleh dua transisi aktivitas di antara aktivitas-aktivitas ini. Misalnya, jika dua aktivitas memiliki
+gambar yang sama dengan posisi dan ukuran berbeda, transisi elemen bersama <em>changeImageTransform</em>
+mentransformasikan dan menskalakan gambar secara mulus di antara aktivitas-aktivitas ini.</li>
+</ul>
+
+<p>Android 5.0 (API level 21) mendukung transisi masuk dan transisi keluar ini:</p>
+
+<ul>
+<li><em>explode</em> - Memindahkan tampilan masuk ke atau keluar dari tengah babak.</li>
+<li><em>slide</em> - Memindahkan tampilan masuk ke atau keluar dari salah satu tepi babak.</li>
+<li><em>fade</em> - Menambahkan atau menghapus tampilan dari babak dengan mengubah opasitasnya.</li>
+</ul>
+
+<p>Transisi apa pun yang memperluas kelas {@link android.transition.Visibility} didukung
+sebagai transisi masuk atau transisi keluar. Untuk informasi selengkapnya, lihat referensi API untuk kelas
+{@link android.transition.Transition}.</p>
+
+<p>Android 5.0 (API level 21) juga mendukung transisi elemen bersama ini:</p>
+
+<ul>
+<li><em>changeBounds</em> - Menganimasikan perubahan pada batas-batas layout tampilan target.</li>
+<li><em>changeClipBounds</em> - Menganimasikan perubahan pada batas-batas pemangkasan tampilan target.</li>
+<li><em>changeTransform</em> - Menganimasikan perubahan pada skala dan rotasi tampilan target.</li>
+<li><em>changeImageTransform</em> - Menganimasikan perubahan pada ukuran dan skala gambar target.</li>
+</ul>
+
+<p>Bila Anda mengaktifkan transisi aktivitas dalam aplikasi, transisi memudar-silang default akan
+diaktifkan di antara aktivitas masuk dan aktivitas keluar.</p>
+
+<img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
+<p class="img-caption">
+  <strong>Gambar 2</strong> - Transisi babak dengan satu elemen bersama.
+</p>
+
+<h3>Menetapkan transisi custom</h3>
+
+<p>Pertama, aktifkan transisi konten jendela dengan atribut <code>android:windowContentTransitions</code>
+bila Anda mendefinisikan gaya yang mewarisi tema bahan. Anda juga bisa menetapkan
+transisi-transisi masuk, keluar, dan elemen bersama dalam definisi gaya:</p>
+
+<pre>
+&lt;style name="BaseAppTheme" parent="android:Theme.Material">
+  &lt;!-- enable window content transitions -->
+  &lt;item name="android:windowContentTransitions">true&lt;/item>
+
+  &lt;!-- specify enter and exit transitions -->
+  &lt;item name="android:windowEnterTransition">@transition/explode&lt;/item>
+  &lt;item name="android:windowExitTransition">@transition/explode&lt;/item>
+
+  &lt;!-- specify shared element transitions -->
+  &lt;item name="android:windowSharedElementEnterTransition">
+    &#64;transition/change_image_transform&lt;/item>
+  &lt;item name="android:windowSharedElementExitTransition">
+    &#64;transition/change_image_transform&lt;/item>
+&lt;/style>
+</pre>
+
+<p>Transisi <code>change_image_transform</code> dalam contoh ini didefinisikan sebagai berikut:</p>
+
+<pre>
+&lt;!-- res/transition/change_image_transform.xml -->
+&lt;!-- (see also Shared Transitions below) -->
+&lt;transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
+  &lt;changeImageTransform/>
+&lt;/transitionSet>
+</pre>
+
+<p>Elemen <code>changeImageTransform</code> menunjukkan
+kelas {@link android.transition.ChangeImageTransform}. Untuk informasi selengkapnya, lihat referensi
+API untuk {@link android.transition.Transition}.</p>
+
+<p>Sebaliknya, untuk mengaktifkan transisi konten jendela dalam kode Anda, panggil
+metode {@link android.view.Window#requestFeature Window.requestFeature()}:</p>
+
+<pre>
+// inside your activity (if you did not enable transitions in your theme)
+getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
+
+// set an exit transition
+getWindow().setExitTransition(new Explode());
+</pre>
+
+<p>Untuk menetapkan transisi dalam kode Anda, panggil metode-metode ini dengan objek {@link
+android.transition.Transition}:</p>
+
+<ul>
+  <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
+  <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
+</ul>
+
+<p>Metode {@link android.view.Window#setExitTransition setExitTransition()} dan {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} mendefinisikan
+transisi keluar untuk aktivitas yang memanggil. Metode {@link android.view.Window#setEnterTransition
+setEnterTransition()} dan {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} mendefinisikan transisi masuk untuk aktivitas yang dipanggil.</p>
+
+<p>Untuk mendapatkan efek penuh sebuah transisi, Anda harus mengaktifkan transisi konten jendela pada
+aktivitas yang memanggil maupun aktivitas yang dipanggil. Jika tidak, aktivitas yang memanggil akan memulai transisi keluar,
+namun kemudian Anda akan melihat transisi jendela (seperti mengelupas atau memudar).</p>
+
+<p>Untuk memulai transisi masuk sesegera mungkin, gunakan metode
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+pada aktivitas yang dipanggil. Ini memungkinkan Anda mendapatkan transisi masuk yang lebih dramatis.</p>
+
+<h3>Memulai aktivitas dengan menggunakan transisi</h3>
+
+<p>Jika Anda mengaktifkan transisi dan mengatur transisi keluar untuk aktivitas, transisi itu akan diaktifkan
+bila Anda menjalankan aktivitas lain sebagai berikut:</p>
+
+<pre>
+startActivity(intent,
+              ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
+</pre>
+
+<p>Jika Anda telah mengatur transisi masuk untuk aktivitas kedua, transisi juga akan diaktifkan
+bila aktivitas dimulai. Untuk menonaktifkan transisi bila Anda memulai aktivitas lain, sediakan
+bundel opsi <code>null</code>.</p>
+
+<h3>Memulai aktivitas dengan satu elemen bersama</h3>
+
+<p>Untuk membuat animasi transisi layar di antara dua aktivitas yang memiliki satu elemen bersama:</p>
+
+<ol>
+<li>Aktifkan transisi konten jendela dalam tema Anda.</li>
+<li>Tetapkan transisi elemen bersama dalam gaya Anda.</li>
+<li>Definisikan transisi Anda sebagai sumber daya XML.</li>
+<li>Tetapkan nama umum pada elemen bersama dalam kedua layout dengan
+    atribut <code>android:transitionName</code>.</li>
+<li>Gunakan metode {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()}.</li>
+</ol>
+
+<pre>
+// get the element that receives the click event
+final View imgContainerView = findViewById(R.id.img_container);
+
+// get the common element for the transition in this activity
+final View androidRobotView = findViewById(R.id.image_small);
+
+// define a click listener
+imgContainerView.setOnClickListener(new View.OnClickListener() {
+    &#64;Override
+    public void onClick(View view) {
+        Intent intent = new Intent(this, Activity2.class);
+        // create the transition animation - the images in the layouts
+        // of both activities are defined with android:transitionName="robot"
+        ActivityOptions options = ActivityOptions
+            .makeSceneTransitionAnimation(this, androidRobotView, "robot");
+        // start the new activity
+        startActivity(intent, options.toBundle());
+    }
+});
+</pre>
+
+<p>Untuk tampilan dinamis bersama yang Anda hasilkan dalam kode, gunakan
+metode {@link android.view.View#setTransitionName View.setTransitionName()} untuk menetapkan
+nama elemen umum di kedua aktivitas.</p>
+
+<p>Untuk membalik animasi transisi babak bila Anda menyelesaikan aktivitas kedua, panggil metode
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+sebagai ganti {@link android.app.Activity#finish Activity.finish()}.</p>
+
+<h3>Memulai aktivitas dengan beberapa elemen bersama</h3>
+
+<p>Untuk membuat animasi transisi babak antara dua aktivitas yang memiliki lebih dari satu
+elemen bersama, definisikan elemen bersama di kedua layout dengan atribut <code>android:transitionName</code>
+ (atau gunakan metode {@link android.view.View#setTransitionName View.setTransitionName()}
+di kedua aktivitas), dan buat sebuah objek {@link android.app.ActivityOptions} sebagai berikut:</p>
+
+<pre>
+ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
+        Pair.create(view1, "agreedName1"),
+        Pair.create(view2, "agreedName2"));
+</pre>
+
+
+<h2 id="CurvedMotion">Menggunakan Gerakan Melengkung</h2>
+
+<p>Animasi dalam desain bahan mengandalkan kurva untuk pola interpolasi waktu dan
+gerakan spasial. Dengan Android 5.0 (API level 21) ke atas, Anda bisa mendefinisikan kurva pewaktuan custom dan
+pola gerakan melengkung untuk animasi.</p>
+
+<p>Kelas {@link android.view.animation.PathInterpolator} adalah interpolator baru berdasarkan sebuah
+kurva Bézier atau objek {@link android.graphics.Path}. Interpolator ini menetapkan kurva gerakan
+dalam bujur sangkar 1x1, dengan titik-titik jangkar di (0,0) dan (1,1) dan titik-titik kontrol sebagaimana ditetapkan menggunakan
+argumen konstruktor. Anda juga bisa mendefinisikan interpolator path sebagai sumber daya XML:</p>
+
+<pre>
+&lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.4"
+    android:controlY1="0"
+    android:controlX2="1"
+    android:controlY2="1"/>
+</pre>
+
+<p>Sistem menyediakan sumber daya XML untuk tiga kurva dasar dalam
+spesifikasi desain bahan:</p>
+
+<ul>
+  <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
+  <li><code>&#64;interpolator/fast_out_slow_in.xml</code></li>
+  <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
+</ul>
+
+<p>Anda bisa meneruskan objek {@link android.view.animation.PathInterpolator} ke metode {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
+
+<p>Kelas {@link android.animation.ObjectAnimator} memiliki konstruktor-konstruktor baru yang memungkinkan Anda menganimasikan
+koordinat bersama sebuah path dengan menggunakan dua atau beberapa properti sekaligus. Misalnya, animator berikut
+menggunakan objek {@link android.graphics.Path} untuk menganimasikan properti X dan Y sebuah tampilan:</p>
+
+<pre>
+ObjectAnimator mAnimator;
+mAnimator = ObjectAnimator.ofFloat(view, View.X, View.Y, path);
+...
+mAnimator.start();
+</pre>
+
+
+<h2 id="ViewState">Menganimasikan Perubahan Status Tampilan</h2>
+
+<p>Kelas {@link android.animation.StateListAnimator} memungkinkan Anda mendefinisikan animator yang berjalan bila
+status tampilan berubah. Contoh berikut menampilkan cara mendefinisikan {@link
+android.animation.StateListAnimator} sebagai sumber daya XML:</p>
+
+<pre>
+&lt;!-- animate the translationZ property of a view when pressed -->
+&lt;selector xmlns:android="http://schemas.android.com/apk/res/android">
+  &lt;item android:state_pressed="true">
+    &lt;set>
+      &lt;objectAnimator android:propertyName="translationZ"
+        android:duration="@android:integer/config_shortAnimTime"
+        android:valueTo="2dp"
+        android:valueType="floatType"/>
+        &lt;!-- you could have other objectAnimator elements
+             here for "x" and "y", or other properties -->
+    &lt;/set>
+  &lt;/item>
+  &lt;item android:state_enabled="true"
+    android:state_pressed="false"
+    android:state_focused="true">
+    &lt;set>
+      &lt;objectAnimator android:propertyName="translationZ"
+        android:duration="100"
+        android:valueTo="0"
+        android:valueType="floatType"/>
+    &lt;/set>
+  &lt;/item>
+&lt;/selector>
+</pre>
+
+<p>Untuk menyertakan animasi status tampilan custom ke tampilan, definisikan animator menggunakan
+elemen <code>selector</code> dalam sumber daya file XML sebagaimana dalam contoh ini, dan tetapkan ke
+tampilan Anda dengan atribut <code>android:stateListAnimator</code>. Untuk menetapkan animator daftar status
+ke sebuah tampilan dalam kode Anda, gunakan metode {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()}, dan tetapkan animator ke tampilan dengan
+metode {@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
+
+<p>Bila tema Anda memperluas tema bahan, tombol-tombol akan memiliki animasi Z secara default. Untuk menghindari
+perilaku ini di tombol Anda, aturlah atribut <code>android:stateListAnimator</code> ke
+<code>@null</code>.</p>
+
+<p>Kelas {@link android.graphics.drawable.AnimatedStateListDrawable} memungkinkan Anda membuat drawable
+yang menampilkan animasi di antara perubahan status tampilan terkait. Sebagian widget sistem di
+Android 5.0 menggunakan animasi ini secara default. Contoh berikut menampilkan cara
+mendefinisikan {@link android.graphics.drawable.AnimatedStateListDrawable} sebagai sumber daya XML:</p>
+
+<pre>
+&lt;!-- res/drawable/myanimstatedrawable.xml -->
+&lt;animated-selector
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    &lt;!-- provide a different drawable for each state-->
+    &lt;item android:id="@+id/pressed" android:drawable="@drawable/drawableP"
+        android:state_pressed="true"/>
+    &lt;item android:id="@+id/focused" android:drawable="@drawable/drawableF"
+        android:state_focused="true"/>
+    &lt;item android:id="@id/default"
+        android:drawable="@drawable/drawableD"/>
+
+    &lt;!-- specify a transition -->
+    &lt;transition android:fromId="@+id/default" android:toId="@+id/pressed">
+        &lt;animation-list>
+            &lt;item android:duration="15" android:drawable="@drawable/dt1"/>
+            &lt;item android:duration="15" android:drawable="@drawable/dt2"/>
+            ...
+        &lt;/animation-list>
+    &lt;/transition>
+    ...
+&lt;/animated-selector>
+</pre>
+
+
+<h2 id="AnimVector">Menganimasikan Drawable Vektor</h2>
+
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Drawable Vektor </a>
+bisa diubah skalanya tanpa kehilangan definisi. Kelas {@link android.graphics.drawable.AnimatedVectorDrawable}
+memungkinkan Anda menganimasikan properti drawable vektor.</p>
+
+<p>Anda biasanya mendefinisikan drawable vektor yang dianimasikan dalam tiga file XML:</p>
+
+<ul>
+<li>Drawable vektor dengan elemen <code>&lt;vector&gt;</code> dalam
+<code>res/drawable/</code></li>
+<li>Drawable vektor animasi dengan elemen <code>&lt;animated-vector&gt;</code> dalam
+<code>res/drawable/</code></li>
+<li>Satu atau beberapa animator objek dengan elemen <code>&lt;objectAnimator&gt;</code> dalam
+<code>res/anim/</code></li>
+</ul>
+
+<p>Drawable vektor yang dianimasikan bisa menganimasikan atribut elemen <code>&lt;group&gt;</code> dan
+<code>&lt;path&gt;</code>. Elemen <code>&lt;group&gt;</code> mendefinisikan satu set
+path atau subgrup, dan elemen <code>&lt;path&gt;</code> mendefinisikan path yang harus digambar.</p>
+
+<p>Bila Anda mendefinisikan drawable vektor yang ingin dianimasikan, gunakan atribut <code>android:name</code>
+untuk menetapkan nama unik ke grup dan path, sehingga Anda bisa merujuknya dari
+definisi animator Anda. Misalnya:</p>
+
+<pre>
+&lt;!-- res/drawable/vectordrawable.xml -->
+&lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="64dp"
+    android:width="64dp"
+    android:viewportHeight="600"
+    android:viewportWidth="600">
+    &lt;group
+        <strong>android:name="rotationGroup"</strong>
+        android:pivotX="300.0"
+        android:pivotY="300.0"
+        android:rotation="45.0" >
+        &lt;path
+            <strong>android:name="v"</strong>
+            android:fillColor="#000000"
+            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
+    &lt;/group>
+&lt;/vector>
+</pre>
+
+<p>Definisi drawable vektor yang dianimasikan merujuk pada grup dan path dalam drawable vektor
+berdasarkan namanya:</p>
+
+<pre>
+&lt;!-- res/drawable/animvectordrawable.xml -->
+&lt;animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
+  android:drawable="@drawable/vectordrawable" >
+    &lt;target
+        android:name="rotationGroup"
+        android:animation="@anim/rotation" />
+    &lt;target
+        android:name="v"
+        android:animation="@anim/path_morph" />
+&lt;/animated-vector>
+</pre>
+
+<p>Definisi animasi menyatakan objek {@link android.animation.ObjectAnimator} atau {@link
+android.animation.AnimatorSet}. Animator pertama dalam contoh ini memutar
+grup target sebanyak 360 derajat:</p>
+
+<pre>
+&lt;!-- res/anim/rotation.xml -->
+&lt;objectAnimator
+    android:duration="6000"
+    android:propertyName="rotation"
+    android:valueFrom="0"
+    android:valueTo="360" />
+</pre>
+
+<p>Animator kedua dalam contoh ini perlahan-lahan mengubah bentuk path drawable vektor dari satu bentuk ke
+bentuk yang lain. Kedua path harus kompatibel untuk morphing: keduanya harus memiliki jumlah perintah yang sama
+dan jumlah parameter yang sama untuk setiap perintah.</p>
+
+<pre>
+&lt;!-- res/anim/path_morph.xml -->
+&lt;set xmlns:android="http://schemas.android.com/apk/res/android">
+    &lt;objectAnimator
+        android:duration="3000"
+        android:propertyName="pathData"
+        android:valueFrom="M300,70 l 0,-70 70,70 0,0   -70,70z"
+        android:valueTo="M300,70 l 0,-70 70,0  0,140 -70,0 z"
+        android:valueType="pathType" />
+&lt;/set>
+</pre>
+
+<p>Untuk informasi selengkapnya, lihat referensi API bagi {@link
+android.graphics.drawable.AnimatedVectorDrawable}.</p>
diff --git a/docs/html-intl/intl/in/training/material/compatibility.jd b/docs/html-intl/intl/in/training/material/compatibility.jd
new file mode 100644
index 0000000..d57c7be
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/compatibility.jd
@@ -0,0 +1,168 @@
+page.title=Mempertahankan Kompatibilitas
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#Theme">Mendefinisikan Gaya Alternatif</a></li>
+  <li><a href="#Layouts">Menyediakan Layout Alternatif</a></li>
+  <li><a href="#SupportLib">Menggunakan Support Library</a></li>
+  <li><a href="#CheckVersion">Memeriksa Versi Sistem</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Sebagian fitur desain bahan seperti tema bahan dan transisi aktivitas custom
+hanya tersedia pada Android 5.0 (API level 21) ke atas. Akan tetapi, Anda bisa mendesain aplikasi untuk menggunakan
+fitur-fitur ini saat dijalankan pada perangkat yang mendukung desain bahan dan tetap kompatibel
+dengan perangkat yang menjalankan rilis Android sebelumnya.</p>
+
+
+<h2 id="Theme">Mendefinisikan Gaya Alternatif</h2>
+
+<p>Anda bisa mengonfigurasi aplikasi untuk menggunakan tema bahan pada perangkat yang mendukungnya dan mengembalikan
+ke tema lama pada perangkat yang menjalankan versi Android terdahulu:</p>
+
+<ol>
+<li>Definisikan tema yang mewarisi tema lama (seperti Holo) di
+    <code>res/values/styles.xml</code>.</li>
+<li>Definisikan tema bernama sama yang mewarisi tema bahan di
+    <code>res/values-v21/styles.xml</code>.</li>
+<li>Atur tema ini sebagai tema aplikasi Anda dalam file manifes.</li>
+</ol>
+
+<p class="note"><strong>Catatan:</strong>
+Jika aplikasi Anda menggunakan tema bahan namun tidak menyediakan tema alternatif dengan cara ini,
+aplikasi itu tidak akan berjalan pada versi Android sebelum 5.0.
+</p>
+
+
+<h2 id="Layouts">Menyediakan Layout Alternatif</h2>
+
+<p>Jika layout yang Anda desain sesuai dengan panduan desain bahan tidak menggunakan salah satu
+atribut XML baru yang diperkenalkan di Android 5.0 (API level 21), layout itu akan berfungsi pada
+versi Android sebelumnya. Jika tidak, Anda bisa menyediakan layout alternatif. Anda juga bisa menyediakan
+layout alternatif untuk menyesuaikan cara aplikasi ditampilkan pada versi Android terdahulu.</p>
+
+<p>Buatlah file layout untuk Android 5.0 (API level 21) dalam <code>res/layout-v21/</code> dan
+file layout alternatif untuk versi Android terdahulu dalam <code>res/layout/</code>.
+Misalnya, <code>res/layout/my_activity.xml</code> adalah layout alternatif untuk
+<code>res/layout-v21/my_activity.xml</code>.</p>
+
+<p>Untuk menghindari duplikasi kode, definisikan gaya dalam <code>res/values/</code>, modifikasi
+gaya di <code>res/values-v21/</code> untuk API baru, dan gunakan pewarisan gaya, dengan mendefinisikan
+gaya dasar di <code>res/values/</code> dan mewarisi gaya di <code>res/values-v21/</code>.</p>
+
+
+<h2 id="SupportLib">Menggunakan Support Library</h2>
+
+<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Library</a>
+r21 ke atas menyertakan fitur desain bahan berikut:</p>
+
+<ul>
+<li><a href="{@docRoot}training/material/theme.html">Gaya desain bahan</a> untuk beberapa widget sistem
+    bila Anda menerapkan salah satu tema <code>Theme.AppCompat</code>.</li>
+<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atribut tema palet warna</a>
+    dalam tema <code>Theme.AppCompat</code>.</li>
+<li>Widget {@link android.support.v7.widget.RecyclerView} untuk <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">
+menampilkan kumpulan data.</a></li>
+<li>Widget {@link android.support.v7.widget.CardView} untuk <a href="{@docRoot}training/material/lists-cards.html#CardView">membuat kartu</a>.</li>
+<li>Kelas {@link android.support.v7.graphics.Palette} untuk <a href="{@docRoot}training/material/drawables.html#ColorExtract">mengekstrak warna mencolok dari
+    gambar</a>.</li>
+</ul>
+
+<h3>Widget sistem</h3>
+
+<p>Tema-tema <code>Theme.AppCompat</code> menyediakan gaya desain bahan untuk widget ini:</p>
+
+<ul>
+  <li>{@link android.widget.EditText}</li>
+  <li>{@link android.widget.Spinner}</li>
+  <li>{@link android.widget.CheckBox}</li>
+  <li>{@link android.widget.RadioButton}</li>
+  <li>{@link android.support.v7.widget.SwitchCompat}</li>
+  <li>{@link android.widget.CheckedTextView}</li>
+</ul>
+
+<h3>Palet Warna</h3>
+
+<p>Untuk memperoleh gaya desain bahan dan menyesuaikan palet warna dengan Android v7 Support
+Library, terapkan salah satu tema <code>Theme.AppCompat</code>:</p>
+
+<pre>
+&lt;!-- extend one of the Theme.AppCompat themes -->
+&lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
+    &lt;!-- customize the color palette -->
+    &lt;item name="colorPrimary">@color/material_blue_500&lt;/item>
+    &lt;item name="colorPrimaryDark">@color/material_blue_700&lt;/item>
+    &lt;item name="colorAccent">@color/material_green_A200&lt;/item>
+&lt;/style>
+</pre>
+
+<h3>Daftar dan Kartu</h3>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} dan {@link
+android.support.v7.widget.CardView} tersedia di versi Android terdahulu melalui
+Android v7 Support Library dengan pembatasan ini:</p>
+<ul>
+<li>{@link android.support.v7.widget.CardView} memundurkan ke implementasi bayangan terprogram
+    dengan menggunakan pengisi tambahan.</li>
+<li>{@link android.support.v7.widget.CardView} tidak memangkas tampilan anaknya yang berpotongan
+    dengan sudut melengkung.</li>
+</ul>
+
+
+<h3>Dependensi</h3>
+
+<p>Untuk menggunakan fitur-fitur ini di versi Android sebelum 5.0 (API level 21), sertakan
+Android v7 Support Library dalam proyek Anda sebagai <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">dependensi Gradle</a>:</p>
+
+<pre>
+dependencies {
+    compile 'com.android.support:appcompat-v7:21.0.+'
+    compile 'com.android.support:cardview-v7:21.0.+'
+    compile 'com.android.support:recyclerview-v7:21.0.+'
+}
+</pre>
+
+
+<h2 id="CheckVersion">Memeriksa Versi Sistem</h2>
+
+<p>Fitur berikut hanya tersedia di Android 5.0 (API level 21) ke atas:</p>
+
+<ul>
+<li>Transisi aktivitas</li>
+<li>Umpan balik sentuh</li>
+<li>Animasi membuka</li>
+<li>Animasi berbasis path</li>
+<li>Drawable vektor</li>
+<li>Pewarnaan drawable</li>
+</ul>
+
+<p>Untuk menjaga kompatibilitas dengan versi Android terdahulu, periksa {@link
+android.os.Build.VERSION#SDK_INT version} sistem saat runtime sebelum Anda memanggil API untuk salah satu
+fitur ini:</p>
+
+<pre>
+// Check if we're running on Android 5.0 or higher
+if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+    // Call some material design APIs here
+} else {
+    // Implement this feature without material design
+}
+</pre>
+
+<p class="note"><strong>Catatan:</strong> Untuk menetapkan versi Android yang didukung aplikasi Anda,
+gunakan atribut <code>android:minSdkVersion</code> dan <code>android:targetSdkVersion</code>
+dalam file manifes. Untuk menggunakan fitur desain bahan di Android 5.0, atur
+atribut <code>android:targetSdkVersion</code> ke <code>21</code>. Untuk informasi selengkapnya, lihat
+panduan <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">API
+&lt;uses-sdk&gt;</a>.</p>
diff --git a/docs/html-intl/intl/in/training/material/drawables.jd b/docs/html-intl/intl/in/training/material/drawables.jd
new file mode 100644
index 0000000..56fd17f
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/drawables.jd
@@ -0,0 +1,126 @@
+page.title=Bekerja dengan Drawable
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#DrawableTint">Mewarnai Sumber Daya Drawable</a></li>
+  <li><a href="#ColorExtract">Mengekstrak Warna Mencolok dari Gambar</a></li>
+  <li><a href="#VectorDrawables">Membuat Drawable Vektor</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+<p>Kemampuan berikut untuk drawable membantu Anda mengimplementasikan desain bahan dalam aplikasi Anda:</p>
+
+<ul>
+<li>Pewarnaan drawable</li>
+<li>Ekstraksi warna mencolok</li>
+<li>Drawable vektor</li>
+</ul>
+
+<p>Pelajaran ini menampilkan cara menggunakan fitur-fitur ini dalam aplikasi Anda.</p>
+
+
+<h2 id="DrawableTint">Mewarnai Sumber Daya Drawable</h2>
+
+<p>Dengan Android 5.0 (API level 21) ke atas, Anda bisa mewarnai bitmap dan sembilan-tambalan yang didefinisikan sebagai
+alpha-mask. Anda bisa mewarnainya dengan sumber daya warna atau atribut tema yang mencocokkan ke
+sumber daya warna (misalnya, <code>?android:attr/colorPrimary</code>). Biasanya, Anda membuat aset ini
+hanya sekali dan mewarnainya secara otomatis agar cocok dengan tema Anda.</p>
+
+<p>Anda bisa menerapkan warna ke objek {@link android.graphics.drawable.BitmapDrawable} atau {@link
+android.graphics.drawable.NinePatchDrawable} dengan metode {@code setTint()}. Anda juga bisa
+mengatur warna dan mode dalam layout dengan atribut <code>android:tint</code> dan
+<code>android:tintMode</code>.</p>
+
+
+<h2 id="ColorExtract">Mengekstrak Warna Mencolok dari Gambar</h2>
+
+<p>Android Support Library r21 ke atas menyertakan kelas {@link
+android.support.v7.graphics.Palette}, yang memungkinkan Anda mengekstrak warna mencolok dari gambar.
+Kelas ini mengekstrak warna mencolok berikut:</p>
+
+<ul>
+<li>Menyala</li>
+<li>Menyala pekat</li>
+<li>Menyala pucat</li>
+<li>Pudar</li>
+<li>Pudar pekat</li>
+<li>Pudar pucat</li>
+</ul>
+
+<p>Untuk mengekstrak warna-warna ini, teruskan objek {@link android.graphics.Bitmap} ke
+metode statis {@link android.support.v7.graphics.Palette#generate Palette.generate()} dalam
+thread latar belakang tempat Anda memuat gambar. Jika Anda tidak bisa menggunakan thread itu, panggil metode
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} dan
+sediakan listener sebagai gantinya.</p>
+
+<p>Anda bisa mengambil warna mencolok dari gambar dengan metode getter di kelas
+<code>Palette</code>, misalnya <code>Palette.getVibrantColor</code>.</p>
+
+<p>Untuk menggunakan kelas {@link android.support.v7.graphics.Palette} dalam proyek Anda, tambahkan 
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependensi Gradle</a> berikut ke
+modul aplikasi Anda:</p>
+
+<pre>
+dependencies {
+    ...
+    compile 'com.android.support:palette-v7:21.0.0'
+}
+</pre>
+
+<p>Untuk informasi selengkapnya, lihat referensi API untuk kelas {@link android.support.v7.graphics.Palette}.
+</p>
+
+
+<h2 id="VectorDrawables">Membuat Drawable Vektor</h2>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<div>
+    <h3>Video</h3>
+    <p>Grafis Vektor Android</p>
+</div>
+</a>
+
+<p>Di Android 5.0 (API Level 21) ke atas, Anda bisa mendefinisikan drawable vektor, yang berubah skala tanpa
+kehilangan definisi. Anda hanya memerlukan satu file aset per gambar vektor, bukan file aset untuk
+setiap densitas layar seperti pada gambar bitmap. Untuk membuat gambar vektor, Anda mendefinisikan detail
+bentuknya dalam sebuah elemen XML <code>&lt;vector&gt;</code>.</p>
+
+<p>Contoh berikut mendefinisikan gambar vektor berbentuk hati:</p>
+
+<pre>
+&lt;!-- res/drawable/heart.xml -->
+&lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
+    &lt;!-- intrinsic size of the drawable -->
+    android:height="256dp"
+    android:width="256dp"
+    &lt;!-- size of the virtual canvas -->
+    android:viewportWidth="32"
+    android:viewportHeight="32">
+
+  &lt;!-- draw a path -->
+  &lt;path android:fillColor="#8fff"
+      android:pathData="M20.5,9.5
+                        c-1.955,0,-3.83,1.268,-4.5,3
+                        c-0.67,-1.732,-2.547,-3,-4.5,-3
+                        C8.957,9.5,7,11.432,7,14
+                        c0,3.53,3.793,6.257,9,11.5
+                        c5.207,-5.242,9,-7.97,9,-11.5
+                        C25,11.432,23.043,9.5,20.5,9.5z" />
+&lt;/vector>
+</pre>
+
+<p>Gambar vektor direpresentasikan di Android sebagai objek {@link android.graphics.drawable.VectorDrawable}.
+ Untuk informasi selengkapnya tentang sintaks <code>pathData</code>, lihat <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Referensi Path SVG</a>. Untuk informasi selengkapnya
+tentang menganimasikan properti drawable vektor, lihat
+<a href="{@docRoot}training/material/animations.html#AnimVector">Menganimasikan Drawable Vektor</a>.</p>
diff --git a/docs/html-intl/intl/in/training/material/get-started.jd b/docs/html-intl/intl/in/training/material/get-started.jd
new file mode 100644
index 0000000..1a551a9
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/get-started.jd
@@ -0,0 +1,171 @@
+page.title=Memulai
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#ApplyTheme">Menerapkan Tema Bahan</a></li>
+  <li><a href="#Layouts">Mendesain Layout Anda</a></li>
+  <li><a href="#Depth">Menetapkan Ketinggian di Tampilan Anda</a></li>
+  <li><a href="#ListsCards">Membuat Daftar dan Kartu</a></li>
+  <li><a href="#Animations">Menyesuaikan Animasi Anda</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Untuk membuat aplikasi dengan desain bahan:</p>
+
+<ol>
+  <li style="margin-bottom:10px">
+    Tinjaulah <a href="http://www.google.com/design/spec">spesifikasi desain bahan</a>.</li>
+  <li style="margin-bottom:10px">
+    Terapkan <strong>tema</strong> bahan ke aplikasi Anda.</li>
+  <li style="margin-bottom:10px">
+    Buat <strong>layout</strong> agar mengikuti panduan desain bahan.</li>
+  <li style="margin-bottom:10px">
+    Tetapkan <strong>ketinggian</strong> tampilan Anda untuk menghasilkan bayangan.</li>
+  <li style="margin-bottom:10px">
+    Gunakan <strong>widget</strong> sistem untuk daftar dan kartu.</li>
+  <li style="margin-bottom:10px">
+    Sesuaikan <strong>animasi</strong> di aplikasi Anda.</li>
+</ol>
+
+<h3>Mempertahankan kompatibilitas mundur</h3>
+
+<p>Anda bisa menambahkan banyak fitur desain bahan ke aplikasi sekaligus mempertahankan kompatibilitas dengan
+versi Android sebelum 5.0. Untuk informasi selengkapnya, lihat
+<a href="{@docRoot}training/material/compatibility.html">Mempertahankan Kompatibilitas</a>.</p>
+
+<h3>Memperbarui aplikasi dengan desain bahan</h3>
+
+<p>Untuk memperbarui aplikasi yang ada guna memasukkan desain bahan, perbarui layout Anda dengan mengikuti
+panduan desain bahan. Juga pastikan memasukkan kedalaman, umpan balik sentuh, dan
+animasi.</p>
+
+<h3>Membuat aplikasi baru dengan desain bahan</h3>
+
+<p>Jika Anda sedang membuat aplikasi baru dengan fitur desain bahan, <a href="http://www.google.com/design/spec">panduan desain bahan</a> akan memberi Anda
+kerangka kerja desain yang kohesif. Ikuti panduan itu dan gunakan fungsionalitas baru di
+kerangka kerja Android untuk mendesain dan mengembangkan aplikasi Anda.</p>
+
+
+<h2 id="ApplyTheme">Menerapkan Tema Bahan</h2>
+
+<p>Untuk menerapkan tema bahan dalam aplikasi Anda, tetapkan gaya yang mewarisi
+<code>android:Theme.Material</code>:</p>
+
+<pre>
+&lt;!-- res/values/styles.xml -->
+&lt;resources>
+  &lt;!-- your theme inherits from the material theme -->
+  &lt;style name="AppTheme" parent="android:Theme.Material">
+    &lt;!-- theme customizations -->
+  &lt;/style>
+&lt;/resources>
+</pre>
+
+<p>Tema bahan menyediakan widget sistem terbaru yang memungkinkan Anda mengatur palet warnanya dan
+animasi default untuk umpan balik sentuh dan transisi aktivitas. Untuk detail selengkapnya, lihat
+<a href="{@docRoot}training/material/theme.html">Menggunakan Tema Bahan</a>.</p>
+
+
+<h2 id="Layouts">Mendesain Layout Anda</h2>
+
+<p>Selain menerapkan dan menyesuaikan tema bahan, layout Anda harus mematuhi
+<a href="http://www.google.com/design/spec">panduan desain bahan</a>. Bila Anda mendesain
+layout, berikan perhatian khusus pada hal-hal berikut:</p>
+
+<ul>
+<li>Petak patokan</li>
+<li>Garis utama</li>
+<li>Pengaturan Jarak</li>
+<li>Ukuran target sentuh</li>
+<li>Struktur layout</li>
+</ul>
+
+
+<h2 id="Depth">Menetapkan Ketinggian di Tampilan Anda</h2>
+
+<p>Tampilan bisa menghasilkan bayangan, dan nilai ketinggian tampilan
+menentukan ukuran bayangan dan urutan penggambarannya. Untuk mengatur ketinggian tampilan, gunakan
+atribut <code>android:elevation</code> dalam layout:</p>
+
+<pre>
+&lt;TextView
+    android:id="&#64;+id/my_textview"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:text="&#64;string/next"
+    android:background="&#64;color/white"
+    android:elevation="5dp" />
+</pre>
+
+<p>Properti <code>translationZ</code> baru memungkinkan Anda membuat animasi yang mencerminkan
+perubahan sementara pada ketinggian tampilan. Perubahan ketinggian bisa berguna saat
+<a href="{@docRoot}training/material/animations.html#ViewState">merespons
+gerakan sentuh</a>.</p>
+
+<p>Untuk detail selengkapnya, lihat <a href="{@docRoot}training/material/shadows-clipping.html">Mendefinisikan
+Bayangan dan Memangkas Tampilan</a>.</p>
+
+
+<h2 id="ListsCards">Membuat Daftar dan Kartu</h2>
+
+<p>{@link android.support.v7.widget.RecyclerView} adalah versi {@link
+android.widget.ListView} yang lebih mudah dimasukkan dan mendukung beragam tipe layout serta memberikan peningkatan kinerja.
+{@link android.support.v7.widget.CardView} memungkinkan Anda menampilkan potongan informasi dalam kartu dengan
+tampilan konsisten di seluruh aplikasi. Contoh kode berikut memperagakan cara menyertakan
+{@link android.support.v7.widget.CardView} dalam layout Anda:</p>
+
+<pre>
+&lt;android.support.v7.widget.CardView
+    android:id="&#64;+id/card_view"
+    android:layout_width="200dp"
+    android:layout_height="200dp"
+    card_view:cardCornerRadius="3dp">
+    ...
+&lt;/android.support.v7.widget.CardView>
+</pre>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/lists-cards.html">Membuat Daftar
+dan Kartu</a>.</p>
+
+
+<h2 id="Animations">Menyesuaikan Animasi Anda</h2>
+
+<p>Android 5.0 (API level 21) menyertakan API baru untuk membuat animasi custom di aplikasi Anda.
+Misalnya, Anda bisa mengaktifkan transisi aktivitas dan mendefinisikan transisi keluar di
+aktivitas:</p>
+
+<pre>
+public class MyActivity extends Activity {
+
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // enable transitions
+        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
+        setContentView(R.layout.activity_my);
+    }
+
+    public void onSomeButtonClicked(View view) {
+        getWindow().setExitTransition(new Explode());
+        Intent intent = new Intent(this, MyOtherActivity.class);
+        startActivity(intent,
+                      ActivityOptions
+                          .makeSceneTransitionAnimation(this).toBundle());
+    }
+}
+</pre>
+
+<p>Bila Anda memulai aktivitas lain dari aktivitas ini, transisi keluar akan diaktifkan.</p>
+
+<p>Untuk mengetahui selengkapnya tentang API animasi yang baru, lihat <a href="{@docRoot}training/material/animations.html">Mendefinisikan Animasi Custom</a>.</p>
diff --git a/docs/html-intl/intl/in/training/material/index.jd b/docs/html-intl/intl/in/training/material/index.jd
new file mode 100644
index 0000000..53697d2
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/index.jd
@@ -0,0 +1,60 @@
+page.title=Desain Bahan untuk Pengembang
+page.image=images/cards/material_2x.png
+page.metaDescription=Pelajari cara menerapkan desain bahan pada aplikasi Anda.
+
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Dependensi dan Prasyarat</h2>
+  <ul>
+    <li>Android 5.0 (API Level 21)</li>
+  </ul>
+</div>
+</div>
+
+<p>Desain bahan adalah panduan komprehensif untuk desain visual, gerak, dan interaksi di
+berbagai platform dan perangkat. Untuk menggunakan desain bahan di aplikasi Android, ikuti panduan
+yang dijelaskan dalam
+<a href="http://www.google.com/design/spec/material-design/introduction.html">spesifikasi desain bahan
+</a> dan gunakan komponen serta fungsionalitas baru yang tersedia di Android 5.0
+(API level 21).</p>
+
+<p>Kelas ini menampilkan kepada Anda cara membuat aplikasi desain bahan dengan elemen-elemen berikut:</p>
+
+<ul>
+<li>Tema bahan</li>
+<li>Widget untuk kartu dan daftar</li>
+<li>Bayangan custom dan pemangkasan tampilan</li>
+<li>Drawable vektor</li>
+<li>Animasi custom</li>
+</ul>
+
+<p>Kelas ini juga mengajarkan cara mempertahankan kompatibilitas dengan versi Android sebelum
+5.0 (API level 21) bila Anda menggunakan fitur desain bahan dalam aplikasi.</p>
+
+<h2>Pelajaran</h2>
+
+<dl>
+  <dt><a href="{@docRoot}training/material/get-started.html">Memulai</a></dt>
+  <dd>Pelajari cara memperbarui aplikasi Anda dengan fitur desain bahan.</dd>
+
+  <dt><a href="{@docRoot}training/material/theme.html">Menggunakan Tema Bahan</a></dt>
+  <dd>Pelajari cara menerapkan gaya desain bahan pada aplikasi Anda.</dd>
+
+  <dt><a href="{@docRoot}training/material/lists-cards.html">Membuat Daftar dan Kartu</a></dt>
+  <dd>Pelajari cara membuat daftar dan kartu dengan tampilan dan cara kerja yang konsisten menggunakan widget sistem.</dd>
+
+  <dt><a href="{@docRoot}training/material/shadows-clipping.html">Mendefinisikan Bayangan dan Memangkas Tampilan</a></dt>
+  <dd>Pelajari cara mengatur elevasi tampilan Anda untuk membuat bayangan custom dan cara memangkas tampilan.</dd>
+
+  <dt><a href="{@docRoot}training/material/drawables.html">Bekerja dengan Drawable</a></dt>
+  <dd>Pelajari cara membuat drawable vektor dan cara mewarnai sumber daya drawable.</dd>
+
+  <dt><a href="{@docRoot}training/material/animations.html">Mendefinisikan Animasi Custom</a></dt>
+  <dd>Pelajari cara membuat animasi custom untuk tampilan dan transisi aktivitas dengan elemen bersama.</dd>
+
+  <dt><a href="{@docRoot}training/material/compatibility.html">Mempertahankan Kompatibilitas</a></dt>
+  <dd>Pelajari cara mempertahankan kompatibilitas dengan versi platform sebelum Android 5.0.</dd>
+</dl>
diff --git a/docs/html-intl/intl/in/training/material/lists-cards.jd b/docs/html-intl/intl/in/training/material/lists-cards.jd
new file mode 100644
index 0000000..358f1d1
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/lists-cards.jd
@@ -0,0 +1,266 @@
+page.title=Membuat Daftar dan Kartu
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#RecyclerView">Membuat Daftar</a></li>
+  <li><a href="#CardView">Membuat Kartu</a></li>
+  <li><a href="#Dependencies">Menambahkan Dependensi</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Untuk membuat daftar dan kartu yang kompleks dengan gaya desain bahan di aplikasi, Anda bisa menggunakan widget
+{@link android.support.v7.widget.RecyclerView} dan {@link android.support.v7.widget.CardView}.
+</p>
+
+
+<h2 id="RecyclerView">Membuat Daftar</h2>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} adalah
+versi {@link android.widget.ListView} yang lebih maju dan fleksibel. Widget ini adalah kontainer untuk menampilkan set data
+besar yang bisa digulir secara sangat efisien dengan mempertahankan tampilan dalam jumlah terbatas. Gunakan
+widget {@link android.support.v7.widget.RecyclerView} bila Anda memiliki kumpulan data dengan elemen
+yang berubah saat runtime berdasarkan tindakan pengguna atau kejadian jaringan.</p>
+
+<p>Kelas {@link android.support.v7.widget.RecyclerView} menyederhanakan penampilan dan penanganan
+set data yang besar dengan menyediakan:</p>
+
+<ul>
+  <li>Pengelola layout untuk memosisikan item</li>
+  <li>Animasi default untuk operasi item umum, misalnya penghapusan atau penambahan item</li>
+</ul>
+
+<p>Anda juga memiliki keluwesan untuk mendefinisikan pengelola layout custom dan animasi untuk widget {@link
+android.support.v7.widget.RecyclerView}.</p>
+
+<img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
+<p class="img-caption">
+<strong>Gambar 1</strong>. Widget <code>RecyclerView</code>.
+</p>
+
+<p>Untuk menggunakan widget {@link android.support.v7.widget.RecyclerView}, Anda harus menetapkan
+adaptor dan pengelola layout. Untuk membuat adaptor, perluas kelas {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Detail
+implementasi bergantung pada detail set data Anda dan tipe tampilan. Untuk informasi selengkapnya,
+ lihat <a href="#RVExamples">contoh-contoh</a> di bawah.</p>
+
+<div style="float:right">
+<img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
+<p class="img-caption" style="margin-left:8px">
+<strong>Gambar 2</strong> - Daftar berisi <code>RecyclerView</code>.
+</p>
+</div>
+
+<p><strong>Pengelola layout</strong> memosisikan tampilan item dalam {@link
+android.support.v7.widget.RecyclerView} dan menentukan waktu untuk menggunakan ulang tampilan item yang tidak
+lagi terlihat oleh pengguna. Untuk menggunakan ulang (atau <em>mendaur ulang</em>) tampilan, pengelola layout bisa meminta
+adaptor untuk mengganti konten tampilan dengan elemen lain dalam dataset. Mendaur ulang
+tampilan dengan cara ini akan meningkatkan kinerja karena menghindari pembuatan tampilan yang tidak diperlukan atau
+melakukan pencarian {@link android.app.Activity#findViewById findViewById()} yang mahal.</p>
+
+<p>{@link android.support.v7.widget.RecyclerView} menyediakan semua pengelola layout bawaan ini:</p>
+
+<ul>
+<li>{@link android.support.v7.widget.LinearLayoutManager} menampilkan item dalam
+daftar gulir vertikal atau horizontal.</li>
+<li>{@link android.support.v7.widget.GridLayoutManager} menampilkan item dalam petak.</li>
+<li>{@link android.support.v7.widget.StaggeredGridLayoutManager} menampilkan item dalam petak zigzag.</li>
+</ul>
+
+<p>Untuk membuat pengelola layout custom, perluas kelas {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
+
+<h3>Animasi</h3>
+
+<p>Animasi untuk menambahkan dan menghapus item diaktifkan secara default di {@link
+android.support.v7.widget.RecyclerView}. Untuk menyesuaikan animasi ini, perluas kelas 
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator}dan gunakan
+metode {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}.
+</p>
+
+<h3 id="RVExamples">Contoh</h3>
+
+<p>Contoh kode berikut memperagakan cara menambahkan
+{@link android.support.v7.widget.RecyclerView} ke layout:</p>
+
+<pre>
+&lt;!-- A RecyclerView with some commonly used attributes -->
+&lt;android.support.v7.widget.RecyclerView
+    android:id="@+id/my_recycler_view"
+    android:scrollbars="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"/>
+</pre>
+
+<p>Begitu Anda menambahkan widget {@link android.support.v7.widget.RecyclerView} ke layout,
+dapatkan pengatur atau handle objek itu, hubungkan dengan pengelola layout, dan sertakan adaptor untuk data
+yang akan ditampilkan:</p>
+
+<pre>
+public class MyActivity extends Activity {
+    private RecyclerView mRecyclerView;
+    private RecyclerView.Adapter mAdapter;
+    private RecyclerView.LayoutManager mLayoutManager;
+
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.my_activity);
+        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
+
+        // use this setting to improve performance if you know that changes
+        // in content do not change the layout size of the RecyclerView
+        mRecyclerView.setHasFixedSize(true);
+
+        // use a linear layout manager
+        mLayoutManager = new LinearLayoutManager(this);
+        mRecyclerView.setLayoutManager(mLayoutManager);
+
+        // specify an adapter (see also next example)
+        mAdapter = new MyAdapter(myDataset);
+        mRecyclerView.setAdapter(mAdapter);
+    }
+    ...
+}
+</pre>
+
+<p>Adaptor menyediakan akses ke item dataset Anda, membuat tampilan untuk item, dan
+mengganti konten sebagian tampilan dengan item data baru bila item semula tidak lagi
+terlihat. Contoh kode berikut menampilkan implementasi sederhana untuk sebuah dataset yang terdiri dari
+larik string yang ditampilkan dengan menggunakan widget {@link android.widget.TextView}:</p>
+
+<pre>
+public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
+    private String[] mDataset;
+
+    // Provide a reference to the views for each data item
+    // Complex data items may need more than one view per item, and
+    // you provide access to all the views for a data item in a view holder
+    public static class ViewHolder extends RecyclerView.ViewHolder {
+        // each data item is just a string in this case
+        public TextView mTextView;
+        public ViewHolder(TextView v) {
+            super(v);
+            mTextView = v;
+        }
+    }
+
+    // Provide a suitable constructor (depends on the kind of dataset)
+    public MyAdapter(String[] myDataset) {
+        mDataset = myDataset;
+    }
+
+    // Create new views (invoked by the layout manager)
+    &#64;Override
+    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
+                                                   int viewType) {
+        // create a new view
+        View v = LayoutInflater.from(parent.getContext())
+                               .inflate(R.layout.my_text_view, parent, false);
+        // set the view's size, margins, paddings and layout parameters
+        ...
+        ViewHolder vh = new ViewHolder(v);
+        return vh;
+    }
+
+    // Replace the contents of a view (invoked by the layout manager)
+    &#64;Override
+    public void onBindViewHolder(ViewHolder holder, int position) {
+        // - get element from your dataset at this position
+        // - replace the contents of the view with that element
+        holder.mTextView.setText(mDataset[position]);
+
+    }
+
+    // Return the size of your dataset (invoked by the layout manager)
+    &#64;Override
+    public int getItemCount() {
+        return mDataset.length;
+    }
+}
+</pre>
+
+
+<div style="float:right;margin-top:15px;margin-left:30px">
+<img src="{@docRoot}design/material/images/card_travel.png" alt="" width="225" height="383">
+<p class="img-caption" style="margin-left:12px">
+<strong>Gambar 3</strong>. Contoh kartu.
+</p>
+</div>
+
+<h2 id="CardView">Membuat Kartu</h2>
+
+<p>{@link android.support.v7.widget.CardView} memperluas kelas {@link android.widget.FrameLayout}
+dan memungkinkan Anda menampilkan informasi dalam kartu yang memiliki tampilan konsisten lintas platform. Widget {@link
+android.support.v7.widget.CardView} bisa memiliki bayangan dan sudut membulat.</p>
+
+<p>Untuk membuat kartu dengan bayangan, gunakan atribut <code>card_view:cardElevation</code>.
+{@link android.support.v7.widget.CardView} menggunakan elevasi nyata dan bayangan dinamis pada Android 5.0
+(API level 21) ke atas dan memundurkan ke implementasi bayangan terprogram pada versi terdahulu.
+Untuk informasi selengkapnya, lihat <a href="{@docRoot}training/material/compatibility.html">Mempertahankan
+Kompatibilitas</a>.</p>
+
+<p>Gunakan properti-properti ini untuk menyesuaikan penampilan
+widget {@link android.support.v7.widget.CardView}:</p>
+
+<ul>
+  <li>Untuk mengatur radius sudut pada layout Anda, gunakan atribut <code>card_view:cardCornerRadius</code>.
+</li>
+  <li>Untuk mengatur radius sudut dalam kode Anda, gunakan metode <code>CardView.setRadius</code>.</li>
+  <li>Untuk mengatur warna latar belakang kartu, gunakan atribut <code>card_view:cardBackgroundColor</code>.
+</li>
+</ul>
+
+<p>Contoh kode berikut menampilkan cara menyertakan widget {@link android.support.v7.widget.CardView}
+dalam layout:</p>
+
+<pre>
+&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    ... >
+    &lt;!-- A CardView that contains a TextView -->
+    &lt;android.support.v7.widget.CardView
+        xmlns:card_view="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/card_view"
+        android:layout_gravity="center"
+        android:layout_width="200dp"
+        android:layout_height="200dp"
+        card_view:cardCornerRadius="4dp">
+
+        &lt;TextView
+            android:id="@+id/info_text"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    &lt;/android.support.v7.widget.CardView>
+&lt;/LinearLayout>
+</pre>
+
+<p>Untuk informasi selengkapnya, lihat referensi API untuk {@link android.support.v7.widget.CardView}.</p>
+
+
+<h2 id="Dependencies">Menambahkan Dependensi</h2>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} dan {@link android.support.v7.widget.CardView}
+adalah bagian dari <a href="{@docRoot}tools/support-library/features.html#v7">v7 Support
+Library</a>. Untuk menggunakan widget dalam proyek Anda, tambahkan 
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependensi Gradle</a> ini ke
+modul aplikasi Anda:</p>
+
+<pre>
+dependencies {
+    ...
+    compile 'com.android.support:cardview-v7:21.0.+'
+    compile 'com.android.support:recyclerview-v7:21.0.+'
+}
+</pre>
diff --git a/docs/html-intl/intl/in/training/material/shadows-clipping.jd b/docs/html-intl/intl/in/training/material/shadows-clipping.jd
new file mode 100644
index 0000000..5431926
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/shadows-clipping.jd
@@ -0,0 +1,133 @@
+page.title=Mendefinisikan Bayangan dan Memangkas Tampilan
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#Elevation">Menetapkan Elevasi pada Tampilan Anda</a></li>
+  <li><a href="#Shadows">Menyesuaikan Bayangan dan Garis Luar Tampilan</a></li>
+  <li><a href="#Clip">Memangkas Tampilan</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+<p>Desain bahan memperkenalkan elevasi untuk elemen-elemen UI. Elevasi membantu pengguna memahami
+arti penting relatif masing-masing elemen dan memfokuskan perhatian pada tugas yang ada.</p>
+
+<p>Elevasi tampilan, yang dinyatakan dengan properti Z, menentukan tampilan visual
+bayangannya: tampilan dengan nilai Z lebih tinggi menghasilkan bayangan lebih besar dan lebih halus. Tampilan dengan nilai Z lebih tinggi menutupi
+tampilan dengan nilai Z lebih rendah; akan tetapi, nilai Z tampilan tidak memengaruhi ukuran tampilan.</p>
+
+<p>Bayangan digambar oleh induk tampilan yang dinaikkan, sehingga terkena pemangkasan standar tampilan,
+yang dipangkas oleh induk secara default.</p>
+
+<p>Elevasi juga berguna untuk membuat animasi tempat memunculkan widget untuk sementara di atas
+bidang tampilan saat melakukan beberapa tindakan.</p>
+
+<p>Untuk informasi selengkapnya tentang elevasi dalam desain bahan, lihat
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objek
+di ruang 3D</a>.</p>
+
+
+<h2 id="Elevation">Menetapkan Elevasi pada Tampilan Anda</h2>
+
+<p>Nilai Z untuk tampilan memiliki dua komponen:
+
+<ul>
+<li>Elevasi: Komponen statis.</li>
+<li>Transformasi: Komponen dinamis yang digunakan untuk animasi.</li>
+</ul>
+
+<p><code>Z = elevation + translationZ</code></p>
+
+<img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
+<p class="img-caption"><strong>Gambar 1</strong> - Bayangan untuk berbagai elevasi tampilan.</p>
+
+<p>Untuk mengatur elevasi tampilan dalam definisi layout, gunakan atribut <code>android:elevation</code>.
+ Untuk mengatur elevasi tampilan dalam kode aktivitas, gunakan
+metode {@link android.view.View#setElevation View.setElevation()}.</p>
+
+<p>Untuk mengatur transformasi tampilan, gunakan metode {@link android.view.View#setTranslationZ
+View.setTranslationZ()}.</p>
+
+<p>Metode {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} dan {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} yang baru memudahkan
+Anda menganimasikan elevasi tampilan. Untuk informasi selengkapnya, lihat referensi API untuk
+{@link android.view.ViewPropertyAnimator} dan panduan pengembang <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Animasi Properti</a>.
+</p>
+
+<p>Anda juga bisa menggunakan {@link android.animation.StateListAnimator}
+untuk menetapkan animasi ini secara deklaratif. Ini khususnya berguna bila
+perubahan status memicu animasi, seperti saat seorang pengguna menekan tombol. Untuk informasi selengkapnya, lihat
+<a href="{@docRoot}training/material/animations.html#ViewState">Menganimasikan Perubahan Status Tampilan</a>.</p>
+
+<p>Nilai Z diukur dengan satuan dp (density-independent pixel).</p>
+
+
+<h2 id="Shadows">Menyesuaikan Bayangan dan Garis Luar Tampilan</h2>
+
+<p>Batas-batas drawable latar belakang tampilan menentukan bentuk default bayangannya.
+<strong>Garis luar</strong> menyatakan bentuk luar objek grafis dan mendefinisikan
+bidang riak untuk umpan balik sentuh.</p>
+
+<p>Perhatikan tampilan ini, yang didefinisikan dengan drawable latar belakang:</p>
+
+<pre>
+&lt;TextView
+    android:id="@+id/myview"
+    ...
+    android:elevation="2dp"
+    android:background="@drawable/myrect" />
+</pre>
+
+<p>Drawable latar belakang didefinisikan sebagai persegi panjang dengan sudut membulat:</p>
+
+<pre>
+&lt;!-- res/drawable/myrect.xml -->
+&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    &lt;solid android:color="#42000000" />
+    &lt;corners android:radius="5dp" />
+&lt;/shape>
+</pre>
+
+<p>Tampilan ini menghasilkan bayangan dengan sudut membulat, karena drawable latar belakang mendefinisikan
+garis luar tampilan. Memberikan garis luar custom akan mengesampingkan bentuk default bayangan tampilan.</p>
+
+<p>Untuk mendefinisikan garis luar custom suatu tampilan dalam kode Anda:<p>
+
+<ol>
+<li>Perluas kelas {@link android.view.ViewOutlineProvider}.</li>
+<li>Kesampingkan metode {@link android.view.ViewOutlineProvider#getOutline getOutline()}.</li>
+<li>Tetapkan penyedia garis luar baru untuk tampilan Anda dengan metode {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
+</ol>
+
+<p>Anda bisa membuat garis luar lonjong dan persegi panjang yang bersudut membulat dengan menggunakan metode dalam
+kelas {@link android.graphics.Outline}. Penyedia garis luar default untuk tampilan memperoleh garis luar
+dari latar belakang tampilan. Untuk mencegah tampilan menghasilkan bayangan, atur penyedia garis luarnya
+ke <code>null</code>.</p>
+
+
+<h2 id="Clip">Memangkas Tampilan</h2>
+
+<p>Memangkas tampilan memudahkan Anda mengubah bentuk tampilan. Anda bisa memangkas tampilan agar
+konsistensi dengan elemen desain lainnya atau mengubah bentuk tampilan untuk merespons input pengguna.
+Anda bisa memangkas tampilan hingga area garis luarnya dengan menggunakan metode {@link android.view.View#setClipToOutline
+View.setClipToOutline()} atau atribut <code>android:clipToOutline</code>. Hanya
+garis-garis luar persegi panjang, lingkaran, dan persegi panjang bersudut bulat yang mendukung pemangkasan, seperti yang ditentukan oleh
+metode {@link android.graphics.Outline#canClip Outline.canClip()}.</p>
+
+<p>Untuk memangkas tampilan ke bentuk drawable, atur drawable sebagai latar belakang tampilan
+(seperti yang ditampilkan di atas) dan panggil metode {@link android.view.View#setClipToOutline View.setClipToOutline()}.
+</p>
+
+<p>Memangkas tampilan adalah operasi yang mahal; jadi, jangan animasikan bentuk yang Anda gunakan
+untuk memangkas tampilan. Untuk memperoleh efek ini, gunakan animasi <a href="{@docRoot}training/material/animations.html#Reveal">Reveal Effect</a>.</p>
diff --git a/docs/html-intl/intl/in/training/material/theme.jd b/docs/html-intl/intl/in/training/material/theme.jd
new file mode 100644
index 0000000..5acdcd2
--- /dev/null
+++ b/docs/html-intl/intl/in/training/material/theme.jd
@@ -0,0 +1,131 @@
+page.title=Menggunakan Tema Bahan
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Pelajaran ini mengajarkan Anda cara</h2>
+<ol>
+  <li><a href="#ColorPalette">Menyesuaikan Palet Warna</a></li>
+  <li><a href="#StatusBar">Menyesuaikan Baris Status</a></li>
+  <li><a href="#Inheritance">Tampilan Setiap Tema</a></li>
+</ol>
+<h2>Anda juga harus membaca</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Spesifikasi desain bahan</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Desain bahan di Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Tema bahan yang baru menyediakan:</p>
+
+<ul>
+  <li>Widget sistem yang memungkinkan Anda mengatur palet warnanya</li>
+  <li>Animasi umpan balik sentuh untuk widget sistem</li>
+  <li>Animasi transisi aktivitas</li>
+</ul>
+
+<p>Anda bisa menyesuaikan tampilan tema bahan
+sesuai dengan identitas merek Anda dengan palet warna yang Anda kontrol. Anda bisa mewarnai action-bar dan
+baris status dengan menggunakan atribut tema, seperti yang ditampilkan dalam <a href="#fig3">Gambar 3</a>.</p>
+
+<p>Widget sistem memiliki desain baru dan animasi umpan balik sentuh. Anda bisa menyesuaikan
+palet warna, animasi umpan balik sentuh, dan transisi aktivitas untuk aplikasi.</p>
+
+<p>Tema bahan didefinisikan sebagai:</p>
+
+<ul>
+  <li><code>@android:style/Theme.Material</code> (versi gelap)</li>
+  <li><code>@android:style/Theme.Material.Light</code> (versi terang)</li>
+  <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
+</ul>
+
+<p>Untuk daftar gaya bahan yang bisa Anda gunakan, lihat referensi API untuk
+{@link android.R.style R.style}.</p>
+
+<!-- two columns, dark/light material theme example -->
+<div style="width:700px;margin-top:25px;margin-bottom:10px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238">
+  <div style="width:170px;margin:0 auto">
+  <p style="margin-top:8px;font-size:12px"><strong>Gambar 1</strong>. Tema bahan gelap</p>
+  </div>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238">
+  <div style="width:170px;margin:0 auto">
+  <p style="margin-top:8px;font-size:12px"><strong>Gambar 2</strong>. Tema bahan terang</p>
+  </div>
+</div>
+<br style="clear:left">
+</div>
+
+<p class="note">
+<strong>Catatan:</strong> Tema bahan hanya tersedia di Android 5.0 (API level 21)
+ke atas. <a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Library</a>
+menyediakan tema dengan gaya desain bahan untuk beberapa widget dan dukungan untuk menyesuaikan
+palet warna. Untuk informasi selengkapnya, lihat
+<a href="{@docRoot}training/material/compatibility.html">Mempertahankan Kompatibilitas</a>.
+</p>
+
+
+<h2 id="ColorPalette">Menyesuaikan Palet Warna</h2>
+
+<p style="margin-bottom:30px">Untuk menyesuaikan warna dasar tema agar cocok dengan merek Anda, definisikan
+warna custom menggunakan atribut tema saat Anda mewariskan dari tema bahan:</p>
+
+<pre>
+&lt;resources>
+  &lt;!-- inherit from the material theme -->
+  &lt;style name="AppTheme" parent="android:Theme.Material">
+    &lt;!-- Main theme colors -->
+    &lt;!--   your app branding color for the app bar -->
+    &lt;item name="android:colorPrimary">@color/primary&lt;/item>
+    &lt;!--   darker variant for the status bar and contextual app bars -->
+    &lt;item name="android:colorPrimaryDark">@color/primary_dark&lt;/item>
+    &lt;!--   theme UI controls like checkboxes and text fields -->
+    &lt;item name="android:colorAccent">@color/accent&lt;/item>
+  &lt;/style>
+&lt;/resources>
+</pre>
+
+<div style="float:right;margin-left:25px;margin-top:20px;margin-bottom:10px" id="fig3">
+<img src="{@docRoot}training/material/images/ThemeColors.png" width="250" height="445" />
+<p class="img-caption" style="margin-bottom:0px">
+<strong>Gambar 3.</strong> Menyesuaikan tema bahan.</p>
+</div>
+
+
+<h2 id="StatusBar">Menyesuaikan Baris Status</h2>
+
+<p>Tema bahan memungkinkan Anda menyesuaikan baris status dengan mudah; jadi Anda bisa menetapkan
+warna yang cocok dengan merek Anda dan memberikan kontras yang cukup untuk menampilkan ikon status putih. Untuk
+mengatur warna custom bagi baris status, gunakan atribut <code>android:statusBarColor</code> bila
+Anda memperluas tema bahan. Secara default, <code>android:statusBarColor</code> mewarisi
+nilai <code>android:colorPrimaryDark</code>.</p>
+
+<p>Anda juga bisa menggambar sendiri di belakang baris status. Misalnya, jika Anda ingin menampilkan
+baris status secara transparan di atas foto, dengan gradasi gelap yang halus untuk memastikan
+ikon status putih tetap terlihat. Caranya, atur atribut <code>android:statusBarColor</code> ke
+<code>&#64;android:color/transparent</code> dan sesuaikan flag jendela seperti yang diperlukan. Anda juga bisa
+menggunakan metode {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} untuk
+animasi atau pemudaran.</p>
+
+<p class="note">
+<strong>Catatan:</strong> Baris status harus selalu memiliki delineasi yang jelas dari
+toolbar utama, kecuali bila Anda menampilkan gambar detail atau konten media tepi-ke-tepi di belakang
+baris ini dan bila Anda menggunakan gradasi untuk memastikan ikon tetap terlihat.
+</p>
+
+<p>Bila Anda menyesuaikan baris navigasi dan baris status, jadikan keduanya transparan atau modifikasi
+baris status saja. Baris navigasi harus tetap hitam di semua kasus lainnya.</p>
+
+
+<h2 id="Inheritance">Tampilan Setiap Tema</h3>
+
+<p>Elemen dalam definisi layout XML bisa menetapkan atribut <code>android:theme</code>,
+yang merujuk sumber daya tema. Atribut ini memodifikasi tema untuk elemen itu dan setiap
+elemen anak, yang berguna untuk mengubah palet warna tema dalam porsi tertentu
+pada antarmuka.</p>
diff --git a/docs/html-intl/intl/ja/design/get-started/principles.jd b/docs/html-intl/intl/ja/design/get-started/principles.jd
index 8e4149d..dde44ff 100644
--- a/docs/html-intl/intl/ja/design/get-started/principles.jd
+++ b/docs/html-intl/intl/ja/design/get-started/principles.jd
@@ -1,29 +1,29 @@
-page.title=Android デザイン指針
+page.title=Android デザインの原則
 @jd:body
 
-<p>このデザイン指針は、ユーザーがもっとも知りたいと思われることを中心に、Android User Experience Team により、またその活動を統一的なものにするために作成されたものです。Android デベロッパーとデザイナーに対しては各種端末向けのより詳細なデザイン ガイドラインがあります。
+<p>このデザインの原則は、ユーザーがもっとも知りたいと思われることを中心に、Android User Experience Team により、またその活動を統一的なものにするために作成されたものです。
 
-
+Android デベロッパーとデザイナーに対しては各種端末向けのより詳細なデザイン ガイドラインがあります。
 
 </p>
 
 <p>
-ご自身の創造性やデザインについて考える際、この指針を考慮に入れてください。
+ご自身のクリエイティビティやデザインについて考える際、この原則を考慮に入れてください。
 何を当てはめるかは目的に応じて調整してください。
 </p>
 
 <h2 id="enchant-me">ユーザーを引きつける</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">サプライズで楽しませる</h4>
-<p>美しい画面、考え抜かれて配置されたアニメーション、タイミングの良いサウンド エフェクトは、使っていて楽しくなります。
+<p>美しい画面、思慮深く配置されたアニメーション、タイミングの良いサウンド エフェクトは、使っていて楽しくなります。
 わずかな効果でも、ユーザーを楽しませ、力を得たように感じてもらえます。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">ボタンやメニューよりもリアルなオブジェクトでさらに楽しく</h4>
-<p>ユーザーがアプリでオブジェクトを直接タップしたり操作したりできるようになります。タスクを実行するために必要な認知の労力が軽減され、感覚的な満足度も上がります。
+<p>アプリでオブジェクトを直接タップしたり操作したりできます。タスクを試行錯誤しながら実行する必要はなく、アプリの満足度も上がります。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,16 +49,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="make-it-mine">自分らしさを加える</h4>
-<p>ユーザーは自分でカスタマイズすることを好みます。これにより、くつろいだ気分や自分の思いのままできる自由な気分を味わうことができます。デフォルトで実用的で美しいものを取りそろえ、それに加えてメイン タスクの妨げにならない、楽しいカスタマイズも任意で加えられます。
+<h4 id="make-it-mine">アプリに自分らしさをプラス</h4>
+<p>誰もがアプリで自分らしさを出したいと思っています。好きなようにアプリを操作できるからです。実用的で美しい機能があらかじめ用意されており、それに加えてメイン タスクの邪魔にならない、楽しいカスタマイズもできます。
 
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,31 +67,31 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="get-to-know-me">ユーザーについて知る</h4>
-<p>徐々にユーザーの好みを学習していきます。同じ選択を繰り返す手間をかけず、前に選択したものをすぐに選べるようになります。
+<h4 id="get-to-know-me">ユーザーの好みを学習</h4>
+<p>徐々にユーザーの好みを学習していきます。ユーザーに何度も同じ選択をさせるのではなく、前に選択したものをすぐに選べるようにします。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
   </div>
 </div>
 
-<h2 id="simplify-my-life">よりシンプルに</h2>
+<h2 id="simplify-my-life">生活をシンプルに</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="keep-it-brief">常に簡潔に</h4>
-<p>シンプルな言葉を並べた短いフレーズを用います。長い文章は好まれません。</p>
+<h4 id="keep-it-brief">簡潔を心がける</h4>
+<p>シンプルで短いフレーズを用います。長い文章は好まれません。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">画像は言葉よりもわかりやすい</h4>
-<p>画像を使ってアイデアを説明してみましょう。ユーザーの興味を引くことができ、言葉よりも効率的です。
+<p>画像を使ってアイデアを説明してみましょう。ユーザーの興味を引くことができ、言葉よりも効果的です。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">選択は最小限に、最終決定はユーザーに</h4>
-<p>最初からユーザーにすべて尋ねるのではなく、もっとも適切と思われる項目を提示します。選択肢や決定事項が多すぎると面倒に感じます。
-推測が間違っていた場合に備え、「やり直し」も可能にします。</p>
+<p>最初からユーザーに選ばせるのではなく、適切と思われる項目を提示します。選択肢や決定事項が多すぎるとユーザーは面倒に感じます。
+間違った選択をしても、「やり直し」ができます。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="only-show-when-i-need-it">必要なものを必要なときにだけ表示する</h4>
+<h4 id="only-show-when-i-need-it">必要なものを必要なときに</h4>
 <p>一度に表示される内容が多すぎると疲れてしまいます。タスクや情報はいくつかに小さくまとめてわかりやすくします。
 その時点で必要のないオプションは非表示にして、必要なときだけ表示します。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="always-know-where-i-am">全体像から現在の位置を示す</h4>
-<p>ユーザーがはっきりと自分の現在の場所を把握できるようにします。アプリのどの場所にいるかを明示し、遷移して画面の関係を認識できるようにします。
-実行しているタスクに対して応答し続けます。</p>
+<h4 id="always-know-where-i-am">現在位置を把握する</h4>
+<p>ユーザーが現在アプリのどこにいるのかがすぐに分かります。アプリ内における現在位置を明示し、遷移を使用して画面間の関係を表示します。
+実行中のタスクにフィードバックを返します。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,16 +168,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="never-lose-my-stuff">作成したものは失くさない</h4>
-<p>ユーザーが時間をかけて作ったものは保存して、どこからでもアクセスできるようにします。設定、独自のカスタマイズ、電話、タブレット、コンピュータで作成したものを記録します。
-アップグレードも簡単になります。
+<h4 id="never-lose-my-stuff">作成物を失くさない</h4>
+<p>ユーザーが時間をかけて作ったものは保存して、どこからでもアクセスできるようにします。設定、独自のカスタマイズ、および携帯端末、タブレット、コンピュータで作成したものを保存します。
+アップグレードも簡単にできます。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="looks-same-should-act-same">見た目が同じ場合は機能も同じにする</h4>
-<p>視覚的な違いを際立たせ、ユーザーが機能の違いをはっきり区別できるようにします。同じような外観、同じ入力で機能が異なるようなモードは避けます。
-</p>
+<h4 id="looks-same-should-act-same">見た目が同じなら機能も同じ</h4>
+<p>機能の違いがはっきり分かるように、特徴的なビジュアルにします。
+同じような外観、同じ入力方法なのに機能が異なるということのないようにします。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="interrupt-only-if-important">割り込みは重要なときにだけ行う</h4>
-<p>優秀な個人秘書のように、重要ではない些細なことでユーザーをわずらわせることのないよう配慮します。集中したいユーザーにとって、重要で一刻を争うようなものでない限り、割り込まれると面倒で不快に感じる可能性があります。
+<h4 id="interrupt-only-if-important">割り込みは必要な場合のみ</h4>
+<p>優秀な個人秘書のように、ユーザーを些細なことでわずらわせないようにします。ユーザーは実行中の操作に専念したいと考えており、重要で一刻を争うようなものでない限り、割り込みは面倒で不快と感じます。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,16 +220,16 @@
 
 <h2 id="make-me-amazing">操作を楽しく</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="give-me-tricks">あらゆる場所に工夫を仕込む</h4>
-<p>自分で理解すると嬉しく感じられます。Android アプリで広く使われている視覚や操作のパターンを生かし、アプリの操作をわかりやすいものにします。
-たとえばスワイプ操作は便利なナビゲーションのショートカットとして使えます。
+<h4 id="give-me-tricks">あらゆる場所に工夫を凝らす</h4>
+<p>理解できれば楽しくなります。Android アプリで広く使われている視覚や操作のパターンを生かし、アプリの操作をわかりやすいものにします。
+たとえばスワイプ操作は、ナビゲーションのショートカットとして使えるので便利です。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="its-not-my-fault">解決は簡単に</h4>
-<p>ユーザーに修正を促す場合はその方法に注意します。アプリではスマートに問題を解決できるようにします。うまくいかなかったときは解決方法を明確に示し、技術的な詳細を表示する必要はありません。自動的に修正できる問題はユーザーに通知する必要すらありません。
-
-</p>
+<h4 id="its-not-my-fault">ユーザーの責任にしない</h4>
+<p>ユーザーに修正を促す場合はその方法に注意します。ユーザーはアプリをスマートに使いこなしたいと考えています。
+うまくいかなかったときの解決方法は明確でなければなりませんが、技術的に詳細である必要はありません。
+自動的に修正できる問題については、通知も不要です。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">操作を促すしかけを散りばめる</h4>
-<p>複雑なタスクは分割し、それぞれ簡単に達成できるようにします。1 つ 1 つにフィードバックすることで、ユーザーの満足度は高まります。
+<p>複雑なタスクは分割し、簡単に達成できるようにします。1 つ 1 つのアクションにフィードバックすることで、ユーザーの満足度は高まります。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,16 +273,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="do-heavy-lifting-for-me">作業の手間はかけない</h4>
-<p>できると思っていなかったことをできるようにすることで、知識がなくても専門家のような気分を味わってもらえます。たとえば複数の写真効果を組み合わせたショートカットを使うことで、わずかな手順でプロのような写真に仕上げられます。
+<h4 id="do-heavy-lifting-for-me">手間のかかる作業は不要</h4>
+<p>できないと思っていたことができるようになれば、初心者でもエキスパートの気分が味わえます。たとえば複数の写真効果を組み合わせるショートカットを使うことで、わずかな手順でプロのような写真に仕上げられます。
 
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">重要なことはすみやかに</h4>
-<p>すべてのアクションが同じ優先度とは限りません。アプリのアクションには優先度を設定し、重要なものはたとえばカメラのシャッター ボタンや音楽プレイヤーの一時停止ボタンのように、簡単に見つけられすぐに使えるようにします。
+<p>すべてのアクションが同じ優先度とは限りません。アプリのアクションに優先度を設定し、カメラのシャッター ボタンや音楽プレイヤーの一時停止ボタンのように重要なものは、簡単に見つけてすぐに使えるようにします。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/ja/design/material/index.jd b/docs/html-intl/intl/ja/design/material/index.jd
index 3acd423..3330b0c 100644
--- a/docs/html-intl/intl/ja/design/material/index.jd
+++ b/docs/html-intl/intl/ja/design/material/index.jd
@@ -1,15 +1,14 @@
-page.title=マテリアル デザイン
-page.tags=Material, design
-page.type=design
-page.image=design/material/images/MaterialLight.png
+page.title=Android のマテリアル デザイン
+page.tags=Material,design
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
 <!-- developer docs box -->
 <a class="notice-developers right" href="{@docRoot}training/material/index.html">
   <div>
-    <h3>デベロッパー文書</h3>
-    <p>マテリアル デザインを使ったアプリの作成</p>
+    <h3>デベロッパー ドキュメント</h3>
+    <p>マテリアル デザインを使用したアプリの作成</p>
   </div>
 </a>
 
@@ -25,7 +24,7 @@
 <a class="notice-developers-video" href="https://www.youtube.com/watch?v=YaG_ljfzeUw">
 <div>
     <h3>ビデオ</h3>
-    <p>紙とインク:重要なマテリアル</p>
+    <p>紙とインク: 重要なマテリアル</p>
 </div>
 </a>
 
@@ -39,27 +38,27 @@
 
 
 
-<p itemprop="description">マテリアル デザインは、視覚や動作と、複数のプラットフォームや端末間でのインタラクション デザインに関する包括的な指針です。
+<p itemprop="description">マテリアル デザインは、複数のプラットフォームや端末の視覚、モーション、インタラクション デザインの包括的な指針です。
 Android はマテリアル デザイン アプリに対応するようになりました。
-Android アプリでマテリアル デザインを使うには、<a href="http://www.google.com/design/spec">マテリアル デザインの仕様</a>で説明されているガイドラインに従い、Android 5.0(API レベル 21)以降の新しいコンポーネントや機能を使用します。
+Android アプリでマテリアル デザインを使うには、<a href="http://www.google.com/design/spec">マテリアル デザインの仕様</a>で定義されているガイドラインに従い、Android 5.0(API レベル 21)以降の新しいコンポーネントや機能を使用します。
 
 </p>
 
-<p>Android にはマテリアル デザインの作成に使うことができる次の要素が用意されています。</p>
+<p>Android にはマテリアル デザインのアプリのビルドに使用できる次の要素が用意されています。</p>
 
 <ul>
   <li>新しいテーマ</li>
-  <li>複雑なビュー用の新しいウィジェット</li>
+  <li>複雑なビューに対応した新しいウィジェット</li>
   <li>カスタムのシャドウとアニメーション用の新しい API</li>
 </ul>
 
-<p>Android でのマテリアル デザインの実装については、<a href="{@docRoot}training/material/index.html">マテリアル デザインを使ったアプリの作成</a>をご覧ください。
+<p>Android でのマテリアル デザインの実装については、<a href="{@docRoot}training/material/index.html">マテリアル デザインを使用したアプリの作成</a>をご覧ください。
 </p>
 
 
 <h3>マテリアル テーマ</h3>
 
-<p>マテリアル テーマはアプリの新しいスタイルである、システム ウィジェットを提供します。システム ウィジェットを使ってカラーパレット、タッチ フィードバックやアクティビティ遷移のためのデフォルトのアニメーションを指定できます。
+<p>マテリアル テーマには、アプリの新しいスタイルであるシステム ウィジェットがあります。このシステム ウィジェットを使うと、システム ウィジェットのカラーパレットを設定したり、タッチ フィードバックやアクティビティ遷移のためのデフォルトのアニメーションを設定したりできます。
 </p>
 
 <!-- two columns -->
@@ -67,13 +66,13 @@
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238" />
   <div style="width:140px;margin:0 auto">
-  <p style="margin-top:8px">暗色マテリアル テーマ</p>
+  <p style="margin-top:8px">暗い色のマテリアル テーマ</p>
   </div>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238" />
   <div style="width:140px;margin:0 auto">
-  <p style="margin-top:8px">明色マテリアル テーマ</p>
+  <p style="margin-top:8px">明るい色のマテリアル テーマ</p>
   </div>
 </div>
 <br style="clear:left"/>
@@ -85,19 +84,19 @@
 
 <h3>リストとカード</h3>
 
-<p>Android はマテリアル デザインのスタイルとアニメーションを含むカードとリストを表示する新しい 2 つのウィジェットを提供しています。
+<p>Android はマテリアル デザインのスタイルとアニメーションを含むカードとリストを表示する、次のような新しい 2 つのウィジェットを提供しています。
 </p>
 
 <!-- two columns -->
 <div style="width:700px;margin-top:25px;margin-bottom:20px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" />
-  <p><code>RecyclerView</code> ウィジェットは <code>ListView</code> のさらに柔軟なバージョンで、さまざまなレイアウト タイプをサポートしてパフォーマンスを向上します。
-</p>
+  <p>新しい <code>RecyclerView</code> ウィジェットは <code>ListView</code>
+ に比べてさらに柔軟に機能を追加できるようになっており、さまざまなレイアウト タイプをサポートしてパフォーマンスを向上させます。</p>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
-  <p>新しい <code>CardView</code> ウィジェットでは、外観や使用感が一貫しているカード内に重要な情報を表示できます。
+  <p>新しい <code>CardView</code> ウィジェットではカードの外観や操作性が統一され、カード内の重要な情報を表示できるようになりました。
 </p>
 </div>
 <br style="clear:left"/>
@@ -109,12 +108,12 @@
 
 <h3>シャドウの表示</h3>
 
-<p>X と Y プロパティに加え、Android のビューに Z プロパティが追加されました。
-この新しいプロパティはビューのエレベーションを表し、次を指定します。</p>
+<p>Android のビューに、X と Y のプロパティに加えて Z プロパティが追加されました。
+この新しいプロパティはビューのエレベーションを表し、次の要素を指定します。</p>
 
 <ul>
-<li>シャドウのサイズ: Z 値が高いビューほどキャストするシャドウのサイズが大きくなります。</li>
-<li>表示される順序: Z 値が高いビューほど他のビューより上位に表示されます。</li>
+<li>シャドウのサイズ: ビューの Z 値が高いほどシャドウのサイズが大きくなります。</li>
+<li>描画順序: ビューの Z 値が高いほど他のビューの前面に表示されます。</li>
 </ul>
 
 <div style="width:290px;margin-left:35px;float:right">
@@ -136,33 +135,33 @@
 
 <h3>アニメーション</h3>
 
-<p>新しいアニメーション API を使って UI コントロールのタッチ フィードバック、ビューの状態遷移、アクティビティ遷移のカスタム アニメーションを作成できます。
+<p>新しいアニメーション API を使って、UI コントロールのタッチ フィードバック、ビューの状態変化、アクティビティ間の遷移時のカスタム アニメーションを作成できます。
 </p>
 
-<p>これらの API で次の操作を実行できます。</p>
+<p>この API で次のようなことができます。</p>
 
 <ul>
 <li style="margin-bottom:15px">
-<strong>タッチ フィードバック</strong> アニメーションを使ってビューのタップイベントに応答します。
+<strong>タッチ フィードバック</strong> アニメーションでビューのタップ イベントに応答する。
 </li>
 <li style="margin-bottom:15px">
-<strong>円形状の出現</strong>アニメーションを使ってビューを表示 / 非表示にします。
+<strong>円形状の出現</strong>アニメーションを使ってビューを表示したり、非表示にしたりする。
 </li>
 <li style="margin-bottom:15px">
-カスタムの<strong>アクティビティ遷移</strong>アニメーションを使ってアクティビティを切り替えます。
+カスタムの<strong>アクティビティ遷移</strong>アニメーションを使ってアクティビティを切り替える。
 </li>
 <li style="margin-bottom:15px">
-<strong>曲線モーション</strong>を使ってより自然なアニメーションを作成します。
+<strong>曲線モーション</strong>を使ってより自然なアニメーションを作成する。
 </li>
 <li style="margin-bottom:15px">
-<strong>ビューの状態遷移</strong>アニメーションを使って 1 つ以上のビュー プロパティの遷移を表現します。
+<strong>ビューの状態変化</strong>アニメーションを使って 1 つ以上のビュー プロパティを変化させるアニメーションを作成する。
 </li>
 <li style="margin-bottom:15px">
-ビューの状態遷移間のアニメーションを<strong>状態リスト ドローアブル</strong>で表示します。
+ビューの状態を変化させるアニメーションを<strong>状態リスト ドローアブル</strong>で表示します。
 </li>
 </ul>
 
-<p>タッチ フィードバック アニメーションはボタンなどの複数の標準ビューに組み込まれます。新しい API を使ってこれらのアニメーションをカスタマイズし、それらをカスタム ビューに追加できます。
+<p>タッチ フィードバック アニメーションはボタンなどの複数の標準ビューに組み込まれています。新しい API を使うと、これらのアニメーションをカスタマイズして、カスタム ビューに追加できます。
 </p>
 
 <p>詳細については、<a href="{@docRoot}training/material/animations.html">カスタム アニメーションの定義</a>をご覧ください。
@@ -171,12 +170,12 @@
 
 <h3>ドローアブル</h3>
 
-<p>次の新しいドローアブル機能を使ってマテリアル デザイン アプリを実装できます。</p>
+<p>次の新しいドローアブル機能を使用してマテリアル デザイン アプリを実装できます。</p>
 
 <ul>
-<li><strong>ベクター型ドローアブル</strong>は鮮明度を失わずに拡張でき、単色のアプリ内アイコンに最適です。
+<li><strong>ベクター型ドローアブル</strong>は定義を失わずにスケールできるので、単色のアプリ アイコンに最適です。
 </li>
-<li><strong>ドローアブルによる着色</strong>を使ってビットマップをアルファマスクとして定義し、実行時にそれらのビットマップに色付けすることができます。
+<li><strong>ドローアブルによる着色</strong>を使ってビットマップをアルファ マスクとして定義し、実行時にそのビットマップに色付けできます。
 </li>
 <li><strong>色の抽出</strong>を使ってビットマップ画像から代表色を自動的に抽出できます。
 </li>
diff --git a/docs/html-intl/intl/ja/design/patterns/compatibility.jd b/docs/html-intl/intl/ja/design/patterns/compatibility.jd
new file mode 100644
index 0000000..c035a15
--- /dev/null
+++ b/docs/html-intl/intl/ja/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=下方互換性
+page.tags="support"
+page.metaDescription=Android 4.x がバージョンの古いハードウェアや OS 向けにデザインされた UI にどのように対応するかについての注意事項。
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>デベロッパー ドキュメント</h3>
+    <p>異なる端末のサポート</p>
+  </div>
+</a>
+
+<p>Android 3.0 での大きな変更点には、以下のような点があります。</p>
+<ul>
+<li>仮想コントロール(Back、Home、Recents)のナビゲーション処理の導入によるナビゲーション ハードウェア キー(Back、Menu、Search、Home)の廃止
+</li>
+<li>アクションバーでメニュー項目を使用する際の表現パターンの強化</li>
+</ul>
+<p>Android 4.0 では、こういったタブレット向けの変更点が携帯端末プラットフォームにも導入されました。</p>
+
+<h2 id="older-hardware">古いハードウェアやアプリへの Android 4.0 の対応</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>仮想ナビゲーション コントロールのある携帯端末</h4>
+<p>Android 3.0 以降をターゲットにした Android アプリは、アクションをアクションバーに表示します。アクションバーに収まらないアクションや、トップレベルに表示するほど重要ではないアクションは、アクション オーバーフローに表示されます。
+
+</p>
+<p>ユーザーは、アクションバーをタップすることで、アクション オーバーフローにアクセスできます。</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>物理ナビゲーション キーのある携帯端末</h4>
+<p>従来型のナビゲーション ハードウェア キーのある Android 携帯端末では、画面下部に仮想ナビゲーション バーは表示されません。
+代わりに、メニュー ハードウェア キーからアクション オーバーフローを利用できます。そのため、ポップアップするアクションは先ほどの例と同じように利用できますが、画面の下部に表示される点が異なります。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>仮想ナビゲーション コントロールのある携帯端末でのレガシー アプリ</h4>
+<p>Android 2.3 以前をターゲットにビルドされたアプリを仮想ナビゲーション コントロールのある携帯端末で実行すると、仮想ナビゲーション バーの右側にアクション オーバーフロー コントロールが表示されます。
+コントロールをタップすると、アプリのアクションを従来型の Android メニュー形式で表示できます。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/ja/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/ja/design/patterns/confirming-acknowledging.jd
index 35ba821..c2dfb84 100644
--- a/docs/html-intl/intl/ja/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/ja/design/patterns/confirming-acknowledging.jd
@@ -2,69 +2,69 @@
 page.tags=dialog,toast,notification
 @jd:body
 
-<p>状況に応じて、ユーザーがアプリでアクションを呼び出したときに、テキストを使ってそのアクションを<em>確認</em>したり<em>通知</em>したりするのは良い方法です。</p>
+<p>アプリでアクションを呼び出すときに、テキストでそのアクションを<em>確認</em>または<em>通知</em>するとよい場合があります。</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
-    <p><strong>確認</strong>とは、呼び出したアクションを続けるかどうかをユーザーに確認してもらうことです。場合によって、確認は考慮する必要があるアクションに関連する警告や重要情報とともに表示されることがあります。</p>
+    <p><strong>確認</strong>とは、呼び出したアクションを本当に続行してもよいかどうかをユーザーにたずねることです。検討を要するアクションがあれば、それに関する警告や重要情報とともに表示されることもあります。</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
-    <p><strong>通知</strong>とは、呼び出したアクションが完了したことをユーザーにお知らせするテキストを表示することです。これによって、システムが実行している暗黙的な処理の不明瞭さをなくすことができます。場合によって、通知はアクションを元に戻すオプションとともに表示されることがあります。</p>
+    <p><strong>通知</strong>とは、呼び出したアクションが完了したことをユーザーに知らせるテキストを表示することです。システムにより実行中であり、ユーザーには表示されない操作を確認できます。アクションを元に戻すオプションとともに表示されることもあります。</p>
   </div>
 </div>
 
-<p>このような方法でユーザーに情報を伝えると、実行された処理やこれから実行される処理についての不明瞭さを軽減できます。確認や通知によって、後悔するような間違いをするのを防ぐこともできます。</p>
+<p>このような機能を使用すれば、実行済みの処理やこれから実行される処理を明確に把握できます。確認や通知を表示することで、後悔するような間違いを防ぐこともできます。</p>
 
-<h2>ユーザーのアクションを確認または通知する場合</h2>
-<p>すべてのアクションに確認または通知が必要なわけではありません。デザインを決定する際の指針として次のチャートを使用してください。</p>
+<h2>ユーザーのアクションを確認または通知するタイミング</h2>
+<p>すべてのアクションに確認または通知が必要なわけではありません。確認や通知が必要かどうかを判断するには、次のチャートを使用してください。</p>
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>確認</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>例: Google Play ブックス</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
-    <p>この例では、ユーザーが Google Play ライブラリから書籍を削除することを要求しています。その書籍が今後端末で使えなくなることを知ってもらうことが重要であるため、このアクションを確認する<a href="{@docRoot}design/building-blocks/dialogs.html#alerts">アラート</a>が表示されます。</p>
-    <p>確認のダイアログを作成するときは、要求されたアクションがすぐわかるようなタイトルにします。</p>
+    <p>この例では、ユーザーは Google Play ライブラリから書籍を削除するよう要求しています。この書籍が今後いずれの端末でも使用できなくなるということを知らせる必要があるため、このアクションを確認する<a href="{@docRoot}design/building-blocks/dialogs.html#alerts">アラート</a>が表示されます。</p>
+    <p>確認ダイアログは、要求されたアクションをタイトルに記述するなどして、わかりやすく作成します。</p>
   </div>
-  <div class="layout-content-col span-7">
-    <h4>例: Android Beam</h4>
+  <div class="col-7">
+    <h4>例: Android ビーム</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
-    <p>確認は、必ずしも 2 つのボタンの付いたアラートで示す必要はありません。Android Beam を開始した後に、ユーザーには共有するコンテンツ(この例では写真)にタップするように求めるメッセージが表示されます。共有を続行しない場合は、電話を離すだけです。</p>
+    <p>確認は、必ずしも 2 つのボタンが付いたアラートで行う必要はありません。Android ビームを開始した後、共有するコンテンツ(この例では写真)をタップするようメッセージが表示されます。共有を続行しない場合は、携帯端末を離すだけです。</p>
   </div>
 </div>
 
 <h2>通知</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <h4>例: 放置した Gmail 下書きの保存</h4>
+<div class="cols">
+  <div class="col-6">
+    <h4>例: 途中まで書いた Gmail の下書きの保存</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
-    <p>この例では、ユーザーが Gmail 作成画面から前の画面に戻ったり、上位画面に移動したりするときに、予測しないことが起こる可能性があるため、現在の下書きが自動的に保存されます。トースト形式の通知によってその状態が明らかになります。この通知は数秒後にフェードします。</p>
+    <p>この例では、ユーザーが Gmail 作成画面から前の画面に戻ったり、画面の上部に移動したりすると、予測しないことが起こることもあるため、現在の下書きが自動的に保存されています。この動作はトースト形式で通知され、数秒後に消えます。</p>
     <p>この場合、保存操作はユーザーではなくアプリによって行われるため、元に戻す操作は適切ではありません。また、下書きのリストに移動するだけでメッセージの作成をすぐに再開できます。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>例: Gmail スレッドの削除</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
-    <p>ユーザーが Gmail のリストからスレッドを削除した後に、元に戻すオプションとともに通知が表示されます。ユーザーがリストのスクロールなど関連しないアクションを実行するまで通知は表示されたままになります。</p>
+    <p>ユーザーが Gmail のリストから会話を削除した後に、元に戻すオプションとともに認定が表示されます。リストのスクロールなど無関係なアクションをユーザーが実行するまで、通知の表示は消えません。</p>
   </div>
 </div>
 
 <h2>確認または通知を行わない場合</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>例: +1 操作</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
-    <p><strong>確認は不要</strong>。ユーザーが誤って +1 ボタンをタップしても、大きな問題にはなりません。ボタンをもう一度タップすればアクションを元に戻すことができます。</p>
-    <p><strong>通知は不要</strong>。+1 ボタンがバウンスし、赤に変わります。これは非常にわかりやすいシグナルです。</p>
+    <p><strong>確認は不要です</strong>。ユーザーが誤って [+1] ボタンをタップしても、あまり問題ではありません。ボタンをもう一度タップすれば、アクションを元に戻すことができるからです。</p>
+    <p><strong>通知は不要です</strong>。[+1] ボタンがバウンドして赤に変わります。これは非常にわかりやすいシグナルです。</p>
   </div>
-  <div class="layout-content-col span-7">
-    <h4>例: ホームスクリーンからアプリを削除</h4>
+  <div class="col-7">
+    <h4>例: ホームスクリーンからアプリを削除する場合</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
-    <p><strong>確認は不要</strong>。これは意図的なアクションです。ユーザーはアイテムを比較的大きな分離されたターゲットにドラッグ アンド ドロップする必要があります。そのため、不測の問題が発生することはほとんどありません。ユーザーがこの決定を元に戻したい場合は、ほんの数秒で元に戻すことができます。</p>
-    <p><strong>通知は不要</strong>。ユーザーは自分でアプリをドラッグして削除するため、アプリがホームスクリーンから消えることがわかっています。</p>
+    <p><strong>確認は不要です</strong>。このアクションは賢明に設計されており、ユーザーはアイテムを比較的離れたところにある大きいターゲットにドラッグ アンド ドロップする必要があります。そのため、アクシデントが発生することはほとんどありません。しかもこの操作を取り消したい場合は、ほんの数秒で元に戻すことができるようになっています。</p>
+    <p><strong>通知は不要です</strong>。ユーザーが自分でアプリをドラッグして削除しているので、アプリがホームスクリーンから消えるのがわかっているからです。</p>
 
   </div>
 </div>
diff --git a/docs/html-intl/intl/ja/design/patterns/navigation.jd b/docs/html-intl/intl/ja/design/patterns/navigation.jd
index dbb6b04..079ad25 100644
--- a/docs/html-intl/intl/ja/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/ja/design/patterns/navigation.jd
@@ -1,213 +1,213 @@
-page.title=Back と Up を使用したナビゲーション
+page.title=Back ボタンと Up ボタンを使用したナビゲーション
 page.tags="navigation","activity","task","up navigation","back navigation"
 page.image=/design/media/navigation_between_siblings_gmail.png
 @jd:body
 
 <a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
   <div>
-    <h3>デベロッパー文書</h3>
-    <p>効果的なナビゲーションを実装する</p>
+    <h3>デベロッパー ドキュメント</h3>
+    <p>効果的なナビゲーションの実装</p>
   </div>
 </a>
 
-<p itemprop="description">一貫したナビゲーションは全体的なユーザーの操作性を向上するために欠かせない重要な要素です。一貫性がなく予測できない動作ほどユーザーにとって不快なものはありません。
-Android 3.0 では、全体的なナビゲーション動作が大きく変更されました。
-注意深く Back と Up のガイドラインに従うことで、アプリのナビゲーションをユーザーにとって予測可能で信頼できるものにすることができます。
+<p itemprop="description">使いやすいアプリでは、ナビゲーションに統一性があります。統一性がなく、動作の読めないアプリほど使いにくいものはありません。
+Android 3.0 では、全体的なナビゲーション動作が大きく変わりました。
+Back ボタンと Up ボタンのガイドラインに従えば、ユーザーにとってわかりやすく、信頼できるナビゲーションを実装できます。
 </p>
-<p>Android 2.3 以前のアプリ内でのナビゲーションはシステムの <em>Back</em> ボタンを使って行われてきました。Android 3.0 よりアクションバーが導入され、第 2 のナビゲーション メカニズムとして <em>Up</em> ボタンが登場しました。このボタンはアプリアイコンと左向きのキャラットで構成されています。
-
+<p>Android 2.3 以前のアプリのナビゲーションはシステムの <em>Back</em> ボタンで行っていました。
+Android 3.0 よりアクションバーが導入され、第 2 のナビゲーション メカニズムとして <em>Up</em> ボタンが登場しました。このボタンはアプリアイコンと左向きのキャレットで表されています。
 </p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
-<h2 id="up-vs-back">Up と Back</h2>
+<h2 id="up-vs-back">Up ボタンと Back ボタンの違い</h2>
 
 <p>Up ボタンは、画面間の階層関係に基づいてアプリ内を移動するために使います。
-たとえば、画面 A がアイテムのリストを表示し、アイテムを選択すると(そのアイテムの詳細を表示する)画面 B に移動する場合、画面 B には画面 A に戻るための Up ボタンを用意する必要があります。
+たとえば、画面 A でアイテムのリストを表示し、アイテムを選択すると(そのアイテムの詳細を表示する)画面 B に移動する場合、画面 B には画面 A に戻るための Up ボタンが必要です。
 
 </p>
-<p>画面がアプリの最上位(つまり、アプリのホーム)であれば、Up ボタンを表示すべきではありません。
+<p>画面がアプリのトップ レベル(アプリのホーム)であれば、Up ボタンを表示する必要はありません。
 </p>
 
-<p>システムの Back ボタンはユーザーが最近使用した画面を、さかのぼって順番に移動する場合に使用されます。
-通常このナビゲーションはアプリの階層ではなく、画面を表示した順番に基づいています。
+<p>システムの Back ボタンは、最近使用した画面をさかのぼって順番に移動する場合に使用します。
+通常、このナビゲーションはアプリの階層ではなく、画面を表示した順番に基づいています。
 </p>
 
-<p>前に表示していた画面が現在の画面の親階層となる場合は、Back ボタンを押すとUp ボタンを押したときと同じ結果になります &mdash; これはよくある動作です。
+<p>前に表示していた画面が現在の画面の親階層となる場合は、Back ボタンを押すと Up ボタンを押したときと同じ結果になります &mdash; これは一般的な動作です。
 
-ただし、Up ボタンではユーザーが確実にアプリ内に留まるのに対して、Back ボタンを使えばホームスクリーンに、さらには別のアプリに戻ることさえできます。
+ただし、Up ボタンではユーザーの移動がアプリ内に限られるのに対して、Back ボタンではホーム画面や、別のアプリにも戻れます。
 </p>
 
 <img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
 
-<p>Back ボタンは、画面間を直接ナビゲーションするだけでなく、次のような動作もサポートします。
+<p>Back ボタンは、画面間を直接ナビゲーションするだけでなく、次のような動作にも対応しています。
 </p>
 <ul>
 <li>フローティング ウィンドウ(ダイアログ、ポップアップ)を閉じる</li>
 <li>コンテキスト アクションバーを閉じて、選択したアイテムのハイライト表示を解除する</li>
-<li>オンスクリーン キーボード(IME)を非表示にする</li>
+<li>画面上のキーボード(IME)を非表示にする</li>
 </ul>
 <h2 id="within-app">アプリ内でのナビゲーション</h2>
 
-<h4>複数のエントリ ポイントのある画面のナビゲーション</h4>
-<p>画面にアプリ階層内の正確な位置がなく、アプリ内の他のどの画面からでもアクセスできる設定画面などのように複数のエントリ ポイントからアクセスできる場合があります。この場合、Up ボタンは参照元の画面に戻ることを選択する必要があります。これは Back も同様です。
-&mdash;
+<h4>エントリ ポイントが複数ある画面へのナビゲート</h4>
+<p>設定画面のように、アプリ内の他のどの画面からでもアクセスでき、アプリ階層内に定位置がなく、複数のエントリ ポイントからアクセスできる画面もあります。
 
+この場合、Up ボタンは Back ボタンと同じように元の画面に戻ります。
 </p>
-<h4>画面内でビューを変更する</h4>
-<p>画面のビュー オプションを変更しても Up と Back の動作は変わりません。画面はアプリの階層内の同じ位置に留まり、新しいナビゲーション履歴は作成されません。
+<h4>画面内でのビューの変更</h4>
+<p>画面のビュー オプションを変更しても Up ボタンと Back ボタンの動作は変わりません。画面はアプリの階層内の同じ位置にあり、新しいナビゲーション履歴は作成されません。
 </p>
 <p>このようなビューの変更には次のようなものがあります。</p>
 <ul>
-<li>タブや左右のスワイプを使ってビューを切り替える</li>
-<li>ドロップダウン(折りたたみタブ)を使ってビューを切り替える</li>
-<li>リストにフィルタをかける</li>
-<li>リストをソートする</li>
-<li>表示の方法を変える(ズームなど)</li>
+<li>タブや左右のスワイプを使ったビューの切り替え</li>
+<li>ドロップダウン(折りたたみタブ)を使ったビューの切り替え</li>
+<li>リストへのフィルタの適用</li>
+<li>リストの並び替え</li>
+<li>表示方法の変更(ズームなど)</li>
 </ul>
 <h4>兄弟画面間のナビゲーション</h4>
-<p>アプリでアイテムのリストから 1 つのアイテム詳細画面に移動するとき、そのアイテムからリスト内の前後にある別のアイテムへのナビゲーションをサポートするのが望ましいことがよくあります。
+<p>アプリでアイテムのリストから選択して、あるアイテムの詳細画面に移動するとき、そのアイテムからリストの前後にある別のアイテムにナビゲーションできるようにすると使いやすくなる場合があります。
 
-たとえば、Gmail では、スワイプすることで、ある会話から同じ受信トレイの新しいまたは古い会話へ左右に簡単に移動できます。
-画面内でビューを変更する場合と同じように、このようなナビゲーションによって Up または Back の動作は変わりません。
+たとえば、Gmail で左か右にスワイプすると、同じ受信トレイのある会話から新しい会話や古い会話に簡単に移動できます。
+画面内でビューを変更する場合と同様に、このナビゲーションでも Up ボタンまたは Back ボタンの動作は変わりません。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
 
-<p>しかし、参照リストで結び付けられていない関連詳細ビュー間をブラウジングする場合 &mdash; たとえば Play ストアで同じデベロッパーのアプリや同じアーティストのアルバム間をブラウジング場合、その動作はこれとは明らかに異なります。
+<p>ただし、参照リストで結び付けられていない関連詳細ビュー間をブラウジングする場合は例外です。たとえば Play Store で同じデベロッパーのアプリや同じアーティストのアルバム間をブラウジングする場合です。
 
 この場合、各リンクをたどると履歴が作成され、Back ボタンで以前に表示した各画面に戻ることになります。
-Up では常にこれらの関連画面をバイパスして、直前に表示したコンテナ画面に移動します。
+Up ボタンを使用するとこれらの関連画面をバイパスして、直前に表示したコンテナ画面に移動します。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
 
-<p>Up の動作を詳細ビューの知識に基づいてより使いやすくすることができます。
-前述の Play ストアの例で、ユーザーが直前に表示した書籍から映画版の詳細に移動したとします。
-その場合、Up でユーザーが前に表示していないコンテナ(映画)に戻ることができます。
+<p>詳細ビューを応用すれば、Up ボタンを使いやすくできます。
+前述の Play Store の例で、直前に表示した書籍から映画版の詳細に移動したとします。
+その場合、Up ボタンを使用すると前に表示していないコンテナ(映画)に戻ることができます。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
 
-<h2 id="into-your-app">ホームスクリーンのウィジェットと通知によるアプリへのナビゲーション</h2>
+<h2 id="into-your-app">ホーム画面のウィジェットと通知を使用したアプリへのナビゲーション</h2>
 
-<p>ホームスクリーンのウィジェットや通知を使ってユーザーがアプリ階層内の深い階層にある画面に直接移動できるようにします。
-たとえば、Gmail の受信ボックスのウィジェットと新しいメッセージ通知はどちらも受信トレイ画面をバイパスし、会話ビューを直接表示できます。
+<p>ホーム画面のウィジェットや通知を使用して、アプリの深い階層にある画面に直接移動できるようにします。
+たとえば、Gmail の受信トレイのウィジェットと新しいメッセージ通知をタップすると、どちらも受信トレイ画面をバイパスし、会話ビューを直接表示できます。
 </p>
 
 <p>この両方の機能で、Up ボタンを次のように処理します。</p>
 
 <ul>
-<li><em>通常アプリ内の特定の画面から移動先画面に移動する場合</em>、Up でその画面に移動します。
+<li><em>通常どおりにアプリの特定の画面から移動先画面に移動する場合</em>、Up ボタンを使用するとその画面に移動します。
 </li>
-<li><em>それ以外の場合は</em>、Up でアプリの最上位(「ホーム」)画面に移動します。</li>
+<li><em>それ以外の場合は</em>、Up ボタンを使用するとアプリのトップレベル([ホーム])の画面に移動します。</li>
 </ul>
 
-<p>Back ボタンの場合は、アプリの最上位画面への完全な上向きナビゲーション パスをタスクのバックスタックに挿入してナビゲーションをより予測可能なものにする必要があります。
-この設定によって、アプリにどのように入ったか忘れたユーザーは、終了前のアプリの最上位画面に移動できます。
+<p>Back ボタンの場合は、アプリのトップ レベルの画面に直接ナビゲートできるパスをタスクのバック スタックに挿入して、わかりやすいナビゲーションにします。
+こうすることで、アプリをどのように起動したか覚えていなくても、トップ レベルの画面に移動してから終了できます。
 
 </p>
 
-<p>たとえば Gmail のホームスクリーンのウィジェットには、その作成画面に直接移動するボタンがあります。
-作成画面の Up または Back で受信トレイが表示され、そこから Back ボタンでホームに移動します。
+<p>たとえば Gmail のホーム画面のウィジェットには、作成画面に直接移動するボタンがあります。
+作成画面の Up ボタンまたは Back ボタンで受信トレイが表示され、そこから Back ボタンでホームに移動します。
 </p>
 
 <img src="{@docRoot}design/media/navigation_from_outside_back.png">
 
 <h4>間接通知</h4>
 
-<p>アプリで複数のイベントに関する情報を同時に表示する必要がある場合、1 つの通知を使ってユーザーをインタースティシャル画面に導くことができます。
-この画面にはこれらのイベントがまとめてあり、アプリのさらに深い階層に移動するためのパスが示されます。このスタイルの通知を<em>間接通知</em>と呼びます。
+<p>アプリで複数のイベントに関する情報を同時に表示する必要がある場合、通知を 1 つにまとめてそこからインタースティシャル画面に遷移させることができます。
+この画面にはこれらのイベントの要約が表示されており、アプリのさらに深い階層に移動するパスが示されます。
+このスタイルの通知を<em>間接通知</em>と呼びます。
+</p>
+
+<p>標準(直接)通知とは異なり、間接通知のインタースティシャル画面で Back ボタンを押すと、通知がトリガーされた画面に戻ります。バックスタックには追加の画面は挿入されません。
+
+ユーザーがインタースティシャル画面からアプリに移動すると、Up ボタンと Back ボタンは前述の標準通知と同様に動作します。つまり、インタースティシャル画面に戻るのではなくアプリ内で遷移します。
 
 </p>
 
-<p>標準(直接)通知とは異なり、間接通知のインタースティシャル画面から Back を押すとユーザーは通知がトリガーされた地点に戻ります &mdash; バックスタックには追加の画面は挿入されません。
+<p>たとえば Gmail がカレンダーから間接通知を受け取ったとします。この通知をタップするとインタースティシャル画面が開き、複数の異なるイベントのリマインダーが表示されます。
 
-ユーザーがインタースティシャル画面からアプリに移動すると、Up および Back は前述した標準通知の場合と同様に動作します。つまりインタースティシャル画面に戻るのではなくアプリ内でナビゲーションします。
+インタースティシャル画面で Back ボタンをタップすると Gmail に戻ります。特定のイベントをタップすると、インタースティシャル画面からカレンダー アプリに移動し、そのイベントの詳細が表示されます。
 
-</p>
-
-<p>たとえば Gmail のユーザーがカレンダーから間接通知を受け取ったとします。この通知をタップするとインタースティシャル画面が開き、複数の異なるイベントに関するリマインダーが表示されます。
-
-インタースティシャル画面で Back をタップすると Gmail に戻ります。特定のイベントをタップすると、インタースティシャル画面から完全なカレンダー アプリに移動し、そのイベントの詳細が表示されます。
-
-イベントの詳細から、Up および Back を使うとカレンダーの最上位ビューが表示されます。</p>
+イベントの詳細画面で Up ボタンや Back ボタンを使うと、カレンダーのトップ ビューに移動します。</p>
 
 <img src="{@docRoot}design/media/navigation_indirect_notification.png">
 
 <h4>ポップアップ通知</h4>
 
-<p><em>ポップアップ通知</em>は通知ドロワーをバイパスしてユーザーの前に直接表示されます。
-ポップアップ通知はめったに使われません。<strong>タイムリーな応答が要求され、ユーザーのコンテキストの中断が必要な場合に使われます</strong>。
-たとえばトークでは、このスタイルを使って友人からのビデオチャットへの参加に関する招待状についてユーザーに通知します。というのも、この招待状は数秒後に自動的に期限切れになるからです。
+<p><em>ポップアップ通知</em>は通知ドロワーをバイパスし、直接表示される通知です。
+ポップアップ通知はほとんど使われません。<strong>タイムリーな応答が要求され、ユーザーの操作の中断が必要な場合にのみ使うべきです</strong>。
+たとえばトークでは、友人からのビデオチャットへの招待が数秒後に自動的に期限切れとなる場合、このスタイルを使ってユーザーに通知します。
 
 </p>
 
-<p>ナビゲーション動作の点から、ポップアップ通知は間接通知のインタースティシャル画面の動作に厳密に従います。
-Back でポップアップ通知は閉じます。ユーザーがポップアップから通知元のアプリに移動すると、Up と Back は標準通知のルールに従い、アプリ内でナビゲーションします。
+<p>ナビゲーションでは、間接通知のインタースティシャル画面の動作に慎重に従ってポップアップ通知を行います。
+Back ボタンでポップアップ通知を閉じます。ポップアップから通知対象のアプリに移動すると、Up ボタンと Back ボタンは標準通知のルールに従って、そのアプリ内で通常のナビゲーションを実行します。
 
 </p>
 
 <img src="{@docRoot}design/media/navigation_popup_notification.png">
 
-<h2 id="between-apps">アプリ間のナビゲーション</h2>
+<h2 id="between-apps">アプリ間ナビゲーション</h2>
 
-<p>Android システムの基本的な利点の 1 つにアプリ同士がそれぞれをアクティブにできる機能があります。これによりユーザーは特定のアプリから別のアプリへ直接移動できます。
-たとえば写真を撮影する必要があるアプリでは、カメラアプリをアクティブにすることができます。カメラアプリは写真を参照元のアプリに戻します。これはデベロッパーにとっては他のアプリのコードを簡単に利用できるという点で、またユーザーにとっては通常実行するアクションに対して一貫した操作を実行できるという点で大きなメリットです。
+<p>Android システムの基本的な利点の 1 つに、アプリが別のアプリを起動できる機能があります。これを使用すると、あるアプリから別のアプリへ直接移動できます。
+たとえば、写真をキャプチャするアプリで、カメラアプリを起動できます。カメラアプリは写真を起動元のアプリに返します。
 
-
+デベロッパーにとっては他のアプリのコードを簡単に利用できるという点で、ユーザーにとってはよく実行するアクションを常に同じ操作で実行できるという点で大きなメリットです。
 
 </p>
 
-<p>アプリ間のナビゲーションを理解するには、次に説明する Android フレームワークの動作を理解することが重要です。
+<p>アプリ間ナビゲーションを理解するには、次に説明する Android フレームワークの動作を理解する必要があります。
 </p>
 
 <h4>アクティビティ、タスク、インテント</h4>
 
-<p>Android における<strong>アクティビティ</strong>とは情報の画面と、ユーザーが実行できるすべての関連アクションを定義するアプリケーション コンポーネントです。
-アプリはアクティビティのコレクションで、作成したアクティビティと他のアプリから再利用するアクティビティの両方で構成されています。
+<p>Android における<strong>アクティビティ</strong>とは、情報を表示する画面と、実行できるすべての関連アクションを定義するアプリケーション コンポーネントのことです。
+アプリはアクティビティの集まりで構成され、作成したアクティビティと他のアプリから再利用するアクティビティで構成されています。
 </p>
 
-<p><strong>タスク</strong>とは目標を実現するためにユーザーが従う一連のアクティビティです。1 つのタスクで 1 つのアプリだけのアクティビティを利用することも、複数のアプリのアクティビティを利用することもできます。
+<p><strong>タスク</strong>とは目的の動作を遂行するために実行する、一連のアクティビティのことです。1 つのタスクで 1 つのアプリだけのアクティビティを利用することも、複数のアプリのアクティビティを利用することもできます。
 
 </p>
 
-<p><strong>インテント</strong>とは、あるアプリがアクションの実行に関して別のアプリのサポートが必要であることを示すメカニズムです。
-アプリのアクティビティでそれらのアプリが対応できるインテントを示すことができます。
-「共有」などの一般的なインテントの場合、ユーザーはその要求を実現できる多くのアプリをインストールしている場合があります。
+<p><strong>インテント</strong>とは、アプリがあるアクションを実行するために、別のアプリにアシストを要求するためのシグナルを出すメカニズムです。
+アプリのアクティビティは、どのようなインテントに応答できるか決めることができます。
+「共有」などの一般的なインテントの場合、その要求に対応できるアプリが複数インストールされていることもあります。
 </p>
 
-<h4>例: 共有をサポートするアプリ間のナビゲーション</h4>
+<h4>例: アプリ間をナビゲートして共有をサポートする</h4>
 
-<p>アクティビティ、タスク、インテントの連携を理解するには、1 つのアプリが別のアプリを使ってユーザーによるコンテンツの共有を可能にする仕組みを知る必要があります。たとえばホームから Play ストアのアプリを起動すると、新しいタスク A が開始されるとします(以下の図を参照)。
-
-Play ストア内をナビゲートし、プロンプトで表示された書籍をタップしてその詳細を表示した後もユーザーは同じタスク内に留まり、アクティビティを追加するとタスクは拡張されます。
-「共有」アクションをトリガーすると、共有インテントを処理するよう登録されている(さまざまなアプリの)各アクティビティを示すダイアログがユーザー表示されます。
+<p>アクティビティ、タスク、インテントの連携を理解するには、あるアプリが別のアプリを使ってコンテンツを共有する仕組みについて理解する必要があります。
+たとえば、ホームから Play Store のアプリを起動すると、新しいタスク A が開始されるとします(以下の図を参照)。
+Play Store 内をナビゲートし、おすすめの書籍をタップしてその詳細を表示した後もユーザーは同じタスク内に留まり、アクティビティを追加するとタスクが拡張されます。
+「共有」アクションをトリガーすると、共有インテントを処理するよう登録されている(さまざまなアプリの)各アクティビティを一覧表示するダイアログが表示されます。
 
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_inward.png">
 
-<p>ユーザーが Gmail 経由で共有することを選択すると、Gmail の作成アクティビティがタスク A の続きとして追加されます &mdash; 新しいタスクは作成されません。
-Gmail にバックグラウンドで実行中の独自のタスクがある場合、そのタスクは影響を受けません。
+<p>Gmail で共有するよう選択すると、Gmail の作成アクティビティがタスク A の続きとして追加され、新しいタスクは作成されません。
+Gmail にバックグラウンドで実行中のタスクがある場合、そのタスクは影響を受けません。
 </p>
 
-<p>作成アクティビティからメッセージを送信するか、Back ボタンをタップするとユーザーは書籍の詳細アクティビティに戻ります。
-Back を連続してタップすると Play ストアに戻り、最終的にはホームが表示されます。
+<p>作成アクティビティからメッセージを送信するか、Back ボタンをタップすると書籍の詳細アクティビティに戻ります。
+Back ボタンを連続してタップすると Play Store に戻り、最後にホーム画面が表示されます。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_back.png">
 
-<p>ただし、作成アクティビティから Up をタップすると、ユーザーは Gmail 内に留まる意思を示すことになります。
-Gmail の会話リストのアクティビティが表示され、新しいタスク B が作成されます。新しいタスクは常にホームをルートとしているため、会話リストからBack をタップするとホームに戻ります。
+<p>ただし、作成アクティビティで Up ボタンをタップすると、Gmail で引き続き作業することになります。
+Gmail の会話リストのアクティビティが表示され、新しいタスク B が作成されます。新しいタスクでは常にホーム画面がルートになるため、会話リストから Back ボタンをタップするとホーム画面に戻ります。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_up.png">
 
-<p>タスク A はバックグラウンドで維持され、ユーザー後から(たとえば [最近使ったアプリ] 画面経由で)このタスクに戻ることができます。
-Gmail にバックグラウンドで実行中の独自のタスクが既にある場合、そのタスクはタスク B に置き換えられます &mdash; 前のコンテキストはユーザーの新しい目標の導入より破棄されます。
+<p>タスク A はバックグラウンドで待機しているので、後から(たとえば [最近使ったアプリ] 画面から)このタスクに戻ることができます。
+Gmail にバックグラウンドで実行中のタスクが既にある場合、そのタスクはタスク B に置き換えられます。新しいタスクが選択され、前のコンテキストは破棄されます。
 </p>
 
-<p>アプリがアプリ階層内の深い階層にあるアクティビティでインテントを処理するように登録されている場合は、Up ナビゲーションの指定方法について<a href="#into-your-app">ホームスクリーンのウィジェットと通知によるアプリへのナビゲーション</a>をご覧ください。
+<p>深い階層にあるアクティビティでインテントを処理するようアプリで登録されている場合は、Up ナビゲーションの指定方法については、<a href="#into-your-app">ホーム画面のウィジェットと通知を使用したアプリへのナビゲーション</a>をご覧ください。
 
 </p>
diff --git a/docs/html-intl/intl/ja/distribute/index.jd b/docs/html-intl/intl/ja/distribute/index-ja.jd
similarity index 100%
rename from docs/html-intl/intl/ja/distribute/index.jd
rename to docs/html-intl/intl/ja/distribute/index-ja.jd
diff --git a/docs/html-intl/intl/ja/index.jd b/docs/html-intl/intl/ja/index.jd
index fd81a213..6dfa0dd 100644
--- a/docs/html-intl/intl/ja/index.jd
+++ b/docs/html-intl/intl/ja/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/ja/sdk/index.jd b/docs/html-intl/intl/ja/sdk/index.jd
index e2ba62d..771894a 100644
--- a/docs/html-intl/intl/ja/sdk/index.jd
+++ b/docs/html-intl/intl/ja/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=Android Studio と SDK Tools のダウンロード
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=公式 Android IDE とデベロッパー ツールをダウンロードして、Android 版のモバイル端末、タブレット、ウェアラブル端末、TV などの端末向けのアプリをビルドする。
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -293,15 +232,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">公式 Android IDE</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK Tools</li>
 <li>Android 6.0(Marshmallow)プラットフォーム</li>
 <li>Google API を使用した Android 6.0 エミュレータのシステム イメージ</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
@@ -397,8 +336,6 @@
   <p>APK は Android Studio でもコマンドラインでもビルドできます。</p>
 </div>
 
-</div>
-
 
 
 <h2 class="feature norule">Android Studio のその他の特徴</h2>
diff --git a/docs/html-intl/intl/ja/sdk/installing/adding-packages.jd b/docs/html-intl/intl/ja/sdk/installing/adding-packages.jd
index 7715eed..af5dcd0 100644
--- a/docs/html-intl/intl/ja/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/ja/sdk/installing/adding-packages.jd
@@ -31,7 +31,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/ja/training/material/animations.jd b/docs/html-intl/intl/ja/training/material/animations.jd
index 2938001..460147c 100644
--- a/docs/html-intl/intl/ja/training/material/animations.jd
+++ b/docs/html-intl/intl/ja/training/material/animations.jd
@@ -21,7 +21,10 @@
 </div>
 
 
-<p>マテリアル デザインのアニメーションは、ユーザーの操作に応じて反応し、アプリの操作にともない連続した動きを見せます。マテリアル テーマでは、ボタンやアクティビティの遷移にデフォルトのアニメーションが用意されており、Android 5.0(API レベル 21)以降では次のようなアニメーションをカスタマイズして新しいアニメーションを作成できます。</p>
+<p>マテリアル デザインのアニメーションは、ユーザーの操作に応じて反応し、アプリの操作にともない連続した動きを見せます。
+マテリアル テーマでは、ボタンやアクティビティの遷移にデフォルトのアニメーションが用意されており、Android 5.0(API レベル 21)以降では次のようなアニメーションをカスタマイズして新しいアニメーションを作成できます。
+
+</p>
 
 <ul>
 <li>タッチ フィードバック</li>
@@ -34,30 +37,44 @@
 
 <h2 id="Touch">タッチ フィードバックをカスタマイズする</h2>
 
-<p>マテリアル デザインのタッチ フィードバックは、ユーザーが UI 要素に触れて操作した時点で、視覚的な反応を瞬時に表します。ボタンに対するデフォルトのタッチ フィードバック アニメーションでは、新しい {@link android.graphics.drawable.RippleDrawable} クラスを使用して、状態の切り替わりをリップル(波紋)効果で表現しています。</p>
+<p>マテリアル デザインのタッチ フィードバックは、ユーザーが UI 要素に触れて操作した時点で、視覚的な反応を瞬時に表します。
+ボタンに対するデフォルトのタッチ フィードバック アニメーションでは、新しい {@link android.graphics.drawable.RippleDrawable} クラスを使用して、状態の切り替わりをリップル(波紋)効果で表現しています。
 
-<p>ほとんどの場合、次のようにビューの背景を指定することでビュー XML にこの機能を適用できます。</p>
+</p>
+
+<p>ほとんどの場合、次のようにビューの背景を指定することでビュー XML にこの機能を適用できます。
+</p>
 
 <ul>
-<li>範囲が限定された波紋: <code>?android:attr/selectableItemBackground</code></li>
-<li>ビューの範囲外まで広がる波紋: <code>?android:attr/selectableItemBackgroundBorderless</code></li>
+<li>範囲が限定された波紋: <code>?android:attr/selectableItemBackground</code>。</li>
+<li>ビューの範囲外まで広がる波紋: <code>?android:attr/selectableItemBackgroundBorderless</code>。
+これは、背景が null ではない最も近くにある親ビュー上に表示されますが、その外側にはみ出ることはありません。
+</li>
 </ul>
 
-<p class="note"><strong>注:</strong> <code>selectableItemBackgroundBorderless</code> は API レベル 21 で導入された新しい属性です。</p>
+<p class="note"><strong>注:</strong> <code>selectableItemBackgroundBorderless</code> は API レベル 21 で導入された新しい属性です。
+</p>
 
 
-<p>または、<code>ripple</code> 要素を使って {@link android.graphics.drawable.RippleDrawable} を XML リソースとしても定義できます。</p>
+<p>または、<code>ripple</code> 要素を使って {@link android.graphics.drawable.RippleDrawable}
+を XML リソースとしても定義できます。</p>
 
-<p>{@link android.graphics.drawable.RippleDrawable} オブジェクトには、色を割り当てることができます。タッチ フィードバックのデフォルトの色を変更するには、テーマの <code>android:colorControlHighlight</code> 属性を使用します。</p>
+<p>{@link android.graphics.drawable.RippleDrawable} オブジェクトには、色を割り当てることができます。タッチ フィードバックのデフォルトの色を変更するには、テーマの <code>android:colorControlHighlight</code>
+属性を使用します。
+</p>
 
-<p>詳細については、API リファレンスの {@link android.graphics.drawable.RippleDrawable} クラスをご覧ください。</p>
+<p>詳細については、API リファレンスの {@link
+android.graphics.drawable.RippleDrawable} クラスをご覧ください。</p>
 
 
 <h2 id="Reveal">出現エフェクトを使用する</h2>
 
-<p>Reveal (出現)アニメーションを使用すると、UI 要素のグループを表示したり非表示にしたりするときに連続した印象をユーザーに与えます。{@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} メソッドでは、ビューを表示したり非表示にしたりする際に円形のアニメーションを付けることができます。</p>
+<p>Reveal(出現)アニメーションを使用すると、UI 要素のグループを表示したり非表示にしたりするときに連続した印象をユーザーに与えます。
+{@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} メソッドでは、ビューを表示したり非表示にしたりする際に円形のアニメーションを付けることができます。
+</p>
 
-<p>この効果を使って、非表示のビューを表示するには: </p>
+<p>この効果を使って、非表示のビューを表示するには:</p>
 
 <pre>
 // previously invisible view
@@ -122,19 +139,29 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>図 1</strong> - 共有要素を使った画面遷移</p>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>図 1</strong> - 共有要素を使った画面遷移。
+</p>
     <em>端末の画像をクリックすると動画を再生できます</em>
   </div>
 </div>
 
-<p>マテリアル デザイン アプリの Activity transitions (アクティビティ遷移)では、共通する要素の間での動作や変化を通じて、状態の切り替えに視覚的なつながりを持たせます。Enter と Exit の遷移や、アクティビティ間でのShared elements 遷移にカスタム アニメーションを指定できます。</p>
+<p>マテリアル デザイン アプリの Activity transitions (アクティビティ遷移)では、共通する要素の間での動作や変化を通じて、状態の切り替えに視覚的なつながりを持たせます。
+Enter と Exit の遷移や、アクティビティ間での Shared elements 遷移にカスタム アニメーションを指定できます。
+</p>
 
 <ul>
-<li><strong>Enter</strong> (入口)遷移は、アクティビティのビューがどのように画面に入ってくるかを決定します。たとえば <em>Explode</em> の Enter 遷移の場合、ビューが画面外から画面の中心に向かって飛び込むように現れます。</li>
+<li><strong>Enter</strong>(入口)遷移は、アクティビティのビューがどのように画面に入ってくるかを決定します。
+たとえば <em>Explode</em> の Enter 遷移の場合、ビューが画面外から画面の中心に向かって飛び込むように現れます。
+</li>
 
-<li><strong>Exit</strong> (出口)遷移は、アクティビティのビューがどのように画面から出ていくかを決定します。同じく <em>Explode</em> の Exit 遷移の場合、画面の中心から外側に向かってビューが出ていきます。</li>
+<li><strong>Exit</strong> 遷移は、アクティビティのビューがどのように画面から出ていくかを決定します。同じく <em>Explode</em> の Exit 遷移の場合、画面の中心から外側に向かってビューが出ていきます。
 
-<li><strong>Shared Elements</strong> (共有要素)遷移は、2 つのアクティビティで共有されているビューが、各アクティビティの間でどのように遷移するかを決定します。たとえば、2 つのアクティビティで同じ画像を異なる位置とサイズで使用している場合、<em>changeImageTransform</em> 共有要素の遷移によって、2 つのアクティビティの間でスムーズに画像が変換されスケーリングされます。</li>
+</li>
+
+<li><strong>Shared Elements</strong> 遷移は、2 つのアクティビティで共有されているビューが、各アクティビティの間でどのように遷移するかを決定します。
+たとえば、2 つのアクティビティで同じ画像を異なる位置とサイズで使用している場合、<em>changeImageTransform</em> 共有要素の遷移によって、2 つのアクティビティの間でスムーズに画像が変換されスケーリングされます。
+
+</li>
 </ul>
 
 <p>Android 5.0(API レベル 21)では、次の Enter 遷移と Exit 遷移がサポートされています。</p>
@@ -145,7 +172,9 @@
 <li><em>fade</em> (フェード) - 不透明度を変化させながらビューをシーンに追加したりシーンから削除したりします。</li>
 </ul>
 
-<p>{@link android.transition.Visibility} クラスを拡張する遷移はすべて、EnterTransition または ExitTransition としてサポートされます。詳細については、API リファレンスの {@link android.transition.Transition} クラスをご覧ください。</p>
+<p>{@link android.transition.Visibility} クラスを拡張する Transition はすべて、EnterTransition または ExitTransition としてサポートされます。
+詳細については、API リファレンスの 
+{@link android.transition.Transition} クラスをご覧ください。</p>
 
 <p>Android 5.0(API レベル 21)では、次の共有要素遷移もサポートしています。</p>
 
@@ -156,16 +185,19 @@
 <li><em>changeImageTransform</em> - 対象画像のサイズやスケールの変化にアニメーションを付けます。</li>
 </ul>
 
-<p>アプリにアクティビティ遷移を適用すると、アクティビティの開始と終了の間でデフォルトのクロス フェーディング遷移が有効になります。</p>
+<p>アプリにアクティビティ遷移を適用すると、アクティビティの開始と終了の間でデフォルトのクロス フェーディング遷移が有効になります。
+</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
-  <strong>図 2</strong> - 1 つの共有要素とシーンの遷移
+  <strong>図 2</strong> - 1 つの共有要素とシーンの遷移。
 </p>
 
 <h3>カスタム遷移を指定する</h3>
 
-<p>まず、マテリアル テーマから継承したスタイルを定義するときに、<code>android:windowContentTransitions</code> 属性で windowContentTransitions を有効にします。また、次のように Enter、Exit、Shared Element の Transitions をスタイルの定義で指定できます。</p>
+<p>まず、マテリアル テーマから継承したスタイルを定義するときに、<code>android:windowContentTransitions</code>
+ 属性で windowContentTransitions を有効にします。また、次のように Enter、Exit、Shared Element の Transitions をスタイルの定義で指定できます。
+</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p><code>changeImageTransform</code> 要素は {@link android.transition.ChangeImageTransform} クラスに対応します。詳細については、API リファレンスの {@link android.transition.Transition} クラスをご覧ください。</p>
+<p><code>changeImageTransform</code> 要素は 
+{@link android.transition.ChangeImageTransform} クラスに対応します。詳細については、API リファレンスの {@link android.transition.Transition} をご覧ください。
+</p>
 
-<p>代わりに、コードで windowContentTransitions を有効にするには、{@link android.view.Window#requestFeature Window.requestFeature()} メソッドを呼び出します。</p>
+<p>代わりに、コードで windowContentTransitions を有効にするには、
+{@link android.view.Window#requestFeature Window.requestFeature()} メソッドを呼び出します。</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,31 +241,45 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>コードで遷移を指定するには、{@link android.transition.Transition} オブジェクトで次のメソッドを呼び出します。</p>
+<p>コードで遷移を指定するには、{@link
+android.transition.Transition} オブジェクトで次のメソッドを呼び出します。</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>{@link android.view.Window#setExitTransition setExitTransition()} メソッドや {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} メソッドは、呼び出し元のアクティビティの ExitTransition を定義します。{@link android.view.Window#setEnterTransition setEnterTransition()} メソッドや {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} メソッドは、呼び出し先のアクティビティの EnterTransition を定義します。</p>
+<p>{@link android.view.Window#setExitTransition setExitTransition()} と {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} メソッドは、呼び出し元のアクティビティの ExitTransition を定義します。
+{@link android.view.Window#setEnterTransition
+setEnterTransition()} と {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} メソッドは、呼び出し先のアクティビティの EnterTransition を定義します。</p>
 
-<p>遷移の効果を完全に表すには、呼び出し元と呼び出し先のアクティビティ双方で windowContentTransitions を有効にする必要があります。有効にしていないと、呼び出し元のアクティビティが Exit 遷移を開始したあと、window 遷移(スケールやフェードなど)が起こります。</p>
+<p>遷移の効果を完全に表すには、呼び出し元と呼び出し先のアクティビティ双方で windowContentTransitions を有効にする必要があります。
+有効にしていないと、呼び出し元のアクティビティが Exit 遷移を開始したあと、window 遷移(スケールやフェードなど)が起きます。
+</p>
 
-<p>Enter 遷移をできるだけ早く開始するには、呼び出し先のアクティビティで {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} メソッドを使用します。そうすることで、より印象的な Enter 遷移になります。</p>
+<p>Enter 遷移をできるだけ早く開始するには、呼び出し先のアクティビティで 
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+ メソッドを使用します。これにより、さらに印象的な Enter 遷移になります。</p>
 
 <h3>遷移を使ってアクティビティを開始する</h3>
 
-<p>遷移を有効にしてアクティビティに ExitTransition を設定した場合、次のように別のアクティビティを開始したときに Exit 遷移がアクティベートされます。</p>
+<p>遷移を有効にしてアクティビティで ExitTransition を設定した場合、次のように別のアクティビティを開始したときに Exit 遷移がアクティベートされます。
+</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>2 つ目のアクティビティに EnterTransition を設定している場合は、そのアクティビティの開始時に Enter 遷移も発生します。別のアクティビティ開始時の遷移を無効にするには、<code>null</code> のオプション バンドルを付与します。</p>
+<p>2 つ目のアクティビティに EnterTransition を設定している場合は、そのアクティビティの開始時に Enter 遷移も発生します。
+別のアクティビティ開始時の遷移を無効にするには、<code>null</code> のオプション バンドルを付与します。
+</p>
 
 <h3>共有要素を使ってアクティビティを開始する</h3>
 
@@ -240,8 +289,10 @@
 <li>テーマで windowContentTransitions を有効にします。</li>
 <li>スタイルで SharedElementsTransition を指定します。</li>
 <li>遷移を XML リソースとして定義します。</li>
-<li><code>android:transitionName</code> 属性を用いて、双方のレイアウトで共有要素に同じ名前を割り当てます。</li>
-<li>{@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()} メソッドを使用します。</li>
+<li>
+<code>android:transitionName</code> 属性を用いて、双方のレイアウトで共有要素に同じ名前を割り当てます。</li>
+<li>{@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()} メソッドを使用します。</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>コードで生成した共有の動的ビューでは、{@link android.view.View#setTransitionName View.setTransitionName()} メソッドを使用して両方のアクティビティに共通の要素名を指定します。</p>
+<p>コードで生成した共有の動的ビューでは、
+{@link android.view.View#setTransitionName View.setTransitionName()} メソッドを使用して両方のアクティビティに共通の要素名を指定します。
+</p>
 
-<p>2 つ目のアクティビティが終了したときにシーンの切り替えアニメーションを逆回転させるには、{@link android.app.Activity#finish Activity.finish()} の代わりに {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} メソッドを呼び出します。</p>
+<p>2 つ目のアクティビティが終了したときにシーンの切り替えアニメーションを逆回転させるには、{@link android.app.Activity#finish Activity.finish()} の代わりに 
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+ メソッドを呼び出します。</p>
 
 <h3>複数の共有要素を使ってアクティビティを開始する</h3>
 
-<p>複数の共有要素を持つ 2 つのアクティビティの間にシーンの切り替えアニメーションを付けるには、双方のレイアウトで <code>android:transitionName</code> 属性を使用(または双方のアクティビティで {@link android.view.View#setTransitionName View.setTransitionName()} メソッドを使用)して共有要素を定義して、次のように {@link android.app.ActivityOptions} オブジェクトを作成します。</p>
+<p>複数の共有要素を持つ 2 つのアクティビティの間にシーンの切り替えアニメーションを付けるには、双方のレイアウトで <code>android:transitionName</code>
+属性を使用(または双方のアクティビティで {@link android.view.View#setTransitionName View.setTransitionName()} メソッドを使用)して共有要素を定義して、次のように {@link android.app.ActivityOptions} オブジェクトを作成します。
+
+</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">曲線モーションを使用する</h2>
 
-<p>マテリアル デザインのアニメーションは、時間的な間を補ったり立体的な動作パターンを表現するために曲線を多く用いています。Android 5.0(API レベル 21)以降では、カスタムのタイミングで描かれる曲線や曲線モーションのパターンをアニメーションで定義できます。</p>
+<p>マテリアル デザインのアニメーションは、時間的な間を補ったり立体的な動作パターンを表現するために曲線を多く用いています。
+Android 5.0(API レベル 21)以降では、カスタムのタイミングで描かれる曲線や曲線モーションのパターンをアニメーションで定義できます。
+</p>
 
-<p>{@link android.view.animation.PathInterpolator} クラスはベジェ曲線や {@link android.graphics.Path} オブジェクトに基づく新しい Interpolator (補間)です。この Interpolator は 1x1 の正方形に動作曲線を指定します。アンカー ポイントは(0,0)と(1,1)、制御点はコンストラクタ引数を使用して指定します。または、PathInterpolator を XML リソースとしても定義できます。</p>
+<p>{@link android.view.animation.PathInterpolator} クラスはベジェ曲線や {@link android.graphics.Path} オブジェクトに基づく新しい Interpolator(補間)です。
+この Interpolator は 1x1 の正方形に動作曲線を指定します。アンカー ポイントは(0,0)と(1,1)、制御点はコンストラクタ引数を使用して指定します。
+
+または、PathInterpolator を XML リソースとしても定義できます。</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>マテリアル デザインの仕様では、次の 3 つの基本的な曲線を XML リソースとして提供しています。</p>
+<p>マテリアル デザインの仕様では、次の 3 つの基本的な曲線を XML リソースとして提供しています。
+</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>{@link android.view.animation.PathInterpolator} オブジェクトは {@link android.animation.Animator#setInterpolator Animator.setInterpolator()} メソッドに渡すことができます。</p>
+<p>{@link android.view.animation.PathInterpolator} オブジェクトは {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()} メソッドに渡すことができます。</p>
 
-<p>{@link android.animation.ObjectAnimator} クラスには新しいコンストラクタがあり、一度に 2 つ以上のプロパティを使用して経路に沿ったアニメーションを作ることができます。たとえば、次の animator では {@link android.graphics.Path} オブジェクトを使ってビューの X と Y プロパティを指定しています。</p>
+<p>{@link android.animation.ObjectAnimator} クラスには新しいコンストラクタがあり、一度に 2 つ以上のプロパティを使用して経路に沿ったアニメーションを作ることができます。
+たとえば、次の animator では {@link android.graphics.Path} オブジェクトを使ってビューの X と Y プロパティを指定しています。
+</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -316,7 +383,10 @@
 
 
 <h2 id="ViewState">ビューの状態遷移にアニメーションを付ける</h2>
-<p>{@link android.animation.StateListAnimator} クラスを使って、ビューの状態が変化したときに実行されるアニメーションを定義できます。次の例は、{@link android.animation.StateListAnimator} を XML リソースとして定義する方法を示しています。</p>
+
+<p>{@link android.animation.StateListAnimator} クラスを使って、ビューの状態が変化したときに実行されるアニメーションを定義できます。
+次の例は、{@link
+android.animation.StateListAnimator} を XML リソースとして定義する方法を示しています。</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -344,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>ビューの状態についてのカスタム アニメーションをビューに付与するには、この例のように XML リソース ファイルの <code>selector</code> 要素を使用して animator を定義し、それを <code>android:stateListAnimator</code> 属性でビューに割り当てます。コードで StateListAnimator をビューに割り当てるには、{@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} メソッドを使用して {@link android.view.View#setStateListAnimator View.setStateListAnimator()} メソッドでビューに animator を割り当てます。</p>
+<p>ビューの状態についてのカスタム アニメーションをビューに付与するには、この例のように XML リソース ファイルの
+<code>selector</code> 要素を使用して animator を定義し、それを <code>android:stateListAnimator</code> 属性でビューに割り当てます。
+コードで StateListAnimator をビューに割り当てるには、{@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} メソッドを使用して
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()} メソッドでビューに animator を割り当てます。
+</p>
 
-<p>テーマがマテリアル テーマに拡張されると、ボタンにはデフォルトで Z アニメーションが設定されます。これを避けるためには、<code>android:stateListAnimator</code> 属性を <code>@null</code> に設定します。</p>
+<p>テーマがマテリアル テーマに拡張されると、ボタンにはデフォルトで Z アニメーションが設定されます。これを避けるためには、<code>android:stateListAnimator</code> 属性を
+<code>@null</code> に設定します。
+</p>
 
-<p>{@link android.graphics.drawable.AnimatedStateListDrawable} クラスを使用すると、関連するビューの状態遷移にアニメーションを表示するドローアブルを作成できます。Android 5.0 の一部のシステム ウィジェットでは、デフォルトでこれらのアニメーションを使用しています。次の例は、{@link android.graphics.drawable.AnimatedStateListDrawable} を XML リソースとして定義する方法を示しています。</p>
+<p>{@link android.graphics.drawable.AnimatedStateListDrawable} クラスを使用すると、関連するビューの状態遷移にアニメーションを表示するドローアブルを作成できます。
+Android 5.0 の一部のシステム ウィジェットでは、デフォルトでこれらのアニメーションを使用しています。
+次の例は、{@link android.graphics.drawable.AnimatedStateListDrawable} を XML リソースとして定義する方法を示しています。
+</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -378,19 +458,28 @@
 
 <h2 id="AnimVector">ベクター型ドローアブルにアニメーションを付ける</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">ベクター型ドローアブル</a>は定義を失わずにスケールできます。{@link android.graphics.drawable.AnimatedVectorDrawable} クラスを使うと、ベクター型ドローアブルのプロパティを指定してアニメーションを付けられます。</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">ベクター型ドローアブル</a>は定義を失わずにスケールできます。
+{@link android.graphics.drawable.AnimatedVectorDrawable}
+クラスを使うと、ベクター型ドローアブルのプロパティを指定してアニメーションを付けられます。</p>
 
 <p>通常は、次に示す 3 つの XML ファイルで AnimatedVectorDrawable を定義します。</p>
 
 <ul>
-<li><code>res/drawable/</code> の <code>&lt;vector&gt;</code> 要素を持つ vectordrawable の xml ファイル</li>
-<li><code>res/drawable/</code> の <code>&lt;animated-vector&gt;</code> 要素を持つ AnimatedVectorDrawable の xml ファイル</li>
-<li><code>res/anim/</code> の <code>&lt;objectAnimator&gt;</code> 要素を持つ 1 つ以上のObjectAnimator の xml ファイル</li>
+<li><code>res/drawable/</code> の
+<code>&lt;vector&gt;</code> 要素を持つ vectordrawable の xml ファイル</li>
+<li><code>res/drawable/</code> の
+<code>&lt;animated-vector&gt;</code> 要素を持つ AnimatedVectorDrawable の xml ファイル</li>
+<li><code>res/anim/</code> の
+<code>&lt;objectAnimator&gt;</code> 要素を持つ 1 つ以上の ObjectAnimator の xml ファイル</li>
 </ul>
 
-<p>AnimatedVectorDrawable では、<code>&lt;group&gt;</code> 要素と <code>&lt;path&gt;</code> 要素の属性にアニメーションを付けることができます。<code>&lt;group&gt;</code> 要素は一連の経路やサブグループを定義し、<code>&lt;path&gt;</code> 要素は描く経路を定義します。</p>
+<p>AnimatedVectorDrawable では、<code>&lt;group&gt;</code> 要素と
+<code>&lt;path&gt;</code> 要素の属性にアニメーションを付けることができます。<code>&lt;group&gt;</code> 要素は一連の経路やサブグループを定義し、<code>&lt;path&gt;</code> 要素は描く経路を定義します。
+</p>
 
-<p>アニメーションを付けたいベクター型ドローアブルを定義するときは、<code>android:name</code> 属性を使用してグループや経路に一意の名前を割り当てれば animator の定義からそれらを参照できるようになります。次に例を示します。</p>
+<p>アニメーションを付けたいベクター型ドローアブルを定義するときは、<code>android:name</code>
+属性を使用してグループや経路に一意の名前を割り当てれば animator の定義からそれらを参照できるようになります。
+以下に例を示します。</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -412,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>AnimatedVectorDrawable の定義では、次のようにベクター型ドローアブルのグループや経路をその名前で参照します。</p>
+<p>AnimatedVectorDrawable の定義では、次のようにベクター型ドローアブルのグループや経路をその名前で参照します。
+</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -427,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>アニメーションの定義は {@link android.animation.ObjectAnimator} オブジェクトか {@link android.animation.AnimatorSet} オブジェクトを示します。この例の最初の animator は、次のように対象グループを 360 度回転させています。</p>
+<p>アニメーションの定義は {@link android.animation.ObjectAnimator} オブジェクトか {@link
+android.animation.AnimatorSet} オブジェクトを示します。この例の最初の animator は、次のように対象グループを 360 度回転させています。
+</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -438,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>この例の 2 つ目の animator は、ベクター型ドローアブルの経路をある形から別の形へと変化させています。両方の経路が形の変化に対応できる必要があります。つまり同じ数のコマンドと、各コマンドで同じ数のパラメーターを保持している必要があります。</p>
+<p>この例の 2 つ目の animator は、ベクター型ドローアブルの経路をある形から別の形へと変化させています。
+両方の経路が形の変化に対応できる必要があります。つまり同じ数のコマンドと、各コマンドで同じ数のパラメーターを保持している必要があります。
+</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -452,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>詳細については、API リファレンスの {@link android.graphics.drawable.AnimatedVectorDrawable} をご覧ください。</p> 
\ No newline at end of file
+<p>詳細については、API リファレンスの {@link
+android.graphics.drawable.AnimatedVectorDrawable} をご覧ください。</p>
diff --git a/docs/html-intl/intl/ja/training/material/compatibility.jd b/docs/html-intl/intl/ja/training/material/compatibility.jd
index b863b17..0f8922f 100644
--- a/docs/html-intl/intl/ja/training/material/compatibility.jd
+++ b/docs/html-intl/intl/ja/training/material/compatibility.jd
@@ -20,42 +20,63 @@
 </div>
 
 
-<p>マテリアル テーマやカスタムのアクティビティ遷移など、マテリアル デザインの一部の機能は Android5.0(API レベル21)以降でのみ利用できます。ただし、マテリアル デザインをサポートし、以前のバージョンの Android を実行している端末と互換性がある端末でこれらの機能が実行されている場合は、機能を使用できるようにアプリを設計することが可能です。</p>
+<p>マテリアル テーマやカスタムのアクティビティ遷移など、マテリアル デザインの一部の機能は Android5.0(API レベル21)以降のみで利用できます。
+ただし、マテリアル デザインをサポートし、以前のバージョンの Android を実行している端末と互換性がある端末でこれらの機能が実行されている場合は、機能を使用できるようにアプリを設計することが可能です。
+
+</p>
 
 
 <h2 id="Theme">別のスタイルを定義する</h2>
 
-<p>マテリアル テーマをサポートしている端末ではマテリアル テーマを使用するようにアプリを構成できますが、同時に次のようにして以前のバージョンの Android を実行する端末向けに以前のテーマに戻すことができます。</p>
+<p>マテリアル テーマをサポートしている端末ではマテリアル テーマを使用するようにアプリを構成できますが、同時に次のようにして以前のバージョンの Android を実行する端末向けに以前のテーマに戻すことができます。
+</p>
 
 <ol>
-<li><code>res/values/styles.xml</code> で、以前のテーマ(Holo など)から継承するテーマを定義します。</li>
-<li><code>res/values-v21/styles.xml</code> で、マテリアル テーマから継承するテーマを上記と同じ名前で定義します。</li>
+<li>
+<code>res/values/styles.xml</code> で、以前のテーマ(Holo など)から継承するテーマを定義します。</li>
+<li>
+<code>res/values-v21/styles.xml</code> で、マテリアル テーマから継承するテーマを上記と同じ名前で定義します。</li>
 <li>マニフェスト ファイルでこのテーマをアプリのテーマとして設定します。</li>
 </ol>
 
-<p class="note"><strong>注:</strong> この方法で別のテーマを用意せずマテリアル テーマだけを使う場合、そのアプリは以前のバージョンの Android では実行できません。
+<p class="note"><strong>注:</strong> この方法で別のテーマを用意せずマテリアル テーマだけを使う場合、そのアプリは 5.0 よりも前のバージョンの Android では実行できません。
+
+
 </p>
 
 
 <h2 id="Layouts">別のレイアウトを提供する</h2>
 
-<p>マテリアル デザインのガイドラインに沿って設計したレイアウトでも、Android 5.0(API レベル 21)で導入された新しい XML 属性を一切使用していない場合は、以前のバージョンの Android でも問題なく表示されます。新しい XML 属性を使用している場合は、別のレイアウトを用意できます。以前のバージョンの Android でアプリが表示される方法をカスタマイズする目的で別のレイアウトを用意することも可能です。</p>
+<p>マテリアル デザインのガイドラインに沿って設計したレイアウトでも、Android 5.0(API レベル 21)で導入された新しい XML 属性を一切使用していない場合は、以前のバージョンの Android でも問題なく表示されます。
 
-<p>Android 5.0(API レベル 21)向けのレイアウト ファイルを <code>res/layout-v21/</code> に作成し、以前のバージョンの Android 向けの別のレイアウト ファイルを <code>res/layout/</code> に作成します。たとえば、<code>res/layout/my_activity.xml</code> は <code>res/layout-v21/my_activity.xml</code> の代替レイアウトになります。</p>
+新しい XML 属性を使用している場合は、別のレイアウトを用意できます。以前のバージョンの Android でアプリが表示される方法をカスタマイズする目的で別のレイアウトを用意することも可能です。
+</p>
 
-<p>コードの重複を避けるには、<code>res/values/</code> でスタイルを定義して <code>res/values-v21/</code> で新しい API 用にスタイルを修正します。それからスタイル継承を用いて、基本スタイルを <code>res/values/</code> で定義してそのスタイルを <code>res/values-v21/</code> で継承します。</p>
+<p>Android 5.0(API レベル 21)向けのレイアウト ファイルを <code>res/layout-v21/</code> に作成し、以前のバージョンの Android 向けの別のレイアウト ファイルを
+<code>res/layout/</code> に作成します。
+たとえば、<code>res/layout/my_activity.xml</code> は <code>res/layout-v21/my_activity.xml</code> の代替レイアウトになります。
+</p>
+
+<p>コードの重複を避けるには、<code>res/values/</code> でスタイルを定義して <code>res/values-v21/</code> で新しい API 用にスタイルを修正します。それからスタイル継承を用いて、基本スタイルを <code>res/values/</code> で定義して、そのスタイルを <code>res/values-v21/</code> で継承します。
+
+</p>
 
 
 <h2 id="SupportLib">サポート ライブラリを使用する</h2>
 
-<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a> r21 以降には、次のマテリアル デザイン機能が含まれています。</p>
+<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a> r21 以降には、次のマテリアル デザイン機能が含まれています。
+</p>
 
 <ul>
-<li><code>Theme.AppCompat</code> テーマのいずれかを適用した場合の、システム ウィジェット用の<a href="{@docRoot}training/material/theme.html">マテリアル デザインのスタイル</a>。</li>
-<li><code>Theme.AppCompat</code> テーマの<a href="{@docRoot}training/material/theme.html#ColorPalette">カラー パレット テーマ属性</a>。</li>
-<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">データ コレクションを表示する</a> {@link android.support.v7.widget.RecyclerView} ウィジェット。</li>
+<li><code>Theme.AppCompat</code> テーマのいずれかを適用した場合の、システム ウィジェット用の<a href="{@docRoot}training/material/theme.html">マテリアル デザインのスタイル</a>。
+</li>
+<li><code>Theme.AppCompat</code> テーマの<a href="{@docRoot}training/material/theme.html#ColorPalette">カラーパレット テーマ属性</a>。
+</li>
+<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">データ コレクションを表示する</a> {@link android.support.v7.widget.RecyclerView} ウィジェット。
+</li>
 <li><a href="{@docRoot}training/material/lists-cards.html#CardView">カードを作成する</a> {@link android.support.v7.widget.CardView} ウィジェット。</li>
-<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">画像から代表色を抽出する</a>{@link android.support.v7.graphics.Palette} クラス。</li>
+<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">画像から代表色を抽出する</a> {@link android.support.v7.graphics.Palette} クラス。
+</li>
 </ul>
 
 <h3>システム ウィジェット</h3>
@@ -71,9 +92,10 @@
   <li>{@link android.widget.CheckedTextView}</li>
 </ul>
 
-<h3>カラー パレット</h3>
+<h3>カラーパレット</h3>
 
-<p>Android v7 サポート ライブラリでマテリアル デザインのスタイルを入手し、カラー パレットをカスタマイズするには、次のように <code>Theme.AppCompat</code> テーマのいずれかを適用します。</p>
+<p>Android v7 サポート ライブラリでマテリアル デザインのスタイルを入手し、カラーパレットをカスタマイズするには、次のように <code>Theme.AppCompat</code> テーマのいずれかを適用します。
+</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -87,16 +109,21 @@
 
 <h3>リストとカード</h3>
 
-<p>{@link android.support.v7.widget.RecyclerView} ウィジェットや{@link android.support.v7.widget.CardView} ウィジェットは Android v7 サポート ライブラリを通じて以前のバージョンの Android でも使用できますが、次のような制限があります。</p>
+<p>{@link android.support.v7.widget.RecyclerView} ウィジェットや {@link
+android.support.v7.widget.CardView} ウィジェットは Android v7 サポート ライブラリを通じて以前のバージョンの Android でも使用できますが、次のような制限があります。
+</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView} は、付加的なパディングを使い、プログラムでシャドウを実装するものになります。</li>
-<li>{@link android.support.v7.widget.CardView} によって、丸い角と交差する子ビューがクリップされることはありません。</li>
+<li>{@link android.support.v7.widget.CardView} は、付加的なパディングを使い、プログラムでシャドウを実装するものになります。
+</li>
+<li>{@link android.support.v7.widget.CardView} によって、丸い角と交差する子ビューがクリップされることはありません。
+</li>
 </ul>
 
 
 <h3>依存関係</h3>
 
-<p>5.0(API レベル 21)より前のバージョンの Android でこれらの機能を使用するには、Android v7 サポート ライブラリを <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle dependency</a> としてプロジェクトに含めます。</p>
+<p>5.0(API レベル 21)より前のバージョンの Android でこれらの機能を使用するには、Android v7 サポート ライブラリを <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 依存関係</a>としてプロジェクトに含めます。
+</p>
 
 <pre>
 dependencies {
@@ -120,7 +147,9 @@
 <li>ドローアブルによる着色</li>
 </ul>
 
-<p>以前のバージョンの Android との互換性を維持するには、上記の機能に対する API を起動する前に、システム {@link android.os.Build.VERSION#SDK_INT version} を実行時に確認します。</p>
+<p>以前のバージョンの Android との互換性を維持するには、上記の機能に対する API を起動する前に、システム {@link
+android.os.Build.VERSION#SDK_INT version} を実行時に確認します。
+</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>注:</strong> アプリがサポートする Android のバージョンを指定するには、マニフェスト ファイルで <code>android:minSdkVersion</code> 属性と <code>android:targetSdkVersion</code> 属性を使用します。Android 5.0 でマテリアル デザインの機能を使用するには、<code>android:targetSdkVersion</code> 属性を <code>21</code> に設定します。詳細については、<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API ガイド</a>をご覧ください。</p> 
\ No newline at end of file
+<p class="note"><strong>注: </strong>アプリがサポートする Android のバージョンを指定するには、マニフェスト ファイルで <code>android:minSdkVersion</code> 属性と <code>android:targetSdkVersion</code>
+属性を使用します。
+Android 5.0 でマテリアル デザインの機能を使用するには、<code>android:targetSdkVersion</code> 属性を <code>21</code> に設定します。
+詳細については、<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API ガイド</a>をご覧ください。
+
+</p>
diff --git a/docs/html-intl/intl/ja/training/material/drawables.jd b/docs/html-intl/intl/ja/training/material/drawables.jd
index ff929a4..adb7279 100644
--- a/docs/html-intl/intl/ja/training/material/drawables.jd
+++ b/docs/html-intl/intl/ja/training/material/drawables.jd
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">ドローアブル リソースに色を付ける</h2>
 
-<p>Android 5.0(API レベル 21)以降では、アルファ マスクとして定義されたビットマップや 9-patch に色を付けることができます。着色には、カラー リソースまたはカラー リソースに変換されるテーマ属性を使用できます(<code>?android:attr/colorPrimary</code> など)。通常は、これらのアセットを一度作成するだけで、テーマに合うように自動的に着色されます。</p>
+<p>Android 5.0(API レベル 21)以降では、アルファ マスクとして定義されたビットマップや 9-patch に色を付けることができます。
+着色には、カラーリソースまたはカラーリソースに変換されるテーマ属性を使用できます(<code>?android:attr/colorPrimary</code> など)。
+通常は、これらのアセットを一度作成するだけで、テーマに合うように自動的に着色されます。
+</p>
 
-<p>{@code setTint()} メソッドを使用して {@link android.graphics.drawable.BitmapDrawable} オブジェクトか {@link android.graphics.drawable.NinePatchDrawable} オブジェクトに色を適用できます。また、<code>android:tint</code> 属性や <code>android:tintMode</code> 属性を使ってレイアウトで色やモードを設定できます。</p>
+<p>{@code setTint()} メソッドを使用して {@link android.graphics.drawable.BitmapDrawable} オブジェクトか {@link
+android.graphics.drawable.NinePatchDrawable} オブジェクトに色を適用できます。また、<code>android:tint</code> 属性や
+<code>android:tintMode</code> 属性を使ってレイアウトで色やモードを設定できます。
+</p>
 
 
 <h2 id="ColorExtract">画像から代表色を抽出する</h2>
 
-<p>Android サポート ライブラリ r21 以降には、画像から代表色を抽出できる {@link android.support.v7.graphics.Palette} クラスが含まれています。このクラスで抽出できる代表色には次のものがあります。</p>
+<p>Android サポート ライブラリ r21 以降には、画像から代表色を抽出できる {@link
+android.support.v7.graphics.Palette} クラスが含まれています。
+</p>
 
 <ul>
 <li>Vibrant (鮮やか)</li>
@@ -49,34 +57,44 @@
 <li>Muted light (控えめな明色)</li>
 </ul>
 
-<p>これらの色を抽出するには、画像を読み込むバックグラウンド スレッドで {@link android.graphics.Bitmap} オブジェクトを{@link android.support.v7.graphics.Palette#generate Palette.generate()} の静的メソッドに渡します。スレッドを使用できない場合は、代わりに {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} メソッドを呼び出してリスナーを提供します。</p>
+<p>これらの色を抽出するには、画像を読み込むバックグラウンド スレッドで {@link android.graphics.Bitmap} オブジェクトを
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} の静的メソッドに渡します。
+スレッドを使用できない場合は、代わりに
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} メソッドを呼び出してリスナーを提供します。
+</p>
 
-<p><code>Palette</code> クラスで、<code>Palette.getVibrantColor</code> などの getter メソッドを使って画像から代表色を取得できます。</p>
+<p>
+<code>Palette</code> クラスで、<code>Palette.getVibrantColor</code> などの getter メソッドを使って画像から代表色を取得できます。</p>
 
-<p>プロジェクトで {@link android.support.v7.graphics.Palette} クラスを使用するには、アプリのモジュールに次の <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle dependency</a> を追加します。</p>
+<p>プロジェクトで {@link android.support.v7.graphics.Palette} クラスを使用するには、アプリのモジュールに次の
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依存関係</a>を追加します。
+</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>詳細については、API リファレンスの {@link android.support.v7.graphics.Palette} クラスをご覧ください。</p>
+<p>詳細については、API リファレンスの {@link android.support.v7.graphics.Palette} クラスをご覧ください。
+</p>
 
 
 <h2 id="VectorDrawables">ベクター型ドローアブルを作成する</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>ビデオ</h3>
-    <p>Android<br>ベクター グラフィック</p>
+    <p>Android ベクター グラフィック</p>
 </div>
 </a>
 
-<p>Android 5.0(API レベル 21)以降では、ベクター型ドローアブルを定義できます。このドローアブルは定義を失わずに拡張できます。ビットマップ画像では画面密度ごとにアセット ファイルが必要ですが、ベクター画像で必要なアセット ファイルは 1 つのみです。ベクター画像を作成するには、<code>&lt;vector&gt;</code> XML 要素で図形の詳細を定義します。</p>
+<p>Android 5.0(API レベル 21)以降では、ベクター型ドローアブルを定義できます。このドローアブルは定義を失わずに拡張できます。
+ビットマップ画像では画面密度ごとにアセット ファイルが必要ですが、ベクター画像で必要なアセット ファイルは 1 つのみです。
+ベクター画像を作成するには、<code>&lt;vector&gt;</code> XML 要素で図形の詳細を定義します。
+</p>
 
 <p>次の例では、ハート型のベクター画像を定義しています。</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>Android ではベクター画像は {@link android.graphics.drawable.VectorDrawable} オブジェクトとして表示されます。<code>pathData</code> 構文の詳細については、<a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG Path reference</a> をご覧ください。ベクター型ドローアブルのアニメーションの詳細については、<a href="{@docRoot}training/material/animations.html#AnimVector">Animating Vector Drawables</a> をご覧ください。</p> 
\ No newline at end of file
+<p>Android ではベクター画像は {@link android.graphics.drawable.VectorDrawable}
+ オブジェクトとして表示されます。<code>pathData</code> 構文の詳細については、<a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG パス リファレンス</a>をご覧ください。ベクター型ドローアブルのアニメーションの詳細については、
+<a href="{@docRoot}training/material/animations.html#AnimVector">ベクター ドローアブルのアニメーション</a>をご覧ください。
+</p>
diff --git a/docs/html-intl/intl/ja/training/material/get-started.jd b/docs/html-intl/intl/ja/training/material/get-started.jd
index db0439b..2de6744 100644
--- a/docs/html-intl/intl/ja/training/material/get-started.jd
+++ b/docs/html-intl/intl/ja/training/material/get-started.jd
@@ -1,4 +1,4 @@
-page.title=スタート ガイド
+page.title=スタートガイド
 
 @jd:body
 
@@ -29,7 +29,7 @@
   <li style="margin-bottom:10px">
     マテリアル <strong>テーマ</strong>をアプリに適用します。</li>
   <li style="margin-bottom:10px">
-    マテリアル デザインのガイドラインに沿って<strong>レイアウト</strong>を<br>作成します。</li>
+    マテリアル デザインのガイドラインに沿って<strong>レイアウト</strong>を作成します。</li>
   <li style="margin-bottom:10px">
     ビューの<strong>エレベーション</strong>を設定してシャドウを付与します。</li>
   <li style="margin-bottom:10px">
@@ -40,20 +40,27 @@
 
 <h3>下方互換性を維持する</h3>
 
-<p>Android 5.0 より前のバージョンとの互換性を維持しながら、マテリアル デザインのさまざまな機能をアプリに追加できます。詳細については、<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。</p>
+<p>Android 5.0 より前のバージョンとの互換性を維持しながら、マテリアル デザインのさまざまな機能をアプリに追加できます。
+詳細については、
+<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。</p>
 
-<h3>マテリアル デザインでアプリを更新する</h3>
+<h3>マテリアル デザインでアプリをアップデートする</h3>
 
-<p>既存のアプリを更新してマテリアル デザインを組み込むには、マテリアル デザインのガイドラインに沿ってレイアウトをアップデートします。深度、タッチ フィードバック、アニメーションを組み込んでいることも確認してください。</p>
+<p>既存のアプリをアップデートしてマテリアル デザインを組み込むには、マテリアル デザインのガイドラインに沿ってレイアウトをアップデートします。
+深度、タッチ フィードバック、アニメーションを組み込んでいることも確認してください。
+</p>
 
 <h3>マテリアル デザインで新しいアプリを作成する</h3>
 
-<p>マテリアル デザインの機能を使って新しいアプリを作成すると、<a href="http://www.google.com/design/spec">マテリアル デザインのガイドライン</a>から凝縮したデザイン フレームワークが得られます。ガイドラインに従い、Android フレームワークの新しい機能を使ってアプリを設計、開発してください。</p>
+<p>マテリアル デザインの機能を使って新しいアプリを作成すると、<a href="http://www.google.com/design/spec">マテリアル デザインのガイドライン</a>から凝縮したデザイン フレームワークが得られます。
+ガイドラインに従い、Android フレームワークの新しい機能を使ってアプリを設計、開発してください。
+</p>
 
 
 <h2 id="ApplyTheme">マテリアル テーマを適用する</h2>
 
-<p>アプリでマテリアル テーマを適用するには、次のように <code>android:Theme.Material</code> から継承したスタイルを指定します。</p>
+<p>アプリでマテリアル テーマを適用するには、次のように
+<code>android:Theme.Material</code> から継承したスタイルを指定します。</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>マテリアル テーマはアップデートされたシステム ウィジェットを提供しています。これにより、タッチ フィードバックやアクティビティ遷移のためのカラー パレットやデフォルトのアニメーションを指定でます。詳細については、<a href="{@docRoot}training/material/theme.html">マテリアル テーマの使用</a>をご覧ください。</p>
+<p>マテリアル テーマはアップデートされたシステム ウィジェットを提供しています。これにより、タッチ フィードバックやアクティビティ遷移のためのカラーパレットやデフォルトのアニメーションを指定できます。
+詳細については、
+<a href="{@docRoot}training/material/theme.html">マテリアル テーマの使用</a>をご覧ください。</p>
 
 
 <h2 id="Layouts">レイアウトを設計する</h2>
 
-<p>マテリアル テーマを適用したりカスタマイズしたりすることに加えて、レイアウトが<a href="http://www.google.com/design/spec">マテリアル デザインのガイドライン</a>に準拠している必要があります。レイアウトを設計するときは、次の項目に特に注意してください。</p>
+<p>マテリアル テーマを適用したり、カスタマイズしたりすることに加えて、レイアウトが<a href="http://www.google.com/design/spec">マテリアル デザインのガイドライン</a>に準拠している必要があります。
+レイアウトを設計するときは、次の項目に特に注意してください。
+</p>
 
 <ul>
 <li>ベースライン グリッド</li>
@@ -83,7 +94,9 @@
 
 <h2 id="Depth">ビューでエレベーションを指定する</h2>
 
-<p>ビューにはシャドウを付与できます。ビューのエレベーションの値によって、付与されるシャドウのサイズと表示される順序が決まります。ビューのエレベーションを設定するには、次のようにレイアウトの <code>android:elevation</code> 属性を使用します。</p>
+<p>ビューにはシャドウを付与できます。ビューのエレベーションの値によって、付与されるシャドウのサイズと表示される順序が決まります。
+ビューのエレベーションを設定するには、次のようにレイアウトの
+<code>android:elevation</code> 属性を使用します。</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>新しい <code>translationZ</code> プロパティを使用すると、ビューのエレベーションの一時的な変更が反映されるアニメーションを作成できます。エレベーションの変更は、<a href="{@docRoot}training/material/animations.html#ViewState">タッチ操作に応答</a>するときに便利です。</p>
+<p>新しい <code>translationZ</code> プロパティを使用すると、ビューのエレベーションの一時的な変更が反映されるアニメーションを作成できます。
+エレベーションの変更は、
+<a href="{@docRoot}training/material/animations.html#ViewState">タッチ操作に応答</a>するときに便利です。
+</p>
 
-<p>詳細については、<a href="{@docRoot}training/material/shadows-clipping.html">シャドウとクリッピング ビューの定義</a>をご覧ください。</p>
+<p>詳細については、<a href="{@docRoot}training/material/shadows-clipping.html">シャドウとクリッピング ビューの定義</a>をご覧ください。
+</p>
 
 
 <h2 id="ListsCards">リストとカードを作成する</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} は {@link android.widget.ListView} のさらに柔軟なバージョンで、異なるレイアウト タイプをサポートしてパフォーマンスを向上します。{@link android.support.v7.widget.CardView} を使用すると、あらゆるアプリで一貫した外観でカードの中に情報を表示できます。次のコードは、レイアウトに {@link android.support.v7.widget.CardView} を含める方法の一例です。</p>
+<p>{@link android.support.v7.widget.RecyclerView} は {@link
+android.widget.ListView} のさらに柔軟なバージョンで、異なるレイアウト タイプをサポートしてパフォーマンスを向上します。
+{@link android.support.v7.widget.CardView} を使用すると、あらゆるアプリで一貫した外観でカードの中に情報を表示できます。
+次のコードは、レイアウトに
+{@link android.support.v7.widget.CardView} を含める方法の一例です。</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>詳細については、<a href="{@docRoot}training/material/lists-cards.html">リストとカードの作成</a>をご覧ください。</p>
+<p>詳細については、<a href="{@docRoot}training/material/lists-cards.html">リストとカードの作成</a>をご覧ください。
+</p>
 
 
 <h2 id="Animations">アニメーションをカスタマイズする</h2>
 
-<p>Android 5.0(API レベル 21)には、アプリでカスタム アニメーションを作成する新たな API が含まれます。たとえば次のように、アクティビティ遷移を有効にしてアクティビティ内部で ExitTransition を定義できます。</p>
+<p>Android 5.0(API レベル 21)には、アプリでカスタム アニメーションを作成する新たな API が含まれています。
+たとえば次のように、アクティビティ遷移を有効にしてアクティビティ内部で ExitTransition を定義できます。
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -142,6 +166,6 @@
 }
 </pre>
 
-<p>このアクティビティから次のアクティビティを開始するときに Exit 遷移がアクティベートされます。</p>
+<p>このアクティビティから別のアクティビティを開始するときに Exit 遷移がアクティベートされます。</p>
 
-<p>新しいアニメーション API の詳細については、<a href="{@docRoot}training/material/animations.html">カスタム アニメーションの定義</a>をご覧ください。</p> 
\ No newline at end of file
+<p>新しいアニメーション API の詳細については、<a href="{@docRoot}training/material/animations.html">カスタム アニメーションの定義</a>をご覧ください。</p>
diff --git a/docs/html-intl/intl/ja/training/material/index.jd b/docs/html-intl/intl/ja/training/material/index.jd
index 22939a2..9f6d187 100644
--- a/docs/html-intl/intl/ja/training/material/index.jd
+++ b/docs/html-intl/intl/ja/training/material/index.jd
@@ -1,8 +1,9 @@
-page.title=マテリアル デザインでのアプリ作成
-page.type=設計
-page.image=images/material.png
+page.title=デベロッパーのためのマテリアル デザイン
+page.type=デザイン
+page.image=images/cards/material_2x.png
 page.metaDescription=アプリにマテリアル デザインを適用する方法を学習する
 
+
 @jd:body
 
 <div id="tb-wrapper">
@@ -10,12 +11,16 @@
   <h2>必要な知識と前提条件</h2>
   <ul>
     <li>Android 5.0(API レベル 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>マテリアル デザインは、視覚的な動作と、複数のプラットフォームやデバイス間でのインタラクション デザインに関する包括的な指針です。Android アプリでマテリアル デザインを使うには、<a href="http://www.google.com/design/spec/material-design/introduction.html">マテリアル デザインの仕様</a>で説明されているガイドラインに従い、Android 5.0(API レベル 21)の新しいコンポーネントや機能を使用します。</p>
+<p>マテリアル デザインは、複数のプラットフォームや端末の視覚、モーション、インタラクション デザインの包括的な指針です。
+Android アプリでマテリアル デザインを使うには、
+<a href="http://www.google.com/design/spec/material-design/introduction.html">マテリアル デザインの仕様</a>で説明されているガイドラインに従い、Android 5.0(API レベル 21)の新しいコンポーネントや機能を使用します。
+
+
+</p>
 
 <p>ここでは、次の要素を用いてマテリアル デザイン アプリを作成する方法について説明します。</p>
 
@@ -27,12 +32,13 @@
 <li>カスタム アニメーション</li>
 </ul>
 
-<p>さらに、アプリでマテリアル デザインの機能を使うときに Android 5.0(API レベル 21)より前のバージョンとの互換性を維持する方法についても説明します。</p>
+<p>さらに、アプリでマテリアル デザインの機能を使うときに Android 5.0(API レベル 21)より前のバージョンとの互換性を維持する方法についても説明します。
+</p>
 
 <h2>レッスン</h2>
 
 <dl>
-  <dt><a href="{@docRoot}training/material/get-started.html">スタート ガイド</a></dt>
+  <dt><a href="{@docRoot}training/material/get-started.html">スタートガイド</a></dt>
   <dd>マテリアル デザインの機能でアプリを更新する方法について学習します。</dd>
 
   <dt><a href="{@docRoot}training/material/theme.html">マテリアル テーマの使用</a></dt>
@@ -45,11 +51,11 @@
   <dd>ビューのエレベーションを設定してカスタム シャドウを作成する方法やビューをクリップする方法について学習します。</dd>
 
   <dt><a href="{@docRoot}training/material/drawables.html">ドローアブルの使用</a></dt>
-  <dd>ベクター型ドローアブルの作成方法やドローアブル リソースに色を付ける方法について学習します。</dd>
+  <dd>ベクター型ドローアブルを作成する方法やドローアブル リソースに色を付ける方法について学習します。</dd>
 
   <dt><a href="{@docRoot}training/material/animations.html">カスタム アニメーションの定義</a></dt>
-  <dd>ビューのカスタム アニメーションや共有要素とアクティビティ遷移の作成方法について学習します。</dd>
+  <dd>ビューのカスタム アニメーションや共有要素とアクティビティ遷移を作成する方法について学習します。</dd>
 
   <dt><a href="{@docRoot}training/material/compatibility.html">互換性の維持</a></dt>
-  <dd>Android 5.0 より前のバージョンのプラットフォームとの互換性を保つ方法について学習します。</dd>
-</dl> 
\ No newline at end of file
+  <dd>Android 5.0 より前のバージョンのプラットフォームとの互換性を維持する方法について学習します。</dd>
+</dl>
diff --git a/docs/html-intl/intl/ja/training/material/lists-cards.jd b/docs/html-intl/intl/ja/training/material/lists-cards.jd
index 3b18d36..3d84d5d 100644
--- a/docs/html-intl/intl/ja/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/ja/training/material/lists-cards.jd
@@ -19,55 +19,79 @@
 </div>
 
 
-<p>マテリアル デザインのスタイルを適用した複雑なリストやカードをアプリで作成するには、{@link android.support.v7.widget.RecyclerView} ウィジェットや {@link android.support.v7.widget.CardView} ウィジェットを使用できます。</p>
+<p>マテリアル デザインのスタイルを適用した複雑なリストやカードをアプリで作成するには、
+{@link android.support.v7.widget.RecyclerView} ウィジェットや {@link android.support.v7.widget.CardView}
+ ウィジェットを使用します。</p>
 
 
 <h2 id="RecyclerView">リストを作成する</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} ウィジェットは、{@link android.widget.ListView} をさらに進化させ柔軟にしたものです。このウィジェットは、大きなデータ セットを表示するためのコンテナで、限られたビューを維持することで非常に効率的にスクロールできます。ユーザーのアクションやネットワークのイベントに基づいて、実行時に要素が変わるデータ コレクションを持つ場合には、{@link android.support.v7.widget.RecyclerView} ウィジェットを使用してください。</p>
+<p>{@link android.support.v7.widget.RecyclerView} ウィジェットは、{@link android.widget.ListView} をさらに進化させて柔軟にしたものです。
+このウィジェットは、大きなデータセットを表示するためのコンテナであり、限られたビューを維持することで非常に効率的にスクロールできます。
+ユーザーのアクションやネットワークのイベントに基づいて、実行時に要素が変わるデータ コレクションを持つ場合には、
+{@link android.support.v7.widget.RecyclerView} ウィジェットを使用してください。
+</p>
 
-<p>{@link android.support.v7.widget.RecyclerView} クラスは次の機能を提供することで、簡単に大きなデータ セットを表示したり処理したりできます。</p>
+<p>{@link android.support.v7.widget.RecyclerView} クラスは次の機能を提供することで、簡単に大きなデータセットを表示したり処理したりできます。
+</p>
 
 <ul>
   <li>アイテムの位置調整を行うレイアウト マネージャー</li>
   <li>アイテムの削除や追加のような一般的な操作のデフォルト アニメーション</li>
 </ul>
 
-<p>また、{@link android.support.v7.widget.RecyclerView} ウィジェットのカスタム レイアウト マネージャーやアニメーションも柔軟に定義できます。</p>
+<p>また、{@link
+android.support.v7.widget.RecyclerView} ウィジェットのカスタム レイアウト マネージャーやアニメーションも柔軟に定義できます。</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
-<strong>図 1</strong> <code>RecyclerView</code> ウィジェット
+<strong>図 1</strong> <code>RecyclerView</code> ウィジェット。
 </p>
 
-<p>{@link android.support.v7.widget.RecyclerView} ウィジェットを使用するには、アダプターとレイアウト マネージャーを指定する必要があります。アダプターを作成するには、{@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} クラスを拡張します。具体的な実装方法は、データ セットの詳細やビューの種類によって異なります。詳細については、下記の<a href="#RVExamples">例</a>をご覧ください。</p>
+<p>{@link android.support.v7.widget.RecyclerView} ウィジェットを使用するには、アダプターとレイアウト マネージャーを指定する必要があります。
+アダプターを作成するには、{@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} クラスを拡張します。具体的な実装方法は、データセットの詳細やビューの種類によって異なります。
+詳細については、下記の<a href="#RVExamples">例</a>をご覧ください。
+</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
 <p class="img-caption" style="margin-left:8px">
-<strong>図 2</strong> - <code>RecyclerView</code> を使ったリスト
+<strong>図 2</strong> - <code>RecyclerView</code> を使ったリスト。
 </p>
 </div>
 
-<p><strong>レイアウト マネージャー</strong>は、{@link android.support.v7.widget.RecyclerView} 内でアイテム ビューを位置付けし、ユーザーから見えなくなったアイテム ビューを再利用するタイミングを決定します。ビューを再利用(または<em>リサイクル</em>)するために、レイアウト マネージャーからアダプターにデータ セットの異なる要素でビューの内容を入れ替えるよう求められることがあります。このようにビューをリサイクルすることで、不要なビューを作成したりコストのかかる {@link android.app.Activity#findViewById findViewById()} のルックアップをしたりせずに済み、パフォーマンスが向上します。</p>
+<p><strong>レイアウト マネージャー</strong>は、{@link
+android.support.v7.widget.RecyclerView} 内でアイテムビューを位置付けし、ユーザーから見えなくなったアイテムビューを再利用するタイミングを決定します。
+ビューを再利用(または<em>リサイクル</em>)するために、レイアウト マネージャーからアダプターにデータセットの異なる要素でビューの内容を入れ替えるよう求められることがあります。
+このようにビューをリサイクルすることで、不要なビューを作成したりコストのかかる {@link android.app.Activity#findViewById findViewById()} のルックアップをしたりせずに済み、パフォーマンスが向上します。
+
+</p>
 
 <p>{@link android.support.v7.widget.RecyclerView} には、次のレイアウト マネージャーが組み込まれています。</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} は、アイテムを縦方向か横方向のスクロール リストに表示します。</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} は、アイテムを縦方向か横方向のスクロール リストに表示します。
+</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} は、アイテムをグリッドに表示します。</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} は、アイテムをスタッガード グリッドに表示します。</li>
 </ul>
 
-<p>カスタム レイアウト マネージャーを作成するには、{@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} クラスを拡張します。</p>
+<p>カスタム レイアウト マネージャーを作成するには、{@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} クラスを拡張します。</p>
 
 <h3>アニメーション</h3>
 
-<p>{@link android.support.v7.widget.RecyclerView} では、アイテムの追加や削除のアニメーションがデフォルトで有効になっています。これらのアニメーションをカスタマイズするには、{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} クラスを拡張し、{@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()} メソッドを使用します。</p>
+<p>{@link
+android.support.v7.widget.RecyclerView} では、アイテムの追加や削除のアニメーションがデフォルトで有効になっています。これらのアニメーションをカスタマイズするには、
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} クラスを拡張し、{@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+ メソッドを使用します。
+</p>
 
 <h3 id="RVExamples">例</h3>
 
-<p>次のコードは、レイアウトに {@link android.support.v7.widget.RecyclerView} を追加する方法の一例です。</p>
+<p>次のコードは、レイアウトに
+{@link android.support.v7.widget.RecyclerView} を追加する方法の一例です。</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>レイアウトに {@link android.support.v7.widget.RecyclerView} ウィジェットを追加したら、オブジェクトのハンドルを取得してレイアウト マネージャーに接続し、表示するデータのアダプターを添付します。</p>
+<p>レイアウトに {@link android.support.v7.widget.RecyclerView} ウィジェットを追加したら、オブジェクトのハンドルを取得してレイアウト マネージャーに接続し、表示するデータのアダプターを添付します。
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>アダプターによって、データ セット内の各項目にアクセスしたり、アイテムのビューを作成したり、元のアイテムが見えなくなったときにビューのコンテンツの一部を新しいデータ アイテムと入れ替えたりできます。次のコードはデータ セットを実装する簡単な例です。このデータ セットは、{@link android.widget.TextView} ウィジェットを使用して表示した文字列の配列で構成されています。</p>
+<p>アダプターによって、データセット内の各項目にアクセスしたり、アイテムのビューを作成したり、元のアイテムが見えなくなったときにビューのコンテンツの一部を新しいデータアイテムと入れ替えたりできます。
+
+次のコードはデータセットを実装する簡易な例です。このデータセットは、{@link android.widget.TextView} ウィジェットを使用して表示した文字列の配列で構成されています。
+</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -165,25 +194,35 @@
 <div style="float:right;margin-top:15px;margin-left:30px">
 <img src="{@docRoot}design/material/images/card_travel.png" alt="" width="225" height="383">
 <p class="img-caption" style="margin-left:12px">
-<strong>図 3</strong> カードの例
+<strong>図 3</strong> カードの例。
 </p>
 </div>
 
 <h2 id="CardView">カードを作成する</h2>
 
-<p>{@link android.support.v7.widget.CardView} は {@link android.widget.FrameLayout} クラスを拡張して、あらゆるプラットフォームで統一された外観のカード内に情報を表示できます。{@link android.support.v7.widget.CardView} ウィジェットは、シャドウを付けたり角を丸くしたりできます。</p>
+<p>{@link android.support.v7.widget.CardView} は {@link android.widget.FrameLayout} クラスを拡張して、あらゆるプラットフォームで統一された外観のカード内に情報を表示できます。
+{@link
+android.support.v7.widget.CardView} ウィジェットは、シャドウを付けたり角を丸くしたりできます。</p>
 
-<p>シャドウ付きのカードを作成するには、<code>card_view:cardElevation</code> 属性を使用します。{@link android.support.v7.widget.CardView} は Android 5.0(API レベル 21)以降ではリアルなエレベーションや動きのあるシャドウを使用し、それより前のバージョンではプログラム的なシャドウを使用します。詳細については、<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。</p>
+<p>シャドウ付きのカードを作成するには、<code>card_view:cardElevation</code> 属性を使用します。
+{@link android.support.v7.widget.CardView} は Android 5.0(API レベル 21)以降ではリアルなエレベーションや動きのあるシャドウを使用し、それより前のバージョンではプログラム的なシャドウを使用します。
 
-<p>{@link android.support.v7.widget.CardView} ウィジェットの外観をカスタマイズするには、次のプロパティを使用します。</p>
+詳細については、<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。
+</p>
+
+<p>
+{@link android.support.v7.widget.CardView} ウィジェットの外観をカスタマイズするには、次のプロパティを使用します。</p>
 
 <ul>
-  <li>レイアウトで角の丸みを設定するには、<code>card_view:cardCornerRadius</code> 属性を使用します。</li>
+  <li>レイアウトで角の丸みを設定するには、<code>card_view:cardCornerRadius</code> 属性を使用します。
+</li>
   <li>コードで角の丸みを設定するには、<code>CardView.setRadius</code> メソッドを使用します。</li>
-  <li>カードの背景色を設定するには、<code>card_view:cardBackgroundColor</code> 属性を使用します。</li>
+  <li>カードの背景色を設定するには、<code>card_view:cardBackgroundColor</code> 属性を使用します。
+</li>
 </ul>
 
-<p>次のコードは、レイアウトに {@link android.support.v7.widget.CardView} ウィジェットを含める方法の一例です。</p>
+<p>次のコードは、レイアウトに {@link android.support.v7.widget.CardView}
+ ウィジェットを含める方法の一例です。</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -212,7 +251,11 @@
 
 <h2 id="Dependencies">依存関係を追加する</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} ウィジェットや {@link android.support.v7.widget.CardView} ウィジェットは、<a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a>の一部です。プロジェクトでこれらのウィジェットを使うには、次のようにアプリのモジュールに <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle dependencies</a> を追加します。</p>
+<p>{@link android.support.v7.widget.RecyclerView} ウィジェットと {@link android.support.v7.widget.CardView} ウィジェットは、<a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a>の一部です。
+
+プロジェクトでこれらのウィジェットを使うには、次のようにアプリのモジュールに
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依存関係</a>を追加します。
+</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/ja/training/material/shadows-clipping.jd b/docs/html-intl/intl/ja/training/material/shadows-clipping.jd
index cafd1c7..981a4d1 100644
--- a/docs/html-intl/intl/ja/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/ja/training/material/shadows-clipping.jd
@@ -7,7 +7,7 @@
 <h2>このレッスンでの学習内容</h2>
 <ol>
   <li><a href="#Elevation">ビューにエレベーションを割り当てる</a></li>
-  <li><a href="#Shadows">ビュー シャドウとアウトラインをカスタマイズする</a></li>
+  <li><a href="#Shadows">ビューシャドウとアウトラインをカスタマイズする</a></li>
   <li><a href="#Clip">ビューをクリップする</a></li>
 </ol>
 <h2>関連ドキュメント</h2>
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>マテリアル デザインでは、UI 要素に Elevation (エレベーション、高度)を導入しています。エレベーションによって、ユーザーは一つの要素が他の要素と比べて重要であることを理解でき、目の前の作業に集中できるようになります。</p>
+<p>マテリアル デザインでは、UI 要素に Elevation(エレベーション、高度)を導入しています。エレベーションによって、ユーザーは 1 つの要素が他の要素と比べて重要であることを理解でき、目前の作業に集中できるようになります。
+</p>
 
-<p>ビューのエレベーションは Z プロパティで表され、シャドウ ビューの見た目を決定します。Z 値が高くなればシャドウも大きく、滑らかになります。Z 値が高いビューは Z 値が低いビューを覆い隠しますが、Z 値がビューのサイズに影響することはありません。</p>
+<p>ビューのエレベーションは Z プロパティで表され、シャドウビューの見た目を決定します。Z 値が高くなればシャドウも大きく、滑らかになります。
+Z 値が高いビューは Z 値が低いビューを覆い隠しますが、Z 値がビューのサイズに影響することはありません。
+</p>
 
-<p>シャドウは、Z 値が設定された親ビューによって描かれ、標準的なビュー クリッピングの対象になります。デフォルトでは親ビューによってクリップされます。</p>
+<p>シャドウは、エレベーションが設定された親ビューによって描かれ、標準的なビュー クリッピングの対象になります。デフォルトでは親ビューによってクリップされます。
+</p>
 
-<p>エレベーションは、何らかのアクションでビューの平面上にウィジェットが浮き上がるようなアニメーションを作成する際にも役立ちます。</p>
+<p>エレベーションは、何らかのアクションでビューの平面上にウィジェットが浮き上がるようなアニメーションを作成する際にも役立ちます。
+</p>
 
-<p>マテリアル デザインのエレベーションの詳細については、<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objects in 3D space</a> をご覧ください。</p>
+<p>マテリアル デザインのエレベーションの詳細については、
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D スペースのオブジェクト</a>をご覧ください。
+</p>
 
 
 <h2 id="Elevation">ビューにエレベーションを割り当てる</h2>
 
-<p>ビューの Z 値には次の 2 つのコンポーネントがあります。 <ul>
+<p>ビューの Z 値には次の 2 つのコンポーネントがあります。
+
+<ul>
 <li>Elevation (エレベーション): 静的なコンポーネントです。</li>
 <li>Translation (トランスレーション): アニメーションに使われる動的なコンポーネントです。</li>
 </ul>
@@ -39,24 +48,36 @@
 <p><code>Z = elevation + translationZ</code></p>
 
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
-<p class="img-caption"><strong>図 1</strong> - 異なるビュー エレベーションのシャドウ</p>
+<p class="img-caption"><strong>図 1</strong> - 異なるビュー エレベーションのシャドウ。</p>
 
-<p>レイアウトの定義でビューのエレベーションを設定するには、<code>android:elevation</code> 属性を使用します。アクティビティのコードでビューのエレベーションを設定するには、{@link android.view.View#setElevation View.setElevation()} メソッドを使用します。</p>
+<p>レイアウトの定義でビューのエレベーションを設定するには、<code>android:elevation</code>
+ 属性を使用します。アクティビティのコードでビューのエレベーションを設定するには、
+{@link android.view.View#setElevation View.setElevation()} メソッドを使用します。</p>
 
-<p>ビューのトランスレーションを設定するには、{@link android.view.View#setTranslationZ View.setTranslationZ()} メソッドを使用します。</p>
+<p>ビューのトランスレーションを設定するには、{@link android.view.View#setTranslationZ
+View.setTranslationZ()} メソッドを使用します。</p>
 
-<p>新しい {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} メソッドや {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} メソッドを使用すると、ビューのエレベーションに簡単にアニメーションを付けられます。詳細については、API リファレンスの {@link android.view.ViewPropertyAnimator} と、デベロッパー ガイドの <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property Animation</a> をご覧ください。</p>
+<p>新しい {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} メソッドや {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} メソッドを使用すると、ビューのエレベーションに簡単にアニメーションを付けられます。
+詳細については、API リファレンスの
+{@link android.view.ViewPropertyAnimator} と、デベロッパー ガイドの<a href="{@docRoot}guide/topics/graphics/prop-animation.html">プロパティ アニメーション</a>をご覧ください。
+</p>
 
-<p>また、{@link android.animation.StateListAnimator} を使用してアニメーションを宣言的に指定することも可能です。これは、ユーザーがボタンを押したときなど、状態の変化によってアニメーションを動作する場合に特に役立ちます。詳細については、<a href="{@docRoot}training/material/animations.html#ViewState">ビューの状態遷移にアニメーションを付ける</a>をご覧ください。</p>
+<p>また、{@link android.animation.StateListAnimator} を使用してアニメーションを宣言的に指定することも可能です。
+これは、ユーザーがボタンを押したときなど、状態の変化によってアニメーションを動作する場合に特に役立ちます。
+詳細については、
+<a href="{@docRoot}training/material/animations.html#ViewState">ビューの状態遷移にアニメーションを付ける</a>をご覧ください。</p>
 
-<p>Z 値は dp (密度非依存ピクセル)で測られます。</p>
+<p>Z 値は dp(密度非依存ピクセル)で測られます。</p>
 
 
-<h2 id="Shadows">ビュー シャドウとアウトラインをカスタマイズする</h2>
+<h2 id="Shadows">ビューシャドウとアウトラインをカスタマイズする</h2>
 
-<p>ビュー背景のドローアブルの範囲によってシャドウのデフォルトの形状が決まります。<strong>アウトライン</strong>はグラフィック オブジェクトの外形を表し、タッチ フィードバックのリップル(波紋)の領域を定義します。</p>
+<p>ビュー背景のドローアブルの範囲によってシャドウのデフォルトの形状が決まります。
+<strong>Outlines</strong> はグラフィック オブジェクトの外形を表し、タッチ フィードバックのリップル(波紋)の領域を定義します。
+</p>
 
-<p>次のように、背景ドローアブルで定義されたビューについて考えてみます。</p>
+<p>背景ドローアブルで定義されたビューについて考えてみます。</p>
 
 <pre>
 &lt;TextView
@@ -66,7 +87,7 @@
     android:background="@drawable/myrect" />
 </pre>
 
-<p>次のように、背景ドローアブルが角が丸い長方形として定義されます。</p>
+<p>背景ドローアブルが角が丸い長方形として定義されます。</p>
 
 <pre>
 &lt;!-- res/drawable/myrect.xml -->
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>背景ドローアブルによってビューの外形が定義されるため、このビューは角が丸いシャドウを付与します。カスタム アウトラインを使えば、ビュー シャドウのデフォルトの形状を更新できます。</p>
+<p>背景ドローアブルによってビューの外形が定義されるため、このビューは角が丸いシャドウを付与します。
+カスタム アウトラインを使えば、ビューシャドウのデフォルトの形状を更新できます。</p>
 
 <p>コードでビューのカスタム アウトラインを定義するには: <p>
 
 <ol>
 <li>{@link android.view.ViewOutlineProvider} クラスを拡張します。</li>
 <li>{@link android.view.ViewOutlineProvider#getOutline getOutline()} メソッドを上書きします。</li>
-<li>{@link android.view.View#setOutlineProvider View.setOutlineProvider()} メソッドで、ビューに新しい OutlineProvider を割り当てます。</li>
+<li>{@link
+android.view.View#setOutlineProvider View.setOutlineProvider()} メソッドで、ビューに新しい OutlineProvider を割り当てます。</li>
 </ol>
 
-<p>{@link android.graphics.Outline} クラスのメソッドを使用して、楕円形や角が丸い長方形のアウトラインを作成できます。ビューのデフォルトの OutlineProvider は、ビューの背景から外形を決定します。ビューがシャドウを付与しないようにするには、OutlineProvider を <code>null</code> に設定します。</p>
+<p>
+{@link android.graphics.Outline} クラスのメソッドを使用して、楕円形や角が丸い長方形のアウトラインを作成できます。ビューのデフォルトの OutlineProvider は、ビューの背景から外形を決定します。
+ビューがシャドウを付与しないようにするには、OutlineProvider を <code>null</code> に設定します。
+</p>
 
 
 <h2 id="Clip">ビューをクリップする</h2>
 
-<p>ビューをクリップすると、ビューの形を簡単に変更できます。ビューをクリップすることで、他のデザイン要素との統一性を保ったり、ユーザーのインプットに応じてビューの形を変えたりできます。{@link android.view.View#setClipToOutline View.setClipToOutline()} メソッドか <code>android:clipToOutline</code> 属性を使用すると、ビューをそのアウトラインの範囲にクリップできます。{@link android.graphics.Outline#canClip Outline.canClip()} メソッドで指定されているように、クリップがサポートされるのは長方形、円形、角が丸い長方形のみです。</p>
+<p>ビューをクリップすると、ビューの形を簡単に変更できます。ビューをクリップすることで、他のデザイン要素との統一性を保ったり、ユーザーのインプットに応じてビューの形を変えたりできます。
 
-<p>上述のように、ドローアブルの範囲でビューをクリップするには、ドローアブルをビューの背景として設定し、{@link android.view.View#setClipToOutline View.setClipToOutline()} メソッドを呼び出します。</p>
+{@link android.view.View#setClipToOutline
+View.setClipToOutline()} メソッドか <code>android:clipToOutline</code> 属性を使用すると、ビューをそのアウトラインの範囲にクリップできます。
+{@link android.graphics.Outline#canClip Outline.canClip()} メソッドで指定されているように、クリップがサポートされるのは長方形、円形、角が丸い長方形のみです。
+</p>
 
-<p>ビューのクリップは負荷の高い操作であるため、ビューのクリップに使用する形状にはアニメーションを付けないでください。この効果を付けるには、<a href="{@docRoot}training/material/animations.html#Reveal">出現エフェクト</a>アニメーションを使用します。</p> 
\ No newline at end of file
+<p>上述のように、ドローアブルの範囲でビューをクリップするには、ドローアブルをビューの背景として設定し、{@link android.view.View#setClipToOutline View.setClipToOutline()}
+メソッドを呼び出します。
+</p>
+
+<p>ビューのクリップは負荷の高い操作であるため、ビューのクリップに使用する形状にはアニメーションを付けないでください。
+この効果を発揮させるには、<a href="{@docRoot}training/material/animations.html#Reveal">出現エフェクト</a>アニメーションを使用します。</p>
diff --git a/docs/html-intl/intl/ja/training/material/theme.jd b/docs/html-intl/intl/ja/training/material/theme.jd
index 66e4592..43e5c6c 100644
--- a/docs/html-intl/intl/ja/training/material/theme.jd
+++ b/docs/html-intl/intl/ja/training/material/theme.jd
@@ -6,8 +6,8 @@
 <div id="tb">
 <h2>このレッスンでの学習内容</h2>
 <ol>
-  <li><a href="#ColorPalette">カラー パレットをカスタマイズする</a></li>
-  <li><a href="#StatusBar">ステータス バーをカスタマイズする</a></li>
+  <li><a href="#ColorPalette">カラーパレットをカスタマイズする</a></li>
+  <li><a href="#StatusBar">ステータスバーをカスタマイズする</a></li>
   <li><a href="#Inheritance">テーマ個別のビュー</a></li>
 </ol>
 <h2>関連ドキュメント</h2>
@@ -22,14 +22,17 @@
 <p>新しいマテリアル テーマでは、次のものが提供されます。</p>
 
 <ul>
-  <li>カラー パレットを設定できるシステム ウィジェット</li>
+  <li>カラーパレットを設定できるシステム ウィジェット</li>
   <li>システム ウィジェットのタッチ フィードバック アニメーション</li>
   <li>アクティビティ遷移アニメーション</li>
 </ul>
 
-<p>マテリアル テーマの外観は、ブランド イメージにあわせて自分のカラー パレットでカスタマイズできます。<a href="#fig3">図 3</a> のように、アクション バーやステータス バーにテーマ属性で色を付けることができます。</p>
+<p>マテリアル テーマの外観は、ブランド イメージにあわせて自分のカラーパレットでカスタマイズできます。
+<a href="#fig3">図 3</a> のように、アクションバーやステータスバーにテーマ属性で色を付けることができます。
+</p>
 
-<p>システム ウィジェットには、新しいデザインやタッチ フィードバックがあります。カラー パレット、タッチ フィードバック、アクティビティ遷移は、自分のアプリ向けにカスタマイズできます。</p>
+<p>システム ウィジェットには、新しいデザインやタッチ フィードバックがあります。カラーパレット、タッチ フィードバック、アクティビティ遷移は、自分のアプリ向けにカスタマイズできます。
+</p>
 
 <p>マテリアル テーマは次のように定義されます。</p>
 
@@ -39,33 +42,39 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>使用できるマテリアル スタイルのリストについては、API リファレンスの {@link android.R.style R.style} をご覧ください。</p>
+<p>使用できるマテリアル スタイルのリストについては、API リファレンスの
+{@link android.R.style R.style} をご覧ください。</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>図 1</strong> 暗色マテリアル テーマ</p>
+  <p style="margin-top:8px;font-size:12px"><strong>図 1</strong> 暗い色のマテリアル テーマ</p>
   </div>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>図 2</strong> 明色マテリアル テーマ</p>
+  <p style="margin-top:8px;font-size:12px"><strong>図 2</strong> 明るい色のマテリアル テーマ</p>
   </div>
 </div>
 <br style="clear:left">
 </div>
 
 <p class="note">
-<strong>注:</strong> マテリアル テーマは、Android 5.0(API レベル 21)以降でのみ使用できます。<a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a>は、一部のウィジェットに対してマテリアル デザイン スタイルでテーマを提供し、カラー パレットのカスタマイズをサポートしています。詳細については、<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。
+<strong>注: </strong>マテリアル テーマは、Android 5.0(API レベル 21)以降でのみ使用できます。
+<a href="{@docRoot}tools/support-library/features.html#v7">v7 サポート ライブラリ</a>は、一部のウィジェットに対してマテリアル デザイン スタイルでテーマを提供し、カラーパレットのカスタマイズをサポートしています。
+
+詳細については、
+<a href="{@docRoot}training/material/compatibility.html">互換性の維持</a>をご覧ください。
 </p>
 
 
-<h2 id="ColorPalette">カラー パレットをカスタマイズする</h2>
+<h2 id="ColorPalette">カラーパレットをカスタマイズする</h2>
 
-<p style="margin-bottom:30px">ブランド イメージに合うようにテーマの基本色をカスタマイズするには、次の例に示すようにマテリアル テーマから継承する場合、テーマ属性を使ってカスタム カラーを定義します。</p>
+<p style="margin-bottom:30px">ブランド イメージに合うようにテーマの基本色をカスタマイズするには、次の例に示すようにマテリアル テーマから継承する場合、テーマ属性を使ってカスタムカラーを定義します。
+</p>
 
 <pre>
 &lt;resources>
@@ -89,19 +98,34 @@
 </div>
 
 
-<h2 id="StatusBar">ステータス バーをカスタマイズする</h2>
+<h2 id="StatusBar">ステータスバーをカスタマイズする</h2>
 
-<p>マテリアル テーマを使うと、ステータス バーを簡単にカスタマイズできます。ブランド イメージに合わせて、またコントラストで白色のステータス アイコンを際立たせて色を設定できます。ステータス バーのカスタム カラーを設定するには、マテリアル テーマを拡張するときに <code>android:statusBarColor</code> 属性を使用します。デフォルトでは <code>android:statusBarColor</code> は <code>android:colorPrimaryDark</code> の値を継承します。</p>
+<p>マテリアル テーマを使うと、ステータスバーを簡単にカスタマイズできます。ブランド イメージに合わせて、またコントラストで白色のステータス アイコンを際立たせて色を設定できます。
+ステータスバーのカスタムカラーを設定するには、マテリアル テーマを拡張するときに <code>android:statusBarColor</code> 属性を使用します。
 
-<p>また、ステータス バーの背景を描くこともできます。たとえば、白色のステータス アイコンが見にくくならないように薄い暗色のグラデーションを付けて、ステータス バーを写真の上に透過的に表示したい場合、<code>&#64;android:color/transparent</code> に <code>android:statusBarColor</code> 属性を指定してウィンドウ フラグを希望の通りに調整します。アニメーションやフェードには、{@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} メソッドも使用できます。</p>
-
-<p class="note">
-<strong>注:</strong> ステータス バーはメインのツールバーと明確に分かれている必要があります。ただし、背景に画面の端から端まで表示される鮮やかな画像やメディア コンテンツを使用したり、アイコンが見にくくならないようにグラデーションを使用する場合は例外です。
+デフォルトでは <code>android:statusBarColor</code> は <code>android:colorPrimaryDark</code> の値を継承します。
 </p>
 
-<p>ナビケーションとステータス バーをカスタマイズするときは、どちらも透過的にするか、ステータス バーだけを変更します。その他のケースではナビゲーション バーは黒色のままにする必要があります。</p>
+<p>また、ステータスバーの背景を描くこともできます。たとえば、白色のステータス アイコンが見にくくならないように薄い暗色のグラデーションを付けて、ステータスバーを写真の上に透過的に表示したい場合、
+
+<code>android:statusBarColor</code> 属性に
+<code>&#64;android:color/transparent</code> を指定してウィンドウ フラグを必要に応じて調整します。アニメーションやフェードには、{@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} メソッドも使用できます。
+
+</p>
+
+<p class="note">
+<strong>注: </strong>ステータスバーはメインのツールバーと明確に分かれている必要があります。ただし、背景に画面の端から端まで表示される鮮やかな画像やメディア コンテンツを使用したり、アイコンが見にくくならないようにグラデーションを使用する場合は例外です。
+
+
+</p>
+
+<p>ナビケーションとステータスバーをカスタマイズするときは、どちらも透過的にするか、ステータスバーだけを変更します。
+その他のケースではナビゲーション バーは黒色のままにする必要があります。</p>
 
 
 <h2 id="Inheritance">テーマ個別のビュー</h3>
 
-<p>XML レイアウト定義の各要素では、テーマのリソースを参照する <code>android:theme</code> 属性を指定できます。この属性は、要素や子要素のテーマを変更し、インターフェースの一定の割合を占めるテーマ カラー パレットを変更する場合に役立ちます。</p> 
\ No newline at end of file
+<p>XML レイアウト定義の各要素では、テーマのリソースを参照する <code>android:theme</code> 属性を指定できます。
+この属性は、要素や子要素のテーマを変更し、インターフェースの一定の割合を占めるテーマ カラーパレットを変更する場合に役立ちます。
+
+</p>
diff --git a/docs/html-intl/intl/ko/design/get-started/principles.jd b/docs/html-intl/intl/ko/design/get-started/principles.jd
index aba8a9b..b7ca66e 100644
--- a/docs/html-intl/intl/ko/design/get-started/principles.jd
+++ b/docs/html-intl/intl/ko/design/get-started/principles.jd
@@ -1,8 +1,8 @@
 page.title=Android 디자인 원칙
 @jd:body
 
-<p>이러한 디자인 원칙은 사용자의 이익을 가장 염두에 두고 Android
-사용자 환경 팀(User Experience Team)에 의해서와 이 팀을 위해 개발되었습니다. Android 개발자 및 디자이너를
+<p>이 디자인 원칙은 사용자의 이익을 가장 염두에 두고 Android
+사용자 환경 팀(User Experience Team)에 의해 이 팀을 위해 개발되었습니다. Android 개발자 및 디자이너를
 위해 Android 사용자 환경 팀은 계속해서 여러
 유형의 기기를 위한 상세한 디자인 가이드라인의
 기저를 이루고 있습니다.</p>
@@ -14,8 +14,8 @@
 
 <h2 id="enchant-me">황홀하게 만들기</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">놀라운 방식으로 기쁨을 주기</h4>
 <p>아름다운 표면, 신중하게 위치한 애니메이션 또는 시간적으로 잘 짜여진 소리 효과는 사람들에게 즐거운
@@ -23,7 +23,7 @@
 힘을 가지고 있다고 느끼게 해줍니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">버튼 및 메뉴보다 더 흥미로운 실제 사물</h4>
 <p>사람들이 직접 앱 내 사물을 터치하고 조작할 수 있게 해보세요. 이는 태스크를 수행할 때
 필요한 인지 노력을 줄이는 동시에 정서적인 만족을 가져다 줍니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,8 +49,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">내 것으로 만들게 하기</h4>
 <p>사람들은 개인적인 취향을 더하고 싶어 하는데, 그렇게 하면 마음이 편안해지고 통제할 수 있다고 느끼게 되기 때문입니다. 합리적이고
@@ -58,7 +58,7 @@
 주요 태스크를 저해하지 않는 범위에서 재미있고, 선택 가능한 맞춤 기능을 제공할 것을 고려해 보십시오.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">사용자에 대해 파악하기</h4>
 <p>시간이 지남에 따라 사람들이 선호하는 것을 알아보세요. 똑같은 선택을 매번
 하도록 요구하기 보다는 이전 선택을 쉽게 접근할 수 있는 곳에 둡니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">사용자의 생활을 단순하게 만들기</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">간결하게 만들기</h4>
 <p>간단한 단어로 이루어진 짧은 문구를 사용하세요. 문장이 길면 사람들이 보지 않고 넘길 가능성이 커집니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">말보다 빠른 사진</h4>
 <p>생각을 전달하는 데 사진을 이용할 것을 고려해 보세요. 사람들의 시선을 끌고 말보다
 더 효과적일 수 있습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">사용자를 대신해서 결정해 주되 최종 결정권은 사용자에게 주기</h4>
 <p>먼저 물어보기 보다는 최선의 추측을 하고 조치를 취해 보세요. 선택하고 결정해야 하는 사항이 너무 많으면 사람들이
 짜증을 내게 됩니다. 만약을 대비해 '실행 취소' 기능을 제공합니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="only-show-when-i-need-it">사용자가 필요로 할 때 필요한 사항만 보여주기</h4>
 <p>사람들은 한 번에 너무 많은 것을 보면 버거워합니다. 태스크 및 정보를 소화 가능한
 작은 크기로 나누세요. 현재 필요하지 않은 옵션은 숨기고 사람들의 작업 진행에 맞게 옵션을 표시하세요.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">사용자 자신이 현재 어디에 있는지 항상 알도록 하기</h4>
 <p>사람들에게 현재 자신이 어디에 있는지에 대한 확신을 주어야 합니다. 앱에서 장소가 명확하게 표시되게 하고,
 전환을 사용하여 화면 간 관계를 보여줍니다. 현재 작업 중인 태스크에 대한 피드백을 제공합니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">사용자가 가지고 있는 것들을 절대 잃어버리지 않도록 하기</h4>
 <p>사람들이 공들여 만든 것을 저장하고 어디서든지 액세스할 수 있게 합니다. 휴대폰, 태블릿 및 컴퓨터에 걸쳐 설정,
@@ -177,7 +177,7 @@
 가장 쉬워집니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">똑같이 보이면 똑같이 동작되도록 하기</h4>
 <p>기능을 시각적으로 단순하게 만들기 보다는 눈에 띄게 만들어 사람들이 기능적 차이를 알아볼 수 있게 합니다.
 비슷하게 보이는 장소지만 같은 입력에 대해 다르게 실행되는 모드는 피하도록 합니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">중요할 때만 작업을 중단하기</h4>
 <p>유능한 개인 비서와 같이 중요하지 않은 일로 사람들의 작업을 중단하지 않도록 합니다. 사람들은
 작업에 계속 집중하기를 바라며, 중요하고 시간을 다투는 일을 제외하고는 작업이 중단되면 부담스럽고 짜증이 날 수 있습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,8 +220,8 @@
 
 <h2 id="make-me-amazing">사용자를 놀래킬 수 있는 환경 만들기</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">어디서든 적용될 수 있는 팁 제공하기</h4>
 <p>사람들은 스스로 알아내는 것을 좋아합니다. 다른 Android 앱의 시각적 패턴과 머슬 메모리(muscle memory)를 활용하여
@@ -229,7 +229,7 @@
 좋은 탐색 지름길이 될 수 있습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">사용자가 자기 탓으로 느끼지 않게 하기</h4>
 <p>사람들의 실수를 바로잡아 줄 때는 부드럽게 합니다. 사람들은
-앱을 사용할 때 스마트하게 느끼고 싶어 합니다. 뭔가 잘못될 경우, 명확한 복구 지침을 제공하되, 기술적인 세부 사항은 제공하지 않습니다.
-사람들 모르게 복구할 수 있으면 더 좋습니다.</p>
+앱을 사용할 때 자신이 스마트하다고 느끼고 싶어 합니다. 뭔가 잘못될 경우, 명확한 복구 지침을 제공하되, 기술적인 세부 사항은 그들에게 맡기세요.
+눈치채지 않게 복구할 수 있으면 더 좋습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">격려하기</h4>
 <p>복잡한 태스크를 쉽게 완료할 수 있도록 여러 단계로 나눕니다. 미묘한 반짝임일지라도
 작업에 대해서 피드백을 줍니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,8 +273,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">힘든 건 대신해주기</h4>
 <p>초보자들이 할 수 있을 것이라 생각하지 못한 일들을 해서 전문가처럼 느낄 수 있게 합니다. 예를
@@ -282,7 +282,7 @@
 겨우 몇 단계를 거치는 것만으로 멋진 사진으로 보이게 할 수 있습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">중요한 일은 빨리 해결되도록 하기</h4>
 <p>모든 작업이 같지는 않습니다. 앱에서 가장 중요한 것이 무엇인지 결정한 후 쉽게 찾을 수 있고
 빨리 사용할 수 있도록 합니다. 일례로 카메라의 셔터 버튼이나 음악 플레이어의 일시정지 버튼이 이에 해당됩니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/ko/design/material/index.jd b/docs/html-intl/intl/ko/design/material/index.jd
index 31992fa..b24c668 100644
--- a/docs/html-intl/intl/ko/design/material/index.jd
+++ b/docs/html-intl/intl/ko/design/material/index.jd
@@ -1,7 +1,7 @@
-page.title=머티어리얼 디자인
+page.title=Android용 머티리얼 디자인
 page.tags=Material,design
 page.type=design
-page.image=design/material/images/MaterialLight.png
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -9,7 +9,7 @@
 <a class="notice-developers right" href="{@docRoot}training/material/index.html">
   <div>
     <h3>개발자 문서</h3>
-    <p>머티어리얼 디자인으로 앱 생성</p>
+    <p>머티리얼 디자인으로 앱 생성</p>
   </div>
 </a>
 
@@ -17,7 +17,7 @@
 <a class="notice-developers-video" href="https://www.youtube.com/watch?v=p4gmvHyuZzw">
 <div>
     <h3>비디오</h3>
-    <p>머티어리얼 디자인 소개</p>
+    <p>머티리얼 디자인 소개</p>
 </div>
 </a>
 
@@ -25,7 +25,7 @@
 <a class="notice-developers-video" href="https://www.youtube.com/watch?v=YaG_ljfzeUw">
 <div>
     <h3>비디오</h3>
-    <p>종이와 잉크: 중요한 머티어리얼</p>
+    <p>종이와 잉크: 중요한 머티리얼</p>
 </div>
 </a>
 
@@ -33,19 +33,19 @@
 <a class="notice-developers-video" href="https://www.youtube.com/watch?v=XOcCOBe8PTc">
 <div>
     <h3>비디오</h3>
-    <p>Google I/O 앱 내 머티어리얼 디자인</p>
+    <p>Google I/O 앱 내 머티리얼 디자인</p>
 </div>
 </a>
 
 
 
-<p itemprop="description">머티어리얼 디자인은 플랫폼 및 기기 전반의 표현 방식, 모션 및
+<p itemprop="description">머티리얼 디자인은 플랫폼 및 기기 전반의 표현 방식, 모션 및
 상호 작용 디자인에 대한 종합적인 지침입니다. Android에는 이제
-머티어리얼 디자인 앱에 대한 지원이 포함되었습니다. Android 앱에서 머티어리얼 디자인을 사용하려면 <a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a>에
+머티리얼 디자인 앱에 대한 지원이 포함되었습니다. Android 앱에서 머티리얼 디자인을 사용하려면 <a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a>에
 규정되어 있는 지침을 따르세요. 또한 Android 5.0(API 레벨 21) 이상에서 제공하는
 새 구성 요소 및 기능을 사용하세요.</p>
 
-<p>Android는 머티어리얼 디자인 앱을 구축하는 데 사용할 수 있는 다음 요소를 제공합니다.</p>
+<p>Android는 머티리얼 디자인 앱을 구축하는 데 사용할 수 있는 다음 요소를 제공합니다.</p>
 
 <ul>
   <li>새로운 테마</li>
@@ -53,13 +53,13 @@
   <li>사용자 지정 그림자 및 애니메이션을 위한 새로운 API</li>
 </ul>
 
-<p>Android에서 머티어리얼 디자인을 구현하는 방법에 대한 자세한 내용은
-<a href="{@docRoot}training/material/index.html">머티어리얼 디자인으로 앱 생성</a>을 참조하세요.</p>
+<p>Android에서 머티리얼 디자인을 구현하는 방법에 대한 자세한 내용은
+<a href="{@docRoot}training/material/index.html">머티리얼 디자인으로 앱 생성</a>을 참조하세요.</p>
 
 
-<h3>머티어리얼 테마</h3>
+<h3>머티리얼 테마</h3>
 
-<p>머티어리얼 테마는 앱에 사용할 수 있는 새로운 스타일, 색상표를
+<p>머티리얼 테마는 앱에 사용할 수 있는 새로운 스타일, 색상표를
 설정할 수 있는 시스템 위젯, 그리고 터치 피드백 및 액티비티 전환을 위한 기본 애니메이션을 제공합니다.</p>
 
 <!-- two columns -->
@@ -67,25 +67,25 @@
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238" />
   <div style="width:140px;margin:0 auto">
-  <p style="margin-top:8px">어두운 머티어리얼 테마</p>
+  <p style="margin-top:8px">어두운 머티리얼 테마</p>
   </div>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238" />
   <div style="width:140px;margin:0 auto">
-  <p style="margin-top:8px">밝은 머티어리얼 테마</p>
+  <p style="margin-top:8px">밝은 머티리얼 테마</p>
   </div>
 </div>
 <br style="clear:left"/>
 </div>
 
-<p>자세한 내용은 <a href="{@docRoot}training/material/theme.html">머티어리얼
+<p>자세한 내용은 <a href="{@docRoot}training/material/theme.html">머티리얼
 테마 사용</a>을 참조하세요.</p>
 
 
 <h3>목록 및 카드</h3>
 
-<p>Android는 머티어리얼 디자인 스타일
+<p>Android는 머티리얼 디자인 스타일
 및 애니메이션으로 카드 및 목록을 표시하는 데 사용할 수 있는 두 개의 새로운 위젯을 제공합니다.</p>
 
 <!-- two columns -->
@@ -126,7 +126,7 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <em>영화를 재생하려면 기기 화면을 클릭합니다.</em>
+    <em>영화를 재생하려면 기기 화면을 클릭하세요.</em>
   </div>
 </div>
 
@@ -171,7 +171,7 @@
 
 <h3>드로어블</h3>
 
-<p>드로어블에 대한 다음과 같은 새 기능을 통해 머티어리얼 디자인 앱을 쉽게 구현할 수 있습니다.</p>
+<p>드로어블에 대한 다음과 같은 새 기능을 통해 머티리얼 디자인 앱을 쉽게 구현할 수 있습니다.</p>
 
 <ul>
 <li><strong>벡터 드로어블</strong>은 단색 인앱 아이콘에
@@ -182,5 +182,5 @@
 비트맵 이미지에서 주요 색상을 자동으로 추출할 수 있게 해줍니다.</li>
 </ul>
 
-<p>자세한 내용은 <a href="{@docRoot}training/material/drawables.html">Drawable
+<p>자세한 내용은 <a href="{@docRoot}training/material/drawables.html">드로어블
 사용</a>을 참조하세요.</p>
diff --git a/docs/html-intl/intl/ko/design/patterns/compatibility.jd b/docs/html-intl/intl/ko/design/patterns/compatibility.jd
new file mode 100644
index 0000000..a87a8f2
--- /dev/null
+++ b/docs/html-intl/intl/ko/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=이전 버전과의 호환성
+page.tags="support"
+page.metaDescription=Android 4.x에서 어떤 방식으로 이전 버전의 하드웨어 및 OS용으로 디자인된 UI를 적용하는지에 대한 설명입니다.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>개발자 문서</h3>
+    <p>다양한 기기 지원</p>
+  </div>
+</a>
+
+<p>Android 3.0에서 중요한 변경 사항은 다음과 같습니다.</p>
+<ul>
+<li>가상 컨트롤(Back, Home, Recents)을 통한 탐색 처리
+에 편리하도록 탐색 하드웨어 키(Back, Menu, Search, Home) 사용 중단.</li>
+<li>작업 모음에서 메뉴 사용을 위한 견고한 패턴.</li>
+</ul>
+<p>Android 4.0은 태블릿의 이러한 변경 사항들을 휴대폰 플랫폼에 적용합니다.</p>
+
+<h2 id="older-hardware">이전 하드웨어 및 앱에 Android 4.0 적용</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>가상 탐색 컨트롤이 있는 휴대폰</h4>
+<p>Android 3.0 이상의 버전용으로 작성된 Android 앱은 작업 모음에 작업을 표시합니다. 작업 모음에 적합하지 않거나 최상위에 표시될 만큼 중요하지 않은 작업은 작업 오버플로우에 나타납니다.
+
+</p>
+<p>사용자는 작업 모음에서 작업 오버플로를 터치하는 방식으로 액세스합니다.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>실제 탐색 키가 있는 휴대폰</h4>
+<p>탐색 하드웨어 키가 있는 기존 Android 휴대폰은 화면 하단에 가상 탐색 모음을 표시하지 않습니다.
+ 대신 메뉴 하드웨어 키에서 작업 오버플로를 이용할 수 있습니다. 나타나는 작업 팝업은 이전의 예와 스타일은 같지만 화면 하단에 표시됩니다.
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>가상 탐색 컨트롤이 있는 휴대폰의 레거시 앱</h4>
+<p>Android 2.3 이하 버전용으로 작성된 앱을 가상 탐색 컨트롤이 있는 휴대폰에서 실행하면 가상 탐색 모음의 오른쪽에 작업 오버플로가 나타납니다.
+ 이 컨트롤을 터치하여 기존 Android 메뉴 스타일로 앱의 작업을 표시할 수 있습니다.
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/ko/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/ko/design/patterns/confirming-acknowledging.jd
index 2444b0e..304a655 100644
--- a/docs/html-intl/intl/ko/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/ko/design/patterns/confirming-acknowledging.jd
@@ -1,51 +1,51 @@
-page.title=확인 및 승인하기
+page.title=확인 및 승인
 page.tags=dialog,toast,notification
 @jd:body
 
 <p>사용자가 앱에서 작업을 호출할 때와 같은 몇몇 상황에서는 텍스트를 통해 해당 작업을 <em>확인</em>하거나 <em>승인</em>하는 것이 좋습니다.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
-    <p><strong>확인하기</strong>란, 사용자에게 방금 호출한 작업을 정말로 진행할 것인지 묻는 것입니다. 경우에 따라 확인은 고려해야 할 작업과 관련된 경고 또는 중요한 정보와 함께 표시됩니다.</p>
+    <p><strong>확인</strong>이란, 사용자에게 방금 호출한 작업을 정말로 진행할 것인지 묻는 것입니다. 경우에 따라 확인은 고려해야 할 작업과 관련된 경고 또는 중요한 정보와 함께 표시됩니다.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
-    <p><strong>승인하기</strong>란, 사용자에게 방금 호출한 작업이 완료되었음을 알리는 텍스트를 표시하는 것입니다. 이는 시스템이 수행하는 암시적인 작업에 대한 불확실성을 제거해 줍니다. 경우에 따라 승인은 작업의 실행을 취소하는 옵션과 함께 표시됩니다.</p>
+    <p><strong>승인</strong>이란, 사용자에게 방금 호출한 작업이 완료되었음을 알리는 텍스트를 표시하는 것입니다. 이는 시스템이 수행하는 암시적인 작업에 대한 불확실성을 제거해 줍니다. 경우에 따라 승인은 작업의 실행을 취소하는 옵션과 함께 표시됩니다.</p>
   </div>
 </div>
 
-<p>이런 방식의 사용자와의 소통은 이미 일어난 일이나 일어날 일에 대한 불확실성을 완화시키는 데 도움이 될 수 있습니다. 또한, 확인하기 또는 승인하기는 사용자가 후회할지도 모르는 실수를 미연에 방지합니다.</p>
+<p>이런 방식의 사용자와의 소통은 이미 일어난 일이나 일어날 일에 대한 불확실성을 완화시키는 데 도움이 될 수 있습니다. 또한, 확인 또는 승인은 사용자가 후회할지도 모르는 실수를 미연에 방지합니다.</p>
 
-<h2>사용자 작업을 확인 또는 승인하기 적절한 경우</h2>
+<h2>사용자 작업 확인 또는 승인이 적절한 경우</h2>
 <p>모든 작업에 확인 또는 승인이 적합한 것은 아닙니다. 다음 순서도를 참고하여 디자인을 결정하는 데 도움을 받으세요.</p>
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
-<h2>확인하기</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<h2>확인</h2>
+<div class="cols">
+  <div class="col-6">
     <h4>예: Google Play 도서</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>이 예에서는 사용자가 Google Play 라이브러리에서 도서 삭제를 요청했습니다. 이 작업을 확인하기 위해 <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">경고</a>가 나타납니다. 왜냐하면 해당 도서를 더 이상 어떠한 기기에서도 이용할 수 없다는 것을 알려야 하기 때문입니다.</p>
     <p>확인 대화 상자를 작성할 때, 요청된 작업을 반향하여 제목을 의미 있게 만듭니다.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>예: Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>확인을 두 개의 버튼을 포함한 경고로 표시할 필요는 없습니다. Android Beam을 시작하면 사용자에게 공유할 콘텐츠를 터치하라는 메시지가 표시됩니다(이 예의 경우 사진). 진행하지 않기로 결정한 경우에는 휴대폰에서 벗어나면 됩니다.</p>
   </div>
 </div>
 
-<h2>승인하기</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<h2>승인</h2>
+<div class="cols">
+  <div class="col-6">
     <h4>예: 방치된 Gmail 초안 저장</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>이 예에서는 사용자가 Gmail의 메일 작성 화면에서 뒤로 또는 위로 탐색을 수행하면 예상치 못한 일이 일어나는데, 그건 바로 현재 초안이 자동으로 저장되는 것입니다. 승인은 알림 메시지 형식으로 나타납니다. 그리고 몇 초 후 사라집니다.</p>
     <p>이때, 저장이 사용자가 아닌 앱에 의해 이뤄졌기 때문에 실행 취소는 적합하지 않습니다. 그리고 초안 목록으로 이동하면 쉽고 빠르게 메일 작성을 재개할 수 있습니다.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>예: Gmail 대화 삭제</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>사용자가 Gmail 목록에서 대화를 삭제하면, 승인이 실행 취소 옵션과 함께 표시됩니다. 승인은 사용자가 목록을 스크롤하는 등의 관련 없는 작업을 수행하기 전까지 그대로 남아 있습니다.</p>
@@ -53,14 +53,14 @@
 </div>
 
 <h2>확인 또는 승인이 필요 없는 경우</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>예: +1 누르기</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>확인이 필요 없습니다</strong>. 사용자가 실수로 +1을 누른 경우, 별문제가 되지 않습니다. 버튼을 다시 터치하여 해당 작업의 실행을 취소하면 됩니다.</p>
     <p><strong>승인이 필요 없습니다</strong>. 사용자는 +1 버튼이 바운스되고 빨간색으로 바뀌는 것을 볼 수 있습니다. 이는 매우 분명한 신호입니다.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>예: 홈 화면에서 앱 제거하기</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>확인이 필요 없습니다</strong>. 이는 의도적인 작업으로, 사용자는 상대적으로 크고 고립된 대상으로 항목을 끌어다 놓을 것입니다. 따라서 실수가 발생할 가능성이 매우 낮습니다. 하지만 사용자가 이 결정을 후회하는 경우, 다시 복구하는 데는 몇 초면 됩니다.</p>
diff --git a/docs/html-intl/intl/ko/design/patterns/navigation.jd b/docs/html-intl/intl/ko/design/patterns/navigation.jd
index 8e5c30b..5f335d5 100644
--- a/docs/html-intl/intl/ko/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/ko/design/patterns/navigation.jd
@@ -1,4 +1,4 @@
-page.title=뒤로 및 위로 탐색 기능이 포함된 탐색
+page.title=Back 탐색과 Up 탐색
 page.tags="navigation","activity","task","up navigation","back navigation"
 page.image=/design/media/navigation_between_siblings_gmail.png
 @jd:body
@@ -6,41 +6,41 @@
 <a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
   <div>
     <h3>개발자 문서</h3>
-    <p>효과적인 탐색 구현하기</p>
+    <p>효과적인 탐색 구현</p>
   </div>
 </a>
 
 <p itemprop="description">일관적인 탐색 기능은 전반적인 사용자 환경에 필수적인 요소입니다. 일관성 없고 예상대로 진행되지 않는 기본 탐색은
 사용자에게 많은 실망을 줍니다. Android 3.0에서는
-글로벌 탐색 동작에 중요한 변경 사항을 도입했습니다. 뒤로 및 위로 탐색에 대한
+글로벌 탐색 동작에 중요한 변경 사항을 도입했습니다. Back 및 Up 탐색에 대한
 가이드라인을 꼼꼼히 따르면 사용자가 예상 가능하고 신뢰할 수 있는 탐색 기능이 탑재된 앱을 만들 수 있습니다.</p>
-<p>Android 2.3 이하 버전에서는
-앱 내 탐색 기능을 지원하기 위해 시스템의 <em>뒤로</em> 버튼에 의존했습니다. Android 3.0에서는 작업 모음을 도입함으로써 앱 아이콘 및 왼쪽 방향 캐럿으로 이루어진 2차 탐색 메커니즘인
-<em>위로</em> 버튼이 추가되었습니다.</p>
+<p>Android 2.3 이하 버전에서는 앱 내 탐색 기능을 지원하기 위해 시스템의 <em>Back</em> 버튼에
+의존했습니다. Android 3.0에서는 작업 모음을 도입함으로써 앱 아이콘 및 왼쪽 방향 캐럿으로 이루어진
+2차 탐색 메커니즘인<em>Up</em> 버튼이 추가되었습니다.</p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
-<h2 id="up-vs-back">위로 및 뒤로 비교</h2>
+<h2 id="up-vs-back">Up과 Back</h2>
 
-<p>위로 버튼은 화면
+<p>Up 버튼은 화면
 간의 계층적 관계를 기반으로 앱 내에서 탐색할 때 사용됩니다. 예를 들어, 화면 A에 표시된 항목 목록에서 항목을 선택하면 항목에 대한 세부 정보를 표시하는 화면 B로 이동하게 되는데, 이때
 화면 B는 화면 A로
-돌아가는 위로 버튼을 제공해야 합니다.</p>
-<p>화면이 앱의 최상단에 있는 경우(즉, 앱의 홈인 경우), 위로
+돌아가는 Up 버튼을 제공해야 합니다.</p>
+<p>화면이 앱의 최상단에 있는 경우(즉, 앱의 홈인 경우), Up
 버튼이 표시되지 않아야 합니다.</p>
 
-<p>시스템의 뒤로 버튼은 사용자가 최근에 작업한 화면
+<p>시스템의 Back 버튼은 사용자가 최근에 작업한 화면
 기록을 역순으로 탐색할 때 사용됩니다. 일반적으로 이 버튼은 앱의 계층 구조가 아닌 화면
 간의 일시적인 관계를 기반으로 합니다.</p>
 
 <p>또한, 앞서 본 화면이 현재 화면의 계층적 상위 화면일 경우
-뒤로 버튼을 누르는 것과 위로 버튼을 누르는 것의 결과가 동일하며, 이는 흔하게
-발생하는 동작입니다. 하지만 사용자가 앱 내에 머무는 위로 버튼과 달리, 뒤로
+Back 버튼을 누르는 것과 Up 버튼을 누르는 것의 결과가 동일하며, 이는 흔하게
+발생하는 동작입니다. 하지만 사용자가 앱 내에 머무는 Up 버튼과 달리, Back
 버튼을 누르면 홈 화면 또는 다른 앱으로 돌아갈 수 있습니다.</p>
 
 <img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
 
-<p>뒤로 버튼은 화면 간 탐색과 직접적으로 관련 없는 몇 가지 동작도 지원합니다.
+<p>Back 버튼은 화면 간 탐색과 직접적으로 관련 없는 몇 가지 동작도 지원합니다.
 </p>
 <ul>
 <li>부동 창 해제(대화 상자, 팝업)</li>
@@ -49,13 +49,13 @@
 </ul>
 <h2 id="within-app">앱 내 탐색</h2>
 
-<h4>진입 지점이 여러 개인 화면으로 이동하기</h4>
+<h4>여러 진입 지점을 통한 화면 탐색</h4>
 <p>일부 화면은 앱의 계층 구조 내에서 엄격한 위치를 가지고 있지 않는 경우가 있으며, 이 경우 여러 진입 지점을
 통해서 접근할 수 있습니다. 예를 들어 설정 화면은 앱
-내의 다른 어떤 화면에서도 접근이 가능합니다. 이러한 경우, 위로 버튼을 누르면 뒤로 버튼과
-동일하게 참조하는 화면으로 돌아가게 됩니다.</p>
-<h4>화면 내에서 뷰 변경하기</h4>
-<p>화면의 뷰 옵션 변경은 위로 또는 뒤로 버튼의 동작을 변경하지 않습니다. 이는 화면이 앱 계층 구조 내에서 여전히 동일한 위치에
+내의 다른 어떤 화면에서도 접근이 가능합니다. 이러한 경우, Up 버튼을 누르면 Back 버튼과 동일하게
+참조하는 화면으로 돌아가게 됩니다.</p>
+<h4>화면 내에서 뷰 변경</h4>
+<p>화면의 뷰 옵션 변경은 Up 또는 Back 버튼의 동작을 변경하지 않습니다. 이는 화면이 앱 계층 구조 내에서 여전히 동일한 위치에
 있고, 어떠한 탐색 기록도 새로 생성되지 않기 때문입니다.</p>
 <p>이러한 뷰 변경의 예는 다음과 같습니다.</p>
 <ul>
@@ -70,21 +70,21 @@
 항목으로 직접 이동할 수 있도록 지원하는 것이 바람직한
 경우도 있습니다. 예를 들어 Gmail의 대화에서 왼쪽 또는 오른쪽으로 간단하게 스와이프하여 동일한 받은 편지함에 있는 신규 또는 이전 메일을
 볼 수 있습니다. 화면 내에서 뷰를 변경하는 것과 마찬가지로,
-탐색은 위로 또는 뒤로 버튼의 동작을 바꾸지 않습니다.</p>
+탐색은 Up 또는 Back 버튼의 동작을 바꾸지 않습니다.</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
 
 <p>하지만 참조 목록으로 같이
 묶여 있지 않은 연관된 상세 뷰 사이를 탐색할 때는 주목할 만한 예외적인 상황이 발생합니다. 예를 들어, Play Store에서
 동일한 개발자가 만든 여러 앱 또는 동일한 아티스트의 여러 앨범을 탐색하는 경우가 그렇습니다. 이러한 경우, 링크를 따라갈 때마다
-기록이 생성되므로, 뒤로 버튼을 누르면 이전에 본 화면으로 이동합니다. 위로 버튼을 누르면 계속해서 이러한 연관된 화면을
+기록이 생성되므로, Back 버튼을 누르면 이전에 본 화면으로 이동합니다. Up 버튼을 누르면 계속해서 이러한 연관된 화면을
 거치지 않고 가장 최근에 본 컨테이너 화면으로 이동합니다.</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
 
 <p>상세
-뷰에 대한 지식을 바탕으로 더욱 스마트한 위로 버튼 동작을 구현할 수 있습니다. 위에서 설명한 Play Store 예를 확장하여 사용자가
-마지막으로 본 도서에서 해당 도서를 각색한 영화의 세부 정보 화면으로 이동했다고 가정해 봅니다. 그러한 경우, 위로 버튼을 누르면 사용자가 이전에 탐색한 적이 없는
+뷰에 대한 지식을 바탕으로 더욱 스마트한 Up 버튼 동작을 구현할 수 있습니다. 위에서 설명한 Play Store 예를 확장하여 사용자가
+마지막으로 본 도서에서 해당 도서를 각색한 영화의 세부 정보 화면으로 이동했다고 가정해 봅니다. 그러한 경우, Up 버튼을 누르면 사용자가 이전에 탐색한 적이 없는
 컨테이너(영화)로 이동할 수 있습니다.</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
@@ -95,22 +95,22 @@
 있는 화면으로 바로 이동할 수 있게 할 수 있습니다. 예를 들어, Gmail의 받은 편지함 위젯과 새 메시지 알림은
 모두 받은 편지함 화면을 건너뛰고 사용자가 해당 메일로 바로 이동할 수 있게 해줍니다.</p>
 
-<p>이러한 두 경우 모두 위로 버튼을 다음과 같이 처리합니다.</p>
+<p>이러한 두 경우 모두 Up 버튼을 다음과 같이 처리합니다.</p>
 
 <ul>
 <li><em>일반적으로 목적지 화면이
-앱 내의 특정 화면에서 출발한 경우</em>, 위로 버튼은 해당 화면으로 이동해야 합니다.</li>
-<li><em>그 외의 경우</em>, 위로 버튼은 앱의 최상위("홈") 화면으로 이동해야 합니다.</li>
+앱 내의 특정 화면에서 출발한 경우</em>, Up 버튼은 해당 화면으로 이동해야 합니다.</li>
+<li><em>그 외의 경우</em>, Up 버튼은 앱의 최상위("홈") 화면으로 이동해야 합니다.</li>
 </ul>
 
-<p>뒤로 버튼의 경우,
+<p>Back 버튼의 경우,
 앱의 최상위 화면으로 이동하는 완전한 상위 탐색 경로를 태스크의 백 스택에 삽입하여 탐색을 더욱 예측 가능하게 만들어야 합니다. 이는 앱에 어떻게 진입했는지 잊어버린
 사용자가 앱에서 나가기
 전에 앱의 최상위 화면으로 이동할 수 있게 해줍니다.</p>
 
 <p>예를 들어 Gmail의 홈 화면 위젯은 메일 작성
-화면으로 바로 진입할 수 있는 버튼을 제공합니다. 메일 작성 화면에서 위로 또는
-뒤로 버튼을 누르면 받은 편지함으로 이동하게 되고, 받은 편지함에서 뒤로 버튼을 누르면 홈으로 돌아가게 됩니다.</p>
+화면으로 바로 진입할 수 있는 버튼을 제공합니다. 메일 작성 화면에서 Up 또는
+Back 버튼을 누르면 받은 편지함으로 이동하게 되고, 받은 편지함에서 Back 버튼을 누르면 홈으로 돌아가게 됩니다.</p>
 
 <img src="{@docRoot}design/media/navigation_from_outside_back.png">
 
@@ -118,20 +118,20 @@
 
 <p>앱이 동시에 다양한 이벤트 정보를 제공해야 하는 경우, 사용자를 틈새 화면(interstitial screen)으로 이동하게 하는
 단일 알림을 사용할 수 있습니다. 이 화면은
-이러한 이벤트를 요약하고, 사용자가 앱을 세부적으로 탐색할 수 있는 경로를 제공합니다. 이러한 스타일의 알림을 <em>간접 알림</em>이라고
-합니다.</p>
+이러한 이벤트를 요약하고, 사용자가 앱을 세부적으로 탐색할 수 있는 경로를 제공합니다. 이러한 스타일의 알림을
+<em>간접 알림</em>이라고 합니다.</p>
 
 <p>기본(직접) 알림과 달리, 간접 알림의
-틈새 화면에서 뒤로 버튼을 누르면 백 스택에 다른 화면이
+틈새 화면에서 Back 버튼을 누르면 백 스택에 다른 화면이
 추가되지 않고 알림이 트리거된 지점으로 사용자를 이동시킵니다. 사용자가
-틈새 화면에서 앱으로 들어가면, 위로 버튼 및 뒤로 버튼은 위에서 설명한 바와 같이 틈새 화면으로 돌아가지 않고, 기본 알림과 마찬가지로 앱 내에서
+틈새 화면에서 앱으로 들어가면, Up 버튼 및 Back 버튼은 위에서 설명한 바와 같이 틈새 화면으로 돌아가지 않고, 기본 알림과 마찬가지로 앱 내에서
 탐색을 수행합니다.</p>
 
 <p>예를 들어 Gmail을 사용 중인 사용자가 캘린더로부터 간접 알림을 받았다고 가정해 봅니다. 해당
 알림을 터치하면 틈새 화면이 열립니다. 이 화면에는 다른
-여러 이벤트에 대한 알림도 표시됩니다. 틈새 화면에서 뒤로 버튼을 터치하면 Gmail로 돌아갑니다. 특정
+여러 이벤트에 대한 알림도 표시됩니다. 틈새 화면에서 Back 버튼을 터치하면 Gmail로 돌아갑니다. 특정
 이벤트를 터치하면 사용자를 틈새 화면에서 나오게 하여
-해당 이벤트의 세부 정보를 보여주는 완전한 캘린더 앱으로 이동하게 됩니다. 이벤트 세부 정보 화면에서 위로 버튼과 뒤로 버튼을 누르면 캘린더의 최상위 뷰로 이동하게 됩니다.</p>
+해당 이벤트의 세부 정보를 보여주는 완전한 캘린더 앱으로 이동하게 됩니다. 이벤트 세부 정보 화면에서 Up 버튼과 Back 버튼을 누르면 캘린더의 최상위 뷰로 이동하게 됩니다.</p>
 
 <img src="{@docRoot}design/media/navigation_indirect_notification.png">
 
@@ -144,20 +144,20 @@
 초대를 사용자에게 알리기 위해 이러한 스타일의 알림을 사용하며, 이 초대는 몇 초 후에 자동으로 만료됩니다.</p>
 
 <p>탐색 동작 측면에서, 팝업 알림은 간접
-알림의 틈새 화면 동작을 상당히 많이 따릅니다. 뒤로 버튼을 누르면 팝업 알림이 해제됩니다. 사용자가 팝업을
-통해 앱으로 이동하면, 위로 및 뒤로 버튼은 기본 알림의 규칙에 따라 앱 내에서
+알림의 틈새 화면 동작을 상당히 많이 따릅니다. Back 버튼을 누르면 팝업 알림이 해제됩니다. 사용자가 팝업을
+통해 앱으로 이동하면, Up 및 Back 버튼은 기본 알림의 규칙에 따라 앱 내에서
 탐색합니다.</p>
 
 <img src="{@docRoot}design/media/navigation_popup_notification.png">
 
 <h2 id="between-apps">앱 간 탐색</h2>
 
-<p>Android 시스템의 기본이 되는 강점 중 하나는 앱이
-다른 앱을 실행할 수 있다는 점이며, 이로 인해 사용자는 한 앱에서 다른 앱으로 직접 이동할 수 있습니다. 예를 들어, 사진을 캡처해야 하는
-앱은 카메라 앱을 작동시킬 수 있으며, 카메라 앱은 사진을 해당 앱으로
-돌려줍니다. 이러한 기능은 개발자와 사용자 모두에게 매우 유용합니다. 왜냐하면 개발자는 쉽게 다른 앱의
-코드를 활용할 수 있고, 사용자는 흔히 수행하는
-작업을 일관된 환경으로 즐길 수 있기 때문입니다.</p>
+<p>Android 시스템의 본질적인 강점 중 하나는 앱이 
+다른 앱을 실행할 수 있다는 점이며, 이로 인해 사용자는 한 앱에서 다른 앱으로 직접 이동할 수 있습니다. 예를 들어,
+사진을 캡처해야 하는 앱은 카메라 앱을 작동시킬 수 있으며, 카메라 앱은 사진을
+해당 앱으로 돌려줍니다. 이러한 기능은 개발자와 사용자 모두에게 매우 유용합니다.
+왜냐하면 개발자는 쉽게 다른 앱의 코드를 활용할 수 있고, 사용자는 흔히 수행하는 작업을 일관된 환경으로
+즐길 수 있기 때문입니다.</p>
 
 <p>앱 간 탐색을 이해하려면 아래에서
 설명하는 Android 프레임워크 동작을 알아야 합니다.</p>
@@ -179,9 +179,9 @@
 
 <h4>예: "공유하기"를 지원하는 앱 간에 탐색하기</h4>
 
-<p>액티비티, 태스크, 인텐트가 어떻게 같이 동작하는지 이해하려면 한 앱이 다른 앱을 사용하여 콘텐츠
-공유를 어떻게 가능하게 하는지 생각해 보세요. 예를 들어, 홈에서 Play Store 앱을 실행하면
-새로운 태스크 A가 시작됩니다(아래 그림 참조). Play Store에서 탐색하다가 홍보 도서의 세부 정보를
+<p>액티비티, 태스크, 인텐트가 어떻게 같이 동작하는지 이해하려면 앱이 어떻게 사용자가 다른 앱을 사용하여 콘텐츠를
+공유할 수 있도록 하는지 생각해 보세요. 예를 들어, 홈에서 Play 스토어 앱을 실행하면 새로운 태스크
+A가 시작됩니다(아래 그림 참조). Play 스토어에서 탐색하다가 홍보 도서의 세부 정보를
 보기 위해 터치하면, 다른 액티비티를 추가하여 태스크를 연장하는 방식으로 사용자는 동일한 태스크에 머물게 됩니다. 공유하기
 작업을 트리거하면 공유하기 인텐트를 처리하도록
 등록된 액티비티(다양한 앱에서 제공)가 나열된 목록을 보여주는 대화 상자가 표시됩니다.</p>
@@ -192,15 +192,15 @@
 태스크 A의 연장으로 Gmail의 메일 작성 액티비티가 추가됩니다. Gmail의 백그라운드에서 실행되는 자체적인 태스크가 있을 경우, 해당 태스크는 아무런
 영향도 받지 않습니다.</p>
 
-<p>메일 작성 액티비티에서 메시지를 보내거나 뒤로 버튼을 터치하면, 사용자는
-도서 세부 정보 액티비티로 돌아가게 됩니다. 뒤로 버튼을 연이어 터치하면 Play
+<p>메일 작성 액티비티에서 메시지를 보내거나 Back 버튼을 터치하면, 사용자는
+도서 세부 정보 액티비티로 돌아가게 됩니다. Back 버튼을 연이어 터치하면 Play
 Store에서 탐색한 페이지로 되돌아가게 되어 결국에는 홈 화면에 이르게 됩니다.</p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_back.png">
 
-<p>하지만 사용자가 메일 작성 액티비티에서 위로 버튼을 터치하는 것은
+<p>하지만 사용자가 메일 작성 액티비티에서 Up 버튼을 터치하는 것은
 Gmail에 남아 있고자 하는 의지를 보이는 것입니다. 따라서, 이 경우 Gmail의 대화 목록 액티비티가 표시되고, 새로운 태스크 B가 생성됩니다. 새로운 태스크는
-항상 홈에 기반을 두고 있기 때문에, 대화 목록에서 뒤로 버튼을 터치하면 홈으로 되돌아가게 됩니다.</p>
+항상 홈에 기반을 두고 있기 때문에, 대화 목록에서 Back 버튼을 터치하면 홈으로 되돌아가게 됩니다.</p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_up.png">
 
@@ -208,6 +208,6 @@
 최근 앱 화면을 통해). Gmail에 이미 백그라운드에서 실행 중인 자체적인 태스크가 있을 경우,
 해당 태스크는 태스크 B로 대체됩니다. 이전 컨텍스트는 사용자의 새로운 목적에 따라 제거됩니다.</p>
 
-<p>앱 계층 구조 내의 액티비티에서 인텐트를 처리하도록 앱에서 등록하는 경우, 위로 탐색을 지정하는 방법에 대한 지침을 확인하려면
+<p>앱 계층 구조 내의 액티비티에서 인텐트를 처리하도록 앱에서 등록하는 경우, Up 탐색을 지정하는 방법에 대한 지침을 확인하려면
 <a href="#into-your-app">홈 화면 위젯 및
 알림을 통한 앱 탐색</a>을 참조하세요.</p>
diff --git a/docs/html-intl/intl/ko/distribute/index.jd b/docs/html-intl/intl/ko/distribute/index-ko.jd
similarity index 100%
rename from docs/html-intl/intl/ko/distribute/index.jd
rename to docs/html-intl/intl/ko/distribute/index-ko.jd
diff --git a/docs/html-intl/intl/ko/index.jd b/docs/html-intl/intl/ko/index.jd
index d3d0748..8b1bfbc 100644
--- a/docs/html-intl/intl/ko/index.jd
+++ b/docs/html-intl/intl/ko/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/ko/sdk/index.jd b/docs/html-intl/intl/ko/sdk/index.jd
index 9797302..f4728c3 100644
--- a/docs/html-intl/intl/ko/sdk/index.jd
+++ b/docs/html-intl/intl/ko/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=Android Studio 및 SDK 도구 다운로드
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Android 휴대폰, 태블릿, 웨어러블, TV 등을 위한 앱을 구축하는 데 사용할 수 있는 공식 Android IDE 및 개발자 도구를 다운로드하세요.
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,15 +231,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">공식 Android IDE</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK Tools</li>
 <li>Android 6.0(Marshmallow) 플랫폼</li>
 <li>Google API를 사용하는 Android 6.0 에뮬레이터 시스템 이미지</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/ko/sdk/installing/adding-packages.jd b/docs/html-intl/intl/ko/sdk/installing/adding-packages.jd
index b70d39e..b935d87 100644
--- a/docs/html-intl/intl/ko/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/ko/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=SDK 패키지 추가하기
 
 page.tags=sdk manager
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/ko/training/material/animations.jd b/docs/html-intl/intl/ko/training/material/animations.jd
index eda949b..e8c6267 100644
--- a/docs/html-intl/intl/ko/training/material/animations.jd
+++ b/docs/html-intl/intl/ko/training/material/animations.jd
@@ -1,4 +1,4 @@
-page.title=사용자지정 애니메이션 정의
+page.title=사용자지정 애니메이션의 정의
 
 @jd:body
 
@@ -6,58 +6,75 @@
 <div id="tb">
 <h2>이 과정에서 다루는 내용</h2>
 <ol>
-  <li><a href="#Touch">터치 피드백 사용자지정</a></li>
-  <li><a href="#Reveal">Reveal Effect 사용</a></li>
-  <li><a href="#Transitions">액티비티 전환 사용자지정</a></li>
+  <li><a href="#Touch">사용자지정 터치 피드백</a></li>
+  <li><a href="#Reveal">표시 효과 사용</a></li>
+  <li><a href="#Transitions">사용자지정 액티비티 전환</a></li>
   <li><a href="#ViewState">뷰 상태 변경 애니메이트</a></li>
-  <li><a href="#AnimVector">Vector Drawable 애니메이트</a></li>
+  <li><a href="#AnimVector">벡터 드로어블 애니메이트</a></li>
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>머티어리얼 디자인에서 애니메이션은 동작에 대한 사용자 피드백을 제공하며, 사용자가 앱과 상호작용할 때 시각적 연속성을 제공합니다. 머티어리얼 테마는 버튼 및 액티비티 전환을 위한 몇 가지 기본 애니메이션을 제공합니다. Android 5.0(API 레벨 21) 이상에서는 다음과 같은 애니메이션을 사용자지정하거나 새로운 애니메이션을 만들 수 있도록 지원합니다.</p>
+<p>머티리얼 디자인에서 애니메이션은 사용자에게 자신의 동작에 대한 피드백을 제공하고, 앱과 상호작용할 때 시각적 연속성을 제공합니다.
+ 머티리얼 테마는 버튼 및 액티비티 전환을 위한 몇 가지 기본 애니메이션을 제공합니다. Android 5.0(API 레벨 21) 이상에서는 이러한 애니메이션을 사용자가 지정하거나 새로운 애니메이션을 만들 수 있습니다.
+
+</p>
 
 <ul>
 <li>터치 피드백</li>
-<li>Circular Reveal</li>
+<li>회전하며 나타나기</li>
 <li>액티비티 전환</li>
 <li>커브 모션</li>
 <li>뷰 상태 변경</li>
 </ul>
 
 
-<h2 id="Touch">터치 피드백 사용자지정</h2>
+<h2 id="Touch">사용자지정 터치 피드백</h2>
 
-<p>머티어리얼 디자인의 터치 피드백은 사용자가 UI 요소와 상호작용하는 시점에서 즉시 시각적으로 확인할 수 있습니다. 버튼의 기본 터치 피드백 애니메이션은 물결 효과를 통해 서로 다른 상태 간에 전환하는 새 {@link android.graphics.drawable.RippleDrawable} 클래스를 사용합니다.</p>
+<p>머티리얼 디자인의 터치 피드백은 사용자가 UI 요소와 상호작용하는 시점에서 즉시 시각적으로 확인할 수 있습니다.
+ 버튼의 기본 터치 피드백 애니메이션은 물결 효과를 통해 서로 다른 상태 간에 전환하는 새 {@link android.graphics.drawable.RippleDrawable} 클래스를 사용합니다.
 
-<p>대부분의 경우, 다음과 같이 뷰 배경을 지정하는 방식으로 뷰 XML에서 이 기능을 적용해야 합니다.</p>
+</p>
+
+<p>대부분의 경우, 다음과 같이 뷰 배경을 지정하는 방식으로 뷰 XML에서 이 기능을 적용해야 합니다.
+</p>
 
 <ul>
 <li>제한된 물결의 경우, <code>?android:attr/selectableItemBackground</code></li>
-<li>뷰를 넘어 확장되는 물결의 경우, <code>?android:attr/selectableItemBackgroundBorderless</code></li>
+<li>뷰를 넘어 확장되는 물결의 경우, <code>?android:attr/selectableItemBackgroundBorderless</code> 
+ 이 경우 물결이 null이 아닌 배경을 가진 뷰의 가장 가까운 상위 요소 위에 그려지고 해당 상위 요소까지로 제한됩니다.
+</li>
 </ul>
 
-<p class="note"><strong>참고:</strong> <code>selectableItemBackgroundBorderless</code>는 API 레벨 21에서 새로 도입된 특성입니다.</p>
+<p class="note"><strong>참고:</strong> <code>selectableItemBackgroundBorderless</code>는 API 레벨 21에서 새로 도입된 특성입니다.
+</p>
 
 
-<p>또는 <code>ripple</code> 요소를 사용하여 {@link android.graphics.drawable.RippleDrawable}을 XML 리소스로 정의할 수 있습니다.</p>
+<p>또는 <code>ripple</code> 요소를 사용하여 {@link android.graphics.drawable.RippleDrawable}
+을 XML 리소스로 정의할 수 있습니다.</p>
 
-<p>{@link android.graphics.drawable.RippleDrawable} 개체에 색상을 지정할 수 있습니다. 기본 터치 피드백 색상을 변경하려면 테마의 <code>android:colorControlHighlight</code> 특성을 사용합니다.</p>
+<p>{@link android.graphics.drawable.RippleDrawable} 객체에 색상을 지정할 수 있습니다. 기본 터치 피드백 색상을 변경하려면 테마의 <code>android:colorControlHighlight</code>
+특성을 사용합니다.
+</p>
 
-<p>자세한 내용은 {@link android.graphics.drawable.RippleDrawable} 클래스의 API 레퍼런스를 참조하세요.</p>
+<p>자세한 내용은 {@link
+android.graphics.drawable.RippleDrawable} 클래스의 API 레퍼런스를 참조하세요.</p>
 
 
-<h2 id="Reveal">Reveal Effect 사용</h2>
+<h2 id="Reveal">표시 효과 사용</h2>
 
-<p>Reveal 애니메이션은 UI 요소 그룹을 표시하거나 숨길 때 사용자에게 시각적 연속성을 제공합니다. {@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} 메서드를 사용하면 클리핑 서클을 애니메이트하여 뷰를 표시하거나 숨길 수 있습니다.</p>
+<p>표시 애니메이션은 UI 요소 그룹을 표시하거나 숨길 때 사용자에게 시각적 연속성을 제공합니다.
+ {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} 메서드를 사용하면 클리핑 서클을 애니메이트하여 뷰를 표시하거나 숨길 수 있습니다.
+</p>
 
-<p>이전에 보이지 않았던 뷰를 표시하려면 아래의 효과를 사용합니다.</p>
+<p>이 효과를 사용하여 이전에 보이지 않았던 뷰를 표시하려면:</p>
 
 <pre>
 // previously invisible view
@@ -79,7 +96,7 @@
 anim.start();
 </pre>
 
-<p>이전에 보였던 뷰를 숨기려면 아래의 효과를 사용합니다.</p>
+<p>이 효과를 사용하여 이전에 보였던 뷰를 숨기려면:</p>
 
 <pre>
 // previously visible view
@@ -110,7 +127,7 @@
 </pre>
 
 
-<h2 id="Transitions">액티비티 전환 사용자지정</h2>
+<h2 id="Transitions">사용자지정 액티비티 전환</h2>
 
 <!-- shared transition video -->
 <div style="width:290px;margin-left:35px;float:right">
@@ -122,19 +139,29 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>그림 1</strong> - 공유 요소를 이용한 전환.</p>
-    <em>영화를 재생하려면 기기 화면을 클릭합니다</em>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>그림 1</strong> - 
+    공유 요소를 이용한 전환.</p>
+    <em>영화를 재생하려면 기기 화면을 클릭하세요.</em>
   </div>
 </div>
 
-<p>머티어리얼 디자인 앱의 액티비티 전환은 공통 요소 간의 모션 및 변환을 통해 서로 다른 상태 간에 시각적 연결을 제공합니다. 들어가기 및 나가기 전환과 액티비티 간 공유 요소의 전환을 위한 사용자지정 애니메이션을 지정할 수 있습니다.</p>
+<p>머티리얼 디자인 앱의 액티비티 전환은 공통 요소 간의 모션 및 변환을 통해 서로 다른 상태 간에 시각적 연결을 제공합니다.
+ 들어가기 및 나가기 전환과 액티비티 간 공유 요소의 전환을 위한 사용자지정 애니메이션을 지정할 수 있습니다.
+</p>
 
 <ul>
-<li><strong>들어가기</strong> 전환은 액티비티의 뷰가 장면에 들어가는 방식을 결정합니다. 예를 들어 <em>explode</em> 들어가기 전환의 경우, 뷰가 밖에서 장면 속으로 들어가며 화면의 중앙으로 향합니다.</li>
+<li><strong>들어가기</strong> 전환은 액티비티에서 뷰가 장면 속으로 들어가는 방식을 결정합니다. 예를 들어, <em>explode</em> 들어가기 전환의 경우, 뷰가 밖에서 장면 속으로 들어가며 화면의 중앙으로 향합니다.
 
-<li><strong>나가기</strong> 전환은 액티비티의 뷰가 장면을 나가는 방식을 결정합니다. 예를 들어 <em>explode</em> 나가기 전환의 경우, 뷰가 화면의 중앙에서 장면을 벗어납니다.</li>
+</li>
 
-<li><strong>공유 요소</strong> 전환은 두 액티비티 간에 공유되는 뷰가 이 두 액티비티 간에 전환되는 방식을 결정합니다. 예를 들어 두 액티비티에서 사용하는 동일한 이미지가 다른 위치에 있고 크기도 다를 경우, <em>changeImageTransform</em> 공유 요소 전환은 두 액티비티 간에 이미지를 매끄럽게 변환하고 배율을 조정합니다.</li>
+<li><strong>나가기</strong> 전환은 액티비티의 뷰가 장면을 나가는 방식을 결정합니다. 예를 들어, 나가기 전환으로 <em>explode</em>를 지정하면 뷰가 중앙에서부터 화면을 벗어납니다.
+
+</li>
+
+<li><strong>공유 요소</strong> 전환은 두 액티비티 간에 공유되는 뷰가 이 두 액티비티 간에 전환되는 방식을 결정합니다.
+ 예를 들어 두 액티비티에서 사용하는 동일한 이미지가 다른 위치에 있고 크기도 다를 경우, <em>changeImageTransform</em> 공유 요소 전환은 두 액티비티 간에 이미지를 매끄럽게 변환하고 배율을 조정합니다.
+
+</li>
 </ul>
 
 <p>Android 5.0(API 레벨 21)은 다음 들어가기 및 나가기 전환을 지원합니다.</p>
@@ -145,7 +172,9 @@
 <li><em>fade</em> - 불투명도를 변경하여 뷰를 추가하거나 장면에서 제거합니다.</li>
 </ul>
 
-<p>{@link android.transition.Visibility} 클래스를 확장하는 모든 전환은 들어가기 또는 나가기 전환으로 지원됩니다. 자세한 내용은 {@link android.transition.Transition} 클래스의 API 레퍼런스를 참조하세요.</p>
+<p>{@link android.transition.Visibility} 클래스를 확장하는 모든 전환은 들어가기 또는 나가기 전환으로 지원됩니다.
+ 자세한 내용은
+{@link android.transition.Transition} 클래스의 API 레퍼런스를 참조하세요.</p>
 
 <p>Android 5.0(API 레벨 21)은 다음의 공유 요소 전환도 지원합니다.</p>
 
@@ -156,7 +185,8 @@
 <li><em>changeImageTransform</em> - 대상 이미지의 크기 및 배율 변경을 애니메이트합니다.</li>
 </ul>
 
-<p>앱에서 액티비티 전환을 활성화할 경우, 들어가기 및 나가기 액티비티 간에 기본 크로스페이딩(cross-fading) 전환이 활성화됩니다.</p>
+<p>앱에서 액티비티 전환을 활성화할 경우, 들어가기 및 나가기 액티비티 간에 기본 크로스페이딩(cross-fading) 전환이 활성화됩니다.
+</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
@@ -165,7 +195,9 @@
 
 <h3>사용자지정 전환 지정</h3>
 
-<p>먼저 머티어리얼 테마에서 상속한 스타일을 정의할 때, <code>android:windowContentTransitions</code> 특성을 통해 창 콘텐츠 전환을 활성화합니다. 들어가기, 나가기 및 공유 요소 전환도 스타일 정의에서 지정할 수 있습니다.</p>
+<p>먼저 머티리얼 테마에서 상속하는 스타일을 정의할 때, <code>android:windowContentTransitions</code>
+특성을 통해 창 콘텐츠 전환을 활성화합니다. 들어가기, 나가기 및 공유 요소 전환도 스타일 정의에서 지정할 수 있습니다.
+</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p><code>changeImageTransform</code> 요소는 {@link android.transition.ChangeImageTransform} 클래스에 해당합니다. 자세한 내용은 {@link android.transition.Transition}의 API 레퍼런스를 참조하세요.</p>
+<p><code>changeImageTransform</code> 요소는
+{@link android.transition.ChangeImageTransform} 클래스에 해당합니다. 자세한 내용은 {@link android.transition.Transition}의 API 레퍼런스를 참조하세요.
+</p>
 
-<p>코드에서 창 콘텐츠 전환을 활성화할 경우,{@link android.view.Window#requestFeature Window.requestFeature()} 메서드를 호출합니다.</p>
+<p>코드에서 창 콘텐츠 전환을 활성화하려면
+{@link android.view.Window#requestFeature Window.requestFeature()} 메서드를 호출합니다.</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,33 +241,47 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>코드에서 전환을 지정하려면, {@link android.transition.Transition} 개체를 사용하여 다음과 같은 메서드를 호출합니다.</p>
+<p>코드에서 전환을 지정하려면 {@link
+android.transition.Transition} 객체를 사용하여 다음과 같은 메서드를 호출합니다.</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>{@link android.view.Window#setExitTransition setExitTransition()} 및 {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 메서드는 호출하는 액티비티의 나가기 전환을 정의합니다. {@link android.view.Window#setEnterTransition setEnterTransition()} 및 {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} 메서드는 호출되는 액티비티의 들어가기 전환을 정의합니다.</p>
+<p>{@link android.view.Window#setExitTransition setExitTransition()} 및 {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 메서드는 호출하는 액티비티의 나가기 전환을 정의합니다.
+ {@link android.view.Window#setEnterTransition
+setEnterTransition()} 및 {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} 메서드는 호출되는 액티비티의 들어가기 전환을 정의합니다.</p>
 
-<p>전환 효과를 극대화하려면 호출하는 액티비티와 호출되는 액티비티 모두에서 창 콘텐츠 전환을 활성화해야 합니다. 그렇지 않으면 호출하는 액티비티가 나가기 전환을 시작하지만, 배율 또는 페이드와 같은 창 전환이 나타납니다.</p>
+<p>전환 효과를 극대화하려면 호출하는 액티비티와 호출되는 액티비티 모두에서 창 콘텐츠 전환을 활성화해야 합니다.
+ 그렇지 않으면 호출하는 액티비티가 나가기 전환을 시작하지만, 배율 또는 페이드와 같은 창 전환이 나타납니다.
+</p>
 
-<p>들어가기 전환을 최대한 빨리 시작하려면 호출되는 액티비티에서 {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} 메서드를 사용하세요. 그러면 더욱 인상적인 들어가기 전환이 가능합니다.</p>
+<p>들어가기 전환을 최대한 빨리 시작하려면 호출되는 액티비티에서 
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+ 메서드를 사용하세요. 그러면 더욱 인상적인 들어가기 전환이 가능합니다.</p>
 
 <h3>전환을 사용하여 액티비티 시작</h3>
 
-<p>전환을 활성화하고 액티비티에 대해 나가기 전환을 설정한 경우, 다음과 같이 다른 액티비티를 시작하면 전환이 활성화됩니다.</p>
+<p>전환을 활성화하고 액티비티에 대해 나가기 전환을 설정한 경우, 다음과 같이 다른 액티비티를 시작하면 전환이 활성화됩니다.
+</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>두 번째 액티비티에 대해 들어가기 전환을 설정한 경우, 액티비티가 시작되면 전환도 활성화됩니다. 다른 액티비티를 시작할 때 전환을 비활성화하려면 <code>null</code> 옵션 번들을 제공하세요.</p>
+<p>두 번째 액티비티에 대해 들어가기 전환을 설정한 경우, 액티비티가 시작되면 전환도 활성화됩니다.
+ 다른 액티비티를 시작할 때 전환을 비활성화하려면 <code>null</code> 옵션 번들을 제공하십시오.
+</p>
 
-<h3>공유 요소가 있는 액티비티 시작</h3>
+<h3>공유 요소를 가진 액티비티 시작</h3>
 
 <p>공유 요소를 가진 두 액티비티 간에 화면 전환 애니메이션을 만들려면:</p>
 
@@ -240,8 +289,10 @@
 <li>테마에서 창 콘텐츠 전환을 활성화합니다.</li>
 <li>스타일에서 공유 요소 전환을 지정합니다.</li>
 <li>전환을 XML 리소스로 정의합니다.</li>
-<li><code>android:transitionName</code> 특성을 사용하여 두 레이아웃의 공유 요소에 공통 이름을 지정합니다.</li>
-<li>{@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()} 메서드를 사용합니다.</li>
+<li>
+ <code>android:transitionName</code> 특성을 사용하여 두 레이아웃의 공유 요소에 공통 이름을 지정합니다.</li>
+<li>{@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()} 메서드를 사용합니다.</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>코드에서 생성하는 공유된 동적 뷰의 경우, {@link android.view.View#setTransitionName View.setTransitionName()} 메서드를 사용하여 두 액티비티의 공통 요소 이름을 지정합니다.</p>
+<p>코드에서 생성하는 공유된 동적 뷰의 경우, 
+{@link android.view.View#setTransitionName View.setTransitionName()} 메서드를 사용하여 두 액티비티의 공통 요소 이름을 지정합니다.
+</p>
 
-<p>두 번째 액티비티 종료 시, 장면 전환 애니메이션을 되돌리려면 {@link android.app.Activity#finish Activity.finish()} 대신 {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} 메서드를 호출합니다.</p>
+<p>두 번째 액티비티 종료 시, 장면 전환 애니메이션을 되돌리려면 {@link android.app.Activity#finish Activity.finish()} 대신
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+ 메서드를 호출합니다.</p>
 
 <h3>여러 공유 요소를 가진 액티비티 시작</h3>
 
-<p>2개 이상의 공유 요소를 가진 두 액티비티 간에 적용할 장면 전환 애니메이션을 만들려면 <code>android:transitionName</code> 특성으로(또는 두 액티비티에서 {@link android.view.View#setTransitionName View.setTransitionName()} 메서드를 사용하여) 두 레이아웃의 공유 요소를 정의하고 다음과 같이 {@link android.app.ActivityOptions} 개체를 생성합니다.</p>
+<p>2개 이상의 공유 요소를 가진 두 액티비티 간에 적용할 장면 전환 애니메이션을 만들려면 <code>android:transitionName</code>
+특성으로 (또는 두 액티비티에서{@link android.view.View#setTransitionName View.setTransitionName()} 메서드를 사용하여) 두 레이아웃의 공유 요소를 정의하고 다음과 같이 {@link android.app.ActivityOptions} 개체를 생성합니다.
+
+</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">커브 모션 사용</h2>
 
-<p>머티어리얼 디자인의 애니메이션은 시간 보간 및 공간 이동 패턴에서 커브를 사용합니다. Android 5.0(API 레벨 21) 이상에서 애니메이션의 사용자지정 타이밍 커브 및 커브 모션 패턴을 정의할 수 있습니다.</p>
+<p>머티리얼 디자인의 애니메이션은 시간 보간 및 공간 이동 패턴에서 커브를 사용합니다.
+ Android 5.0(API 레벨 21) 이상에서 애니메이션의 사용자지정 타이밍 커브 및 커브 모션 패턴을 정의할 수 있습니다.
+</p>
 
-<p>{@link android.view.animation.PathInterpolator} 클래스는 베지어 커브나 {@link android.graphics.Path} 개체를 기반으로 하는 새 보간기(interpolator)입니다. 보간기는 생성자 인수를 사용하여 지정된 기준점 (0,0) 및 (1,1)과 제어점으로 모션 커브를 1x1 정사각형 안에 지정합니다. 또한 경로 보간기를 XML 리소스로 정의할 수도 있습니다.</p>
+<p>{@link android.view.animation.PathInterpolator} 클래스는 베지어 곡선 또는 {@link android.graphics.Path} 개체를 기반으로 하는 새 보간기입니다.
+ 이 보간기는 생성자 인수를 사용하여 지정된 기준점 (0,0) 및 (1,1)과 제어점으로 모션 커브를 1x1 정사각형 안에 지정합니다.
+
+ 또한 경로 보간기를 XML 리소스로 정의할 수도 있습니다.</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>시스템은 머티어리얼 디자인 사양에서 세 가지 기본 커브에 대한 XML 리소스를 제공합니다.</p>
+<p>시스템은 머티리얼 디자인 사양에서 세 가지 기본 커브에 대한 XML 리소스를 제공합니다.
+</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>{@link android.view.animation.PathInterpolator} 개체를 {@link android.animation.Animator#setInterpolator Animator.setInterpolator()} 메서드에 전달할 수 있습니다.</p>
+<p>{@link android.view.animation.PathInterpolator} 객체를 {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()} 메서드에 전달할 수 있습니다.</p>
 
-<p>{@link android.animation.ObjectAnimator} 클래스에는 한 번에 2개 이상의 속성을 사용하여 경로를 따라 좌표를 애니메이트할 수 있는 새 생성자가 있습니다. 예를 들어 다음 애니메이터는 뷰의 X 및 Y 속성을 애니메이트하기 위해 {@link android.graphics.Path} 개체를 사용합니다.</p>
+<p>{@link android.animation.ObjectAnimator} 클래스에는 한 번에 2개 이상의 속성을 사용하여 경로를 따라 좌표를 애니메이트할 수 있는 새 생성자가 있습니다.
+ 예를 들어 다음 애니메이터는 뷰의 X 및 Y 속성을 애니메이트하기 위해 {@link android.graphics.Path} 객체를 사용합니다.
+</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -317,7 +384,9 @@
 
 <h2 id="ViewState">뷰 상태 변경 애니메이트</h2>
 
-<p>{@link android.animation.StateListAnimator} 클래스를 사용하면 뷰의 상태가 변경될 때 실행되는 애니메이터를 정의할 수 있습니다. 다음 예는 {@link android.animation.StateListAnimator}를 XML 리소스로 정의하는 방법을 보여줍니다.</p>
+<p>{@link android.animation.StateListAnimator} 클래스를 사용하면 뷰의 상태가 변경될 때 실행되는 애니메이터를 정의할 수 있습니다.
+ 다음 예는 {@link
+android.animation.StateListAnimator}를 XML 리소스로 정의하는 방법을 보여줍니다.</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>사용자지정 뷰 상태 애니메이션을 뷰에 첨부하려면 이 예와 같이 XML 리소스 파일의 <code>selector</code> 요소를 사용하여 애니메이터를 정의한 후에 <code>android:stateListAnimator</code> 특성을 통해 뷰에 할당합니다. 코드에서 뷰에 상태 목록 애니메이터를 할당하려면 {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} 메서드를 사용하고, {@link android.view.View#setStateListAnimator View.setStateListAnimator()} 메서드로 애니메이터를 뷰에 할당합니다.</p>
+<p>사용자지정 뷰 상태 애니메이션을 뷰에 첨부하려면 이 예와 같이 XML 리소스 파일의 
+<code>selector</code> 요소를 사용하여 애니메이터를 정의한 후에 <code>android:stateListAnimator</code> 특성을 통해 뷰에 할당합니다.
+ 코드에서 뷰에 상태 목록 애니메이터를 할당하려면 {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} 메서드를 사용하고,
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()} 메서드로 애니메이터를 뷰에 할당합니다.
+</p>
 
-<p>머티어리얼 테마를 확장하는 테마의 경우, 버튼은 기본적으로 Z 애니메이션을 가집니다. 버튼에서 이러한 동작을 피하려면 <code>android:stateListAnimator</code> 특성을 <code>@null</code>로 설정합니다.</p>
+<p>머티리얼 테마를 확장하는 테마의 경우, 버튼은 기본적으로 Z 애니메이션을 가집니다. 버튼에서 이러한 동작을 피하려면 <code>android:stateListAnimator</code> 특성을
+<code>@null</code>로 설정합니다.
+</p>
 
-<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 클래스를 사용하면 연관된 뷰의 상태 변경 사이에 애니메이션을 보여주는 Drawable을 생성할 수 있습니다. Android 5.0의 일부 시스템 위젯은 이러한 애니메이션을 기본적으로 사용합니다. 다음 예는 {@link android.graphics.drawable.AnimatedStateListDrawable}을 XML 리소스로 정의하는 방법을 보여줍니다.</p>
+<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 클래스를 사용하면 연관된 뷰의 상태 변경 사이에 애니메이션을 보여주는 Drawable을 생성할 수 있습니다.
+ Android 5.0의 일부 시스템 위젯은 이러한 애니메이션을 기본적으로 사용합니다.
+ 다음 예는 {@link android.graphics.drawable.AnimatedStateListDrawable}를 XML 리소스로 정의하는 방법을 보여줍니다.
+</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -377,21 +456,30 @@
 </pre>
 
 
-<h2 id="AnimVector">Vector Drawable 애니메이트</h2>
+<h2 id="AnimVector">벡터 드로어블 애니메이트</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Vector Drawable</a>은 정의를 잃지 않고 확대할 수 있습니다. {@link android.graphics.drawable.AnimatedVectorDrawable} 클래스를 사용하면 Vector Drawable의 속성을 애니메이트할 수 있습니다.</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">벡터 드로어블</a>은 정의를 잃지 않고 확대할 수 있습니다.
+ {@link android.graphics.drawable.AnimatedVectorDrawable}
+클래스를 사용하면 Vector Drawable의 속성을 애니메이트할 수 있습니다.</p>
 
-<p>일반적으로 애니메이트된 Vector Drawable은 다음 3개의 XML 파일에서 정의합니다.</p>
+<p>일반적으로 애니메이트된 벡터 드로어블은 다음 3개의 XML 파일에서 정의합니다.</p>
 
 <ul>
-<li><code>res/drawable/</code>의 <code>&lt;vector&gt;</code> 요소를 가진 Vector Drawable</li>
-<li><code>res/drawable/</code>의 <code>&lt;animated-vector&gt;</code> 요소를 가진 애니메이트된 Vector Drawable</li>
-<li><code>res/anim/</code>의 <code>&lt;objectAnimator&gt;</code> 요소를 가진 하나 이상의 개체 애니메이터</li>
+<li>
+<code>res/drawable/</code>의 <code>&lt;vector&gt;</code> 요소를 가진 벡터 드로어블</li>
+<li>
+<code>res/drawable/</code>의 <code>&lt;animated-vector&gt;</code> 요소를 가진 애니메이트된 벡터 드로어블</li>
+<li>
+<code>res/anim/</code>의 <code>&lt;objectAnimator&gt;</code> 요소를 가진 하나 이상의 객체 애니메이터</li>
 </ul>
 
-<p>애니메이트된 Vector Drawable은 <code>&lt;group&gt;</code> 및 <code>&lt;path&gt;</code> 요소의 특성을 애니메이트할 수 있습니다. <code>&lt;group&gt;</code> 요소는 경로 또는 하위 그룹 집합을 정의하며, <code>&lt;path&gt;</code> 요소는 그릴 경로를 정의합니다.</p>
+<p>애니메이트된 벡터 드로어블은 <code>&lt;group&gt;</code> 및
+<code>&lt;path&gt;</code> 요소의 특성을 애니메이트할 수 있습니다. <code>&lt;group&gt;</code> 요소는 경로 또는 하위 그룹 집합을 정의하며, <code>&lt;path&gt;</code> 요소는 그릴 경로를 정의합니다.
+</p>
 
-<p>애니메이트할 Vector Drawable을 정의하는 경우, 애니메이터 정의에서 참조할 수 있도록 <code>android:name</code> 특성을 사용하여 그룹 및 경로에 고유한 이름을 할당합니다. 예:</p>
+<p>애니메이트할 벡터 드로어블을 정의하는 경우, 애니메이터 정의에서 참조할 수 있도록 <code>android:name</code>
+특성을 사용하여 그룹 및 경로에 고유한 이름을 할당합니다.
+ 예:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>애니메이트된 Vector Drawable 정의는 Vector Drawable의 그룹 및 경로를 이름으로 참조합니다.</p>
+<p>애니메이트된 벡터 드로어블 정의는 벡터 드로어블의 그룹 및 경로를 이름으로 참조합니다.
+</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>애니메이션 정의는 {@link android.animation.ObjectAnimator} 또는 {@link android.animation.AnimatorSet} 개체를 나타냅니다. 이 예의 첫 번째 애니메이터는 대상 그룹을 360도 회전합니다.</p>
+<p>애니메이션 정의는 {@link android.animation.ObjectAnimator} 또는 {@link
+android.animation.AnimatorSet} 객체를 나타냅니다. 이 예의 첫 번째 애니메이터는 대상 그룹을 360도 회전합니다.
+</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>두 번째 애니메이터는 Vector Drawable의 경로를 다른 모양으로 모핑합니다. 두 경로 모두 모핑이 가능해야 하며, 같은 수의 명령어와 각 명령어에 대해 같은 수의 매개변수가 있어야 합니다.</p>
+<p>두 번째 애니메이터는 벡터 드로어블의 경로를 다른 모양으로 모핑합니다.
+ 두 경로 모두 모핑이 가능해야 하며, 같은 수의 명령어와 각 명령어에 대해 같은 수의 매개변수가 있어야 합니다.
+</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>자세한 내용은 {@link android.graphics.drawable.AnimatedVectorDrawable}의 API 레퍼런스를 참조하세요.</p> 
\ No newline at end of file
+<p>자세한 내용은 {@link
+android.graphics.drawable.AnimatedVectorDrawable}의 API 레퍼런스를 참조하세요.</p>
diff --git a/docs/html-intl/intl/ko/training/material/compatibility.jd b/docs/html-intl/intl/ko/training/material/compatibility.jd
index a712d1b..266cd7c 100644
--- a/docs/html-intl/intl/ko/training/material/compatibility.jd
+++ b/docs/html-intl/intl/ko/training/material/compatibility.jd
@@ -13,54 +13,75 @@
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>머티어리얼 테마 및 사용자지정 액티비티 전환과 같은 일부 머티어리얼 디자인 기능은 Android 5.0(API 레벨 21) 이상에서만 이용할 수 있습니다. 그러나 머티어리얼 디자인을 지원하는 기기에서 실행할 경우 이러한 기능을 사용하면서도 이전 버전의 Android를 실행하는 기기와도 호환되도록 앱을 디자인할 수 있습니다.</p>
+<p>머티리얼 테마 및 사용자지정 액티비티 전환과 같은 일부 머티리얼 디자인 기능은 Android 5.0(API 레벨 21) 이상에서만 이용할 수 있습니다.
+ 그러나 머티리얼 디자인을 지원하는 기기에서 실행할 경우 이러한 기능을 사용하면서도 이전 버전의 Android를 실행하는 기기와도 호환되도록 앱을 디자인할 수 있습니다.
+
+</p>
 
 
 <h2 id="Theme">대체 스타일 정의</h2>
 
-<p>머티어리얼 테마를 지원하는 기기에서 해당 테마를 사용하고, 이전 버전의 Android를 실행하는 기기에서 구버전의 테마로 되돌리도록 앱을 구성할 수 있습니다.</p>
+<p>머티리얼 테마를 지원하는 기기에서 해당 테마를 사용하고, 이전 버전의 Android를 실행하는 기기에서 구버전의 테마로 되돌리도록 앱을 구성할 수 있습니다.
+</p>
 
 <ol>
-<li><code>res/values/styles.xml</code>에서 구버전의 테마에서 상속된 테마(Holo 등)를 정의합니다.</li>
-<li><code>res/values-v21/styles.xml</code>에서 머티어리얼 테마에서 상속된 같은 이름을 가진 테마를 정의합니다.</li>
+<li>
+<code>res/values/styles.xml</code>에서 구버전의 테마에서 상속된 테마(Holo 등)를 정의합니다.</li>
+<li>
+<code>res/values-v21/styles.xml</code>에서 머티리얼 테마에서 상속된, 같은 이름을 가진 테마를 정의합니다.</li>
 <li>매니페스트 파일에서 이 테마를 앱의 테마로 설정합니다.</li>
 </ol>
 
-<p class="note"><strong>참고:</strong> 앱이 머티어리얼 테마를 사용하지만 이러한 방식으로 대체 테마를 제공하지 않으면 Android 5.0 이전 버전에서는 앱이 실행되지 않습니다.
+<p class="note"><strong>참고:</strong>
+앱이 머티리얼 테마를 사용하지만 이러한 방식으로 대체 테마를 제공하지 않으면 Android 5.0 이전 버전에서는 앱이 실행되지 않습니다.
+
 </p>
 
 
 <h2 id="Layouts">대체 레이아웃 제공</h2>
 
-<p>머티어리얼 디자인 지침에 따라 디자인한 레이아웃이 Android 5.0(API 레벨 21)에서 새로 도입된 XML 특성을 사용하지 않는 경우, 해당 레이아웃은 이전 버전의 Android에서 실행됩니다. 그렇지 않은 경우 대체 레이아웃을 제공할 수 있습니다. 또한 이전 버전의 Android에서 앱이 표시되는 방식을 사용자지정할 수 있는 대체 레이아웃을 제공할 수도 있습니다.</p>
+<p>머티리얼 디자인 지침에 따라 디자인한 레이아웃이 Android 5.0(API 레벨 21)에서 새로 도입된 XML 특성을 사용하지 않는 경우, 해당 레이아웃은 이전 버전의 Android에서 실행됩니다.
 
-<p><code>res/layout-v21/</code> 안에서 Android 5.0(API 레벨 21)의 레이아웃 파일을 생성하고, <code>res/layout/</code> 안에서 이전 버전의 Android를 위한 대체 레이아웃 파일을 생성합니다. 예를 들어, <code>res/layout/my_activity.xml</code>은 <code>res/layout-v21/my_activity.xml</code>의 대체 레이아웃입니다.</p>
+ 그렇지 않은 경우 대체 레이아웃을 제공할 수 있습니다. 또한 이전 버전의 Android에서 앱이 표시되는 방식을 사용자가 지정할 수 있는 대체 레이아웃을 제공할 수도 있습니다.
+</p>
 
-<p>코드의 중복을 피하기 위해 <code>res/values/</code> 안에서 스타일을 정의하고, 새 API에 대해 <code>res/values-v21/</code>에서 스타일을 수정하고, 스타일 상속을 사용하여 <code>res/values/</code>에서 기본 스타일을 정의하고 <code>res/values-v21/</code>에서 해당 스타일로부터 상속합니다.</p>
+<p><code>res/layout-v21/</code> 안에서 Android 5.0(API 레벨 21)의 레이아웃 파일을 생성하고, <code>res/layout/</code> 안에서 이전 버전의 Android를 위한 대체 레이아웃 파일을 생성합니다.
+예를 들어, <code>res/layout/my_activity.xml</code>은
+<code>res/layout-v21/my_activity.xml</code>의 대체 레이아웃입니다.
+</p>
+
+<p>코드의 중복을 피하기 위해 <code>res/values/</code> 안에서 스타일을 정의하고, 새 API에 대해 <code>res/values-v21/</code>에서 스타일을 수정하고, 스타일 상속을 사용하여 <code>res/values/</code>에서 기본 스타일을 정의하고 <code>res/values-v21/</code>에서 해당 스타일로부터 상속합니다.
+
+</p>
 
 
 <h2 id="SupportLib">지원 라이브러리 사용</h2>
 
-<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Libraries</a> r21 이상에는 다음과 같은 머티어리얼 디자인 기능이 포함되어 있습니다.</p>
+<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Libraries</a>
+ r21 이상에는 다음과 같은 머티리얼 디자인 기능이 포함되어 있습니다.</p>
 
 <ul>
-<li><code>Theme.AppCompat</code> 테마 중 하나를 적용할 때 일부 시스템 위젯에 대한 <a href="{@docRoot}training/material/theme.html">머티어리얼 디자인 스타일</a></li>
-<li><code>Theme.AppCompat</code> 테마의 <a href="{@docRoot}training/material/theme.html#ColorPalette">색상표 테마 특성</a></li>
-<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">데이터 컬렉션 표시</a>를 위한 {@link android.support.v7.widget.RecyclerView} 위젯</li>
-<li> <a href="{@docRoot}training/material/lists-cards.html#CardView">카드 생성</a>을 위한 {@link android.support.v7.widget.CardView} 위젯</li>
-<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">이미지에서 주요 색상을 추출</a>하기 위한 {@link android.support.v7.graphics.Palette} 클래스</li>
+<li><code>Theme.AppCompat</code> 테마 중 하나를 적용할 때 일부 시스템 위젯에
+대한 <a href="{@docRoot}training/material/theme.html">머티리얼 디자인 스타일</a></li>
+<li><code>Theme.AppCompat</code> 테마의 <a href="{@docRoot}training/material/theme.html#ColorPalette">색상표 테마 특성</a>
+</li>
+<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">데이터 컬렉션 표시</a>를 위한 {@link android.support.v7.widget.RecyclerView} 위젯
+</li>
+<li><a href="{@docRoot}training/material/lists-cards.html#CardView">카드 생성</a>을 위한 {@link android.support.v7.widget.CardView} 위젯</li>
+<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">이미지에서 주요 색상을 추출</a>하기 위한 {@link android.support.v7.graphics.Palette} 클래스
+</li>
 </ul>
 
 <h3>시스템 위젯</h3>
 
-<p><code>Theme.AppCompat</code> 테마는 다음 위젯에 대한 머티어리얼 디자인 스타일을 제공합니다.</p>
+<p><code>Theme.AppCompat</code> 테마는 다음 위젯에 대한 머티리얼 디자인 스타일을 제공합니다.</p>
 
 <ul>
   <li>{@link android.widget.EditText}</li>
@@ -73,7 +94,8 @@
 
 <h3>색상표</h3>
 
-<p>Android v7 Support Library에서 머티어리얼 디자인 스타일을 가져와서 색상표를 사용자지정하려면 <code>Theme.AppCompat</code> 테마 중 하나를 적용합니다.</p>
+<p>Android v7 지원 라이브러리에서 머티리얼 디자인 스타일을 가져와서 색상표를 사용자지정하려면 <code>Theme.AppCompat</code> 테마 중 하나를 적용합니다.
+</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -87,16 +109,21 @@
 
 <h3>목록 및 카드</h3>
 
-<p>{@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView} 위젯은 Android v7 Support Library를 통해 이전 버전의 Android에서 사용할 수 있지만, 다음과 같은 제약이 있습니다.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 및 {@link
+android.support.v7.widget.CardView} 위젯은 Android v7 지원 라이브러리를 통해 이전 버전의 Android에서 사용할 수 있지만, 다음과 같은 제약이 있습니다.
+</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView}는 추가 패딩을 사용하여 프로그래밍 방식의 그림자 구현으로 환원됩니다.</li>
-<li>{@link android.support.v7.widget.CardView}는 둥근 모서리와 교차하는 하위 뷰를 클리핑하지 않습니다.</li>
+<li>{@link android.support.v7.widget.CardView}는 추가 패딩을 사용하여 프로그래밍 방식의 그림자 구현으로 환원됩니다.
+</li>
+<li>{@link android.support.v7.widget.CardView}는 둥근 모서리와 교차하는 하위 뷰를 클리핑하지 않습니다.
+</li>
 </ul>
 
 
-<h3>종속관계</h3>
+<h3>종속 사항</h3>
 
-<p>Android 5.0(API 레벨 21) 이전 버전에서 다음 기능을 사용하려면 프로젝트에 Android v7 Support Library를 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 종속관계</a>로 포함하세요.</p>
+<p>Android 5.0(API 레벨 21) 이전 버전에서 이러한 기능을 사용하려면 프로젝트에 Android v7 지원 라이브러리를 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 종속 사항</a>으로 포함합니다.
+</p>
 
 <pre>
 dependencies {
@@ -116,11 +143,13 @@
 <li>터치 피드백</li>
 <li>애니메이션 표시</li>
 <li>경로기반 애니메이션</li>
-<li>Vector Drawable</li>
-<li>Drawable 색조 적용</li>
+<li>벡터 드로어블</li>
+<li>드로어블 색조 적용</li>
 </ul>
 
-<p>이전 버전 Android와 호환성을 유지하려면, 이러한 기능을 위한 API를 호출하기 전에 런타임에 시스템 {@link android.os.Build.VERSION#SDK_INT version}을 확인하세요.</p>
+<p>이전 버전 Android와 호환성을 유지하려면, 이러한 기능을 위한 API를 호출하기 전에 런타임에 시스템 {@link
+android.os.Build.VERSION#SDK_INT version}을 확인하세요.
+</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>참고:</strong> 앱에서 어떤 버전의 Android를 지원할지 지정하려면 매니페스트 파일에서 <code>android:minSdkVersion</code> 및 <code>android:targetSdkVersion</code> 특성을 사용하세요. Android 5.0에서 머티어리얼 디자인 기능을 사용하려면 <code>android:targetSdkVersion</code> 특성을 <code>21</code>로 설정하세요. 자세한 내용은 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API 가이드</a>를 참조하세요.</p> 
\ No newline at end of file
+<p class="note"><strong>참고:</strong> 앱에서 어떤 버전의 Android를 지원할지 지정하려면 매니페스트 파일에서 <code>android:minSdkVersion</code> 및 <code>android:targetSdkVersion</code>
+특성을 사용하세요.
+ Android 5.0에서 머티어리얼 디자인 기능을 사용하려면 <code>android:targetSdkVersion</code> 특성을 <code>21</code>로 설정하세요.
+ 자세한 내용은 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API 가이드</a>를 참조하세요.
+
+</p>
diff --git a/docs/html-intl/intl/ko/training/material/drawables.jd b/docs/html-intl/intl/ko/training/material/drawables.jd
index bea82b8..18d5bf8 100644
--- a/docs/html-intl/intl/ko/training/material/drawables.jd
+++ b/docs/html-intl/intl/ko/training/material/drawables.jd
@@ -1,4 +1,4 @@
-page.title=Drawable 사용
+page.title=드로어블 사용
 
 @jd:body
 
@@ -6,39 +6,47 @@
 <div id="tb">
 <h2>이 과정에서 다루는 내용</h2>
 <ol>
-  <li><a href="#DrawableTint">Drawable 리소스 색조 적용</a></li>
+  <li><a href="#DrawableTint">드로어블 리소스 색조 적용</a></li>
   <li><a href="#ColorExtract">이미지에서 주요 색상 추출</a></li>
-  <li><a href="#VectorDrawables">Vector Drawable 생성</a></li>
+  <li><a href="#VectorDrawables">벡터 드로어블 생성</a></li>
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
-<p>Drawable의 다음 기능은 앱에서 머티어리얼 디자인을 구현하는 데 도움이 됩니다.</p>
+<p>드로어블의 다음 기능은 앱에서 머티리얼 디자인을 구현하는 데 도움이 됩니다.</p>
 
 <ul>
-<li>Drawable 색조 적용</li>
+<li>드로어블 색조 적용</li>
 <li>주요 색상 추출</li>
-<li>Vector Drawable</li>
+<li>벡터 드로어블</li>
 </ul>
 
 <p>이 과정은 앱에서 이러한 기능을 사용하는 방법을 보여줍니다.</p>
 
 
-<h2 id="DrawableTint">Drawable 리소스 색조 적용</h2>
+<h2 id="DrawableTint">드로어블 리소스 색조 적용</h2>
 
-<p>Android 5.0(API 레벨 21) 이상에서는 알파 마스크로 정의된 비트맵 및 나인패치에 색조를 적용할 수 있습니다. 색상 리소스 또는 색상 리소스로 변환되는 테마 특성(예: <code>?android:attr/colorPrimary</code>)을 사용하여 색조를 적용할 수 있습니다. 일반적으로 이러한 에셋은 한 번만 생성하며 자동으로 채색되어 테마와 일치하게 됩니다.</p>
+<p>Android 5.0(API 레벨 21) 이상에서는 알파 마스크로 정의된 비트맵 및 나인패치에 색조를 적용할 수 있습니다.
+ 색상 리소스 또는 색상 리소스로 변환되는 테마 특성(예: <code>?android:attr/colorPrimary</code>)을 사용하여 색조를 적용할 수 있습니다.
+ 일반적으로 이러한 자산은 한 번만 생성하며 자동으로 채색되어 테마와 일치하게 됩니다.
+</p>
 
-<p>{@code setTint()} 메서드를 사용하여 {@link android.graphics.drawable.BitmapDrawable} 또는 {@link android.graphics.drawable.NinePatchDrawable} 개체에 색조를 적용할 수 있습니다. 또한 <code>android:tint</code> 및 <code>android:tintMode</code> 특성으로 레이아웃에 색조 색상과 모드를 설정할 수 있습니다.</p>
+<p>{@code setTint()} 메서드를 사용하여 {@link android.graphics.drawable.BitmapDrawable} 또는 {@link
+android.graphics.drawable.NinePatchDrawable} 객체에 색조를 적용할 수 있습니다. 또한
+<code>android:tint</code> 및 <code>android:tintMode</code> 특성으로 레이아웃에 색조 색상과 모드를 설정할 수 있습니다.
+</p>
 
 
 <h2 id="ColorExtract">이미지에서 주요 색상 추출</h2>
 
-<p>Android Support Library r21 이상에는 이미지에서 주요 색상을 추출할 수 있는 {@link android.support.v7.graphics.Palette} 클래스가 있습니다. 이 클래스는 다음과 같은 주요 색상을 추출합니다.</p>
+<p>Android 지원 라이브러리 r21 이상에는 이미지에서 주요 색상을 추출할 수 있는 {@link
+android.support.v7.graphics.Palette} 클래스가 있습니다. 이 클래스는 다음과 같은 주요 색상을 추출합니다.
+</p>
 
 <ul>
 <li>생생한 색상</li>
@@ -49,34 +57,44 @@
 <li>차분하고 밝은 색상</li>
 </ul>
 
-<p>이러한 색상을 추출하려면, 이미지를 불러올 배경 스레드에서 {@link android.support.v7.graphics.Palette#generate Palette.generate()} 정적 메서드로 {@link android.graphics.Bitmap} 개체를 전달합니다. 스레드를 사용할 수 없는 경우, 대신 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 메서드를 호출하고 Listener를 제공합니다.</p>
+<p>이러한 색상을 추출하려면, 이미지를 불러올 배경 스레드에서
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} 정적 메서드로 {@link android.graphics.Bitmap} 객체를 전달합니다.
+ 스레드를 사용할 수 없는 경우, 대신
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 메서드를 호출하고 Listener를 제공합니다.
+</p>
 
-<p><code>Palette.getVibrantColor</code>와 같은 <code>Palette</code> 클래스의 getter 메서드를 사용하여 이미지에서 주요 색상을 추출할 수 있습니다.</p>
+<p><code>Palette.getVibrantColor</code>와 같은
+<code>Palette</code> 클래스의 getter 메서드를 사용하여 이미지에서 주요 색상을 추출할 수 있습니다.</p>
 
-<p>프로젝트에서 {@link android.support.v7.graphics.Palette} 클래스를 사용하려면 다음 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 종속관계</a>를 앱의 모듈에 추가합니다.</p>
+<p>프로젝트에서 {@link android.support.v7.graphics.Palette} 클래스를 사용하려면 다음
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 종속 사항을</a>를 앱의 모듈에 추가합니다.
+</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>자세한 내용은 {@link android.support.v7.graphics.Palette} 클래스의 API 레퍼런스를 참조하세요.</p>
+<p>자세한 내용은 {@link android.support.v7.graphics.Palette}
+클래스의 API 레퍼런스를 참조하세요.</p>
 
 
-<h2 id="VectorDrawables">Vector Drawable 생성</h2>
+<h2 id="VectorDrawables">벡터 드로어블 생성</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>비디오</h3>
-    <p>Android Vector Graphics</p>
+    <p>Android 벡터 그래픽</p>
 </div>
 </a>
 
-<p>Android 5.0(API 레벨 21) 이상에서는 정의를 잃지 않고 배율을 조정하는 Vector Drawable을 정의할 수 있습니다. 비트맵 이미지의 경우 각 화면 밀도마다 에셋 파일이 필요한 반면, 벡터 이미지의 경우에는 하나의 에셋 파일만 필요로 합니다. 벡터 이미지를 생성하려면 <code>&lt;vector&gt;</code> XML 요소 안에 모양의 세부정보를 정의합니다.</p>
+<p>Android 5.0(API 레벨 21) 이상에서는 정의를 잃지 않고 배율을 조정하는 벡터 드로어블을 정의할 수 있습니다.
+ 비트맵 이미지의 경우 각 화면 밀도마다 자산 파일이 필요한 반면, 벡터 이미지의 경우에는 하나의 자산 파일만 필요합니다.
+ 벡터 이미지를 생성하려면 <code>&lt;vector&gt;</code> XML 요소 안에 모양의 세부정보를 정의합니다.
+</p>
 
 <p>다음 예에서는 하트 모양을 가진 벡터 이미지를 정의합니다.</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>벡터 이미지는 Android에서 {@link android.graphics.drawable.VectorDrawable} 개체로 나타납니다. <code>pathData</code> 구문에 대한 자세한 내용은 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG 경로 레퍼런스</a>를 참조하세요. Vector Drawable의 속성 애니메이트에 대한 자세한 내용은 <a href="{@docRoot}training/material/animations.html#AnimVector">Vector Drawable 애니메이트</a>를 참조하세요.</p> 
\ No newline at end of file
+<p>벡터 이미지는 Android에서 {@link android.graphics.drawable.VectorDrawable}
+객체로 나타납니다. <code>pathData</code> 구문에 대한 자세한 내용은 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG Path reference</a>를 참조하세요. 벡터 드로어블의 속성 애니메이트에 대한 자세한 내용은
+<a href="{@docRoot}training/material/animations.html#AnimVector">벡터 드로어블 애니메이트</a>를 참조하세요.
+</p>
diff --git a/docs/html-intl/intl/ko/training/material/get-started.jd b/docs/html-intl/intl/ko/training/material/get-started.jd
index e1f6eee..be1fca2 100644
--- a/docs/html-intl/intl/ko/training/material/get-started.jd
+++ b/docs/html-intl/intl/ko/training/material/get-started.jd
@@ -6,7 +6,7 @@
 <div id="tb">
 <h2>이 과정에서 다루는 내용</h2>
 <ol>
-  <li><a href="#ApplyTheme">머티어리얼 테마 적용</a></li>
+  <li><a href="#ApplyTheme">머티리얼 테마 적용</a></li>
   <li><a href="#Layouts">레이아웃 디자인</a></li>
   <li><a href="#Depth">뷰에서 엘리베이션 지정</a></li>
   <li><a href="#ListsCards">목록 및 카드 생성</a></li>
@@ -14,22 +14,22 @@
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>머티어리얼 디자인으로 앱을 생성하려면:</p>
+<p>머티리얼 디자인으로 앱을 생성하려면:</p>
 
 <ol>
   <li style="margin-bottom:10px">
-    <a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a>을 검토합니다.</li>
+    <a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a>을 검토합니다.</li>
   <li style="margin-bottom:10px">
-    앱에 머티어리얼 <strong>테마</strong>를 적용합니다.</li>
+    앱에 머티리얼 <strong>테마</strong>를 적용합니다.</li>
   <li style="margin-bottom:10px">
-    머티어리얼 디자인 지침에 따라 <strong>레이아웃</strong>을 생성합니다.</li>
+    머티리얼 디자인 지침에 따라 <strong>레이아웃</strong>을 생성합니다.</li>
   <li style="margin-bottom:10px">
     그림자를 드리우기 위한 뷰의 <strong>엘리베이션</strong>을 지정합니다.</li>
   <li style="margin-bottom:10px">
@@ -40,20 +40,27 @@
 
 <h3>이전 버전과의 호환성 유지</h3>
 
-<p>Android 5.0 이전 버전과의 호환성을 유지하면서 다양한 머티어리얼 디자인 기능을 앱에 추가할 수 있습니다. 자세한 내용은 <a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.</p>
+<p>Android 5.0 이전 버전과의 호환성을 유지하면서 다양한 머티리얼 디자인 기능을 앱에 추가할 수 있습니다.
+ 자세한 내용은
+<a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.</p>
 
-<h3>머티어리얼 디자인으로 앱 업데이트</h3>
+<h3>머티리얼 디자인으로 앱 업데이트</h3>
 
-<p>머티어리얼 디자인을 통합하기 위해 기존 앱을 업데이트하려면 머티어리얼 디자인 지침에 따라 레이아웃을 업데이트하세요. 또한 깊이, 터치 피드백, 애니메이션도 통합하세요.</p>
+<p>머티리얼 디자인을 통합하기 위해 기존 앱을 업데이트하려면 머티리얼 디자인 지침에 따라 레이아웃을 업데이트하세요.
+ 또한 깊이, 터치 피드백, 애니메이션도 통합하세요.
+</p>
 
-<h3>머티어리얼 디자인으로 새 앱 생성</h3>
+<h3>머티리얼 디자인으로 새 앱 생성</h3>
 
-<p>머티어리얼 디자인 기능으로 새 앱을 생성하는 경우, <a href="http://www.google.com/design/spec">머티어리얼 디자인 지침</a>은 효율적인 디자인 프레임워크를 제공합니다. 앱 디자인 및 개발 시 이 지침을 따르고 Android 프레임워크의 새로운 기능을 사용하세요.</p>
+<p>머티리얼 디자인 기능으로 새 앱을 생성하는 경우, <a href="http://www.google.com/design/spec">머티리얼 디자인 지침</a>은 효율적인 디자인 프레임워크를 제공합니다.
+ 앱 디자인 및 개발 시 이 지침을 따르고 Android 프레임워크의 새로운 기능을 사용하세요.
+</p>
 
 
-<h2 id="ApplyTheme">머티어리얼 테마 적용</h2>
+<h2 id="ApplyTheme">머티리얼 테마 적용</h2>
 
-<p>머티어리얼 테마를 앱에 적용하려면 <code>android:Theme.Material</code>에서 상속하는 스타일을 지정하세요.</p>
+<p>머티리얼 테마를 앱에 적용하려면
+<code>android:Theme.Material</code>에서 상속하는 스타일을 지정합니다.</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>머티어리얼 테마는 터치 피드백 및 액티비티 전환을 위한 색상표 및 기본 애니메이션을 설정할 수 있는 업데이트된 시스템 위젯을 제공합니다. 자세한 내용은<a href="{@docRoot}training/material/theme.html">머티어리얼 테마 사용</a>을 참조하세요.</p>
+<p>머티리얼 테마는 터치 피드백 및 액티비티 전환을 위한 색상표 및 기본 애니메이션을 설정할 수 있는 업데이트된 시스템 위젯을 제공합니다.
+ 자세한 내용은
+<a href="{@docRoot}training/material/theme.html">머티리얼 테마 사용</a>을 참조하세요.</p>
 
 
 <h2 id="Layouts">레이아웃 디자인</h2>
 
-<p>머티어리얼 테마를 적용하고 사용자지정하는 것과 더불어, 레이아웃이 <a href="http://www.google.com/design/spec">머티어리얼 디자인 지침</a>을 따라야 합니다. 레이아웃 디자인 시 다음 사항에 특히 주의하세요.</p>
+<p>머티리얼 테마를 적용하고 사용자지정하는 것과 더불어, 레이아웃이 <a href="http://www.google.com/design/spec">머티리얼 디자인 지침</a>을 따라야 합니다.
+ 레이아웃 디자인 시 다음 사항에 특히 주의하세요.
+</p>
 
 <ul>
 <li>기준선 그리드</li>
@@ -83,7 +94,9 @@
 
 <h2 id="Depth">뷰에서 엘리베이션 지정</h2>
 
-<p>뷰는 그림자를 드리울 수 있으며 뷰의 엘리베이션 값은 그림자 크기 및 그리는 순서를 결정합니다. 뷰의 엘리베이션을 설정하려면 레이아웃에서 <code>android:elevation</code> 특성을 사용하세요.</p>
+<p>뷰는 그림자를 드리울 수 있으며 뷰의 엘리베이션 값은 그림자 크기 및 그리는 순서를 결정합니다.
+ 뷰의 엘리베이션을 설정하려면 레이아웃에서
+<code>android:elevation</code> 특성을 사용하세요.</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>새 <code>translationZ</code> 속성을 사용하여 뷰 엘리베이션의 일시적 변경을 반영하는 애니메이션을 생성할 수 있습니다. 엘리베이션 변경은 <a href="{@docRoot}training/material/animations.html#ViewState">터치 제스처에 반응</a>할 때 유용합니다.</p>
+<p>새 <code>translationZ</code> 속성을 사용하여 뷰 엘리베이션의 일시적 변경을 반영하는 애니메이션을 생성할 수 있습니다.
+ 엘리베이션 변경은
+<a href="{@docRoot}training/material/animations.html#ViewState">터치
+제스처에 반응</a>할 때 유용하게 쓰일 수 있습니다.</p>
 
-<p>자세한 내용은 <a href="{@docRoot}training/material/shadows-clipping.html">그림자 정의 및 뷰 클리핑</a>을 참조하세요.</p>
+<p>자세한 내용은 <a href="{@docRoot}training/material/shadows-clipping.html">그림자 정의 및 뷰 클리핑</a>을 참조하세요.
+</p>
 
 
 <h2 id="ListsCards">목록 및 카드 생성</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView}는 {@link android.widget.ListView}의 플러그 기능이 개선된 버전으로, 다양한 레이아웃 유형을 지원하고 향상된 성능을 제공합니다. {@link android.support.v7.widget.CardView}를 사용하면 모든 앱에서 일관된 모습으로 카드 안의 정보를 표시할 수 있습니다. 다음 코드 예는 {@link android.support.v7.widget.CardView}를 레이아웃에 포함시키는 방법을 보여줍니다.</p>
+<p>{@link android.support.v7.widget.RecyclerView}는 {@link
+android.widget.ListView}의 플러그 기능이 개선된 버전으로, 다양한 레이아웃 유형을 지원하고 향상된 성능을 제공합니다.
+{@link android.support.v7.widget.CardView}를 사용하면 모든 앱에서 일관된 모습으로 카드 안의 정보를 표시할 수 있습니다.
+ 다음 코드 예는 {@link android.support.v7.widget.CardView}를 레이아웃에
+포함시키는 방법을 보여줍니다.</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>자세한 내용은 <a href="{@docRoot}training/material/lists-cards.html">목록 및 카드 생성</a>을 참조하세요.</p>
+<p>자세한 내용은 <a href="{@docRoot}training/material/lists-cards.html">목록 및 카드 생성</a>을 참조하세요.
+</p>
 
 
 <h2 id="Animations">애니메이션 사용자지정</h2>
 
-<p>Android 5.0(API 레벨 21)은 앱에서 사용자지정 애니메이션 생성을 위한 새 API가 포함되어 있습니다. 예를 들어, 액티비티 전환을 활성화하고 액티비티 내부에서 나가기 전환을 정의할 수 있습니다.</p>
+<p>Android 5.0(API 레벨 21)에는 앱에서 사용자지정 애니메이션 생성을 위한 새 API가 포함되어 있습니다. 예를 들어, 액티비티 전환을 활성화하고 액티비티 내부에서 나가기 전환을 정의할 수 있습니다.
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -144,4 +168,4 @@
 
 <p>이 액티비티에서 다른 액티비티를 시작하면 나가기 전환이 활성화됩니다.</p>
 
-<p>새 애니메이션 API에 대한 자세한 내용은 <a href="{@docRoot}training/material/animations.html">사용자지정 애니메이션 정의</a>를 참조하세요.</p> 
\ No newline at end of file
+<p>새 애니메이션 API에 대한 자세한 내용은 <a href="{@docRoot}training/material/animations.html">사용자지정 애니메이션 정의</a>를 참조하세요.</p>
diff --git a/docs/html-intl/intl/ko/training/material/index.jd b/docs/html-intl/intl/ko/training/material/index.jd
index 7ce1631..3dfb514 100644
--- a/docs/html-intl/intl/ko/training/material/index.jd
+++ b/docs/html-intl/intl/ko/training/material/index.jd
@@ -1,42 +1,48 @@
-page.title=머티어리얼 디자인으로 앱 생성
+page.title=개발자를 위한 머티리얼 디자인
 page.type=design
-page.image=images/material.png
-page.metaDescription=앱에 머티어리얼 디자인을 적용하는 방법을 배웁니다.
+page.image=images/cards/material_2x.png
+page.metaDescription=Learn how to apply material design to your apps.
+
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-  <h2>종속관계 및 전제조건</h2>
+  <h2>종속 사항 및 전제조건</h2>
   <ul>
     <li>Android 5.0(API 레벨 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>머티어리얼 디자인은 플랫폼 및 기기 전반의 표현 방식, 모션 및 상호작용 디자인에 대한 종합적인 지침입니다. Android 앱에서 머티어리얼 디자인을 사용하려면 <a href="http://www.google.com/design/spec/material-design/introduction.html">머티어리얼 디자인 사양</a>에 설명된 지침을 따르세요. 또한 Android 5.0 (API 레벨 21)에 있는 새 구성요소 및 기능을 사용하세요.</p>
+<p>머티리얼 디자인은 플랫폼 및 기기 전반의 표현 방식, 모션 및 상호 작용 디자인에 대한 종합적인 지침입니다.
+ Android 앱에서 머티리얼 디자인을 사용하려면
+<a href="http://www.google.com/design/spec/material-design/introduction.html">머티리얼 디자인 사양</a>에 설명된 지침을 따르고 Android 5.0(API 레벨 21)에서 제공되는 새 구성 요소 및 기능들을 활용하세요.
 
-<p>이 클래스에서는 다음 요소를 사용하여 머티어리얼 디자인 앱을 만드는 방법을 보여줍니다.</p>
+
+</p>
+
+<p>이 클래스에서는 다음 요소를 사용하여 머티리얼 디자인 앱을 만드는 방법을 보여줍니다.</p>
 
 <ul>
-<li>머티어리얼 테마</li>
+<li>머티리얼 테마</li>
 <li>목록 및 카드용 위젯</li>
 <li>사용자지정 그림자 및 뷰 클리핑</li>
-<li>Vector Drawable</li>
+<li>벡터 드로어블</li>
 <li>사용자지정 애니메이션</li>
 </ul>
 
-<p>또한 이 클래스에서는 앱에서 머티어리얼 디자인 기능을 사용할 때 Android 5.0(API 레벨 21) 이전 버전과의 호환성을 유지하는 방법도 배웁니다.</p>
+<p>또한 이 클래스에서는 앱에서 머티리얼 디자인 기능을 사용할 때
+Android 5.0(API 레벨 21) 이전 버전과의 호환성을 유지하는 방법도 배웁니다.</p>
 
 <h2>과정</h2>
 
 <dl>
   <dt><a href="{@docRoot}training/material/get-started.html">시작하기</a></dt>
-  <dd>머티어리얼 디자인 기능을 사용하여 앱을 업데이트하는 방법을 배웁니다.</dd>
+  <dd>머티리얼 디자인 기능을 사용하여 앱을 업데이트하는 방법을 배웁니다.</dd>
 
-  <dt><a href="{@docRoot}training/material/theme.html">머티어리얼 테마 사용</a></dt>
-  <dd>앱에 머티어리얼 디자인 스타일을 적용하는 방법을 배웁니다.</dd>
+  <dt><a href="{@docRoot}training/material/theme.html">머티리얼 테마 사용</a></dt>
+  <dd>앱에 머티리얼 디자인 스타일을 적용하는 방법을 배웁니다.</dd>
 
   <dt><a href="{@docRoot}training/material/lists-cards.html">목록 및 카드 생성</a></dt>
   <dd>시스템 위젯을 사용하여 일관된 모양과 느낌을 가진 목록과 카드를 만드는 방법을 배웁니다.</dd>
@@ -44,12 +50,12 @@
   <dt><a href="{@docRoot}training/material/shadows-clipping.html">그림자 정의 및 뷰 클리핑</a></dt>
   <dd>뷰에 대한 엘리베이션을 설정하여 사용자지정 그림자를 생성하는 방법과 뷰를 클리핑하는 방법을 배웁니다.</dd>
 
-  <dt><a href="{@docRoot}training/material/drawables.html">Drawable 사용</a></dt>
-  <dd>Vector Drawable을 생성하는 방법과 Drawable 리소스를 채색하는 방법을 배웁니다.</dd>
+  <dt><a href="{@docRoot}training/material/drawables.html">드로어블 사용</a></dt>
+  <dd>벡터 드로어블을 생성하는 방법과 드로어블 리소스를 채색하는 방법을 배웁니다.</dd>
 
   <dt><a href="{@docRoot}training/material/animations.html">사용자지정 애니메이션 정의</a></dt>
   <dd>공유 요소를 사용하여 뷰 및 액티비티 전환을 위한 사용자지정 애니메이션을 생성하는 방법을 배웁니다.</dd>
 
   <dt><a href="{@docRoot}training/material/compatibility.html">호환성 유지</a></dt>
   <dd>Android 5.0 이전 버전 플랫폼과의 호환성을 유지하는 방법을 배웁니다.</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/ko/training/material/lists-cards.jd b/docs/html-intl/intl/ko/training/material/lists-cards.jd
index 61416f6..28fdf22 100644
--- a/docs/html-intl/intl/ko/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/ko/training/material/lists-cards.jd
@@ -8,39 +8,51 @@
 <ol>
   <li><a href="#RecyclerView">목록 생성</a></li>
   <li><a href="#CardView">카드 생성</a></li>
-  <li><a href="#Dependencies">종속관계 추가</a></li>
+  <li><a href="#Dependencies">종속 사항 추가</a></li>
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>앱에서 머티어리얼 디자인 스타일로 복잡한 목록과 카드를 생성하려면 {@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView} 위젯을 사용하세요.</p>
+<p>앱에서 머티리얼 디자인 스타일로 복잡한 목록과 카드를 생성하려면
+{@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView}
+위젯을 사용하세요.</p>
 
 
 <h2 id="RecyclerView">목록 생성</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 위젯은 {@link android.widget.ListView}의 더욱 향상되고 유연해진 버전입니다. 이 위젯은 한정된 수의 뷰를 유지함으로써 매우 효율적으로 스크롤할 수 있는 큰 데이터 집합을 표시하기 위한 컨테이너입니다. 사용자 작업 또는 네트워크 이벤트를 기반으로 런타임에 요소가 변경되는 데이터 컬렉션이 있는 경우 {@link android.support.v7.widget.RecyclerView} 위젯을 사용하세요.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 위젯은 {@link android.widget.ListView}의 더욱 향상되고 유연해진 버전입니다.
+ 이 위젯은 한정된 수의 뷰를 유지함으로써 매우 효율적으로 스크롤할 수 있는 큰 데이터 집합을 표시하기 위한 컨테이너입니다.
+ 사용자 작업 또는 네트워크 이벤트에 따라 런타임에 요소가 변경되는 데이터 컬렉션이 있는 경우
+{@link android.support.v7.widget.RecyclerView} 위젯을 사용하세요.
+</p>
 
-<p>{@link android.support.v7.widget.RecyclerView} 클래스는 다음 기능을 제공하여 큰 데이터 집합의 표시 및 취급 작업을 단순화합니다.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 클래스는 다음 기능을 제공하여 큰 데이터 집합의 표시 및 취급 작업을 단순화합니다.
+</p>
 
 <ul>
-  <li>항목 위치지정을 위한 레이아웃 관리자</li>
-  <li>항목 제거 및 추가와 같은 일반 항목 작업을 위한 기본 애니메이션</li>
+  <li>항목 위치 지정을 위한 레이아웃 관리자</li>
+  <li>항목 제거 및 추가와 같은 공통 항목 작업을 위한 기본 애니메이션</li>
 </ul>
 
-<p>또한 필요에 따라 {@link android.support.v7.widget.RecyclerView} 위젯을 위한 사용자지정 레이아웃 관리자 및 애니메이션을 정의할 수도 있습니다.</p>
+<p>또한 필요에 따라 {@link
+android.support.v7.widget.RecyclerView} 위젯을 위한 사용자지정 레이아웃 관리자 및 애니메이션을 정의할 수도 있습니다.</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>그림 1</strong>. <code>RecyclerView</code> 위젯.
 </p>
 
-<p>{@link android.support.v7.widget.RecyclerView} 위젯을 사용하려면 어댑터와 레이아웃 관리자를 지정해야 합니다. 어댑터를 생성하려면 {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 클래스를 확장하세요. 구현 세부사항은 데이터 집합의 사양 및 뷰 유형에 의해 결정됩니다. 자세한 내용은 아래의 <a href="#RVExamples">예</a>를 참조하세요.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 위젯을 사용하려면 어댑터와 레이아웃 관리자를 지정해야 합니다.
+ 어댑터를 생성하려면 {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 클래스를 확장하세요. 구현 세부사항은 데이터 집합의 사양 및 뷰 유형에 의해 결정됩니다.
+ 자세한 내용은 아래의 <a href="#RVExamples">예</a>를 참조하세요.
+</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
@@ -49,25 +61,37 @@
 </p>
 </div>
 
-<p><strong>레이아웃 관리자</strong>는 항목 뷰를 {@link android.support.v7.widget.RecyclerView} 내에 배치하고 사용자에게 더 이상 보이지 않는 항목 뷰를 언제 재사용할지 결정합니다. 뷰를 재사용(또는 <em>재활용</em>)하기 위해, 레이아웃 관리자는 어댑터에게 뷰의 콘텐츠를 데이터 집합의 다른 요소로 교체하도록 요청할 수 있습니다. 이런 방식으로 뷰를 재활용하면 불필요한 뷰 생성이나 리소스를 많이 소모하는 {@link android.app.Activity#findViewById findViewById()} 룩업을 수행하지 않아도 되므로 성능이 개선됩니다.</p>
+<p><strong>레이아웃 관리자</strong>는 항목 뷰를 {@link
+android.support.v7.widget.RecyclerView}내에 배치하고, 사용자에게는 더 이상 보이지 않는 항목 뷰를 언제 재사용할지 결정합니다.
+ 뷰를 재사용 (또는 <em>재활용</em>)하기 위해, 레이아웃 관리자는 어댑터에게 뷰의 콘텐츠를 데이터 집합의 다른 요소로 교체하도록 요청할 수 있습니다.
+ 이런 방식으로 뷰를 재활용하면 불필요한 뷰 생성이나 리소스를 많이 소모하는 {@link android.app.Activity#findViewById findViewById()} 조회를 수행하지 않아도 되므로 성능이 개선됩니다.
+
+</p>
 
 <p>{@link android.support.v7.widget.RecyclerView}는 다음과 같은 내장 레이아웃 관리자를 제공합니다.</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager}는 항목을 가로 또는 세로 스크롤 목록에 표시합니다.</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager}는 항목을 가로 또는 세로 스크롤 목록으로 표시합니다.
+</li>
 <li>{@link android.support.v7.widget.GridLayoutManager}는 그리드 형식으로 항목을 표시합니다.</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager}는 지그재그형의 그리드 형식으로 항목을 표시합니다.</li>
 </ul>
 
-<p>사용자지정 레이아웃 관리자를 생성하려면 {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 클래스를 확장하세요.</p>
+<p>사용자지정 레이아웃 관리자를 생성하려면 {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 클래스를 확장하십시오.</p>
 
 <h3>애니메이션</h3>
 
-<p>항목 추가 및 제거를 위한 애니메이션은 {@link android.support.v7.widget.RecyclerView}에서 기본적으로 활성화됩니다. 이러한 애니메이션을 사용자지정하려면 {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 클래스를 확장하고 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()} 메서드를 사용하세요.</p>
+<p>항목 추가 및 제거를 위한 애니메이션은 {@link
+android.support.v7.widget.RecyclerView}에서 기본적으로 활성화됩니다. 이러한 애니메이션을 사용자지정하려면
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 클래스를
+확장하고 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+메서드를 사용하세요.</p>
 
-<h3 id="RVExamples">예</h3>
+<h3 id="RVExamples">예:</h3>
 
-<p>다음 코드 예는 {@link android.support.v7.widget.RecyclerView}를 레이아웃에 추가하는 방법을 보여줍니다.</p>
+<p>다음 코드 예는
+{@link android.support.v7.widget.RecyclerView}를 레이아웃에 추가하는 방법을 보여줍니다.</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>{@link android.support.v7.widget.RecyclerView} 위젯을 레이아웃에 추가한 후, 개체 핸들을 얻어 레이아웃 관리자에 연결하고, 표시할 데이터의 어댑터를 첨부합니다.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 위젯을 레이아웃에 추가한 후, 객체 핸들을 얻어 레이아웃 관리자에 연결하고, 표시할 데이터의 어댑터를 첨부합니다.
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>어댑터는 데이터 집합의 항목에 액세스할 수 있게 해주며, 항목 뷰를 생성하고, 원래의 항목이 더 이상 보이지 않을 경우 일부 뷰의 콘텐츠를 새 데이터 항목으로 교체합니다. 다음 코드 예는 {@link android.widget.TextView} 위젯을 사용하여 표시된 문자열 배열로 이루어진 데이터 집합의 간단한 구현을 보여줍니다.</p>
+<p>어댑터는 데이터 집합의 항목에 액세스할 수 있게 해주며, 항목 뷰를 생성하고, 원래의 항목이 더 이상 보이지 않을 경우 일부 뷰의 콘텐츠를 새 데이터 항목으로 교체합니다.
+
+ 다음 코드 예는 {@link android.widget.TextView} 위젯을 사용하여 표시된 문자열 배열로 이루어진 데이터 집합의 간단한 구현을 보여줍니다.
+</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -171,19 +200,29 @@
 
 <h2 id="CardView">카드 생성</h2>
 
-<p>{@link android.support.v7.widget.CardView}는 {@link android.widget.FrameLayout} 클래스를 확장하고 카드 내의 정보를 플랫폼에서 일관된 모습으로 표시할 수 있도록 합니다. {@link android.support.v7.widget.CardView} 위젯은 그림자와 둥근 모서리를 가질 수 있습니다.</p>
+<p>{@link android.support.v7.widget.CardView}는 {@link android.widget.FrameLayout} 클래스를
+확장하고 카드 내의 정보를 플랫폼에서 일관된 모습으로 표시할 수 있도록 합니다. {@link
+android.support.v7.widget.CardView} 위젯은 그림자와 둥근 모서리를 가질 수 있습니다.</p>
 
-<p>그림자가 있는 카드를 생성하려면 <code>card_view:cardElevation</code> 특성을 사용합니다. {@link android.support.v7.widget.CardView}는 Android 5.0(API 레벨 21) 이상에서 실제 엘리베이션 및 동적 그림자를 사용하며, 이전 버전에서는 이전의 프로그래밍 방식의 그림자 구현으로 환원됩니다. 자세한 내용은 <a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.</p>
+<p>그림자가 있는 카드를 생성하려면 <code>card_view:cardElevation</code> 특성을 사용합니다. 
+{@link android.support.v7.widget.CardView}는 Android 5.0(API 레벨 21) 이상에서 실제 엘리베이션 및 동적 그림자를 사용하며, 이전 버전에서는 이전의 프로그래밍 방식의 그림자 구현으로 환원됩니다. 자세한 내용은 <a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.
 
-<p>이러한 속성을 사용하여 {@link android.support.v7.widget.CardView} 위젯의 모습을 사용자지정합니다.</p>
+
+</p>
+
+<p>이러한 속성을 사용하여
+{@link android.support.v7.widget.CardView} 위젯의 모습을 사용자지정합니다.</p>
 
 <ul>
-  <li>레이아웃에 모서리 반지름을 설정하려면 <code>card_view:cardCornerRadius</code> 특성을 사용합니다.</li>
+  <li>레이아웃에 모서리 반지름을 설정하려면 <code>card_view:cardCornerRadius</code>
+특성을 사용합니다.</li>
   <li>코드에서 모서리 반지름을 설정하려면 <code>CardView.setRadius</code> 메서드를 사용합니다.</li>
-  <li>카드의 배경색을 설정하려면 <code>card_view:cardBackgroundColor</code> 특성을 사용합니다.</li>
+  <li>카드의 배경색을 설정하려면 <code>card_view:cardBackgroundColor</code>
+특성을 사용합니다.</li>
 </ul>
 
-<p>다음 코드 예는 {@link android.support.v7.widget.CardView} 위젯을 레이아웃에 포함시키는 방법을 보여줍니다.</p>
+<p>다음 코드 예는 {@link android.support.v7.widget.CardView}
+위젯을 레이아웃에 포함시키는 방법을 보여줍니다.</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -210,9 +249,13 @@
 <p>자세한 내용은 {@link android.support.v7.widget.CardView}의 API 레퍼런스를 참조하세요.</p>
 
 
-<h2 id="Dependencies">종속관계 추가</h2>
+<h2 id="Dependencies">종속 사항 추가</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView} 위젯은 <a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Libraries</a>의 일부입니다. 이러한 위젯을 프로젝트에서 사용하려면 다음 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 종속관계</a>를 앱 모듈에 추가하세요.</p>
+<p>{@link android.support.v7.widget.RecyclerView} 및 {@link android.support.v7.widget.CardView}
+위젯은 <a href="{@docRoot}tools/support-library/features.html#v7">v7 지원 라이브러리</a>의 일부입니다.
+ 이러한 위젯을 프로젝트에서 사용하려면 다음
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 종속 사항</a>을 앱의 모듈에 추가하세요.
+</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/ko/training/material/shadows-clipping.jd b/docs/html-intl/intl/ko/training/material/shadows-clipping.jd
index fc56891..e04d0c5 100644
--- a/docs/html-intl/intl/ko/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/ko/training/material/shadows-clipping.jd
@@ -12,26 +12,35 @@
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
-<p>머티어리얼 디자인은 UI 요소에 엘리베이션을 도입합니다. 엘리베이션은 사용자가 각 요소의 상대적 중요성을 이해하고 현재 직면한 작업에 집중할 수 있도록 도와줍니다.</p>
+<p>머티어리얼 디자인은 UI 요소에 엘리베이션을 도입합니다. 엘리베이션은 사용자가 각 요소의 상대적 중요성을 이해하고 현재 직면한 작업에 집중할 수 있도록 도와줍니다.
+</p>
 
-<p>Z 속성으로 표현되는 뷰의 엘리베이션은 그림자의 시각적인 모양을 결정합니다. 예를 들어, 더 높은 Z값을 가진 뷰는 더 크고 부드러운 그림자를 드리웁니다. 높은 Z값을 가진 뷰는 낮은 Z값을 가진 뷰를 가립니다. 하지만 뷰의 Z값이 뷰의 크기에 영향을 주지는 않습니다.</p>
+<p>Z 속성으로 표현되는 뷰의 엘리베이션은 그림자의 시각적인 모양을 결정합니다. 예를 들어, 더 높은 Z값을 가진 뷰는 더 크고 부드러운 그림자를 드리웁니다.
+ 높은 Z값을 가진 뷰는 낮은 Z값을 가진 뷰를 가립니다. 하지만 뷰의 Z값이 뷰의 크기에 영향을 주지는 않습니다.
+</p>
 
-<p>그림자는 엘리베이트된 뷰의 상위 요소에 의해 그려지며, 따라서 기본적으로 상위 요소에 의해 클리핑되는 표준 뷰 클리핑이 적용됩니다.</p>
+<p>그림자는 엘리베이트된 뷰의 상위 요소에 의해 그려지며, 따라서 기본적으로 상위 요소에 의해 클리핑되는 표준 뷰 클리핑이 적용됩니다.
+</p>
 
-<p>엘리베이션은 특정 작업 수행 시 위젯이 일시적으로 뷰 평면 위로 올라오는 애니메이션을 생성하는 경우에도 유용합니다.</p>
+<p>엘리베이션은 특정 작업 수행 시 위젯이 일시적으로 뷰 평면 위로 올라오는 애니메이션을 생성하는 경우에도 유용합니다.
+</p>
 
-<p>머티어리얼 디자인의 엘리베이션에 대한 자세한 내용은 <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 공간의 개체</a>를 참조하세요.</p>
+<p>머티리얼 디자인의 엘리베이션에 대한 자세한 내용은
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 공간의 개체</a>를 참조하세요.
+</p>
 
 
 <h2 id="Elevation">뷰에 엘리베이션 지정</h2>
 
-<p>뷰의 Z 값은 2개의 구성요소를 가집니다. <ul>
+<p>뷰의 Z 값은 2개의 구성요소를 가집니다.
+
+<ul>
 <li>엘리베이션: 정적 구성요소.</li>
 <li>변환: 애니메이션에 사용되는 동적 구성요소.</li>
 </ul>
@@ -41,22 +50,34 @@
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
 <p class="img-caption"><strong>그림 1</strong> - 서로 다른 뷰 엘리베이션의 그림자.</p>
 
-<p>레이아웃 정의에서 뷰의 엘리베이션을 설정하려면 <code>android:elevation</code> 특성을 사용하세요. 액티비티의 코드에서 뷰의 엘리베이션을 설정하려면 {@link android.view.View#setElevation View.setElevation()} 메서드를 사용하세요.</p>
+<p>레이아웃 정의에서 뷰의 엘리베이션을 설정하려면 <code>android:elevation</code>
+특성을 사용합니다. 액티비티의 코드에서 뷰의 엘리베이션을 설정하려면
+{@link android.view.View#setElevation View.setElevation()} 메서드를 사용합니다.</p>
 
-<p>뷰의 변환을 설정하려면 {@link android.view.View#setTranslationZ View.setTranslationZ()} 메서드를 사용하세요.</p>
+<p>뷰의 변환을 설정하려면 {@link android.view.View#setTranslationZ
+View.setTranslationZ()} 메서드를 사용합니다.</p>
 
-<p>새 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 및 {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 메서드를 사용하면 뷰의 엘리베이션을 손쉽게 애니메이트할 수 있습니다. 자세한 내용은 {@link android.view.ViewPropertyAnimator}의 API 레퍼런스와 <a href="{@docRoot}guide/topics/graphics/prop-animation.html">속성 애니메이션</a> 개발자 가이드를 참조하세요.</p>
+<p>새 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 및 {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 메서드를 사용하면 뷰의 엘리베이션을 손쉽게 애니메이트할 수 있습니다.
+ 자세한 내용은
+{@link android.view.ViewPropertyAnimator}의 API 레퍼런스와 <a href="{@docRoot}guide/topics/graphics/prop-animation.html">속성 애니메이션</a> 개발자 가이드를 참조하세요.
+</p>
 
-<p>{@link android.animation.StateListAnimator}를 사용해서 이러한 애니메이션을 선언적 방식으로 지정할 수도 있습니다. 이는 사용자가 버튼을 누를 때와 같이 상태 변경이 애니메이션을 트리거하는 경우에 특히 유용합니다. 자세한 내용은 <a href="{@docRoot}training/material/animations.html#ViewState">뷰 상태 변경 애니메이트</a>를 참조하세요.</p>
+<p>{@link android.animation.StateListAnimator}를 사용해서 이러한 애니메이션을 선언적 방식으로 지정할 수도 있습니다.
+ 이는 사용자가 버튼을 누를 때와 같이 상태 변경이 애니메이션을 트리거하는 경우에 특히 유용합니다.
+ 자세한 내용은
+<a href="{@docRoot}training/material/animations.html#ViewState">뷰 상태 변경 애니메이트</a>를 참조하세요.</p>
 
-<p>Z 값은 dp(밀도-독립 화소)로 측정됩니다.</p>
+<p>Z 값은 dp(밀도 독립적 픽셀)로 측정됩니다.</p>
 
 
 <h2 id="Shadows">뷰 그림자 및 윤곽선 사용자지정</h2>
 
-<p>뷰의 배경 Drawable의 경계는 그림자의 기본 모양을 결정합니다. <strong>윤곽선</strong>은 그래픽 개체의 바깥쪽 모양을 나타내고 터치 피드백의 물결 영역을 정의합니다.</p>
+<p>뷰의 배경 드로어블의 경계는 해당 그림자의 기본 모양을 결정합니다.
+<strong>윤곽선</strong>은 그래픽 객체의 바깥쪽 모양을 나타내고 터치 피드백의 물결 영역을 정의합니다.
+</p>
 
-<p>배경 Drawable을 사용하여 정의된 다음 뷰를 살펴봅시다.</p>
+<p>배경 드로어블을 사용하여 정의된 다음 뷰를 살펴봅시다.</p>
 
 <pre>
 &lt;TextView
@@ -66,7 +87,7 @@
     android:background="@drawable/myrect" />
 </pre>
 
-<p>배경 Drawable은 둥근 모서리를 가진 직사각형으로 정의됩니다.</p>
+<p>배경 드로어블은 둥근 모서리를 가진 직사각형으로 정의됩니다.</p>
 
 <pre>
 &lt;!-- res/drawable/myrect.xml -->
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>배경 Drawable이 뷰의 윤곽선을 정의하기 때문에 뷰는 둥근 모서리를 가진 그림자를 드리웁니다. 사용자지정 윤곽선을 제공하면 뷰 그림자의 기본 모양이 재정의됩니다.</p>
+<p>배경 드로어블이 뷰의 윤곽선을 정의하기 때문에 뷰는 둥근 모서리를 가진 그림자를 드리웁니다.
+ 사용자지정 윤곽선을 제공하면 뷰 그림자의 기본 모양이 재정의됩니다.</p>
 
 <p>코드에서 뷰의 사용자지정 윤곽선을 정의하려면:<p>
 
 <ol>
 <li>{@link android.view.ViewOutlineProvider} 클래스를 확장합니다.</li>
 <li>{@link android.view.ViewOutlineProvider#getOutline getOutline()} 메서드를 재정의합니다.</li>
-<li>{@link android.view.View#setOutlineProvider View.setOutlineProvider()} 메서드를 사용하여 새로운 윤곽선 공급자를 뷰에 할당합니다.</li>
+<li>{@link
+android.view.View#setOutlineProvider View.setOutlineProvider()} 메서드를 사용하여 새로운 윤곽선 공급자를 뷰에 할당합니다.</li>
 </ol>
 
-<p>{@link android.graphics.Outline} 클래스의 메서드를 사용해서 둥근 모서리를 가진 타원형 및 직사각형 윤곽선을 생성할 수 있습니다. 뷰의 기본 윤곽선 공급자는 뷰의 배경에서 윤곽선을 가져옵니다. 뷰에 그림자가 드리우는 것을 원치 않으면 뷰의 윤곽선 공급자를 <code>null</code>로 설정합니다.</p>
+<p>{@link android.graphics.Outline} 클래스의 메서드를 사용하여 둥근 모서리를 가진 타원형 및 직사각형 윤곽선을 생성할 수 있습니다.
+ 뷰의 기본 윤곽선 공급자는 뷰의 배경에서 윤곽선을 가져옵니다.
+ 뷰에 그림자가 드리우는 것을 원치 않으면 뷰의 윤곽선 공급자를 <code>null</code>로 설정하세요.
+</p>
 
 
 <h2 id="Clip">뷰 클리핑</h2>
 
-<p>뷰를 클리핑하면 뷰의 모양을 손쉽게 바꿀 수 있습니다. 다른 디자인 요소와의 일관성을 위해, 또는 사용자 입력에 응답하여 뷰의 모양을 바꾸기 위해 뷰를 클리핑할 수 있습니다. {@link android.view.View#setClipToOutline View.setClipToOutline()} 메서드 또는 <code>android:clipToOutline</code> 특성을 사용하여 윤곽선 영역으로 뷰를 클리핑할 수 있습니다. {@link android.graphics.Outline#canClip Outline.canClip()} 메서드에서 결정된 대로 정사각형, 원형 그리고 둥근 사각형의 윤곽선만 클리핑을 지원합니다.</p>
+<p>뷰를 클리핑하면 뷰의 모양을 손쉽게 바꿀 수 있습니다. 다른 디자인 요소와의 일관성을 위해, 또는 사용자 입력에 응답하여 뷰의 모양을 바꾸기 위해 뷰를 클리핑할 수 있습니다. {@link android.view.View#setClipToOutline
+View.setClipToOutline()} 메서드나 <code>android:clipToOutline</code> 특성을 사용하여 뷰를 해당 윤곽선 영역까지 클리핑할 수 있습니다.
 
-<p>Drawable 모양으로 뷰를 클리핑하려면 위와 같이 Drawable을 뷰의 배경으로 설정하고 {@link android.view.View#setClipToOutline View.setClipToOutline()} 메서드를 호출합니다.</p>
+ 
+{@link android.graphics.Outline#canClip Outline.canClip()} 메서드에서 결정된 대로 사각형, 원형 및 둥근 사각형의 윤곽선만 클리핑을 지원합니다.
+</p>
 
-<p>뷰 클리핑은 리소스 소모가 많은 작업이므로, 뷰를 클리핑하는 데 사용하는 모양을 애니메이트하지 마십시오. 이 효과를 얻으려면 <a href="{@docRoot}training/material/animations.html#Reveal">Reveal Effect</a> 애니메이션을 사용하세요.</p> 
\ No newline at end of file
+<p>드로어블 모양으로 뷰를 클리핑하려면 위와 같이 드로어블을 뷰의 배경으로
+설정하고 {@link android.view.View#setClipToOutline View.setClipToOutline()}
+메서드를 호출합니다.</p>
+
+<p>뷰 클리핑은 리소스 소모가 많은 작업이므로,뷰를 클리핑하는 데 사용하는 모양을 애니메이트하지 마세요.
+ 이 효과를 얻으려면 <a href="{@docRoot}training/material/animations.html#Reveal">표시 효과</a> 애니메이션을 사용하세요.</p>
diff --git a/docs/html-intl/intl/ko/training/material/theme.jd b/docs/html-intl/intl/ko/training/material/theme.jd
index 0e80a20..ef4ff58 100644
--- a/docs/html-intl/intl/ko/training/material/theme.jd
+++ b/docs/html-intl/intl/ko/training/material/theme.jd
@@ -1,4 +1,4 @@
-page.title=머티어리얼 테마 사용
+page.title=머티리얼 테마 사용
 
 @jd:body
 
@@ -12,14 +12,14 @@
 </ol>
 <h2>필독 항목</h2>
 <ul>
-  <li><a href="http://www.google.com/design/spec">머티어리얼 디자인 사양</a></li>
-  <li><a href="{@docRoot}design/material/index.html">Android의 머티어리얼 디자인</a></li>
+  <li><a href="http://www.google.com/design/spec">머티리얼 디자인 사양</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Android의 머티리얼 디자인</a></li>
 </ul>
 </div>
 </div>
 
 
-<p>새 머티어리얼 테마는 다음과 같은 기능을 제공합니다.</p>
+<p>새 머티리얼 테마는 다음과 같은 기능을 제공합니다.</p>
 
 <ul>
   <li>색상표를 설정할 수 있는 시스템 위젯</li>
@@ -27,11 +27,14 @@
   <li>액티비티 전환 애니메이션</li>
 </ul>
 
-<p>제어 중인 색상표로 브랜드 ID에 따라 머티어리얼 테마의 모습을 사용자지정할 수 있습니다. <a href="#fig3">그림 3</a>과 같이 테마 특성을 사용하여 작업 표시줄 및 상태 표시줄에 색조를 적용할 수 있습니다.</p>
+<p>제어 중인 색상표로 브랜드 ID에 따라 머티리얼 테마의 모습을 사용자지정할 수 있습니다.
+ <a href="#fig3">그림 3</a>과 같이 테마 특성을 사용하여 작업 표시줄 및 상태 표시줄에 색조를 적용할 수 있습니다.
+</p>
 
-<p>시스템 위젯에는 새 디자인 및 터치 피드백 애니메이션이 있습니다. 앱에서 색상표, 터치 피드백 애니메이션, 액티비티 전환을 사용자지정할 수 있습니다.</p>
+<p>시스템 위젯에는 새 디자인 및 터치 피드백 애니메이션이 있습니다. 앱에서 색상표, 터치 피드백 애니메이션, 액티비티 전환을 사용자지정할 수 있습니다.
+</p>
 
-<p>머티어리얼 테마는 다음과 같이 정의됩니다.</p>
+<p>머티리얼 테마는 다음과 같이 정의됩니다.</p>
 
 <ul>
   <li><code>@android:style/Theme.Material</code> (어두운 버전)</li>
@@ -39,33 +42,39 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>사용가능한 머티어리얼 스타일 목록은 {@link android.R.style R.style}의 API 레퍼런스를 참조하세요.</p>
+<p>사용가능한 머티리얼 스타일 목록은
+{@link android.R.style R.style}의 API 레퍼런스를 참조하세요.</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>그림 1</strong>. 어두운 머티어리얼 테마</p>
+  <p style="margin-top:8px;font-size:12px"><strong>그림 1</strong>. 어두운 머티리얼 테마</p>
   </div>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>그림 2</strong>. 밝은 머티어리얼 테마</p>
+  <p style="margin-top:8px;font-size:12px"><strong>그림 2</strong>. 밝은 머티리얼 테마</p>
   </div>
 </div>
 <br style="clear:left">
 </div>
 
 <p class="note">
-<strong>참고:</strong> 머티어리얼 테마는 Android 5.0(API 레벨 21) 이상에서만 사용할 수 있습니다. <a href="{@docRoot}tools/support-library/features.html#v7">v7 Support Libraries</a>는 일부 위젯에 머티어리얼 디자인 스타일의 테마를 제공하고 색상표 사용자지정을 지원합니다. 자세한 내용은 <a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.
+<strong>참고:</strong> 머티리얼 테마는 Android 5.0(API 레벨 21) 이상에서만 사용할 수 있습니다.
+ <a href="{@docRoot}tools/support-library/features.html#v7">v7 지원 라이브러리</a>
+는 일부 위젯에 머티리얼 디자인 스타일의 테마를 제공하고 색상표 사용자지정을 지원합니다.
+ 자세한 내용은
+<a href="{@docRoot}training/material/compatibility.html">호환성 유지</a>를 참조하세요.
 </p>
 
 
 <h2 id="ColorPalette">색상표 사용자지정</h2>
 
-<p style="margin-bottom:30px">테마의 기본 색상을 브랜드에 맞게 사용자지정하려면 머티어리얼 테마에서 상속 시 테마 특성을 사용하여 사용자지정 색상을 정의하세요.</p>
+<p style="margin-bottom:30px">테마의 기본 색상을 브랜드에 맞게 사용자지정하려면 머티리얼 테마에서 상속 시 테마 특성을 사용하여 사용자지정 색상을 정의합니다.
+</p>
 
 <pre>
 &lt;resources>
@@ -85,23 +94,38 @@
 <div style="float:right;margin-left:25px;margin-top:20px;margin-bottom:10px" id="fig3">
 <img src="{@docRoot}training/material/images/ThemeColors.png" width="250" height="445" />
 <p class="img-caption" style="margin-bottom:0px">
-<strong>그림 3.</strong> 머티어리얼 테마 사용자자정</p>
+<strong>그림 3.</strong> 머티리얼 테마 사용자자정</p>
 </div>
 
 
 <h2 id="StatusBar">상태 표시줄 사용자지정</h2>
 
-<p>머티어리얼 테마를 사용하면 손쉽게 상태 표시줄을 사용자지정할 수 있습니다. 따라서 브랜드에 맞는 색상을 지정하고 흰색 상태 아이콘이 보이도록 충분한 대비를 제공할 수 있습니다. 상태 표시줄의 사용자지정 색상을 설정하려면 머티어리얼 테마를 확장할 때 <code>android:statusBarColor</code> 특성을 사용합니다. 기본적으로 <code>android:statusBarColor</code>는 <code>android:colorPrimaryDark</code>의 값을 상속합니다.</p>
+<p>머티리얼 테마를 사용하면 손쉽게 상태 표시줄을 사용자지정할 수 있습니다. 따라서 브랜드에 맞는 색상을 지정하고 흰색 상태 아이콘이 보이도록 충분한 대비를 제공할 수 있습니다.
+ 상태 표시줄의 사용자지정 색상을 설정하려면 머티리얼 테마를 확장할 때 <code>android:statusBarColor</code> 특성을 사용합니다.
 
-<p>직접 상태 표시줄 뒤에 그릴 수도 있습니다. 예를 들어 사진 위에 상태 표시줄이 투명하게 표시되도록 하려면, 희미하게 어두운 그라데이션으로 흰색 상태 아이콘이 보이게 합니다. 그러기 위해서는 <code>android:statusBarColor</code> 특성을 <code>&#64;android:color/transparent</code>에 설정하고 필요한 만큼 창 플래그를 조정합니다. 또한 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 메서드를 사용하여 애니메이션 또는 페이드 효과를 줄 수도 있습니다.</p>
+ 기본적으로 <code>android:statusBarColor</code>는 <code>android:colorPrimaryDark</code>의 값을 상속합니다.
+</p>
+
+<p>직접 상태 표시줄 뒤에 그릴 수도 있습니다. 예를 들어 사진 위에 상태 표시줄이 투명하게 표시되도록 하려면, 희미하게 어두운 그라데이션으로 흰색 상태 아이콘이 보이게 합니다.
+
+ 그렇게 하려면 <code>android:statusBarColor</code> 특성을
+<code>&#64;android:color/transparent</code>로 설정하고 필요한 경우 창 플래그를 조정합니다. 또한 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 메서드를 사용하여 애니메이션 또는 페이드 효과를 줄 수도 있습니다.
+
+</p>
 
 <p class="note">
 <strong>참고:</strong> 상태 표시줄은 거의 언제나 기본 도구모음과 경계가 분명히 식별되어야 합니다. 단, 이러한 표시줄 뒤에 다채로운 가장자리 이미지 또는 미디어 콘텐츠를 표시하는 경우나 아이콘이 계속 보이도록 그라데이션을 사용하는 경우는 제외됩니다.
+
+
 </p>
 
-<p>탐색 표시줄과 상태 표시줄을 사용자지정하는 경우, 둘 다 투명하게 만들거나 상태 표시줄만 수정합니다. 그 밖의 경우 탐색 표시줄은 항상 검은색을 유지합니다.</p>
+<p>탐색 표시줄과 상태 표시줄을 사용자지정하는 경우, 둘 다 투명하게 만들거나 상태 표시줄만 수정합니다.
+ 그 밖의 경우 탐색 표시줄은 항상 검은색을 유지해야 합니다.</p>
 
 
 <h2 id="Inheritance">개별 뷰의 테마 지정</h3>
 
-<p>XML 레이아웃 정의에 있는 요소는 테마 리소스를 참조하는 <code>android:theme</code> 특성을 지정할 수 있습니다. 이 특성은 요소와 모든 하위 요소의 테마를 수정하며, 인터페이스의 특정 부분에서 테마 색상표를 바꿀 때 유용합니다.</p> 
\ No newline at end of file
+<p>XML 레이아웃 정의에 있는 요소는 테마 리소스를 참조하는 <code>android:theme</code> 특성을 지정할 수 있습니다.
+ 이 특성은 요소와 모든 하위 요소의 테마를 수정하며, 인터페이스의 특정 부분에서 테마 색상표를 바꿀 때 유용합니다.
+
+</p>
diff --git a/docs/html-intl/intl/pt-br/design/get-started/principles.jd b/docs/html-intl/intl/pt-br/design/get-started/principles.jd
index 46af758..82e28cc 100644
--- a/docs/html-intl/intl/pt-br/design/get-started/principles.jd
+++ b/docs/html-intl/intl/pt-br/design/get-started/principles.jd
@@ -9,13 +9,13 @@
 
 <p>
 Considere estes princípios ao aplicar 
-suas próprias criatividade e mentalidade de projeto. Desvie-se de forma objetiva.
+sua criatividade e sua mentalidade de projeto. Desvie-se de forma objetiva.
 </p>
 
 <h2 id="enchant-me">Encante-me</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">Agrade-me de formas surpreendentes</h4>
 <p>Uma bela superfície, uma animação cuidadosamente posicionada ou um efeito sonoro no momento certo 
@@ -23,7 +23,7 @@
 poderoso está à mão.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">Objetos reais são mais divertidos que botões e menus</h4>
 <p>Deixe que as pessoas manipulem e toquem diretamente em objetos no seu aplicativo. Isso reduz o esforço cognitivo
 necessário para realizar uma tarefa e torna o aplicativo mais emocionalmente satisfatório.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,16 +49,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="make-it-mine">Deixe-me torná-lo meu</h4>
+<h4 id="make-it-mine">Deixe-me dar meu toque pessoal</h4>
 <p>As pessoas adoram adicionar toques pessoais, pois isso as ajuda a se sentirem à vontade e em controle. Forneça
 padrões sensatos e belos, mas também considere personalizações divertidas e opcionais que não
 prejudiquem as tarefas principais.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">Conheça-me</h4>
 <p>Conheça as preferências das pessoas no decorrer do tempo. Em vez de pedir que façam as mesmas escolhas repetidamente,
 coloque escolhas anteriores em alcance fácil.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">Simplifique minha vida</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">Seja breve</h4>
 <p>Use frases curtas com palavras simples. As pessoas provavelmente ignorarão frases longas.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">Imagens são mais rápidas que palavras</h4>
 <p>Considere usar imagens para explicar ideias. Elas chamam a atenção das pessoas e podem ser muito mais eficientes
 que palavras.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">Decida por mim, mas deixe que eu tenha a palavra final</h4>
 <p>Faça a melhor suposição e tome uma ação, em vez de primeiro perguntar. Escolhas e decisões demais deixam as pessoas
 incomodadas. Caso suponha errado, permita "desfazer".</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="only-show-when-i-need-it">Mostre só o que preciso, quando eu precisar</h4>
+<h4 id="only-show-when-i-need-it">Mostre só o que é preciso, quando eu precisar</h4>
 <p>As pessoas se sentem oprimidas quando veem coisas demais de uma vez. Detalhe tarefas e informações em partes
 pequenas e digeríveis. Oculte opções que não sejam essenciais no momento e ensine as pessoas à medida que avançam.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">Eu sempre devo saber onde estou</h4>
 <p>Dê às pessoas a confiança de saberem o que fazer. Faça com que os locais no seu aplicativo pareçam distintos
 e use transições para mostrar relacionamentos entre telas. Forneça feedback sobre tarefas em andamento.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">Nunca perca as minhas coisas</h4>
 <p>Salve o que as pessoas criaram e deixe que elas acessem de qualquer lugar. Lembre-se de configurações,
@@ -177,7 +177,7 @@
 coisa mais fácil do mundo.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">Se parece igual, deve agir da mesma forma</h4>
 <p>Ajude as pessoas a discernir diferenças funcionais tornando-as visualmente distintas, em vez de sutis.
 Evite que modos locais que agem de forma diferente sobre a mesma entrada se pareçam.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">Só me interrompa se for importante</h4>
 <p>Como um bom assistente pessoal, proteja as pessoas de informações não importantes. As pessoas querem ficar
 concentradas e, a não ser que seja crítica e dependente de tempo, uma interrupção pode ser irritante e frustrante.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,8 +220,8 @@
 
 <h2 id="make-me-amazing">Faça com que eu seja incrível</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">Dê-me truques que funcionem em qualquer lugar</h4>
 <p>As pessoas se sentem ótimas quando descobrem coisas sozinhas. Torne seu aplicativo mais inteligível ao
@@ -229,7 +229,7 @@
 pode ser um bom atalho de navegação.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,8 +238,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">Não é culpa minha</h4>
 <p>Seja gentil sobre como solicita correções a pessoas. Elas querem se sentir inteligentes ao usar o seu
@@ -247,7 +247,7 @@
 Se for possível corrigir em segundo plano, melhor ainda.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">Espalhe motivação</h4>
 <p>Divida tarefas complexas em passos menores que possam ser realizados facilmente. Dê feedback sobre ações,
 mesmo que seja um brilho sutil.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,8 +273,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">Faça o trabalho pesado por mim</h4>
 <p>Faça com que novatos se sintam peritos possibilitando que façam coisas que nunca acharam possíveis. Por
@@ -282,7 +282,7 @@
 com apenas alguns passos.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">Torne coisas importantes rápidas</h4>
 <p>Nem todas as ações são iguais. Decida o que é mais importante em seu aplicativo e torne fácil de encontrar e
 rápido de usar, como o botão do obturador em uma câmera ou o botão de pausa em um reprodutor de música.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/pt-br/design/material/index.jd b/docs/html-intl/intl/pt-br/design/material/index.jd
index fc9610c..5368d2d 100644
--- a/docs/html-intl/intl/pt-br/design/material/index.jd
+++ b/docs/html-intl/intl/pt-br/design/material/index.jd
@@ -1,7 +1,7 @@
-page.title=Material Design
+page.title=Material Design para Android
 page.tags=Material,design
 page.type=design
-page.image=design/material/images/MaterialLight.png
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -39,10 +39,10 @@
 
 
 
-<p itemprop="description">O Material Design é um guia abrangente para design visual, de movimento e de
+<p itemprop="description">O Material Design é um guia abrangente para design visual, de movimento e de 
 interação para diversas plataformas e dispositivos. O Android agora é compatível com
-aplicativos do Material Design. Para usar o Material Design nos aplicativos Android, siga as orientações definidas
-nas <a href="http://www.google.com/design/spec">especificações do Material Design</a> e use os novos
+aplicativos do Material Design. Para usar o Material Design nos aplicativos Android, siga as orientações definidas 
+nas <a href="http://www.google.com/design/spec">especificações do Material Design</a> e use os novos 
 componentes e funcionalidades disponíveis no Android 5.0 (API de nível 21) e em posteriores.</p>
 
 <p>O Android fornece os seguintes elementos para criar aplicativos do Material Design:</p>
@@ -59,7 +59,7 @@
 
 <h3>Tema do Material</h3>
 
-<p>O tema do Material fornece um novo estilo para o seu aplicativo, widgets de sistema que permitem
+<p>O tema do Material fornece um novo estilo para o seu aplicativo, widgets de sistema que permitem 
 definir a paleta de cores e as animações padrão para feedback de toque e transições de atividades.</p>
 
 <!-- two columns -->
@@ -79,13 +79,13 @@
 <br style="clear:left"/>
 </div>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/theme.html">Como usar o tema
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/theme.html">Como usar o tema 
 do Material</a>.</p>
 
 
 <h3>Listas e cartões</h3>
 
-<p>O Android fornece dois novos widgets para exibir cartões e listas com estilos e animações do
+<p>O Android fornece dois novos widgets para exibir cartões e listas com estilos e animações do 
 Material Design:</p>
 
 <!-- two columns -->
@@ -97,19 +97,19 @@
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
-  <p>O novo widget <code>CardView</code> permite exibir informações importantes dentro de
+  <p>O novo widget <code>CardView</code> permite exibir informações importantes dentro de 
   cartões que têm aparência consistente.</p>
 </div>
 <br style="clear:left"/>
 </div>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/lists-cards.html">Como criar
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/lists-cards.html">Como criar 
 listas e cartões</a>.</p>
 
 
 <h3>Sombras de vistas</h3>
 
-<p>Além das propriedades X e Y, vistas no Android agora têm uma propriedade
+<p>Além das propriedades X e Y, vistas no Android agora têm uma propriedade 
 Z. Essa nova propriedade representa a elevação de uma vista, que determina:</p>
 
 <ul>
@@ -130,7 +130,7 @@
   </div>
 </div>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Como
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Como 
 definir sombras e recortar visualizações</a>.</p>
 
 
@@ -162,10 +162,10 @@
 </li>
 </ul>
 
-<p>Animações de feedback de toque são integradas em várias vistas padrões, como botões. As novas APIs
+<p>Animações de feedback de toque são integradas em várias vistas padrão, como botões. As novas APIs
 permitem personalizar essas animações e adicioná-las às vistas personalizadas.</p>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/animations.html">Como definir
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/animations.html">Como definir 
 animações personalizadas</a>.</p>
 
 
@@ -182,5 +182,5 @@
 imagem de mapa de bits.</li>
 </ul>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/drawables.html">Como trabalhar
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/drawables.html">Como trabalhar 
 com desenháveis</a>.</p>
diff --git a/docs/html-intl/intl/pt-br/design/patterns/compatibility.jd b/docs/html-intl/intl/pt-br/design/patterns/compatibility.jd
new file mode 100644
index 0000000..775af0c
--- /dev/null
+++ b/docs/html-intl/intl/pt-br/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=Compatibilidade com versões anteriores
+page.tags="support"
+page.metaDescription=Observações sobre como o Android 4.x adapta IUs projetadas para versões de SO e hardware mais antigos.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>Documentos do desenvolvedor</h3>
+    <p>Suporte a diferentes dispositivos</p>
+  </div>
+</a>
+
+<p>Mudanças significativas no Android 3.0 incluem:</p>
+<ul>
+<li>Obsolescência de teclas de navegação do hardware (Voltar, Menu, Pesquisar, Página inicial) em favor do tratamento da navegação
+  com controles virtuais (Voltar, Página inicial, Recentes).</li>
+<li>Padrão robusto para o uso de menus em barras de ações.</li>
+</ul>
+<p>O Android 4.0 leva essas mudanças para tablets à plataforma de telefone.</p>
+
+<h2 id="older-hardware">Adaptação do Android 4.0 a hardware e aplicativos mais antigos</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Telefones com controles de navegação virtuais</h4>
+<p>Aplicativos Android escritos para o Android 3.0 e posteriores exibem ações na barra de ações. Ações que não cabem
+na barra de ações ou não são importantes o suficiente para serem exibidas no nível superior aparecem nas
+ações adicionais.</p>
+<p>Os usuários acessam as ações adicionais tocando na barra de ações.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Telefones com teclas de navegação físicas</h4>
+<p>Telefones Android com teclas de navegação de hardware tradicionais não exigem a barra de navegação virtual na
+parte inferior da tela. Em vez disso, as ações adicionais estão disponíveis na tecla de hardware de menu. A janela pop-up
+de ações resultante tem o mesmo estilo que no exemplo anterior, mas é exibida na parte inferior da tela.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Aplicativos legados em telefones com controles de navegação virtuais</h4>
+<p>Ao executar um aplicativo que foi desenvolvido para Android 2.3 ou anterior em um telefone com controles de 
+navegação virtuais, um controle de ações adicionais é exibido no lado direito da barra de navegação virtual. É possível
+tocar no controle para exibir as ações do aplicativo no estilo tradicional de menu do Android.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd
index 934dbdd..237c719 100644
--- a/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd
@@ -4,12 +4,12 @@
 
 <p>Em algumas situações, quando um usuário invoca uma ação em seu aplicativo, é uma boa ideia <em>confirmar</em> ou <em>reconhecer</em> essa ação com texto.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>Confirmar</strong> é pedir ao usuário que verifique se realmente quer prosseguir com a ação que acabou de invocar. Em alguns casos, a confirmação é apresentada com uma advertência ou informações críticas relacionadas à ação que ele precisa considerar.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p><strong>Reconhecer</strong> é exibir texto para avisar ao usuário que a ação que acabou de ser invocada foi concluída. Isso remove a incerteza sobre operações implícitas que o sistema adota. Em alguns casos, o reconhecimento é apresentado com uma opção para desfazer a ação.</p>
   </div>
@@ -22,14 +22,14 @@
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>Confirmação</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <h4>Exemplo: livros do Google Play</h4>
+<div class="cols">
+  <div class="col-6">
+    <h4>Exemplo: Livros do Google Play</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>Nesse exemplo, o usuário solicitou a exclusão de um livro da biblioteca do Google Play. Um <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">alerta</a> aparece para confirmar essa ação porque é importante entender que o livro não estará mais disponível em nenhum dispositivo.</p>
     <p>Ao montar uma caixa de diálogo de confirmação, use um título significativo que ecoe a ação solicitada.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Exemplo: Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>As confirmações não necessariamente precisam ser apresentadas em um alerta com dois botões. Depois de iniciar o Android Beam, o usuário é solicitado a tocar no conteúdo a ser compartilhado (nesse exemplo, uma foto). Se ele decidir não prosseguir, simplesmente afastará o celular.</p>
@@ -37,30 +37,30 @@
 </div>
 
 <h2>Reconhecimento</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <h4>Exemplo: abandonar rascunho salvo do Gmail</h4>
+<div class="cols">
+  <div class="col-6">
+    <h4>Exemplo: Abandonar rascunho salvo do Gmail</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>Nesse exemplo, se o usuário navegar para trás ou para cima na tela de composição do Gmail, alguma coisa possivelmente inesperada acontecerá: o rascunho atual será salvo automaticamente. Um reconhecimento na forma de aviso torna isso aparente. Ele desaparece depois de alguns segundos.</p>
-    <p>Desfazer não é adequado aqui, pois o ato de salvar foi iniciado pelo aplicativo, não pelo usuário, Além de ser rápido e fácil retomar a composição da mensagem navegando para a lista de rascunhos.</p>
+    <p>Desfazer não é adequado aqui, pois o ato de salvar foi iniciado pelo aplicativo, não pelo usuário, além de ser rápido e fácil retomar a composição da mensagem navegando para a lista de rascunhos.</p>
 
   </div>
-  <div class="layout-content-col span-6">
-    <h4>Exemplo: conversa do Gmail excluída</h4>
+  <div class="col-6">
+    <h4>Exemplo: Conversa do Gmail excluída</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>Depois que o usuário exclui uma conversa da lista no Gmail, um reconhecimento aparece com a opção de desfazer. O reconhecimento permanece até que o usuário tome uma ação não relacionada, como rolar a lista.</p>
   </div>
 </div>
 
 <h2>Sem confirmação nem reconhecimento</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Exemplo: +1</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>A confirmação é desnecessária.</strong> Se o usuário usar +1 por acidente, não é um problema. Poderá simplesmente tocar no botão novamente para desfazer a ação.</p>
     <p><strong>O reconhecimento é desnecessário.</strong> O usuário verá o botão +1 oscilar e ficar vermelho. Esse é um sinal muito claro.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Exemplo: Remover um aplicativo da tela inicial</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>A confirmação é desnecessária.</strong> Essa é uma ação deliberada: o usuário precisa arrastar e soltar um item em um alvo relativamente grande e isolado. Portanto, acidentes são altamente improváveis. Mas, se o usuário se arrepender da decisão, levará apenas alguns segundos para trazê-lo de volta.</p>
diff --git a/docs/html-intl/intl/pt-br/design/patterns/navigation.jd b/docs/html-intl/intl/pt-br/design/patterns/navigation.jd
index 920ccec..8ed12f7 100644
--- a/docs/html-intl/intl/pt-br/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/pt-br/design/patterns/navigation.jd
@@ -20,13 +20,13 @@
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
-<h2 id="up-vs-back">Para Cima vs. Voltar</h2>
+<h2 id="up-vs-back">Para Cima vs Voltar</h2>
 
 <p>O botão Para Cima é usado para navegar dentro de um aplicativo com base nos relacionamentos hierárquicos
-entre telas. Por exemplo, se a tela A exibe uma lista de itens e, selecionar um item leva à
-tela B (que apresenta aquele item em mais detalhes), então a tela B deve oferecer um botão Para Cima que
+entre telas. Por exemplo, se a tela A exibe uma lista de itens e selecionar um item leva à
+tela B (que apresenta aquele item em mais detalhes), a tela B deve oferecer um botão Para Cima que
 volte à tela A.</p>
-<p>Se determinada tela é a superior na hierarquia de um aplicativo (ou seja, a página inicial do aplicativo), ela não deve apresentar um botão
+<p>Se determinada tela é a superior na hierarquia de um aplicativo (ou seja, a tela inicial do aplicativo), ela não deve apresentar um botão
 Para Cima.</p>
 
 <p>O botão Voltar do sistema é usado para navegar, em ordem cronológica inversa, pelo histórico
@@ -50,9 +50,9 @@
 <h2 id="within-app">Navegação dentro do seu aplicativo</h2>
 
 <h4>Navegação para telas com vários pontos de entrada</h4>
-<p>Algumas vezes, uma tela não tem uma posição estrita dentro da hierarquia do aplicativo e pode ser atingida
-de vários pontos de entrada &mdash; como uma tela de configurações que pode ser atingida de qualquer outra tela
-do aplicativo. Nesse caso, o botão Para Cima deve escolher voltar para a tela anterior, comportando-se
+<p>Algumas vezes, uma tela não tem uma posição rigorosa dentro da hierarquia do aplicativo e pode ser acessada
+de vários pontos de entrada &mdash; como uma tela de configurações que pode ser acessada de qualquer outra tela
+no aplicativo. Nesse caso, o botão Para Cima deve escolher voltar à tela anterior, comportando-se
 de forma idêntica a Voltar.</p>
 <h4>Mudança de vista dentro de uma tela</h4>
 <p>Mudar opções de vista de uma tela não muda o comportamento de Para Cima nem de Voltar: a tela ainda
@@ -60,7 +60,7 @@
 <p>Exemplos de tais mudanças de vista são:</p>
 <ul>
 <li>Alternar vistas usando guias e/ou deslizando para a esquerda e para a direita</li>
-<li>Alternar vistas usando um menu suspenso (também chamados de abas recolhidas)</li>
+<li>Alternar vistas usando um menu suspenso (também chamadas de abas recolhidas)</li>
 <li>Filtrar uma lista</li>
 <li>Classificar uma lista</li>
 <li>Mudar características de exibição (como mudar o zoom)</li>
@@ -78,7 +78,7 @@
 vinculadas pela lista de referência &mdash; por exemplo, ao navegar na Play Store entre aplicativos
 do mesmo desenvolvedor ou álbuns do mesmo artista. Nesses casos, seguir cada link cria
 um histórico, fazendo com que o botão Voltar passe por cada tela visualizada anteriormente. Para Cima deve continuar a
-ignorar essas relacionadas e navegar para a tela do contêiner visualizada mais recentemente.</p>
+ignorar essas telas relacionadas e navegar para a tela do contêiner visualizada mais recentemente.</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
 
@@ -89,9 +89,9 @@
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
 
-<h2 id="into-your-app">Navegação para o seu aplicativo pelos widgets de página inicial e notificações</h2>
+<h2 id="into-your-app">Navegação para o seu aplicativo pelos widgets de tela inicial e notificações</h2>
 
-<p>Você pode usar widget de página inicial ou notificações para ajudar seus usuários a navegar diretamente para telas
+<p>Você pode usar widgets de tela inicial ou notificações para ajudar os usuários a navegar diretamente para telas
 profundas na hierarquia do seu aplicativo. Por exemplo, o widget Caixa de Entrada do Gmail e a notificação de nova mensagem podem
 ignorar a tela Caixa de Entrada, levando o usuário diretamente a uma vista de conversa.</p>
 
@@ -100,17 +100,17 @@
 <ul>
 <li><em>Se a tela de destino é normalmente acessada de uma determinada tela dentro do
 aplicativo</em>, Para Cima deve navegar para essa tela.</li>
-<li><em>Caso contrário</em>, Para Cima deve navegar para a tela superior ("Página inicial") do aplicativo.</li>
+<li><em>Caso contrário</em>, Para Cima deve navegar para a tela superior ("Tela inicial") do aplicativo.</li>
 </ul>
 
 <p>No caso do botão Voltar, você deve tornar a navegação mais previsível inserindo o caminho de navegação para cima
-completo na pilha de retorno da tarefa, até a tela superior do aplicativo. Isso permite que usuários
+completo na pilha de retorno da tarefa até a tela superior do aplicativo. Isso permite que usuários
 que se esqueceram de como entraram no aplicativo naveguem para a tela superior do aplicativo
 antes de saírem.</p>
 
-<p>Como exemplo, o widget da Página inicial do Gmail tem um botão para mergulhar diretamente para a tela
+<p>Como exemplo, o widget da Tela inicial do Gmail tem um botão para mergulhar diretamente para a tela
 de composição. Para Cima ou Voltar na tela de composição deve levar o usuário à Caixa de Entrada e, de lá, o
-botão Voltar continua até a Página inicial.</p>
+botão Voltar continua até a Tela inicial.</p>
 
 <img src="{@docRoot}design/media/navigation_from_outside_back.png">
 
@@ -123,7 +123,7 @@
 
 <p>Diferentemente de em notificações padrão (diretas), pressionar Voltar em uma tela intersticial da
 notificação indireta retorna o usuário ao ponto em que a notificação foi acionada &mdash; nenhuma
-tela adicional é inserida na pilha de retorno. Quando o usuário prossegue para o aplicativo a partir da
+tela adicional é inserida na pilha de retorno. Quando o usuário prossegue para o aplicativo da
 tela intersticial, Para Cima e Voltar se comportam como em notificações padrão, como descrito acima:
 navegando dentro do aplicativo em vez de voltar à tela intersticial.</p>
 
@@ -166,13 +166,13 @@
 
 <p>No Android, uma <strong>atividade</strong> é um componente do aplicativo que define uma tela de
 informações e todas as ações associadas que o usuário pode executar. Seu aplicativo é uma coleção de
-atividades, consistindo em atividades que você cria e aquelas que reutiliza de outros aplicativos.</p>
+atividades, consistindo em atividades que você cria e naquelas que reutiliza de outros aplicativos.</p>
 
 <p>Uma <strong>tarefa</strong> é a sequência de atividades que um usuário segue para atingir um objetivo. Uma
 única tarefa pode usar atividades apenas de um aplicativo ou pode retirar atividades de uma série 
 de outros aplicativos.</p>
 
-<p>Uma <strong>intenção</strong> é um mecanismo para que um aplicativo sinalize que gostaria da assistência de outro
+<p>Uma <strong>intenção</strong> é um mecanismo para que um aplicativo sinalize que gostaria a assistência de outro
 aplicativo para realizar uma ação. As atividades de um aplicativo podem indicar a que intenções
 ele responde. Para intenções comuns, como "Compartilhar", o usuário pode ter vários aplicativos
 instalados que atendam a essa solicitação.</p>
@@ -180,7 +180,7 @@
 <h4>Exemplo: navegação entre aplicativos para suporte a compartilhamento</h4>
 
 <p>Para entender como atividades, tarefas e intenções funcionam juntas, entenda como um aplicativo permite que usuários
-compartilhem conteúdo usando outro aplicativo. Por exemplo, executar o aplicativo Play Store na tela inicial inicia
+compartilhem conteúdo usando outro aplicativo. Por exemplo, executar o aplicativo Play Store na tela inicial começa
 uma nova Tarefa A (veja a figura baixo). Depois de navegar pela Play Store e tocar em um livro em promoção
 para ver os detalhes, o usuário permanecerá na mesma tarefa, estendendo-a ao adicionar atividades. Acionar
 a ação Compartilhar exibe ao usuário uma caixa de diálogo listando cada uma das atividades (de diferentes aplicativos)
@@ -209,5 +209,5 @@
 pela Tarefa B &mdash; o contexto anterior é abandonado em favor do novo objetivo do usuário.</p>
 
 <p>Quando o aplicativo é registrado para tratar intenções com uma atividade em um ponto profundo da hierarquia do aplicativo,
-consulte <a href="#into-your-app">Navegação para o seu aplicativo pelos widgets de página 
+consulte <a href="#into-your-app">Navegação para o seu aplicativo pelos widgets de tela 
 inicial e notificações</a> para ver orientações sobre como especificar a navegação Para Cima.</p>
diff --git a/docs/html-intl/intl/pt-br/index.jd b/docs/html-intl/intl/pt-br/index.jd
index 2c2fdee..8605ab8 100644
--- a/docs/html-intl/intl/pt-br/index.jd
+++ b/docs/html-intl/intl/pt-br/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/pt-br/sdk/index.jd b/docs/html-intl/intl/pt-br/sdk/index.jd
index 152bf26..ff3210b1 100644
--- a/docs/html-intl/intl/pt-br/sdk/index.jd
+++ b/docs/html-intl/intl/pt-br/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=Como baixar o Android Studio e o SDK Tools
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Baixar o Android IDE e ferramentas do desenvolvedor para compilar aplicativos para celulares, tablets, dispositivos de uso junto ao corpo, TVs e muito mais do Android.
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,7 +231,7 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">O IDE oficial do Android</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>IDE do Android Studio</li>
 <li>Ferramentas do Android SDK</li>
 <li>Plataforma do Android 6.0 (Marshmallow)</li>
@@ -300,7 +239,8 @@
 </ul>
 
 
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/pt-br/sdk/installing/adding-packages.jd b/docs/html-intl/intl/pt-br/sdk/installing/adding-packages.jd
index f7022a4..bda33b6 100644
--- a/docs/html-intl/intl/pt-br/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/pt-br/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=Como adicionar pacotes SDK
 
 page.tags=sdk manager
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/pt-br/training/material/animations.jd b/docs/html-intl/intl/pt-br/training/material/animations.jd
index ca722e8..6597db6 100644
--- a/docs/html-intl/intl/pt-br/training/material/animations.jd
+++ b/docs/html-intl/intl/pt-br/training/material/animations.jd
@@ -1,4 +1,4 @@
-page.title=Como definir animações personalizadas 
+page.title=Como definir animações personalizadas
 
 @jd:body
 
@@ -21,7 +21,10 @@
 </div>
 
 
-<p>As animações no Material Design dão feedback aos usuários sobre as ações deles e fornecem continuidade visual à medida que interagem com o seu aplicativo. O tema do Material fornece algumas animações padrão para botões e transições de atividades e o Android 5.0 (API de nível 21) e posteriores permitem a personalização dessas animações e a criação de novas:</p>
+<p>As animações no Material Design dão feedback aos usuários sobre as ações deles e fornecem
+continuidade visual à medida que interagem com o seu aplicativo. O tema do Material fornece algumas animações padrão para
+botões e transições de atividades e o Android 5.0 (API de nível 21) e posteriores permitem a personalização
+dessas animações e a criação de novas:</p>
 
 <ul>
 <li>Feedback de toque</li>
@@ -34,28 +37,42 @@
 
 <h2 id="Touch">Personalizar feedback de toque</h2>
 
-<p>Os feedbacks de toque no Material Design fornecem confirmação visual instantânea no ponto de contato quando os usuários interagem com elementos da IU. As animações de feedback de toque padrão para botões usam a nova classe {@link android.graphics.drawable.RippleDrawable}, que passa por transições entre diferentes estados com um efeito de ondulação.</p>
+<p>Os feedbacks de toque no Material Design fornecem confirmação visual instantânea no
+ponto de contato quando os usuários interagem com elementos da interface do usuário. As animações de feedback de toque padrão
+para botões usam a nova classe {@link android.graphics.drawable.RippleDrawable}, que passa por transições
+entre diferentes estados com um efeito de ondulação.</p>
 
-<p>Na maioria dos casos, você deve aplicar essa funcionalidade no XML de visualização especificando o plano de fundo da visualização como:</p>
+<p>Na maioria dos casos, você deve aplicar essa funcionalidade no XML de visualização especificando o segundo plano da
+visualização como:</p>
 
 <ul>
-<li><code>?android:attr/selectableItemBackground</code> para uma ondulação delimitada</li>
-<li><code>?android:attr/selectableItemBackgroundBorderless</code> para uma ondulação que se estenda além da visualização</li>
+<li><code>?android:attr/selectableItemBackground</code> para uma ondulação delimitada.</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> para uma ondulação que se estenda além
+da visualização. Ele será desenhado sobre e delimitado pelo pai mais próximo da visualização com um segundo plano
+não nulo.</li>
 </ul>
 
-<p class="note"><strong>Observação:</strong> <code>selectableItemBackgroundBorderless</code> é um novo atributo inserido na API de nível 21.</p>
+<p class="note"><strong>Observação:</strong> <code>selectableItemBackgroundBorderless</code> é um novo
+atributo introduzido na API de nível 21.</p>
 
 
-<p>Alternativamente, você pode definir um {@link android.graphics.drawable.RippleDrawable} como um recurso XML usando o elemento <code>ripple</code>.</p>
+<p>Alternativamente, você pode definir um {@link android.graphics.drawable.RippleDrawable}
+como um recurso XML usando o elemento <code>ripple</code>.</p>
 
-<p>Você pode atribuir uma cor para objetos {@link android.graphics.drawable.RippleDrawable}. Para alterar a cor do feedback de toque padrão, use o atributo <code>android:colorControlHighlight</code> do tema.</p>
+<p>Você pode atribuir uma cor para objetos {@link android.graphics.drawable.RippleDrawable}. Para alterar
+a cor do feedback de toque padrão, use o atributo <code>android:colorControlHighlight</code>
+do tema.</p>
 
-<p>Para obter mais informações, consulte a referência de API para a classe {@link android.graphics.drawable.RippleDrawable}.</p>
+<p>Para obter mais informações, consulte a referência de API para a classe {@link
+android.graphics.drawable.RippleDrawable}.</p>
 
 
 <h2 id="Reveal">Usar o efeito de revelação</h2>
 
-<p>Revelar animações fornece continuidade visual aos usuários ao exibir ou esconder um grupo de elementos da IU. O método {@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} permite animar um círculo de recorte para revelar ou esconder uma visualização.</p>
+<p>Revelar animações fornece continuidade visual aos usuários ao exibir ou esconder um grupo
+de elementos da interface do usuário. O método {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} permite animar um círculo de recorte para
+revelar ou ocultar uma visualização.</p>
 
 <p>Para revelar uma visualização anteriormente invisível usando esse efeito:</p>
 
@@ -122,19 +139,29 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Figura 1</strong> - uma transição com elementos compartilhados.</p>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Figura 1</strong> - uma
+    transição com elementos compartilhados.</p>
     <em>Para reproduzir o filme, clique na tela do dispositivo</em>
   </div>
 </div>
 
-<p>As transições de atividades em aplicativos com Material Design fornecem conexões visuais entre estados diferentes por meio de movimentos e transformações entre elementos comuns. Você pode especificar animações personalizadas para transições de entrada e de saída e para transições de elementos compartilhados entre atividades.</p>
+<p>As transições de atividades em aplicativos com Material Design fornecem conexões visuais
+entre estados diferentes por meio de movimentos e transformações entre elementos comuns. Você pode especificar animações personalizadas para
+transições de entrada e de saída e para transições de elementos compartilhados entre atividades.</p>
 
 <ul>
-<li>Uma transição de <strong>entrada</strong> determina como as visualizações em uma atividade entram em cena. Por exemplo, na transição de entrada <em>explodir</em>, as visualizações entram em cena por fora e voam em direção ao centro da tela.</li>
+<li>Uma transição de <strong>entrada</strong> determina como as visualizações em uma atividade entram em cena.
+Por exemplo, na transição de entrada <em>explodir</em>, as visualizações entram em cena por fora
+e voam em direção ao centro da tela.</li>
 
-<li>Uma transição de <strong>saída</strong> determina como as visualizações em uma atividade saem de cena. Por exemplo, na transição de saída <em>explodir</em>, as visualizações saem de cena a partir do centro.</li>
+<li>Uma transição de <strong>saída</strong> determina como as visualizações em uma atividade saem de cena. Por
+  exemplo, na transição de saída <em>explodir</em>, as visualizações saem de cena a partir do
+centro.</li>
 
-<li>Uma transição de <strong>elementos compartilhados</strong> determina como as visualizações compartilhadas entre duas atividades fazem transição entre essas atividades. Por exemplo, se duas atividades têm a mesma imagem em posições e tamanhos diferentes, a transição de elemento compartilhado <em>changeImageTransform</em> movimenta e dimensiona a imagem suavemente entre essas atividades.</li>
+<li>Uma transição de <strong>elementos compartilhados</strong> determina como as visualizações compartilhadas
+entre duas atividades fazem transição entre essas atividades. Por exemplo, se duas atividades têm a mesma
+imagem em posições e tamanhos diferentes, a transição de elemento compartilhado <em>changeImageTransform</em> converte
+e dimensiona a imagem suavemente entre essas atividades.</li>
 </ul>
 
 <p>O Android 5.0 (API de nível 21) é compatível com estas transições de entrada e de saída:</p>
@@ -145,7 +172,9 @@
 <li><em>esmaecer</em> - adiciona ou remove uma visualização de uma cena alterando a opacidade.</li>
 </ul>
 
-<p>Qualquer transição que amplie a classe {@link android.transition.Visibility} é compatibilizada como uma transição de entrada ou de saída. Para obter mais informações, consulte a referência de API para a classe {@link android.transition.Transition}.</p>
+<p>Qualquer transição que amplie a classe {@link android.transition.Visibility} é suportada
+como uma transição de entrada ou de saída. Para obter mais informações, consulte a referência de API para a classe
+{@link android.transition.Transition}.</p>
 
 <p>O Android 5.0 (API de nível 21) também é compatível com estas transições de elementos compartilhados:</p>
 
@@ -156,7 +185,8 @@
 <li><em>changeImageTransform</em> - anima as mudanças das imagens desejadas em tamanho e escala.</li>
 </ul>
 
-<p>Ao habilitar as transições de atividade no seu aplicativo, a transição de esmaecimento cruzado padrão é ativada entre as atividades de entrada e saída.</p>
+<p>Ao habilitar as transições de atividades no seu aplicativo, a transição de esmaecimento cruzado padrão é
+ativada entre as atividades de entrada e saída.</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
@@ -165,7 +195,9 @@
 
 <h3>Especificar transições de atividades</h3>
 
-<p>Primeiramente, habilite as transições de conteúdo da janela com o atributo <code>android:windowContentTransitions</code> ao definir um estilo herdado do tema do Material. Você também pode especificar transições de entrada, saída e elemento compartilhado na definição de estilo:</p>
+<p>Primeiro, habilite as transições de conteúdo da janela com o atributo <code>android:windowContentTransitions</code>
+ao definir um estilo herdado do tema do Material. Você também pode especificar
+transições de entrada, saída e elemento compartilhado na definição de estilo:</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p>O elemento <code>changeImageTransform</code> corresponde à classe {@link android.transition.ChangeImageTransform}. Para obter mais informações, consulte a referência de API para {@link android.transition.Transition}.</p>
+<p>O elemento <code>changeImageTransform</code> corresponde à classe
+{@link android.transition.ChangeImageTransform}. Para obter mais informações, consulte a referência de
+API para {@link android.transition.Transition}.</p>
 
-<p>Para habilitar transições de conteúdo da janela no código como alternativa, chame o método {@link android.view.Window#requestFeature Window.requestFeature()}:</p>
+<p>Para habilitar transições de conteúdo da janela no código como alternativa, chame o método
+{@link android.view.Window#requestFeature Window.requestFeature()}:</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,31 +241,45 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>Para especificar transições no código, chame os métodos a seguir com um objeto {@link android.transition.Transition}:</p>
+<p>Para especificar transições no código, chame os métodos a seguir com um objeto {@link
+android.transition.Transition}:</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>Os métodos {@link android.view.Window#setExitTransition setExitTransition()} e {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} definem a transição de saída para a atividade de chamada. Os métodos {@link android.view.Window#setEnterTransition setEnterTransition()} e {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} definem a transição de entrada para a atividade chamada.</p>
+<p>Os métodos {@link android.view.Window#setExitTransition setExitTransition()} e {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} definem
+a transição de saída para a atividade de chamada. Os métodos {@link android.view.Window#setEnterTransition
+setEnterTransition()} e {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} definem a transição de entrada para a atividade chamada.</p>
 
-<p>Para obter o efeito completo de uma transição, você deve habilitar as transições de conteúdo da janela tanto na atividade chamada quanto na atividade de chamada. Caso contrário, a atividade de chamada acionará a transição de saída, mas você verá uma transição de janela (como dimensionamento ou esmaecimento).</p>
+<p>Para obter o efeito completo de uma transição, você deve habilitar as transições de conteúdo da janela tanto na atividade
+chamada quanto na atividade de chamada. Caso contrário, a atividade de chamada acionará a transição de saída,
+mas você verá uma transição de janela (como dimensionamento ou esmaecimento).</p>
 
-<p>Para iniciar uma transição de entrada o mais cedo possível, use o método {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} na atividade chamada. Isso faz com que haja transições de entrada mais dramáticas.</p>
+<p>Para iniciar uma transição de entrada o mais cedo possível, use o método
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+na atividade chamada. Isso faz com que haja transições de entrada mais dramáticas.</p>
 
 <h3>Iniciar uma atividade usando transições</h3>
 
-<p>Se você habilita as transições e define uma transição de saída para uma atividade, a transição será ativada ao iniciar outra atividade, como a seguir:</p>
+<p>Se você habilita as transições e define uma transição de saída para uma atividade, a transição
+será ativada ao iniciar outra atividade, como a seguir:</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>Se você configurou uma transição de entrada para a segunda atividade, a transição também será ativada quando a atividade for iniciada. Para desabilitar as transições ao iniciar outra atividade, forneça um pacote de opções <code>null</code>.</p>
+<p>Se você configurou uma transição de entrada para a segunda atividade, a transição também
+será ativada quando a atividade for iniciada. Para desabilitar as transições ao iniciar outra atividade, forneça um pacote de
+opções <code>null</code>.</p>
 
 <h3>Iniciar uma atividade com um elemento compartilhado</h3>
 
@@ -240,8 +289,10 @@
 <li>Habilite transições de conteúdo da janela no tema.</li>
 <li>Especifique uma transição de elementos compartilhados no estilo.</li>
 <li>Defina a transição como um recurso XML.</li>
-<li>Atribua um nome comum aos elementos compartilhados em ambos os layouts com o atributo <code>android:transitionName</code>.</li>
-<li>Use o método {@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()}.</li>
+<li>Atribua um nome comum aos elementos compartilhados em ambos os layouts com o atributo
+    <code>android:transitionName</code>.</li>
+<li>Use o método {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()}.</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>Para obter visualizações dinâmicas compartilhadas geradas no código, use o método {@link android.view.View#setTransitionName View.setTransitionName()} para especificar um nome de elemento comum em ambas as atividades.</p>
+<p>Para obter visualizações dinâmicas compartilhadas geradas no código, use o método
+{@link android.view.View#setTransitionName View.setTransitionName()} para especificar um nome de
+elemento comum em ambas as atividades.</p>
 
-<p>Para reverter a animação de transição de cena ao finalizar a segunda atividade, chame o método {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} em vez de {@link android.app.Activity#finish Activity.finish()}.</p>
+<p>Para reverter a animação de transição de cena ao finalizar a segunda atividade, chame o método
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+em vez de {@link android.app.Activity#finish Activity.finish()}.</p>
 
 <h3>Iniciar uma atividade com diversos elementos compartilhados</h3>
 
-<p>Para criar uma animação de transição de cena entre duas atividades que têm mais de um elemento compartilhado, defina os elementos compartilhados em ambos os layouts com o atributo <code>android:transitionName</code> (ou use o método {@link android.view.View#setTransitionName View.setTransitionName()} em ambas as atividades), e crie um objeto {@link android.app.ActivityOptions}, como a seguir:</p>
+<p>Para criar uma animação de transição de cena entre duas atividades que têm mais de um elemento
+compartilhado, defina os elementos compartilhados em ambos os layouts com o atributo <code>android:transitionName</code>
+(ou use o método {@link android.view.View#setTransitionName View.setTransitionName()} em ambas
+as atividades) e crie um objeto {@link android.app.ActivityOptions}, como a seguir:</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">Usar movimento curvado</h2>
 
-<p>As animações no Material Design dependem das curvas para obter padrões de interpolação de tempo e de movimentos espaciais. Com o Android 5.0 (API de nível 21) e posteriores, você pode definir padrões de curvas de temporização personalizada e de movimentos curvados para animações.</p>
+<p>As animações no Material Design dependem das curvas para obter padrões de interpolação
+de tempo e de movimentos espaciais. Com o Android 5.0 (API de nível 21) e posteriores, você pode definir padrões de curvas de
+temporização personalizada e de movimentos curvados para animações.</p>
 
-<p>A classe {@link android.view.animation.PathInterpolator} é um novo interpolador baseado em uma curve Bézier ou em um objeto {@link android.graphics.Path}. Esse interpolador especifica uma curva de movimento em um quadrado de 1x1, com pontos de ancoragem em (0,0) e (1,1) e pontos de controle conforme o especificado, usando os argumentos do construtor. Você também pode definir um interpolador de caminho como um recurso XML:</p>
+<p>A classe {@link android.view.animation.PathInterpolator} é um novo interpolador baseado em uma
+curva Bézier ou em um objeto {@link android.graphics.Path}. Esse interpolador especifica uma curva de movimento em
+um quadrado de 1x1, com pontos de ancoragem em (0,0) e (1,1) e pontos de controle conforme especificado usando
+os argumentos do construtor. Você também pode definir um interpolador de caminho como um recurso XML:</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>O sistema fornece recursos XML para três curvas básicas na especificação do Material Design:</p>
+<p>O sistema fornece recursos XML para três curvas básicas na especificação do
+Material Design:</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>Você pode passar um objeto {@link android.view.animation.PathInterpolator} ao método {@link android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
+<p>Você pode passar um objeto {@link android.view.animation.PathInterpolator} para o método {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
 
-<p>A classe {@link android.animation.ObjectAnimator} tem novos construtores que habilitam a animação de coordenadas ao longo de um caminho usando duas ou mais propriedades simultaneamente. Por exemplo, o animador a seguir usa um objeto {@link android.graphics.Path} para animar as propriedades X e Y de uma visualização:</p>
+<p>A classe {@link android.animation.ObjectAnimator} tem novos construtores que permitem a animação de
+coordenadas ao longo de um caminho usando duas ou mais propriedades simultaneamente. Por exemplo, o animador a seguir usa um
+objeto {@link android.graphics.Path} para animar as propriedades X e Y de uma visualização:</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -317,7 +384,9 @@
 
 <h2 id="ViewState">Animar mudança de estado da visualização</h2>
 
-<p>A classe {@link android.animation.StateListAnimator} permite a definição de animadores que são executados quando o estado de uma visualização muda. O exemplo a seguir mostra como definir uma {@link android.animation.StateListAnimator} como um recurso XML:</p>
+<p>A classe {@link android.animation.StateListAnimator} permite a definição de animadores que são executados
+quando o estado de uma visualização muda. O exemplo a seguir mostra como definir um {@link
+android.animation.StateListAnimator} como um recurso XML:</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>Para anexar animações de estado de visualização personalizadas a uma visualização, defina um animador usando o elemento <code>selector</code> em um arquivo de recurso XML, como nesse exemplo, e atribua-o à visualização com o atributo <code>android:stateListAnimator</code>. Para atribuir um animador de lista de estado a uma visualização no código, use o método {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} e atribua o animador à visualização com o método {@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
+<p>Para anexar animações de estado de visualização personalizadas a uma visualização, defina um animador usando o elemento
+<code>selector</code> em um arquivo de recurso XML, como nesse exemplo, e
+atribua-o à visualização com o atributo <code>android:stateListAnimator</code>. Para atribuir um animador de lista de estado
+a uma visualização no código, use o método {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} e atribua o animador à visualização com o método
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
 
-<p>Quando o tema amplia o tema do Material, os botões têm uma animação Z por padrão. Para evitar esse comportamento nos botões, defina o atributo <code>android:stateListAnimator</code> como <code>@null</code>.</p>
+<p>Quando o tema amplia o tema do Material, os botões têm uma animação Z por padrão. Para evitar esse
+comportamento nos botões, defina o atributo <code>android:stateListAnimator</code> como
+<code>@null</code>.</p>
 
-<p>A classe {@link android.graphics.drawable.AnimatedStateListDrawable} permite a criação de desenháveis que exibem animações entre mudanças de estado da visualização associada. Alguns dos widgets de sistema no Android 5.0 usam essas animações por padrão. O exemplo a seguir mostra como definir uma {@link android.graphics.drawable.AnimatedStateListDrawable} como um recurso XML:</p>
+<p>A classe {@link android.graphics.drawable.AnimatedStateListDrawable} permite a criação de
+desenháveis que exibem animações entre mudanças de estado da visualização associada. Alguns dos widgets de sistema no
+Android 5.0 usam essas animações por padrão. O exemplo a seguir mostra como
+definir um {@link android.graphics.drawable.AnimatedStateListDrawable} como um recurso XML:</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -379,19 +458,28 @@
 
 <h2 id="AnimVector">Animar desenháveis de vetor</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Desenháveis de vetor</a> são dimensionáveis sem perder definição. A classe {@link android.graphics.drawable.AnimatedVectorDrawable} permite a animação de propriedades de um desenhável de vetor.</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Desenháveis de vetor</a> são
+dimensionáveis sem perder definição. A classe {@link android.graphics.drawable.AnimatedVectorDrawable}
+permite a animação de propriedades de um desenhável de vetor.</p>
 
 <p>Você normalmente define desenháveis de vetor animados em três arquivos XML:</p>
 
 <ul>
-<li>Um desenhável de vetor com o elemento <code>&lt;vector&gt;</code> em <code>res/drawable/</code></li>
-<li>Um desenhável de vetor animado com o elemento <code>&lt;animated-vector&gt;</code> em <code>res/drawable/</code></li>
-<li>Um ou mais animadores de objeto com o elemento <code>&lt;objectAnimator&gt;</code> em <code>res/anim/</code></li>
+<li>Um desenhável de vetor com o elemento <code>&lt;vector&gt;</code> em
+<code>res/drawable/</code></li>
+<li>Um desenhável de vetor animado com o elemento <code>&lt;animated-vector&gt;</code> em
+<code>res/drawable/</code></li>
+<li>Um ou mais animadores de objeto com o elemento <code>&lt;objectAnimator&gt;</code> em
+<code>res/anim/</code></li>
 </ul>
 
-<p>Desenháveis de vetor animados podem animar os atributos dos elementos <code>&lt;group&gt;</code> e <code>&lt;path&gt;</code>. Os elementos <code>&lt;group&gt;</code> definem um conjunto de caminhos ou subgrupos e o elemento <code>&lt;path&gt;</code> define caminhos a serem desenhados.</p>
+<p>Desenháveis de vetor animados podem animar os atributos dos elementos <code>&lt;group&gt;</code> e
+<code>&lt;path&gt;</code>. Os elementos <code>&lt;group&gt;</code> definem um conjunto de
+caminhos ou subgrupos e o elemento <code>&lt;path&gt;</code> define caminhos a serem desenhados.</p>
 
-<p>Ao definir um desenhável de vetor que você queira animar, use o atributo <code>android:name</code> para atribuir um nome único a grupos e caminhos para poder referenciá-los nas definições do animador. Por exemplo:</p>
+<p>Ao definir um desenhável de vetor que você queira animar, use o atributo <code>android:name</code>
+para atribuir um nome único a grupos e caminhos para poder referenciá-los nas definições
+do animador. Por exemplo:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>O desenhável de vetor animado refere-se a grupos e caminhos no desenhável de vetor pelos respectivos nomes:</p>
+<p>A definição de desenhável de vetor animado se refere a grupos e caminhos no desenhável de vetor
+pelos respectivos nomes:</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>As definições da animação representam os objetos {@link android.animation.ObjectAnimator} ou {@link android.animation.AnimatorSet}. O primeiro animador nesse exemplo gira o grupo desejado em 360º:</p>
+<p>As definições de animação representam objetos {@link android.animation.ObjectAnimator} ou {@link
+android.animation.AnimatorSet}. O primeiro animador nesse exemplo gira o grupo
+desejado em 360º:</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>O segundo animador nesse exemplo transforma a forma do caminho do desenhável de vetor. Ambos os caminhos devem ser compatíveis com a transformação: eles precisam ter o mesmo número de comandos e de parâmetros para cada comando.</p>
+<p>O segundo animador nesse exemplo transforma a forma do caminho do desenhável
+de vetor. Ambos os caminhos devem ser compatíveis com a transformação: eles precisam ter o mesmo
+número de comandos e de parâmetros para cada comando.</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>Para obter mais informações, consulte a referência de API para {@link android.graphics.drawable.AnimatedVectorDrawable}.</p> 
\ No newline at end of file
+<p>Para obter mais informações, consulte a referência de API para {@link
+android.graphics.drawable.AnimatedVectorDrawable}.</p>
diff --git a/docs/html-intl/intl/pt-br/training/material/compatibility.jd b/docs/html-intl/intl/pt-br/training/material/compatibility.jd
index e04d22c..2540df1 100644
--- a/docs/html-intl/intl/pt-br/training/material/compatibility.jd
+++ b/docs/html-intl/intl/pt-br/training/material/compatibility.jd
@@ -1,4 +1,4 @@
-page.title=Como manter a compatibilidade 
+page.title=Como manter a compatibilidade
 
 @jd:body
 
@@ -20,42 +20,63 @@
 </div>
 
 
-<p>Alguns recursos do Material Design, como o tema do Material e transições personalizadas de atividades, estão disponíveis apenas no Android 5.0 (API de nível 21) e em posteriores. Contudo, você pode projetar os aplicativos para usar esses recursos ao executá-los em dispositivos compatíveis com o Material Design e ainda mantê-los compatíveis com dispositivos que funcionam com versões anteriores do Android.</p>
+<p>Alguns recursos do Material Design, como o tema do Material e transições personalizadas de atividades, estão
+disponíveis apenas no Android 5.0 (API de nível 21) e posteriores. Contudo, você pode projetar os aplicativos
+para usar esses recursos ao executá-los em dispositivos compatíveis com o Material Design e ainda mantê-los
+compatíveis com dispositivos executando versões anteriores do Android.</p>
 
 
 <h2 id="Theme">Definir estilos alternativos</h2>
 
-<p>Você pode configurar o aplicativo para usar o tema do Material em dispositivos compatíveis com ele e regressar a um tema antigo em dispositivos que funcionam com versões anteriores do Android:</p>
+<p>Você pode configurar o aplicativo para usar o tema do Material em dispositivos compatíveis
+com ele e reverter para um tema antigo em dispositivos que executem versões anteriores do Android:</p>
 
 <ol>
-<li>Defina um tema herdado de um tema antigo (como Holo) em <code>res/values/styles.xml</code>.</li>
-<li>Defina um tema com o mesmo nome herdado do tema do Material em <code>res/values-v21/styles.xml</code>.</li>
+<li>Defina um tema herdado de um tema antigo (como Holo) em
+    <code>res/values/styles.xml</code>.</li>
+<li>Defina um tema com o mesmo nome herdado do tema do Material em
+    <code>res/values-v21/styles.xml</code>.</li>
 <li>Defina esse tema como o tema do seu aplicativo no arquivo de manifesto.</li>
 </ol>
 
-<p class="note"><strong>Observação:</strong> Se o seu aplicativo usa o tema do Material mas não fornece um tema alternativo dessa maneira, o aplicativo não rodará em verões mais antigas do que o Android 5.0.
+<p class="note"><strong>Observação:</strong>
+se o seu aplicativo usa o tema do Material mas não fornece um tema alternativo dessa maneira,
+o aplicativo não rodará em versões mais antigas do que o Android 5.0.
 </p>
 
 
 <h2 id="Layouts">Fornecer layouts alternativos</h2>
 
-<p>Se os layouts que você projetou de acordo com as orientações do Material Design não usarem quaisquer dos novos atributos XML introduzidos no Android 5.0 (API de nível 21), funcionarão em versões antigas do Android. Caso contrário, você pode fornecer layouts alternativos. Você também pode fornecer layouts alternativos para personalizar a aparência do seu aplicativo em versões anteriores do Android.</p>
+<p>Se os layouts que você projetou de acordo com as orientações do Material Design não usarem
+quaisquer dos novos atributos XML introduzidos no Android 5.0 (API de nível 21), eles funcionarão em
+versões antigas do Android. Caso contrário, você pode fornecer layouts alternativos. Você também pode fornecer
+layouts alternativos para personalizar a aparência do seu aplicativo em versões anteriores do Android.</p>
 
-<p>Crie arquivos de layout para Android 5.0 (API de nível 21) dentro de <code>res/layout-v21/</code> e arquivos de layout alternativo para versões anteriores do Android dentro de <code>res/layout/</code>. Por exemplo, <code>res/layout/my_activity.xml</code> é um layout alternativo para <code>res/layout-v21/my_activity.xml</code>.</p>
+<p>Crie arquivos de layout para Android 5.0 (API de nível 21) dentro de <code>res/layout-v21/</code> e arquivos de
+layout alternativo para versões anteriores do Android dentro de <code>res/layout/</code>.
+Por exemplo, <code>res/layout/my_activity.xml</code> é um layout alternativo de
+<code>res/layout-v21/my_activity.xml</code>.</p>
 
-<p>Para evitar duplicação do código, defina os estilos dentro de <code>res/values/</code>, modifique-os em <code>res/values-v21/</code> para as novas APIs e use herança de estilo, definindo estilos de base em <code>res/values/</code> e herdando daqueles em <code>res/values-v21/</code>.</p>
+<p>Para evitar duplicação do código, defina os estilos dentro de <code>res/values/</code>, modifique-os
+em <code>res/values-v21/</code> para as novas APIs e use herança de estilo, definindo
+estilos de base em <code>res/values/</code> e herdando daqueles em <code>res/values-v21/</code>.</p>
 
 
 <h2 id="SupportLib">Usar a Biblioteca de Suporte</h2>
 
-<p>A <a href="{@docRoot}tools/support-library/features.html#v7">v7 da Biblioteca de Suporte</a> r21 e posteriores incluem os seguintes recursos do Material Design:</p>
+<p>A <a href="{@docRoot}tools/support-library/features.html#v7">v7 da Biblioteca de Suporte</a>
+r21 e posteriores incluem os seguintes recursos do Material Design:</p>
 
 <ul>
-<li><a href="{@docRoot}training/material/theme.html">Estilos do Material Design</a> para alguns widgets do sistema quando se aplica um dos temas <code>Theme.AppCompat</code>.</li>
-<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos de tema da paleta de cores</a> nos temas <code>Theme.AppCompat</code>.</li>
-<li>O widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">coletar dados do visor</a>.</li>
+<li><a href="{@docRoot}training/material/theme.html">Estilos do Material Design</a> para alguns widgets do
+sistema quando se aplica um dos temas <code>Theme.AppCompat</code>.</li>
+<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos de tema da paleta de cores</a>
+    nos temas <code>Theme.AppCompat</code>.</li>
+<li>O widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">exibir coleções
+    de dados</a>.</li>
 <li>O widget {@link android.support.v7.widget.CardView} para <a href="{@docRoot}training/material/lists-cards.html#CardView">criar cartões</a>.</li>
-<li>A classe {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extrair cores proeminentes de imagens</a>.</li>
+<li>A classe {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extrair cores proeminentes de
+    imagens</a>.</li>
 </ul>
 
 <h3>Widgets de sistema</h3>
@@ -73,7 +94,8 @@
 
 <h3>Paleta de cores</h3>
 
-<p>Para obter estilos do Material Design e personalizar a paleta de cores com a v7 da Biblioteca de Suporte do Android, aplique um dos temas <code>Theme.AppCompat</code>:</p>
+<p>Para obter estilos do Material Design e personalizar a paleta de cores com a v7 da Biblioteca de Suporte
+do Android, aplique um dos temas <code>Theme.AppCompat</code>:</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -87,16 +109,21 @@
 
 <h3>Listas e cartões</h3>
 
-<p>Os widgets {@link android.support.v7.widget.RecyclerView} e {@link android.support.v7.widget.CardView} estão disponíveis em versões anteriores do Android na Biblioteca de Suporte v7 do Android com as seguintes limitações:</p>
+<p>Os widgets {@link android.support.v7.widget.RecyclerView} e {@link
+android.support.v7.widget.CardView} estão disponíveis em versões anteriores do Android na
+Biblioteca de Suporte v7 do Android com as seguintes limitações:</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView} volta a uma implementação de sombra programática usando preenchimento adicional.</li>
-<li>{@link android.support.v7.widget.CardView} não recorta as visualizações filhas que cortam as bordas arredondadas.</li>
+<li>{@link android.support.v7.widget.CardView} volta a uma implementação de sombra programática
+   usando preenchimento adicional.</li>
+<li>{@link android.support.v7.widget.CardView} não recorta as visualizações filhas que cortam
+    as bordas arredondadas.</li>
 </ul>
 
 
 <h3>Dependências</h3>
 
-<p>Para usar esses recursos em versões anteriores ao Android 5.0 (API de nível 21), inclua a Biblioteca de Suporte v7 do Android no projeto como uma <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">dependência de Gradle</a>:</p>
+<p>Para usar esses recursos em versões anteriores ao Android 5.0 (API de nível 21), inclua a
+Biblioteca de Suporte v7 do Android no projeto como uma <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">dependência de Gradle</a>:</p>
 
 <pre>
 dependencies {
@@ -117,10 +144,12 @@
 <li>Animações de revelação</li>
 <li>Animações com base em caminhos</li>
 <li>Desenháveis de vetor</li>
-<li>Tingimento desenhável.</li>
+<li>Tingimento desenhável</li>
 </ul>
 
-<p>Para preservar a compatibilidade com versões anteriores do Android, verifique a {@link android.os.Build.VERSION#SDK_INT version} do sistema em execução que chama as APIs para quaisquer destes recursos:</p>
+<p>Para preservar a compatibilidade com versões anteriores do Android, verifique a {@link
+android.os.Build.VERSION#SDK_INT version} do sistema em tempo de execução antes de chamar as APIs para quaisquer
+destes recursos:</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>Observação:</strong> Para especificar quais versões do Android são compatíveis com o seu aplicativo, use os atributos <code>android:minSdkVersion</code> e <code>android:targetSdkVersion</code> no arquivo de manifesto. Para usar os recursos do Material Design no Android 5.0, defina o atributo <code>android:targetSdkVersion</code> como <code>21</code>. Para obter mais informações, consulte o <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guia de API &lt;uses-sdk&gt;</a>.</p> 
\ No newline at end of file
+<p class="note"><strong>Observação:</strong> Para especificar quais versões do Android são compatíveis com o seu aplicativo,
+use os atributos <code>android:minSdkVersion</code> e <code>android:targetSdkVersion</code>
+no arquivo de manifesto. Para usar os recursos do Material Design no Android 5.0, defina o
+atributo <code>android:targetSdkVersion</code> como <code>21</code>. Para obter mais informações, consulte
+o <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guia de API
+&lt;uses-sdk&gt;</a>.</p>
diff --git a/docs/html-intl/intl/pt-br/training/material/drawables.jd b/docs/html-intl/intl/pt-br/training/material/drawables.jd
index 190d6bf..4eb9f36 100644
--- a/docs/html-intl/intl/pt-br/training/material/drawables.jd
+++ b/docs/html-intl/intl/pt-br/training/material/drawables.jd
@@ -1,4 +1,4 @@
-page.title=Como trabalhar com desenháveis 
+page.title=Como trabalhar com desenháveis
 
 @jd:body
 
@@ -23,7 +23,7 @@
 <ul>
 <li>Tingimento desenhável</li>
 <li>Extração de cor proeminente</li>
-<li>Desenháveis de vetor.</li>
+<li>Desenháveis de vetor</li>
 </ul>
 
 <p>Esta lição mostra como usar esses recursos no seu aplicativo.</p>
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">Colorir recursos desenháveis</h2>
 
-<p>Com o Android 5.0 (API de nível 21) e posteriores, você pode colorir bitmaps e nine-patches definidos como máscaras alfa. Você pode colori-los com recursos de cor ou atributos de tema que determinam os recursos de cor (por exemplo, <code>?android:attr/colorPrimary</code>). Normalmente, você cria esses ativos somente uma vez e colore-os automaticamente para combinar com seu tema.</p>
+<p>Com o Android 5.0 (API de nível 21) e posteriores, você pode colorir bitmaps e nine-patches definidos como
+máscaras alfa. Você pode colori-los com recursos de cor ou atributos de tema que determinam os recursos
+de cor (por exemplo, <code>?android:attr/colorPrimary</code>). Normalmente, você cria esses ativos
+somente uma vez e colore-os automaticamente para combinar com seu tema.</p>
 
-<p>Você pode aplicar um tingimento aos objetos {@link android.graphics.drawable.BitmapDrawable} ou {@link android.graphics.drawable.NinePatchDrawable} com o método {@code setTint()}. Você também pode configurar a cor do tingimento e modelar os layouts com os atributos <code>android:tint</code> e <code>android:tintMode</code>.</p>
+<p>Você pode aplicar um tingimento aos objetos {@link android.graphics.drawable.BitmapDrawable} ou {@link
+android.graphics.drawable.NinePatchDrawable} com o método {@code setTint()}. Você também
+pode configurar a cor e o modo do tingimento nos layouts com os atributos <code>android:tint</code> e 
+<code>android:tintMode</code>.</p>
 
 
 <h2 id="ColorExtract">Extrair cores proeminentes de uma imagem</h2>
 
-<p>A Biblioteca de Suporte r21 do Android e posteriores incluem a classe {@link android.support.v7.graphics.Palette}, que permite a extração de cores proeminentes de uma imagem. Essa classe extrai as seguintes cores proeminentes:</p>
+<p>A Biblioteca de Suporte r21 do Android e posteriores incluem a classe {@link
+android.support.v7.graphics.Palette}, que permite a extração de cores proeminentes de uma imagem.
+Essa classe extrai as seguintes cores proeminentes:</p>
 
 <ul>
 <li>Vibrante</li>
@@ -49,34 +57,44 @@
 <li>Claro suave</li>
 </ul>
 
-<p>Para extrair essas cores, passe um objeto {@link android.graphics.Bitmap} para o método estático {@link android.support.v7.graphics.Palette#generate Palette.generate()} na linha do segundo plano em que você carrega as imagens. Se você não puder usar aquela linha, chame o método {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} e forneça um ouvinte como alternativa.</p>
+<p>Para extrair essas cores, passe um objeto {@link android.graphics.Bitmap} para o método estático
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} no encadeamento do segundo
+plano em que você carrega as imagens. Se você não puder usar aquele encadeamento, chame o método
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} e forneça um escutador
+como alternativa.</p>
 
-<p>Você pode recuperar as cores proeminentes da imagem usando métodos de obtenção na classe <code>Palette</code>, como <code>Palette.getVibrantColor</code>.</p>
+<p>Você pode recuperar as cores proeminentes da imagem usando métodos de obtenção na classe
+<code>Palette</code>, como <code>Palette.getVibrantColor</code>.</p>
 
-<p>Para usar a classe {@link android.support.v7.graphics.Palette} no projeto, adicione a seguinte <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependência do Gradle</a> ao módulo do aplicativo:</p>
+<p>Para usar a classe {@link android.support.v7.graphics.Palette} no projeto, adicione a seguinte
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependência do Gradle</a> ao
+módulo do aplicativo:</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>Para obter mais informações, consulte a referência de API para a classe {@link android.support.v7.graphics.Palette}.</p>
+<p>Para obter mais informações, consulte a referência de API para a classe {@link android.support.v7.graphics.Palette}
+.</p>
 
 
 <h2 id="VectorDrawables">Criar desenháveis de vetor</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>Vídeos</h3>
     <p>Gráficos de vetor do Android</p>
 </div>
 </a>
 
-<p>No Android 5.0 (API de nível 21) e em posteriores, você pode definir desenháveis de vetor que são dimensionáveis sem perder definição. Você precisa somente de um arquivo de ativo para uma imagem de vetor, em vez de um arquivo de ativos para cada densidade de tela no caso de imagens de bitmap. Para criar uma imagem de vetor, defina os detalhes da forma dentro de um elemento XML <code>&lt;vector&gt;</code>.</p>
+<p>No Android 5.0 (API de nível 21) e posteriores, você pode definir desenháveis de vetor que são dimensionáveis
+sem perder definição. Você precisa apenas de um arquivo de ativos para uma imagem de vetor, em vez de um arquivo de ativos
+para cada densidade de tela no caso de imagens de bitmap. Para criar uma imagem de vetor, defina os detalhes
+da forma dentro de um elemento XML <code>&lt;vector&gt;</code>.</p>
 
 <p>O exemplo a seguir define uma imagem de vetor com a forma de um coração:</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>Imagens de vetor são representadas no Android por objetos {@link android.graphics.drawable.VectorDrawable}. Para obter mais informações sobre a sintaxe <code>pathData</code>, consulte a <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Referência do caminho SVG</a>. Para obter informações sobre animação de propriedades de desenháveis de vetor, consulte <a href="{@docRoot}training/material/animations.html#AnimVector">Animar desenháveis de vetor</a>.</p> 
\ No newline at end of file
+<p>Imagens de vetor são representadas no Android como objetos {@link android.graphics.drawable.VectorDrawable}
+. Para obter mais informações sobre a sintaxe <code>pathData</code>, consulte a <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Referência do caminho SVG</a>. Para obter informações sobre
+como animar propriedades de desenháveis de vetor, consulte
+<a href="{@docRoot}training/material/animations.html#AnimVector">Animar desenháveis de vetor</a>.</p>
diff --git a/docs/html-intl/intl/pt-br/training/material/get-started.jd b/docs/html-intl/intl/pt-br/training/material/get-started.jd
index e2b29e4..e7b56a3 100644
--- a/docs/html-intl/intl/pt-br/training/material/get-started.jd
+++ b/docs/html-intl/intl/pt-br/training/material/get-started.jd
@@ -1,4 +1,4 @@
-page.title=Fundamentos 
+page.title=Como iniciar
 
 @jd:body
 
@@ -40,20 +40,27 @@
 
 <h3>Manter compatibilidade com versões anteriores</h3>
 
-<p>Você pode adicionar muitos recursos do Material Design ao aplicativo e, ao mesmo tempo, manter a compatibilidade com versões anteriores ao Android 5.0. Para obter mais informações, consulte <a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a>.</p>
+<p>Você pode adicionar muitos recursos do Material Design ao aplicativo e, ao mesmo tempo, manter
+a compatibilidade com versões anteriores ao Android 5.0. Para obter mais informações, consulte
+<a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a>.</p>
 
 <h3>Atualizar o aplicativo com o Material Design</h3>
 
-<p>Para atualizar um aplicativo existente para incorporar o Material Design, atualize os layouts de acordo com as orientações do Material Design. Certifique-se também de incorporar profundidade, feedbacks de toque e animações.</p>
+<p>Para atualizar um aplicativo existente para incorporar o Material Design, atualize os layouts
+de acordo com as orientações do Material Design. Certifique-se também de incorporar profundidade, feedbacks de toque e
+animações.</p>
 
 <h3>Criar novos aplicativos com o Material Design</h3>
 
-<p>Se você está criando um novo aplicativo com recursos do Material Design, as <a href="http://www.google.com/design/spec">orientações do Material Design</a> fornecem uma estrutura de projeto coesa. Siga tais orientações e use a nova funcionalidade na estrutura do Android para projetar e desenvolver o aplicativo.</p>
+<p>Se você está criando um novo aplicativo com recursos do Material Design, as <a href="http://www.google.com/design/spec">orientações do Material Design</a> fornecem uma
+estrutura de projeto coesa. Siga tais orientações e use a nova funcionalidade na estrutura do Android para
+projetar e desenvolver o aplicativo.</p>
 
 
 <h2 id="ApplyTheme">Aplicar o tema do Material</h2>
 
-<p>Para aplicar o tema do Material no aplicativo, especifique um estilo herdado de <code>android:Theme.Material</code>:</p>
+<p>Para aplicar o tema do Material no aplicativo, especifique um estilo herdado de
+<code>android:Theme.Material</code>:</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>O tema do Material fornece widgets do sistema atualizados que permitem definir a paleta de cores e as animações padrão para feedback de toque e transições de atividades. Para obter mais detalhes, consulte <a href="{@docRoot}training/material/theme.html">Como usar o tema do Material</a>.</p>
+<p>O tema do Material fornece widgets do sistema atualizados que permitem definir a paleta de cores e as animações
+padrão para feedback de toque e transições de atividades. Para obter mais detalhes, consulte
+<a href="{@docRoot}training/material/theme.html">Como usar o tema do Material</a>.</p>
 
 
 <h2 id="Layouts">Projetar layouts</h2>
 
-<p>Além de aplicar e personalizar o tema do Material, os layouts devem estar em conformidade com as <a href="http://www.google.com/design/spec">orientações do Material Design</a>. Ao projetar os layouts, dê atenção especial ao seguinte:</p>
+<p>Além de aplicar e personalizar o tema do Material, os layouts devem estar em conformidade
+com as <a href="http://www.google.com/design/spec">orientações do Material Design</a>. Ao projetar os
+layouts, dê atenção especial ao seguinte:</p>
 
 <ul>
 <li>Grades das linhas de base</li>
@@ -83,7 +94,9 @@
 
 <h2 id="Depth">Especificar a elevação em visualizações</h2>
 
-<p>As visualizações podem lançar sombras e o valor da elevação delas determina o tamanho da sombra e da ordem dos desenhos. Para definir a elevação de uma visualização, use o atributo <code>android:elevation</code> nos layouts:</p>
+<p>As visualizações podem lançar sombras e o valor da elevação delas
+determina o tamanho da sombra e a ordem dos desenhos. Para definir a elevação de uma visualização, use o atributo
+<code>android:elevation</code> nos layouts:</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>A nova propriedade <code>translationZ</code> permite a criação de animações que refletem mudanças temporárias na elevação de uma visualização. As mudanças de elevação podem ser úteis ao <a href="{@docRoot}training/material/animations.html#ViewState">responder a gestos de toque</a>.</p>
+<p>A nova propriedade <code>translationZ</code> permite a criação de animações que refletem mudanças
+temporárias na elevação de uma visualização. As mudanças de elevação podem ser úteis ao
+<a href="{@docRoot}training/material/animations.html#ViewState">responder a gestos
+de toque</a>.</p>
 
-<p>Para obter mais detalhes, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Como definir sombras e recortar visualizações</a>.</p>
+<p>Para obter mais detalhes, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Como definir
+sombras e recortar visualizações</a>.</p>
 
 
 <h2 id="ListsCards">Criar listas e cartões</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} é uma versão mais completa de {@link android.widget.ListView} compatível com diferentes tipos de layout e que fornece melhor desempenho. {@link android.support.v7.widget.CardView} permite a exibição de informações dentro dos cartões com uma aparência consistente nos aplicativos. O exemplo de código a seguir mostra como incluir um {@link android.support.v7.widget.CardView} no layout:</p>
+<p>{@link android.support.v7.widget.RecyclerView} é uma versão mais completa de {@link
+android.widget.ListView} compatível com diferentes tipos de layout e que fornece melhor desempenho.
+{@link android.support.v7.widget.CardView} permite a exibição de informações dentro dos cartões com uma
+aparência consistente nos aplicativos. O exemplo de código a seguir mostra como incluir um
+{@link android.support.v7.widget.CardView} no layout:</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/lists-cards.html">Como criar listas e cartões</a>.</p>
+<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/lists-cards.html">Como criar
+listas e cartões</a>.</p>
 
 
 <h2 id="Animations">Personalizar animações</h2>
 
-<p>O Android 5.0 (API de nível 21) inclui novas APIs para criar animações personalizadas no aplicativo. Por exemplo, você pode habilitar transições de atividades e definir uma transição de saída dentro de uma atividade:</p>
+<p>O Android 5.0 (API de nível 21) inclui novas APIs para criar animações personalizadas no aplicativo.
+Por exemplo, você pode habilitar transições de atividades e definir uma transição de saída dentro
+de uma atividade:</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -144,4 +168,4 @@
 
 <p>Ao iniciar outra atividade a partir desta, a transição de saída é ativada.</p>
 
-<p>Para saber mais sobre as novas APIs de animação, consulte <a href="{@docRoot}training/material/animations.html">Como definir animações personalizadas</a>.</p> 
\ No newline at end of file
+<p>Para saber mais sobre as novas APIs de animação, consulte <a href="{@docRoot}training/material/animations.html">Como definir animações personalizadas</a>.</p>
diff --git a/docs/html-intl/intl/pt-br/training/material/index.jd b/docs/html-intl/intl/pt-br/training/material/index.jd
index f51fd71..76580c8 100644
--- a/docs/html-intl/intl/pt-br/training/material/index.jd
+++ b/docs/html-intl/intl/pt-br/training/material/index.jd
@@ -1,7 +1,8 @@
-page.title=Como criar aplicativos com o Material Design
+page.title=Material Design para desenvolvedores
 page.type=design
-page.image=images/material.png
-page.metaDescription=Saiba como aplicar o Material Design aos seus aplicativos. 
+page.image=images/cards/material_2x.png
+page.metaDescription=Saiba como aplicar o Material Design em seus aplicativos.
+
 
 @jd:body
 
@@ -10,12 +11,16 @@
   <h2>Dependências e pré-requisitos</h2>
   <ul>
     <li>Android 5.0 (API de nível 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>O Material Design é um guia abrangente para design visual, de movimento e de interação para diversas plataformas e dispositivos. Para usar o Material Design nos aplicativos Android, siga as orientações descritas nas <a href="http://www.google.com/design/spec/material-design/introduction.html">especificações do Material Design</a> e use os novos componentes e funcionalidades disponíveis no Android 5.0 (API de nível 21).</p>
+<p>O Material Design é um guia abrangente para design visual, de movimento e de interação para
+diversas plataformas e dispositivos. Para usar o Material Design nos aplicativos Android, siga as orientações
+descritas nas
+<a href="http://www.google.com/design/spec/material-design/introduction.html">especificações do
+Material Design</a> e use os novos componentes e funcionalidades disponíveis no Android 5.0
+(API de nível 21).</p>
 
 <p>Essa lição mostra como criar aplicativos do Material Design com os seguintes elementos:</p>
 
@@ -27,7 +32,8 @@
 <li>Animações personalizadas</li>
 </ul>
 
-<p>Essa lição também ensina a manter a compatibilidade com versões anteriores ao Android 5.0 (API de nível 21) ao usar recursos do Material Design no aplicativo.</p>
+<p>Esta lição também ensina a manter a compatibilidade com versões anteriores ao Android
+5.0 (API de nível 21) ao usar recursos do Material Design no aplicativo.</p>
 
 <h2>Lições</h2>
 
@@ -52,4 +58,4 @@
 
   <dt><a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a></dt>
   <dd>Aprenda a manter a compatibilidade com versões de plataforma anteriores ao Android 5.0.</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/pt-br/training/material/lists-cards.jd b/docs/html-intl/intl/pt-br/training/material/lists-cards.jd
index 6e84a80..eb336ac 100644
--- a/docs/html-intl/intl/pt-br/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/pt-br/training/material/lists-cards.jd
@@ -1,4 +1,4 @@
-page.title=Como criar listas e cartões 
+page.title=Como criar listas e cartões
 
 @jd:body
 
@@ -19,28 +19,40 @@
 </div>
 
 
-<p>Para criar listas e cartões complexos com estilos do Material Design no seu aplicativo, você pode usar os widgets {@link android.support.v7.widget.RecyclerView} e {@link android.support.v7.widget.CardView}.</p>
+<p>Para criar listas e cartões complexos com estilos do Material Design no seu aplicativo, você pode usar os widgets
+{@link android.support.v7.widget.RecyclerView} e {@link android.support.v7.widget.CardView}
+.</p>
 
 
 <h2 id="RecyclerView">Criar listas</h2>
 
-<p>O widget {@link android.support.v7.widget.RecyclerView} é uma versão mais avançada e flexível do {@link android.widget.ListView}. Essa widget é um contêiner para exibir grandes conjuntos de dados que podem ser rolados com muita eficiência ao manter um número limitado de visualizações. Use o widget {@link android.support.v7.widget.RecyclerView} quando tiver coletas de dados cujos elementos mudam durante a execução baseados na ação do usuário ou em eventos de rede.</p>
+<p>O widget {@link android.support.v7.widget.RecyclerView} é uma versão mais avançada e flexível
+do {@link android.widget.ListView}. Esse widget é um contêiner para exibir grandes conjuntos
+de dados que podem ser rolados com muita eficiência ao manter um número limitado de visualizações. Use o widget
+{@link android.support.v7.widget.RecyclerView} quando tiver coletas de dados cujos elementos mudam
+durante a execução baseados na ação do usuário ou em eventos de rede.</p>
 
-<p>A classe {@link android.support.v7.widget.RecyclerView} simplifica a exibição e o tratamento de grandes conjuntos de dados oferecendo:</p>
+<p>A classe {@link android.support.v7.widget.RecyclerView} simplifica a exibição e o tratamento de
+grandes conjuntos de dados oferecendo:</p>
 
 <ul>
   <li>Gerenciadores de layout para posicionar itens</li>
   <li>Animações padrão para operações de item comuns, como remoção ou adição de itens</li>
 </ul>
 
-<p>Você também tem a flexibilidade de definir gerenciadores de layout e animações personalizadas para widgets {@link android.support.v7.widget.RecyclerView}.</p>
+<p>Você também tem a flexibilidade de definir gerenciadores de layout e animações personalizadas para widgets {@link
+android.support.v7.widget.RecyclerView}.</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>Figura 1</strong>. O widget <code>RecyclerView</code>.
 </p>
 
-<p>Para usar o widget {@link android.support.v7.widget.RecyclerView}, você deve especificar um adaptador e um gerenciador de layout. Para criar um adaptador, amplie a classe {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Os detalhes da implementação dependem das especificações do conjunto de dados e do tipo de visualizações. Para obter mais informações, veja os <a href="#RVExamples">exemplos</a> abaixo.</p>
+<p>Para usar o widget {@link android.support.v7.widget.RecyclerView}, você deve especificar um
+adaptador e um gerenciador de layout. Para criar um adaptador, amplie a classe {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Os detalhes
+da implementação dependem das especificações do conjunto de dados e do tipo de visualização. Para obter
+mais informações, veja os <a href="#RVExamples">exemplos</a> abaixo.</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
@@ -49,25 +61,37 @@
 </p>
 </div>
 
-<p>Um <strong>gerenciador de layout</strong> posiciona as visualizações de item dentro de um {@link android.support.v7.widget.RecyclerView} e determina quando reutilizar visualizações de item que não estão mais visíveis ao usuário. Para reutilizar (ou <em>reciclar</em>) uma visualização, o gerenciador de layout pode solicitar ao adaptador a substituição do conteúdo da visualização com um elemento diferente do conjunto de dados. Visualizações recicladas dessa maneira aprimoram o desempenho ao evitar a criação de visualizações desnecessárias ou a realização de pesquisas {@link android.app.Activity#findViewById findViewById()} dispendiosas.</p>
+<p>Um <strong>gerenciador de layout</strong> posiciona as visualizações de item dentro de um {@link
+android.support.v7.widget.RecyclerView} e determina quando reutilizar visualizações de item que não
+estão mais visíveis ao usuário. Para reutilizar (ou <em>reciclar</em>) uma visualização, um gerenciador de layout pode solicitar
+ao adaptador a substituição do conteúdo da visualização com um elemento diferente do conjunto de dados. Visualizações
+recicladas dessa maneira aprimoram o desempenho ao evitar a criação de visualizações desnecessárias ou a
+realização de pesquisas {@link android.app.Activity#findViewById findViewById()} caras.</p>
 
 <p>{@link android.support.v7.widget.RecyclerView} fornece esses gerenciadores de layout embutidos:</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} exibe itens em uma lista de rolagem vertical ou horizontal.</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} exibe itens em uma lista de rolagem
+vertical ou horizontal.</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} exibe itens em uma grade.</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} exibe itens em uma grade escalonada.</li>
 </ul>
 
-<p>Para criar um gerenciador de layout personalizado, amplie a classe {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
+<p>Para criar um gerenciador de layout personalizado, amplie a classe {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
 
 <h3>Animações</h3>
 
-<p>As animações para a adição e remoção de itens são habilitadas, por padrão, em {@link android.support.v7.widget.RecyclerView}. Para personalizá-las, amplie a classe {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} e use o método {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}.</p>
+<p>As animações para a adição e a remoção de itens são habilitadas, por padrão, em {@link
+android.support.v7.widget.RecyclerView}. Para personalizá-las, amplie a classe
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} e use o
+método {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+.</p>
 
 <h3 id="RVExamples">Exemplos</h3>
 
-<p>O exemplo de código a seguir demonstra como adicionar o {@link android.support.v7.widget.RecyclerView} a um layout:</p>
+<p>O exemplo de código a seguir demonstra como adicionar o
+{@link android.support.v7.widget.RecyclerView} a um layout:</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>Ao adicionar um widget {@link android.support.v7.widget.RecyclerView} ao seu layout, obtenha um identificador para o objeto, conecte-o em um gerenciador de layout e anexe um adaptador aos dados que serão exibidos:</p>
+<p>Depois de adicionar um widget {@link android.support.v7.widget.RecyclerView} ao seu layout,
+obtenha um identificador para o objeto, conecte-o a um gerenciador de layout e anexe um adaptador para que os
+dados sejam exibidos:</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>O adaptador dá acesso aos itens no conjunto de dados, cria visualizações para os itens e substitui o conteúdo de algumas das visualizações por novos itens de dados quando o item original não está mais visível. O exemplo de código a seguir mostra uma implementação simples para um conjunto de dados que consiste em uma matriz de strings exibidas usando widgets {@link android.widget.TextView}:</p>
+<p>O adaptador dá acesso aos itens no conjunto de dados, cria visualizações para os itens e
+substitui o conteúdo de algumas das visualizações por novos itens de dados quando o item original não está
+mais visível. O exemplo de código a seguir mostra uma implementação simples para um conjunto de dados
+que consiste em uma matriz de strings exibidas usando widgets {@link android.widget.TextView}:</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -171,19 +200,29 @@
 
 <h2 id="CardView">Criar cartões</h2>
 
-<p>{@link android.support.v7.widget.CardView} amplia a classe {@link android.widget.FrameLayout} e permite que você exiba informações dentro dos cartões, que têm uma aparência consistente nas diversas plataformas. Os widgets {@link android.support.v7.widget.CardView} podem ter sombras e bordas arredondadas.</p>
+<p>{@link android.support.v7.widget.CardView} amplia a classe {@link android.widget.FrameLayout} e
+permite que você exiba informações dentro dos cartões que têm uma aparência consistente em toda a plataforma. Os widgets {@link
+android.support.v7.widget.CardView} podem ter sombras e bordas arredondadas.</p>
 
-<p>Para criar um cartão com sombra, use o atributo <code>card_view:cardElevation</code>. {@link android.support.v7.widget.CardView} usa elevação real e sombras dinâmicas no Android 5.0 (API de nível 21) e em posteriores e volta para uma implementação de sombra programática em versões anteriores. Para obter mais informações, consulte <a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a>.</p>
+<p>Para criar um cartão com sombra, use o atributo <code>card_view:cardElevation</code>.
+{@link android.support.v7.widget.CardView} usa elevação real e sombras dinâmicas no Android 5.0
+(API de nível 21) e posteriores e volta para uma implementação de sombra programática em versões anteriores.
+Para obter mais informações, consulte <a href="{@docRoot}training/material/compatibility.html">Como manter
+a compatibilidade</a>.</p>
 
-<p>Use essas propriedades para personalizar a aparência do widget {@link android.support.v7.widget.CardView}:</p>
+<p>Use estas propriedades para personalizar a aparência do widget
+{@link android.support.v7.widget.CardView}:</p>
 
 <ul>
-  <li>Para definir o raio do canto nos layouts, use o atributo <code>card_view:cardCornerRadius</code>.</li>
+  <li>Para definir o raio do canto nos layouts, use o atributo <code>card_view:cardCornerRadius</code>
+.</li>
   <li>Para definir o raio do canto no seu código, use o método <code>CardView.setRadius</code>.</li>
-  <li>Para definir a cor de segundo plano de um cartão, use o atributo <code>card_view:cardBackgroundColor</code>.</li>
+  <li>Para definir a cor de segundo plano de um cartão, use o atributo <code>card_view:cardBackgroundColor</code>
+.</li>
 </ul>
 
-<p>O exemplo de código a seguir mostra como incluir um widget {@link android.support.v7.widget.CardView} no layout:</p>
+<p>O exemplo de código a seguir mostra como incluir um widget {@link android.support.v7.widget.CardView}
+no layout:</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -212,7 +251,11 @@
 
 <h2 id="Dependencies">Adicionar dependências</h2>
 
-<p>Os widgets {@link android.support.v7.widget.RecyclerView} e {@link android.support.v7.widget.CardView} são parte da <a href="{@docRoot}tools/support-library/features.html#v7">Biblioteca de Suporte v7</a>. Para usar esses widgets no projeto, adicione essas <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependências do Gradle</a> ao módulo do aplicativo:</p>
+<p>Os widgets {@link android.support.v7.widget.RecyclerView} e {@link android.support.v7.widget.CardView}
+são parte da <a href="{@docRoot}tools/support-library/features.html#v7">Biblioteca de
+Suporte v7</a>. Para usar esses widgets no projeto, adicione estas
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependências do Gradle</a> ao módulo
+do aplicativo:</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/pt-br/training/material/shadows-clipping.jd b/docs/html-intl/intl/pt-br/training/material/shadows-clipping.jd
index 9cdb894..4c4f154 100644
--- a/docs/html-intl/intl/pt-br/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/pt-br/training/material/shadows-clipping.jd
@@ -1,4 +1,4 @@
-page.title=Como definir sombras e recortar visualizações 
+page.title=Como definir sombras e recortar visualizações
 
 @jd:body
 
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>O Material Design introduz a elevação em elementos da IU. A elevação ajuda os usuários a entender a importância relativa de cada elemento e concentra a atenção deles nas tarefas à mão.</p>
+<p>O Material Design introduz a elevação em elementos da interface do usuário. A elevação ajuda os usuários a entender
+a importância relativa de cada elemento e concentrar a atenção deles nas tarefas à mão.</p>
 
-<p>A elevação de uma visualização, representada pela propriedade Z, determina a aparência visual das sombras: visualizações com valores de Z mais altos lançam sombras maiores e mais suaves. Visualizações com valores de Z mais altos ocultam visualizações com valores de Z mais baixos, contudo, o valor de Z de uma visualização não afeta o tamanho dela.</p>
+<p>A elevação de uma visualização, representada pela propriedade Z, determina a aparência visual das
+sombras: visualizações com valores de Z mais altos lançam sombras maiores e mais suaves. Visualizações com valores de Z mais altos ocultam
+visualizações com valores de Z mais baixos, mas o valor de Z de uma visualização não afeta o tamanho dela.</p>
 
-<p>As sombras são desenhadas pelo parente da visualização elevada e, por isso, estão sujeitas a recortes padrão de visualização, recortadas pelo parente por padrão.</p>
+<p>As sombras são desenhadas pelo pai da visualização elevada e, por isso, estão sujeitas a recortes padrão de
+visualização, recortadas pelo pai por padrão.</p>
 
-<p>A elevação também é útil para criar animações em que os widgets se elevam temporariamente sobre o plano da visualização ao realizar alguma ação.</p>
+<p>A elevação também é útil para criar animações em que os widgets se elevam temporariamente
+sobre o plano de visualização ao realizar alguma ação.</p>
 
-<p>Para obter mais informações sobre elevação no Material Design, consulte <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objetos em espaço 3D</a>.</p>
+<p>Para obter mais informações sobre elevação no Material Design, consulte
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objetos
+no espaço 3D</a>.</p>
 
 
 <h2 id="Elevation">Atribuir elevação a visualizações</h2>
 
-<p>O valor de Z para uma visualização tem dois componentes: <ul>
+<p>O valor de Z para uma visualização tem dois componentes:
+
+<ul>
 <li>Elevação: o componente estático.</li>
 <li>Movimentação: o componente dinâmico usado para animações.</li>
 </ul>
@@ -41,22 +50,34 @@
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
 <p class="img-caption"><strong>Figura 1</strong> - sombras para diferentes elevações de visualização.</p>
 
-<p>Para definir a elevação de uma visualização em uma definição de layout, use o atributo <code>android:elevation</code>. Para definir a elevação de uma visualização no código de uma atividade, use o método {@link android.view.View#setElevation View.setElevation()}.</p>
+<p>Para definir a elevação de uma visualização em uma definição de layout, use o atributo <code>android:elevation</code>
+. Para definir a elevação de uma visualização no código de uma atividade, use o método
+{@link android.view.View#setElevation View.setElevation()}.</p>
 
-<p>Para definir a movimentação de uma visualização, use o método {@link android.view.View#setTranslationZ View.setTranslationZ()}.</p>
+<p>Para definir a conversão de uma visualização, use o método {@link android.view.View#setTranslationZ
+View.setTranslationZ()}.</p>
 
-<p>Os novos métodos {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} e {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} permitem animar facilmente a elevação de visualizações. Para obter mais informações, consulte a referência de API para {@link android.view.ViewPropertyAnimator} e o guia do desenvolvedor <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Animação de propriedade</a>.</p>
+<p>Os novos métodos {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} e {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} permitem
+animar facilmente a elevação de visualizações. Para obter mais informações, consulte a referência de API para
+{@link android.view.ViewPropertyAnimator} e o guia do desenvolvedor <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Animação de
+propriedade</a>.</p>
 
-<p>Você também pode usar um {@link android.animation.StateListAnimator} para especificar essas animações de um modo declarativo, o que é especialmente útil para casos em que o estado muda as animações de acionamento, como quando um usuário pressiona um botão. Para obter mais informações, consulte <a href="{@docRoot}training/material/animations.html#ViewState">Mudanças de estado de visualização da animação</a>.</p>
+<p>Você também pode usar um {@link android.animation.StateListAnimator} para
+especificar essas animações de um modo declarativo, o que é especialmente útil para casos em que o estado muda
+as animações de acionamento, como quando um usuário pressiona um botão. Para obter mais informações, consulte
+<a href="{@docRoot}training/material/animations.html#ViewState">Mudanças de estado de visualização da animação</a>.</p>
 
 <p>Os valores de Z são medidos em dp (pixels independentes de densidade).</p>
 
 
 <h2 id="Shadows">Personalizar sombras e contornos de visualizações</h2>
 
-<p>Os limites de um desenhável do plano de fundo da visualização determinam a forma padrão da sombra. <strong>Contornos</strong> representam a forma externa de um objeto gráfico e definem a área de ondulação para o feedback de toque.</p>
+<p>Os limites de um desenhável do segundo plano da visualização determinam a forma padrão da sombra.
+<strong>Contornos</strong> representam a forma externa de um objeto gráfico e definem a área
+de ondulação para o feedback de toque.</p>
 
-<p>Analise esta visualização, definida com um desenhável de plano de fundo:</p>
+<p>Analise esta visualização, definida com um desenhável de segundo plano:</p>
 
 <pre>
 &lt;TextView
@@ -66,7 +87,7 @@
     android:background="@drawable/myrect" />
 </pre>
 
-<p>O desenhável do plano de fundo é definido como um retângulo com bordas arredondadas:</p>
+<p>O desenhável do segundo plano é definido como um retângulo com bordas arredondadas:</p>
 
 <pre>
 &lt;!-- res/drawable/myrect.xml -->
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>A visualização lança uma sombra com bordas arredondadas, uma vez que o desenhável de plano de fundo define o contorno da visualização. Fornecer um contorno personalizado neutraliza a forma padrão de uma sombra da visualização.</p>
+<p>A visualização lança uma sombra com bordas arredondadas, uma vez que o desenhável de segundo plano
+define o contorno da visualização. Fornecer um contorno personalizado neutraliza a forma padrão de uma sombra da visualização.</p>
 
 <p>Para definir um contorno personalizado para uma visualização no seu código:<p>
 
 <ol>
 <li>Amplie a classe {@link android.view.ViewOutlineProvider}.</li>
 <li>Neutralize o método {@link android.view.ViewOutlineProvider#getOutline getOutline()}.</li>
-<li>Atribua o novo fornecedor de contorno à visualização com o método {@link android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
+<li>Atribua o novo fornecedor de contorno à visualização com o método {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
 </ol>
 
-<p>Você pode criar contornos ovais e retangulares com bordas arredondadas usando os métodos na classe {@link android.graphics.Outline}. O fornecedor de contorno padrão para visualizações obtém o contorno a partir do plano de fundo da visualização. Para evitar que uma visualização lance uma sombra, defina o fornecedor de contorno dela como <code>null</code>.</p>
+<p>Você pode criar contornos ovais e retangulares com bordas arredondadas usando os métodos na classe
+{@link android.graphics.Outline}. O fornecedor de contorno padrão para visualizações obtém o contorno
+do segundo plano da visualização. Para evitar que uma visualização lance uma sombra, defina o fornecedor de contorno
+dela como <code>null</code>.</p>
 
 
 <h2 id="Clip">Recortar visualizações</h2>
 
-<p>Recortar visualizações permite mudar facilmente a forma de uma visualização. Você pode recortar visualizações para obter consistência com outros elementos de design ou para mudar a forma de uma visualização em resposta à interação do usuário. Você pode recortar uma visualização na área do contorno usando o método {@link android.view.View#setClipToOutline View.setClipToOutline()} ou o atributo <code>android:clipToOutline</code>. Somente contornos retangulares, circulares e retangulares redondos são compatíveis com recorte, conforme determinado pelo método {@link android.graphics.Outline#canClip Outline.canClip()}.</p>
+<p>Recortar visualizações permite mudar facilmente a forma de uma visualização. Você pode recortar visualizações
+para obter consistência com outros elementos de design ou para mudar a forma de uma visualização em resposta à interação do usuário.
+É possível recortar uma visualização na área do contorno usando o método {@link android.view.View#setClipToOutline
+View.setClipToOutline()} ou o atributo <code>android:clipToOutline</code>. Somente
+contornos retangulares, circulares e retangulares redondos são compatíveis com recorte, conforme determinado pelo método
+{@link android.graphics.Outline#canClip Outline.canClip()}.</p>
 
-<p>Para recortar uma visualização na forma de um desenhável, defina o desenhável como o plano de fundo da visualização (conforme exibido acima) e chame o método {@link android.view.View#setClipToOutline View.setClipToOutline()}.</p>
+<p>Para recortar uma visualização na forma de um desenhável, defina o desenhável como o segundo plano da visualização
+(conforme exibido acima) e chame o método {@link android.view.View#setClipToOutline View.setClipToOutline()}
+.</p>
 
-<p>O recorte de visualizações é uma operação dispendiosa, por isso, não anime a forma que você usa para recortar uma visualização. Para atingir esse efeito, use a animação de <a href="{@docRoot}training/material/animations.html#Reveal">Efeito de Revelação</a>.</p> 
\ No newline at end of file
+<p>O recorte de visualizações é uma operação cara, por isso, não anime a forma que você
+usa para recortar uma visualização. Para atingir esse efeito, use a animação <a href="{@docRoot}training/material/animations.html#Reveal">Efeito de Revelação</a>.</p>
diff --git a/docs/html-intl/intl/pt-br/training/material/theme.jd b/docs/html-intl/intl/pt-br/training/material/theme.jd
index 21ba759..df0e1ce 100644
--- a/docs/html-intl/intl/pt-br/training/material/theme.jd
+++ b/docs/html-intl/intl/pt-br/training/material/theme.jd
@@ -1,4 +1,4 @@
-page.title=Como usar o tema do Material 
+page.title=Como usar o tema do Material
 
 @jd:body
 
@@ -27,9 +27,12 @@
   <li>Animações de transição de atividades</li>
 </ul>
 
-<p>É possível personalizar a aparência do tema do Material com uma paleta de cores que você controla, de acordo com a identidade da sua marca. Você pode atribuir cor à barra de ações e à barra de status usando atributos de tema, conforme exibido na <a href="#fig3">Figura 3</a>.</p>
+<p>É possível personalizar a aparência do tema do Material com
+uma paleta de cores que você controla, de acordo com a identidade da sua marca. Você pode atribuir cor à barra de ações e
+à barra de status usando atributos de tema, conforme exibido na <a href="#fig3">Figura 3</a>.</p>
 
-<p>Os widgets de sistema têm um novo design e animações de feedback de toque. Você pode personalizar a paleta de cores, as animações de feedback de toque e as transições de atividades do aplicativo.</p>
+<p>Os widgets de sistema têm um novo design e animações de feedback de toque. Você pode personalizar a
+paleta de cores, as animações de feedback de toque e as transições de atividades do aplicativo.</p>
 
 <p>O tema do Material é definido como:</p>
 
@@ -39,7 +42,8 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>Para obter uma lista de estilos do Material que podem ser usados, consulte a referência de API para {@link android.R.style R.style}.</p>
+<p>Para obter uma lista de estilos do Material que podem ser usados, consulte a referência de API para
+{@link android.R.style R.style}.</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
@@ -59,13 +63,18 @@
 </div>
 
 <p class="note">
-<strong>Observação:</strong> O tema do Material só está disponível no Android 5.0 (API de nível 21) e em posteriores. A <a href="{@docRoot}tools/support-library/features.html#v7">Biblioteca de Suporte v7</a> fornece temas com estilos do Material Design para alguns widgets e compatibilidade com a personalização da paleta de cores. Para obter mais informações, consulte <a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a>.
+<strong>Observação:</strong> o tema do Material só está disponível no Android 5.0 (API de nível 21) e
+posteriores. A <a href="{@docRoot}tools/support-library/features.html#v7">Biblioteca de Suporte v7</a>
+fornece temas com estilos do Material Design para alguns widgets e compatibilidade com a personalização da
+paleta de cores. Para obter mais informações, consulte
+<a href="{@docRoot}training/material/compatibility.html">Como manter a compatibilidade</a>.
 </p>
 
 
 <h2 id="ColorPalette">Personalizar a paleta de cores</h2>
 
-<p style="margin-bottom:30px">Para personalizar as cores de base do tema para adequá-lo a sua marca, defina as cores personalizadas usando os atributos de tema ao herdar do tema do Material:</p>
+<p style="margin-bottom:30px">Para personalizar as cores de base do tema para adequá-lo à sua marca, defina
+as cores personalizadas usando os atributos de tema ao herdar do tema do Material:</p>
 
 <pre>
 &lt;resources>
@@ -91,17 +100,32 @@
 
 <h2 id="StatusBar">Personalizar a barra de status</h2>
 
-<p>O tema do Material permite a fácil personalização da barra de status, para você poder especificar uma cor adequada a sua marca, e fornece contraste suficiente para exibir os ícones de status brancos. Para definir uma cor personalizada para a barra de status, use o atributo <code>android:statusBarColor</code> ao ampliar o tema do Material. Por padrão, <code>android:statusBarColor</code> herda o valor de <code>android:colorPrimaryDark</code>.</p>
+<p>O tema do Material permite a fácil personalização da barra de status, para você poder
+especificar uma cor adequada à sua marca, e fornece contraste suficiente para exibir os ícones de status brancos. Para
+definir uma cor personalizada para a barra de status, use o atributo <code>android:statusBarColor</code> ao
+ampliar o tema do Material. Por padrão, <code>android:statusBarColor</code> herda o
+valor de <code>android:colorPrimaryDark</code>.</p>
 
-<p>Você também pode personalizar a parte de trás da barra de status. Por exemplo, se você quiser mostrar uma barra de status transparente sobre uma foto, com um degradê escuro sutil, para garantir que os ícones de status brancos sejam visíveis, defina o atributo <code>android:statusBarColor</code> como <code>&#64;android:color/transparent</code> e ajuste os marcadores de janela conforme o necessário. Você também pode usar o método {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} para animações ou esmaecimento.</p>
+<p>Você também pode personalizar a parte de trás da barra de status. Por exemplo, se você quiser mostrar
+uma barra de status transparente sobre uma foto, com um degradê escuro sutil, para garantir que os ícones de status
+brancos sejam visíveis, defina o atributo <code>android:statusBarColor</code> como
+<code>&#64;android:color/transparent</code> e ajuste os marcadores de janela conforme necessário. Você também
+pode usar o método {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} para
+animações ou esmaecimento.</p>
 
 <p class="note">
-<strong>Observação:</strong> A barra de status deve ter, quase sempre, um traçado distante da barra de ferramentas principal, exceto em casos em que haja imagens ricas de ponta a ponta, conteúdo de mídia por trás dessas barras e quando se usa degradê, para garantir que os ícones continuem visíveis.
+<strong>Observação:</strong> a barra de status deve ter, quase sempre, um traçado distante da barra de ferramentas
+principal, exceto em casos em que haja imagens ricas de ponta a ponta, conteúdo de mídia por trás
+dessas barras e quando se usa degradê, para garantir que os ícones continuem visíveis.
 </p>
 
-<p>Ao personalizar as barras de navegação e de status, deixe-as transparentes ou modifique somente a barra de status. A barra de navegação deve permanecer preta em todos os outros casos.</p>
+<p>Ao personalizar as barras de navegação e de status, deixe-as transparentes ou modifique
+somente a barra de status. A barra de navegação deve permanecer preta em todos os outros casos.</p>
 
 
 <h2 id="Inheritance">Atribuir tema a visualizações individuais</h3>
 
-<p>Elementos nas definições do layout XML podem especificar o atributo <code>android:theme</code>, que referencia um recurso do tema. Essa atributo modifica o tema do elemento e quaisquer elementos-filho, o que é útil para alterar as paletas de cores do tema em uma parte específica da interface.</p> 
\ No newline at end of file
+<p>Elementos nas definições do layout XML podem especificar o atributo <code>android:theme</code>,
+que referencia um recurso do tema. Esse atributo modifica o tema do elemento e quaisquer
+elementos-filho, o que é útil para alterar as paletas de cores do tema em uma parte específica
+de uma interface.</p>
diff --git a/docs/html-intl/intl/ru/design/get-started/principles.jd b/docs/html-intl/intl/ru/design/get-started/principles.jd
index 7f4977c..7e4ea12 100644
--- a/docs/html-intl/intl/ru/design/get-started/principles.jd
+++ b/docs/html-intl/intl/ru/design/get-started/principles.jd
@@ -14,8 +14,8 @@
 
 <h2 id="enchant-me">Постарайтесь понравиться пользователю</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">Вызовите у пользователя восхищение неожиданными решениями</h4>
 <p>Красивые экраны, тщательно продуманная анимация или своевременные звуковые сигналы создают у пользователя
@@ -23,7 +23,7 @@
 что его возможности не ограничены.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">Реальные объекты доставляют больше удовольствия, чем кнопки и меню</h4>
-<p>Позвольте пользователю касаться объектов приложения и манипулировать ими. Это сокращает когнитивные усилия,
-необходимые для выполнения задачи, повышая эмоциональное удовлетворение.</p>
+<p>Позвольте пользователю касаться объектов приложения и манипулировать ими. Это делает
+понятнее процесс выполнения задачи, повышая эмоциональное удовлетворение.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,8 +49,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">Позвольте пользователю сделать интерфейс индивидуальным</h4>
 <p>Люди любят вносить в интерфейс что-то личное, чтобы чувствовать себя более комфортно и считать, что всё под контролем. Предоставьте
@@ -58,7 +58,7 @@
 выполнению основных задач.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">Изучите пользователя</h4>
-<p>Постепенно выясняйте предпочтения пользователя Вместо того, чтобы снова и снова заставлять его выбирать одно и то же,
+<p>Постепенно выясняйте предпочтения пользователя. Вместо того, чтобы снова и снова заставлять его выбирать одно и то же,
  сделайте непосредственно доступными ранее выбранные варианты.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">Упростите жизнь пользователю</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">Будьте лаконичны</h4>
 <p>Используйте короткие фразы с простыми словами. Люди, скорее всего, пропустят длинные предложения.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">Картинки воспринимаются быстрее чем слова</h4>
 <p>Используйте картинки в своих объяснениях. Они завладевают вниманием и действуют гораздо эффективнее
 слов.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">Принимайте решения за пользователя, но оставляйте последнее слово за ним</h4>
 <p>Не задавайте пользователю лишних вопросов и действуйте наиболее разумным образом. Слишком широкий выбор вызывает чувство
 растерянности. Если существует вероятность, что ваш выбор не устроит пользователя, предоставьте ему возможность отмены.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="only-show-when-i-need-it">Показывайте только самое необходимое и в нужный момент времени</h4>
 <p>Люди не в состоянии справиться сразу с большим количеством информации. Разбивайте задачи и информацию на небольшие легко
 воспринимаемые части. Скройте несущественные на данный момент опции и обучайте пользователя по ходу дела.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">Пользователь всегда должен знать, в каком месте приложения он находится</h4>
 <p>Придайте пользователю уверенность, что он не заблудился. Сделайте так, чтобы экраны в вашем приложении отличались друг от друга, и
 используйте переходы, чтобы показать связь между экранами. Обеспечивайте обратную связь от выполняемых задач.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">Ни в коем случае не теряйте данные пользователей</h4>
 <p>Сохраняйте данные, на создание которых пользователь потратил свое время, и обеспечьте ему доступ к этой информации из любого места. Запоминайте настройки
@@ -177,7 +177,7 @@
 обновление приложения.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">Внешне похожие элементы должны вести себя одинаково</h4>
 <p>Помогите людям распознать функциональные различия, сделав их визуально отличимыми.
 Избегайте ситуаций, в которых разные места приложения выглядят похоже, но работают по-разному при одних тех же исходных данных.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">Прерывайте пользователя только в действительно важных ситуациях</h4>
 <p>Подобно хорошему секретарю, приложение должно оградить пользователя от несущественных мелочей. Люди не любят отвлекаться,
 и беспокоить их следует только в исключительно серьезных или не терпящих отлагательства ситуациях.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,8 +220,8 @@
 
 <h2 id="make-me-amazing">Постарайтесь приятно удивить пользователя</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">Предоставьте пользователю привычные приемы</h4>
 <p>У людей повышается самооценка, когда они могут разобраться в чем-либо самостоятельно. Сделайте ваше приложение простым в освоении
@@ -229,7 +229,7 @@
 является хорошим навигационным приемом.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">Пользователь ни в чем не виноват</h4>
 <p>Будьте корректны, подсказывая пользователю, как выйти из сложного положения. Никто не хочет чувствовать себя бестолковым, имея дело с вашим
 приложением. При возникновении проблем дайте четкие указания по восстановлению, но избавьте пользователя от технических деталей.
-В идеальном варианте приложение способно самостоятельно исправить ситуацию.</p>
+Если приложение само исправит ситуацию, будет еще лучше.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">Не скупитесь на поддержку пользователя</h4>
 <p>Разбейте сложные задачи на более мелкие, легко выполнимые этапы. Обеспечьте обратную связь, 
 даже при незначительных операциях.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,16 +273,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">Выполняйте за пользователя черную работу</h4>
-<p>Дайте новичкам возможность почувствовать себя экспертами, реализовав операции о которых они и не подозревали. Например,
+<p>Дайте новичкам возможность почувствовать себя экспертами, реализовав операции, о которых они и не подозревали. Например,
 ярлыки, объединяющие несколько фотоэффектов, позволят превратить любительские фотографии в шедевры всего за
 несколько шагов.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">Важные действия должны происходить быстро</h4>
 <p>Не все действия равноценны. Решите, какие функции вашего приложения являются самыми важными, и обеспечьте возможность 
 быстро найти и использовать их. Например, это может быть кнопка спуска затвора в фотокамере или кнопка паузы в музыкальном плеере.</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/ru/design/material/index.jd b/docs/html-intl/intl/ru/design/material/index.jd
index 224dde0..da0352a 100644
--- a/docs/html-intl/intl/ru/design/material/index.jd
+++ b/docs/html-intl/intl/ru/design/material/index.jd
@@ -1,7 +1,7 @@
-page.title=Material Design
-page.tags=Material Design
-page.type=design
-page.image=design/material/images/MaterialLight.png
+page.title=Material Design для Android
+page.tags=Material,design
+page.type=разработка
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -92,7 +92,7 @@
 <div style="width:700px;margin-top:25px;margin-bottom:20px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" />
-  <p>Виджет <code>RecyclerView</code> Представляет собой более гибкую версию <code>ListView</code>,
+  <p>Виджет <code>RecyclerView</code> представляет собой более гибкую версию <code>ListView</code>,
 которая поддерживает различные типы макетов и способствует повышению производительности.</p>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
@@ -137,9 +137,9 @@
 <h3>Анимация</h3>
 
 <p>Новые API-интерфейсы анимации позволяют создавать нестандартную анимацию для реакции на касание в элементах пользовательского интерфейса,
-изменения состояниия представления и переходов между действиями.</p>
+изменения состояния представления и переходов между действиями.</p>
 
-<p>Эти API-интерфейсы позволяют</p>
+<p>Эти API-интерфейсы позволяют:</p>
 
 <ul>
 <li style="margin-bottom:15px">
@@ -149,7 +149,7 @@
 скрывать и отображать представление с помощью анимации для <strong>кругового появления</strong>;
 </li>
 <li style="margin-bottom:15px">
-переключаться меду действиями с помощью настраиваемой анимации для <strong>переходов между действиями</strong>;
+переключаться между действиями с помощью настраиваемой анимации для <strong>переходов между действиями</strong>;
 </li>
 <li style="margin-bottom:15px">
 создавать более естественное движение с помощью анимации для <strong>перемещения по кривой</strong>;
@@ -158,14 +158,14 @@
 анимировать изменение одного или нескольких свойств представления с помощью анимации для <strong>изменения состояния представления</strong>;
 </li>
 <li style="margin-bottom:15px">
-отображать анимацию в <strong>графических элементах списков состояний</strong> в помежутке между изменением состояний представления.
+отображать анимацию в <strong>графических элементах списков состояний</strong> в промежутке между изменением состояний представления.
 </li>
 </ul>
 
-<p>Анимация для реакции на касание встроена а некоторые стандартные представления, например, кнопки. Новые API-интерфейсы
+<p>Анимация для реакции на касание встроена в некоторые стандартные представления, например кнопки. Новые API-интерфейсы
 позволяют разработчику настраивать эти анимации и добавлять их в свои нестандартные представления.</p>
 
-<p>Дополнительные сведения, см. в разделе <a href="{@docRoot}training/material/animations.html">Определение настраиваемой
+<p>Дополнительные сведения см. в разделе <a href="{@docRoot}training/material/animations.html">Определение настраиваемой 
 анимации</a>.</p>
 
 
@@ -182,5 +182,5 @@
 растровых изображений.</li>
 </ul>
 
-<p>Дополнительные сведения см. в разделе <a href="{@docRoot}training/material/drawables.html">Работа с
+<p>Дополнительные сведения см. в разделе <a href="{@docRoot}training/material/drawables.html">Работа с 
 элементами дизайна</a>.</p>
diff --git a/docs/html-intl/intl/ru/design/patterns/compatibility.jd b/docs/html-intl/intl/ru/design/patterns/compatibility.jd
new file mode 100644
index 0000000..fd1f5a8
--- /dev/null
+++ b/docs/html-intl/intl/ru/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=Обратная совместимость
+page.tags="support"
+page.metaDescription=Примечания о том, как Android 4.x адаптирует пользовательский интерфейс, разработанный для ОС и оборудования более старых версий.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>Документация для разработчиков</h3>
+    <p>Поддержка различных устройств</p>
+  </div>
+</a>
+
+<p>Существенные изменения в Android 3.0, включенные в новую версию:</p>
+<ul>
+<li>Прекращено использование аппаратных клавиш навигации ("Назад", "Меню", "Поиск", "Главная"). Вместо них за навигацию теперь отвечают
+ виртуальные элементы управления ("Назад", "Главная", "Последние").</li>
+<li>Функциональный шаблон для использования меню на панелях действий.</li>
+</ul>
+<p>Эти изменения в Android 4.0 для планшетов также реализованы в платформе для телефонов.</p>
+
+<h2 id="older-hardware">Адаптация Android 4.0 для оборудования и приложений более старых версий</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Телефоны с виртуальными элементами навигации</h4>
+<p>В приложениях Android, созданных для Android 3.0 и более поздних версий, действия отображаются на панели действий. Действия, которые не помещаются на этой панели или не являются существенными, чтобы размещать их в элементе верхнего уровня, отображаются в панели дополнительных действий.
+
+</p>
+<p>Чтобы открыть панель дополнительных действий, необходимо коснуться ее значка в панели действий.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Телефоны с физическими клавишами навигации</h4>
+<p>На телефонах Android с традиционными аппаратными клавишами отсутствует виртуальная панель навигации (в нижней части экрана).
+ Вместо этого для отображения дополнительных действий используется аппаратная клавиша меню. Открывающееся в результате нажатия этой клавиши
+окно оформлено в том же стиле, что и в примере выше, однако отображается оно в нижней части экрана.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Устаревшие приложения на телефонах с виртуальными элементами навигации</h4>
+<p>Если запустить приложение, созданное для Android 2.3 или более ранних версий, на телефоне с виртуальными элементами
+навигации, то панель дополнительных действий отобразится справа в виртуальной панели навигации. Можно
+коснуться элемента управления, чтобы отобразить действия приложения в стиле традиционного меню Android.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/ru/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/ru/design/patterns/confirming-acknowledging.jd
index 99a0d17..d3f8bdd 100644
--- a/docs/html-intl/intl/ru/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/ru/design/patterns/confirming-acknowledging.jd
@@ -4,12 +4,12 @@
 
 <p>В некоторых ситуациях, когда пользователь выполняет действие в вашем приложении, полезно в текстовом виде <em>запросить подтверждение</em> этого действия или <em>отобразить уведомление</em> о его выполнении.</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>Подтверждение</strong> — это просьба к пользователю подтвердить, что он действительно хочет, чтобы запущенное действие было выполнено. Иногда подтверждение отображается вместе с предупреждением или важной информацией относительно действия, которую пользователь должен принять во внимание.</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p><strong>Уведомление</strong> отображает текст, позволяющий пользователю узнать о завершении действия. Это устраняет неопределенность в отношении неявных операций, которые выполняет система. В некоторых случаях уведомления отображаются вместе с возможностью отменить действие.</p>
   </div>
@@ -22,14 +22,14 @@
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>Подтверждение</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Пример: Google Play Books</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
-    <p>В этом примере пользователь пытается удалить книгу из своей библиотеки Play Google. Для подтверждения этого действия отображается <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">оповещение</a>, поскольку пользователь должен понимать, что книга больше не будет доступна ни с одного устройства.</p>
+    <p>В этом примере пользователь пытается удалить книгу из своей библиотеки Google Play. Для подтверждения этого действия отображается <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">оповещение</a>, поскольку пользователь должен понимать, что книга больше не будет доступна ни с одного устройства.</p>
     <p>При разработке диалогового окна подтверждения следует создать осмысленный заголовок, отражающий запрошенное действие.</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>Пример: Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>Подтверждения не обязательно должны быть представлены в виде оповещения с двумя кнопками. После старта Android Beam пользователю предлагается прикоснуться к содержимому (в данном примере, к фотографии) для обмена данными. Если пользователь решит не продолжать, он просто ничего не предпримет.</p>
@@ -37,31 +37,31 @@
 </div>
 
 <h2>Уведомление</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
-    <h4>Пример: Сохранение оставленного черновика Gmail</h4>
+<div class="cols">
+  <div class="col-6">
+    <h4>Пример: сохранение оставленного черновика Gmail</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>В этом примере, если пользователь переходит назад или вверх от экрана составления писем Gmail (возможно, вследствие неожиданного события), текущий черновик автоматически сохраняется. Всплывающее уведомление обращает внимание пользователя на этот факт. Через несколько секунд оно исчезает.</p>
     <p>Отмена здесь неуместна, поскольку сохранение было инициировано приложением, а не пользователем. Кроме того, пользователь сможет без труда вернуться к написанию сообщения, перейдя к списку черновиков.</p>
 
   </div>
-  <div class="layout-content-col span-6">
-    <h4>Пример: Удаление переписки Gmail</h4>
+  <div class="col-6">
+    <h4>Пример: удаление переписки Gmail</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>После того, как пользователь удалит переписку из Gmail, появляется уведомление с возможностью отмены действия. Оно остается, пока пользователь не предпримет постороннее действие, например, прокрутит список писем.</p>
   </div>
 </div>
 
 <h2>Отсутствие подтверждения или уведомления</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>Пример: +1</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>Подтверждение не требуется</strong>. Если пользователь нажал +1 случайно, это не имеет большого значения. Он может просто нажать кнопку еще раз, чтобы отменить действие.</p>
     <p><strong>Уведомление не требуется</strong>. Пользователь увидит, что кнопка +1 поменяла состояние и стала красной. Это достаточно ясный сигнал.</p>
   </div>
-  <div class="layout-content-col span-7">
-    <h4>Пример: Удаление приложения с главного экрана</h4>
+  <div class="col-7">
+    <h4>Пример: удаление приложения с главного экрана</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>Подтверждение не требуется</strong>. Это преднамеренное действие: пользователь должен перетащить элемент на относительно крупную отдельно расположенную цель. Поэтому случайности здесь практически невероятны. К тому же, если пользователь пожалеет о своем решении, ему потребуется всего несколько секунд, чтобы вернуть приложение.</p>
     <p><strong>Уведомление не требуется</strong>. Пользователь будет знать, что приложение удалено с главного экрана, потому что сам заставил его исчезнуть в результате перетаскивания.</p>
diff --git a/docs/html-intl/intl/ru/design/patterns/navigation.jd b/docs/html-intl/intl/ru/design/patterns/navigation.jd
index a65a8f6..3a0fc6e 100644
--- a/docs/html-intl/intl/ru/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/ru/design/patterns/navigation.jd
@@ -16,14 +16,14 @@
 инструкциям по применению кнопок "Назад" и "Вверх" сделает навигацию в вашем приложении предсказуемой и надежной с точки зрения пользователей.</p>
 <p>В Android 2.3 и в более ранних версиях для навигации внутри приложения использовалась системная кнопка <em>Назад</em>.
  С появлением панели действий в Android 3.0 стал доступен второй механизм 
-навигации, — кнопка <em>Вверх</em>, содержащая значок приложения и левую угловую скобку.</p>
+навигации – кнопка <em>Вверх</em>, содержащая значок приложения и левую угловую скобку.</p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
 <h2 id="up-vs-back">Кнопки "Вверх" и "Назад"</h2>
 
 <p>Кнопка "Вверх" используется для навигации внутри приложения по иерархической структуре его
-экранов. Например, если на экране A отображается некоторый список, и при выборе какого-либо элемента открывается
+экранов. Например, если на экране A отображается некоторый список и при выборе какого-либо элемента открывается
 экран B (с подробной информацией об этом элементе), то на экране B должна присутствовать кнопка "Вверх"
  для возврата к экрану A.</p>
 <p>Если экран является самым верхним в приложении (то есть главным), он не должен содержать кнопку
@@ -34,7 +34,7 @@
 экранов, а не на иерархии приложения.</p>
 
 <p>Если предыдущий экран одновременно является иерархическим родителем текущего, 
-кнопка "Назад" имеет то же действие, что и кнопка "Вверх"&mdash;, и это случается довольно
+кнопка "Назад" имеет то же действие, что и кнопка "Вверх", &mdash; и это случается довольно
 часто. Однако, в отличие от кнопки "Вверх", гарантирующей, что пользователь остается в приложении, кнопка "Назад"
 может перевести его на главный экран или даже в другое приложение.</p>
 
@@ -57,7 +57,7 @@
 <h4>Изменение представления содержимого на экране</h4>
 <p>Изменение параметров представления содержимого на экране не сказывается на поведении кнопок "Вверх" и "Назад", — экран остается
 на прежнем месте в иерархии приложения, а история навигации не меняется.</p>
-<p>Примерами изменения представления являются</p>
+<p>Примерами изменения представления являются:</p>
 <ul>
 <li>переключение представлений с помощью вкладок или жестов прокрутки вправо/влево;</li>
 <li>переключение представлений с помощью раскрывающихся (или свернутых) вкладок;</li>
@@ -75,7 +75,7 @@
 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
 
 <p>Однако существует важное исключение из этого правила во время просмотра подробных представлений элементов, не связанных
-вместе ссылающимся списком, например&mdash;, приложений
+вместе ссылающимся списком, например приложений
 одного разработчика или альбомов одного исполнителя в Play Store. В этих случаях переход по каждой ссылке создает
 историю навигации, что заставляет кнопку "Назад" перебирать все ранее просмотренные экраны. Кнопка "Вверх" должна по-прежнему
 игнорировать эти связанные по смыслу экраны и осуществлять переход на последний просмотренный контейнерный экран.</p>
@@ -104,7 +104,7 @@
 </ul>
 
 <p>Что касается кнопки "Назад", необходимо обеспечить более предсказуемую навигацию, вставив в 
-в стек переходов назад полный путь навигации вверх к самому верхнему экрану приложения. Это позволит пользователям,
+стек переходов назад полный путь навигации вверх к самому верхнему экрану приложения. Это позволит пользователям,
 забывшим, как они вошли в приложение, перейти к его главному экрану перед выходом из
 приложения.</p>
 
@@ -122,8 +122,8 @@
 называются <em>косвенными</em>.</p>
 
 <p>Кнопка "Назад" действует не так, как в случае со стандартными (прямыми) уведомлениями. Нажав ее на промежуточном экране косвенного уведомления,
-пользователь вернется в точку, где было сгенерировано уведомление, &mdash;поскольку
-в стеке переходов назад не появились никакие дополнительные экраны. Если пользователь перейдет в приложение с
+пользователь вернется в точку, где было создано уведомление, поскольку
+в стеке обратных переходов не появилось дополнительных экранов. Если пользователь перейдет в приложение с
 промежуточного экрана, поведение кнопок "Вверх" и "Назад" будет таким же, как и при стандартных уведомлениях:
 навигация внутри приложения, а не возврат к промежуточному экрану.</p>
 
@@ -152,15 +152,15 @@
 
 <h2 id="between-apps">Навигация между приложениями</h2>
 
-<p>Одним из фундаментальных достоинств системы Android является способность приложений активировать друг
-друга, что дает пользователю возможность переходить непосредственно из одного приложения в другое. Например, 
+<p>Одним из фундаментальных достоинств системы Android является способность взаимного запуска приложений,
+что дает пользователю возможность переходить непосредственно из одного приложения в другое. Например, 
 приложение, которому нужно сделать снимок, может активировать приложение Camera, которое передаст фотографию
-вызвавшему приложению. Это огромное преимущество, как для разработчика, имеющего возможность без проблем воспользоваться
+вызвавшему его приложению. Это огромное преимущество как для разработчика, имеющего возможность без проблем воспользоваться
 кодом других приложений, так и для пользователя, получающего согласованный интерфейс для часто выполняемых
 действий.</p>
 
-<p>Чтобы разобраться в навигации между приложениями, необходимо разобраться в поведении платформы Android,
-которое обсуждается ниже.</p>
+<p>Чтобы разобраться в навигации между приложениями, необходимо понять поведение платформы Android,
+ обсуждаемое ниже.</p>
 
 <h4>Действия, задачи и намерения</h4>
 
@@ -168,28 +168,28 @@
 информацией и все действия, которые при этом может выполнить пользователь. Приложение представляет собой набор
 действий, состоящий как из действий, созданных разработчиком, так и из тех, которые выполняются с помощью других приложений.</p>
 
-<p><strong>Задача</strong> — последовательность действий, выполняемых пользователем для достижения цели. Отдельная
+<p><strong>Задача</strong> — это последовательность действий, выполняемых пользователем для достижения цели. Отдельная
 задача может использовать действия, заимствованные у одного или у нескольких
 различных приложений.</p>
 
-<p><strong>Намерение</strong> — механизм, позволяющий приложению сигнализировать, что ему требуется помощь
+<p><strong>Намерение</strong> — это механизм, позволяющий приложению сигнализировать, что ему требуется помощь
 другого приложения в выполнении некоторого действия. Действия, выполняемые приложением, могут указывать, на какие намерения
-они готовы отвечать. Для осуществления достаточно распространенных намерений, например, "Поделиться", у пользователя может быть установлено несколько приложений,
+они готовы отвечать. Для осуществления достаточно распространенных намерений, например "Поделиться", у пользователя может быть установлено несколько приложений,
  способных выполнить соответствующий запрос.</p>
 
 <h4>Пример: навигация между приложениями для поддержки совместного использования ресурсов</h4>
 
 <p>Чтобы понять, как действия, задачи и намерения взаимодействуют друг с другом, разберемся, как одно приложение позволяет пользователям
-поделиться содержимым с помощью другого приложения. Например, запуск приложения Play Store из главного экрана создает
-новую задачу, Task A (см. рисунок ниже). Когда пользователь выполнит навигацию по Play Store и коснется интересующей его книги,
-чтобы просмотреть информацию о ней, он останется в том же приложении, расширив его возможности с помощью добавленных действий. Запуск 
+поделиться содержимым с помощью другого приложения. Например, при запуске приложения Play Store с главного экрана создается
+новая задача, Task A (см. рисунок ниже). Когда пользователь выполнит навигацию по Play Store и коснется интересующей его книги,
+чтобы просмотреть информацию о ней, он остается в той же задаче, расширяя ее с помощью добавленных действий. Запуск 
 действия "Поделиться" выводит перед пользователем диалоговое окно со списком действий (из разных приложений),
 зарегистрированных для выполнения намерения "Поделиться".</p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_inward.png">
 
 <p>Если пользователь предпочтет поделиться информацией через Gmail, действие "Написать" приложения Gmail добавляется как продолжение задачи
-Task A&mdash;, и никакая новая задача не создается. Если в фоновом режиме работает собственная задача Gmail, на нее это никак
+Task A, и никакая новая задача не создается. Если в фоновом режиме работает собственная задача Gmail, на нее это никак
 не повлияет.</p>
 
 <p>Если во время действия "Составление сообщения" пользователь отправит сообщение или коснется кнопки "Назад", он вернется к
@@ -199,7 +199,7 @@
 <img src="{@docRoot}design/media/navigation_between_apps_back.png">
 
 <p>Однако, коснувшись кнопки "Вверх" во время действия "Составление сообщения", пользователь выскажет пожелание остаться в приложении 
-Gmail. Откроется экран действия "Переписка" приложения Gmail, и для него будет создано новая задача Task B. Новые задачи
+Gmail. Откроется экран действия "Переписка" приложения Gmail, и для него будет создана новая задача Task B. Новые задачи
 всегда имеют корень на главном экране, поэтому касание кнопки "Назад" на экране переписки возвращает пользователя именно туда.</p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_up.png">
diff --git a/docs/html-intl/intl/ru/index.jd b/docs/html-intl/intl/ru/index.jd
index 8ce4b02..7faaac0 100644
--- a/docs/html-intl/intl/ru/index.jd
+++ b/docs/html-intl/intl/ru/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/ru/sdk/index.jd b/docs/html-intl/intl/ru/sdk/index.jd
index 6b986e7..d94e456 100644
--- a/docs/html-intl/intl/ru/sdk/index.jd
+++ b/docs/html-intl/intl/ru/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=Загрузка Android Studio и инструментов SDK
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Загрузите официальные средства разработки Android для создания приложений для смартфонов, планшетов, носимых устройств, телевизоров и многих других устройств под управлением ОС Android.
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,15 +231,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">Официальная среда разработки Android</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Среда разработки Android Studio</li>
 <li>Инструменты Android SDK</li>
 <li>Платформа Android 6.0 (Marshmallow)</li>
 <li>Системный образ Android 6.0 с API Google для эмулятора</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/ru/sdk/installing/adding-packages.jd b/docs/html-intl/intl/ru/sdk/installing/adding-packages.jd
index 81bfe18..19d1edd2 100644
--- a/docs/html-intl/intl/ru/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/ru/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=Добавление пакетов SDK
 
 page.tags=менеджер sdk
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/ru/training/material/animations.jd b/docs/html-intl/intl/ru/training/material/animations.jd
index 3068c71..9808a9f 100644
--- a/docs/html-intl/intl/ru/training/material/animations.jd
+++ b/docs/html-intl/intl/ru/training/material/animations.jd
@@ -21,7 +21,10 @@
 </div>
 
 
-<p>Благодаря анимации в Material Design пользователи получают реакцию на выполняемые действия. Кроме того, анимация обеспечивает визуальную связанность при взаимодействии с приложением. Тема Material Design содержит ряд анимаций по умолчанию для кнопок и переходов, а в Android 5.0 (уровень API 21) и более поздних версиях можно настраивать эти анимации и создавать новые:</p>
+<p>Благодаря анимациям в Material Design пользователи получают отклик на выполняемые
+действия. Кроме того, анимации обеспечивают зрительную связь при взаимодействии с приложением. Тема Material Design содержит ряд анимаций
+по умолчанию для кнопок и переходов, а в Android 5.0 (уровень API 21) и более поздних версиях можно настраивать эти анимации
+и создавать новые:</p>
 
 <ul>
 <li>реакция на касание;</li>
@@ -34,30 +37,44 @@
 
 <h2 id="Touch">Настройка реакции на касание</h2>
 
-<p>Реакция на касание в Material Design обеспечивает моментальное визуальное подтверждение взаимодействия пользователя с элементами интерфейса в точке касания. В анимации по умолчанию для реакции на нажатие кнопок используется новый класс {@link android.graphics.drawable.RippleDrawable}, обеспечивающий переход между разными состояниями с созданием эффекта ряби.</p>
+<p>Реакция на касание в Material Design обеспечивает моментальное визуальное подтверждение взаимодействия пользователя с элементами интерфейса в точке касания.
+ В стандартной анимации
+для реакции на нажатие кнопок используется новый класс {@link android.graphics.drawable.RippleDrawable}, обеспечивающий переход между разными состояниями с созданием эффекта ряби.
+</p>
 
-<p>В большинстве случаев эту возможность следует применять в XML-файле представления, указав фон представления следующим образом:</p>
+<p>В большинстве случаев эту возможность следует применять в XML-файле представления, указав фон представления следующим образом:
+</p>
 
 <ul>
 <li><code>?android:attr/selectableItemBackground</code> для ограниченной области ряби;</li>
-<li><code>?android:attr/selectableItemBackgroundBorderless</code> для ряби, распространяемой за границы представления.</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> для ряби, распространяемой за границы представления.
+ При отрисовке она будет ограничиваться ближайшим родительским элементом представления со значением фона, отличным от null.
+</li>
 </ul>
 
-<p class="note"><strong>Примечание.</strong> <code>selectableItemBackgroundBorderless</code> – это новый атрибут, представленный в уровне API 21.</p>
+<p class="note"><strong>Примечание.</strong> <code>selectableItemBackgroundBorderless</code> — это новый атрибут, представленный в уровне API 21.
+</p>
 
 
-<p>Также можно определить {@link android.graphics.drawable.RippleDrawable} в качестве XML-ресурса с помощью элемента <code>ripple</code>.</p>
+<p>Также можно определить {@link android.graphics.drawable.RippleDrawable}
+ в качестве XML-ресурса с помощью элемента <code>ripple</code>.</p>
 
-<p>Можно назначить цвет для объектов {@link android.graphics.drawable.RippleDrawable}. Чтобы изменить цвет реакции на касание, который используется по умолчанию, воспользуйтесь атрибутом темы <code>android:colorControlHighlight</code>.</p>
+<p>Можно назначить цвет для объектов {@link android.graphics.drawable.RippleDrawable}. Чтобы
+изменить стандартный цвет отклика на касание, воспользуйтесь атрибутом темы <code>android:colorControlHighlight</code>
+.</p>
 
-<p>Дополнительные сведения представлены в справке по API для класса {@link android.graphics.drawable.RippleDrawable}.</p>
+<p>Дополнительные сведения представлены в справке по API для класса {@link
+android.graphics.drawable.RippleDrawable}.</p>
 
 
 <h2 id="Reveal">Применение эффекта появления</h2>
 
-<p>Анимация эффекта появления обеспечивает визуальную связанность в действиях пользователя, когда отображается или скрывается группа элементов интерфейса. С помощью метода {@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} можно анимировать ограничивающий круг для скрытия или отображения представления.</p>
+<p>Анимация эффекта появления обеспечивает зрительную связь с действиями пользователя, когда отображается или скрывается группа элементов интерфейса.
+ С помощью метода {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} можно анимировать ограничивающий круг, чтобы отобразить или скрыть с экрана представление.
+</p>
 
-<p>Отображение ранее скрытого представления с помощью этого эффекта:</p>
+<p>Как отобразить ранее скрытое представление с помощью этого эффекта:</p>
 
 <pre>
 // previously invisible view
@@ -79,7 +96,7 @@
 anim.start();
 </pre>
 
-<p>Скрытие ранее отображавшегося представления с помощью этого эффекта:</p>
+<p>Как скрыть ранее отображавшееся представление с помощью этого эффекта:</p>
 
 <pre>
 // previously visible view
@@ -122,50 +139,65 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Рисунок 1.</strong> Переход с общими элементами.</p>
-    <em>Чтобы заново воспроизвести ролик, коснитесь экрана мобильного устройства</em>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Рисунок 1.</strong> Переход с общими элементами.
+</p>
+    <em>Для воспроизведения фильма нажмите экран устройства</em>
   </div>
 </div>
 
-<p>Переходы в приложениях Material Design обеспечивают визуальные связи между различными состояниями путем движения элементов и преобразований между общими элементами. Можно выбрать настраиваемые анимации для начальных и конечных переходов, а также для переходов общих элементов между операциями.</p>
+<p>Переходы в приложениях Material Design обеспечивают зрительные связи между различными состояниями путем движения элементов и преобразований между общими элементами.
+ Можно выбрать настраиваемые анимации для начальных и конечных переходов, а также для переходов общих элементов между операциями.
+</p>
 
 <ul>
-<li><strong>Начальный</strong> переход определяет порядок появления представлений в операции на экране. Например, в начальном переходе <em>взрыв</em> представления появляются на экране извне и перемещаются по направлению к центру экрана.</li>
+<li><strong>Начальный</strong> переход определяет порядок появления на экране представлений в операции.
+ Например, в начальном переходе <em>explode</em> представления появляются на экране извне и перемещаются к центру экрана.
+</li>
 
-<li><strong>Конечный</strong> переход определяет порядок исчезновения представлений с экрана в операции. Например, в конечном переходе <em>взрыв</em> представления исчезают с экрана в направлении из центра к краям.</li>
+<li><strong>Конечный</strong> переход определяет порядок исчезновения с экрана представлений в операции. Например, в конечном переходе <em>explode</em> представления исчезают
+с экрана в направлении из центра к краям.
+</li>
 
-<li>Переход <strong>общих элементов</strong> определяет порядок перехода представлений, которые используются в обеих операциях, между этими операциями. Например, если в двух операциях используется одно и то же изображение, но в разных позициях и с разными размерами, в случае применения перехода общего элемента <em>changeImageTransform</em> выполняется плавное перемещение и масштабирование изображения между этими операциями.</li>
+<li>Переход <strong>общих элементов</strong> определяет порядок перехода между операциями представлений, используемых в обеих операциях.
+ Например, если в двух
+операциях используется одно и то же изображение, но в разных позициях и с разными размерами, в случае применения перехода общего элемента <em>changeImageTransform</em> выполняется плавное перемещение и масштабирование изображения между этими операциями.
+</li>
 </ul>
 
 <p>В Android 5.0 (уровень API 21) поддерживаются следующие начальные и конечные переходы:</p>
 
 <ul>
-<li><em>взрыв</em> – перемещение представлений в центр экрана или из центра;</li>
-<li><em>скольжение</em> – перемещение представлений к одному из краев представления или от него;</li>
-<li><em>наплыв</em> – отображение или скрытие представления на экране путем изменения его прозрачности.</li>
+<li><em>explode</em> — перемещение представлений в центр экрана или из центра;</li>
+<li><em>slide</em> — перемещение представлений к одному из краев экрана или от него;</li>
+<li><em>fade</em> — отображение или скрытие представления на экране путем изменения его прозрачности.</li>
 </ul>
 
-<p>Любой переход, являющийся расширением класса {@link android.transition.Visibility}, поддерживается как начальный или конечный переход. Дополнительные сведения представлены в справке по API для класса {@link android.transition.Transition}.</p>
+<p>Любой переход, являющийся наследованием класса {@link android.transition.Visibility}, поддерживается как начальный или конечный переход.
+ Дополнительные сведения представлены в справке по API для класса 
+{@link android.transition.Transition}.</p>
 
 <p>В Android 5.0 (уровень API 21) также поддерживаются следующие переходы общих элементов:</p>
 
 <ul>
-<li><em>changeBounds</em> – анимация изменений границ макетов целевых представлений.</li>
-<li><em>changeClipBounds</em> – анимация изменений границ обрезки целевых представлений.</li>
-<li><em>changeTransform</em> – анимация изменений параметров масштабирования и поворота целевых представлений.</li>
-<li><em>changeImageTransform</em> – анимация изменений размеров и параметров масштабирования целевых изображений.</li>
+<li><em>changeBounds</em> — анимация изменений границ макетов целевых представлений;</li>
+<li><em>changeClipBounds</em> — анимация изменений границ обрезки целевых представлений;</li>
+<li><em>changeTransform</em> — анимация изменений параметров масштабирования и поворота целевых представлений;</li>
+<li><em>changeImageTransform</em> — анимация изменений размеров и параметров масштабирования целевых изображений.</li>
 </ul>
 
-<p>Если активировать переходы в приложении, то между начальной и конечной операциями активируется переход «Угасание», используемый по умолчанию.</p>
+<p>Если активировать переходы в приложении, то между начальной и конечной операциями активируется стандартный переход методом плавной замены.
+</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
   <strong>Рисунок 2.</strong> Переход с одним общим элементом.
 </p>
 
-<h3>Настраиваемые переходы</h3>
+<h3>Определение настраиваемых переходов</h3>
 
-<p>Сначала необходимо активировать переходы содержимого окна с помощью атрибута <code>android:windowContentTransitions</code> при определении стиля, наследуемого из темы Material Design. В определении стиля можно указать начальный и конечный переходы, а также переходы общих элементов:</p>
+<p>Сначала необходимо активировать переходы содержимого окна с помощью атрибута <code>android:windowContentTransitions</code>
+при определении стиля, наследуемого из темы Material Design. В определении стиля можно указать начальный и конечный переходы, а также переходы общих элементов:
+</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p>Элемент <code>changeImageTransform</code> соответствует классу {@link android.transition.ChangeImageTransform}. Дополнительные сведения представлены в справке по API для {@link android.transition.Transition}.</p>
+<p>Элемент <code>changeImageTransform</code> соответствует классу
+{@link android.transition.ChangeImageTransform}. Дополнительные сведения представлены в справке по API для {@link android.transition.Transition}.
+</p>
 
-<p>Чтобы активировать в своем коде переходы содержимого окна, вызовите метод {@link android.view.Window#requestFeature Window.requestFeature()}:</p>
+<p>Чтобы активировать в своем коде переходы содержимого окна, вызовите метод 
+{@link android.view.Window#requestFeature Window.requestFeature()}:</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,31 +241,45 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>Чтобы задать переходы в своем коде, вызовите следующие методы с использованием объекта {@link android.transition.Transition}:</p>
+<p>Чтобы задать переходы в своем коде, вызовите следующие методы с использованием объекта {@link
+android.transition.Transition}:</p>
 
 <ul>
-  <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
-  <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()};</li>
+  <li>{@link android.view.Window#setExitTransition Window.setExitTransition()};</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()};</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}.</li>
 </ul>
 
-<p>Методы {@link android.view.Window#setExitTransition setExitTransition()} и {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} задают конечный переход для вызывающей операции. Методы {@link android.view.Window#setEnterTransition setEnterTransition()} и {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} задают начальный переход для вызываемой операции.</p>
+<p>Методы {@link android.view.Window#setExitTransition setExitTransition()} и {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} задают конечный переход для вызывающей операции.
+ Методы {@link android.view.Window#setEnterTransition
+setEnterTransition()} и {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} задают начальный переход для вызываемой операции.</p>
 
-<p>Чтобы в полной мере использовать переход, необходимо активировать переходы содержимого окна как в вызывающей, так и в вызываемой операции. В противном случае вызывающая операция запустит конечный переход, однако будет выполнен переход окна (например, масштабирование или затемнение).</p>
+<p>Чтобы в полной мере реализовать возможности перехода, необходимо активировать переходы содержимого окна как в вызывающей, так и в вызываемой операции.
+ В противном случае вызывающая операция запустит конечный переход, однако будет выполнен переход окна (например, масштабирование или затемнение).
+</p>
 
-<p>Чтобы запустить начальный переход как можно раньше, используйте в вызываемой операции метод {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}. Это позволит сделать начальные переходы более эффектными.</p>
+<p>Чтобы запустить начальный переход как можно раньше, используйте в вызываемой операции метод 
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+. Это позволит сделать начальные переходы более эффектными.</p>
 
 <h3>Запуск операции с помощью переходов</h3>
 
-<p>Если в приложении активированы переходы и для операции задан конечный переход, переход активируется при запуске другой операции следующим образом:</p>
+<p>Если в приложении разрешены переходы и для операции задан конечный переход, переход активируется при запуске другой операции следующим образом:
+</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>Если для второй операции задан начальный переход, переход также активируется при запуске операции. Чтобы отключить переходы при запуске другой операции, укажите набор параметров <code>null</code>.</p>
+<p>Если для второй операции задан начальный переход, он также активируется при запуске операции.
+ Чтобы отключить переходы при запуске другой операции, укажите
+значение <code>null</code> для набора параметров.</p>
 
 <h3>Запуск операции с помощью общего элемента</h3>
 
@@ -240,8 +289,10 @@
 <li>Активируйте в своей теме переходы содержимого окна.</li>
 <li>В определении стиля укажите переходы общих элементов.</li>
 <li>Определите свой переход как XML-ресурс.</li>
-<li>Присвойте общим элементам общее имя в обоих макетах, используя для этого атрибут <code>android:transitionName</code>.</li>
-<li>Воспользуйтесь методом {@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()}.</li>
+<li>Присвойте одинаковое имя общим элементам в обоих макетах, используя для этого атрибут 
+<code>android:transitionName</code>.</li>
+<li>Воспользуйтесь методом {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()}.</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>Для общих динамических представлений, сгенерированных в коде, используйте метод{@link android.view.View#setTransitionName View.setTransitionName()} для задания общего имени элемента в обеих операциях.</p>
+<p>Для общих динамических представлений, создаваемых в коде, используйте метод
+{@link android.view.View#setTransitionName View.setTransitionName()} для определения одинакового имени элемента в обеих операциях.
+</p>
 
-<p>Чтобы обратить анимацию перехода по завершении второй операции, вместо {@link android.app.Activity#finish Activity.finish()} вызовите метод {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}.</p>
+<p>Чтобы выполнить анимацию обратного перехода по завершении второй операции, вызовите метод 
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+ вместо{@link android.app.Activity#finish Activity.finish()}.</p>
 
 <h3>Запуск операции с несколькими общими элементами</h3>
 
-<p>Чтобы создать анимацию перехода на экране между двумя операциями с несколькими общими элементами, определите общие элементы в обоих макетах с помощью атрибута <code>android:transitionName</code> (или воспользуйтесь методом {@link android.view.View#setTransitionName View.setTransitionName()} в обеих операциях), а затем создайте объект {@link android.app.ActivityOptions}, как указано ниже.</p>
+<p>Чтобы создать анимацию перехода на экране между двумя операциями с несколькими общими
+элементами, определите общие элементы в обоих макетах с помощью атрибута <code>android:transitionName</code>
+ (или воспользуйтесь методом {@link android.view.View#setTransitionName View.setTransitionName()} в обеих
+операциях), а затем создайте объект {@link android.app.ActivityOptions}, как указано ниже.</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">Использование перемещения по кривой</h2>
 
-<p>При анимации в Material Design используются кривые для интерполяции по времени и схемы перемещения в пространстве. В Android 5.0 (уровень API 21) и более поздних версиях имеется возможность определить для анимаций настраиваемые кривые синхронизации и схемы перемещения по кривой.</p>
+<p>При анимации в Material Design используются кривые для интерполяции по времени и создания схем перемещения в пространстве.
+ В Android 5.0 (уровень API 21) и более поздних версиях имеется возможность определить для анимаций настраиваемые кривые синхронизации и схемы перемещения по кривой.
+</p>
 
-<p>Класс {@link android.view.animation.PathInterpolator} – это новый интерполятор на основе кривой Безье или объекта {@link android.graphics.Path}. Данный интерполятор определяет перемещение по кривой в квадрате 1 x 1 с привязкой в точках (0,0) и (1,1), а также с контрольными точками, задаваемыми с помощью аргументов конструктора. Также можно определить интерполятор траектории в качестве XML-ресурса:</p>
+<p>Класс {@link android.view.animation.PathInterpolator} — это новый интерполятор на
+основе кривой Безье или объекта {@link android.graphics.Path}. Данный интерполятор определяет перемещение по кривой в квадрате 1 x 1 с привязкой в точках (0,0) и (1,1), а также с контрольными точками, задаваемыми с помощью аргументов конструктора.
+
+ Также можно определить интерполятор траектории в качестве XML-ресурса:</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,17 +358,21 @@
     android:controlY2="1"/>
 </pre>
 
-<p>В системе имеются XML-ресурсы для трех основных кривых в спецификации Material Design:</p>
+<p>В системе имеются XML-ресурсы для трех основных кривых в спецификации Material Design:
+</p>
 
 <ul>
-  <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
-  <li><code>&#64;interpolator/fast_out_slow_in.xml</code></li>
-  <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
+  <li><code>&#64;interpolator/fast_out_linear_in.xml</code>;</li>
+  <li><code>&#64;interpolator/fast_out_slow_in.xml</code>;</li>
+  <li><code>&#64;interpolator/linear_out_slow_in.xml</code>.</li>
 </ul>
 
-<p>Можно передать объект {@link android.view.animation.PathInterpolator} в метод {@link android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
+<p>Можно передать объект {@link android.view.animation.PathInterpolator} в метод {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
 
-<p>Класс {@link android.animation.ObjectAnimator} имеет новые конструкторы, с помощью которых можно анимировать координаты вдоль траектории перемещения, используя для этого сразу два или более свойств. Например, следующий аниматор использует объект {@link android.graphics.Path} для анимации свойств представления по осям X и Y:</p>
+<p>Класс {@link android.animation.ObjectAnimator} имеет новые конструкторы, с помощью которых можно анимировать координаты вдоль траектории перемещения, используя для этого не менее двух свойств.
+ Например, следующий аниматор
+использует объект {@link android.graphics.Path} для анимации свойств представления по осям X и Y:</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -317,7 +384,9 @@
 
 <h2 id="ViewState">Анимация изменений состояния представления</h2>
 
-<p>С помощью класса {@link android.animation.StateListAnimator} можно определить аниматоры, которые запускаются при изменении состояния представления. В примере ниже показан порядок определения {@link android.animation.StateListAnimator} в качестве XML-ресурса:</p>
+<p>С помощью класса {@link android.animation.StateListAnimator} можно определить аниматоры, которые запускаются при изменении состояния представления.
+ В следующем примере показан порядок определения {@link
+android.animation.StateListAnimator} в качестве XML-ресурса:</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>Чтобы присоединить к представлению настраиваемые анимации состояния представления, определите аниматор, используя элемент <code>selector</code> в файле XML-ресурса (как в этом примере), а затем назначьте его своему представлению с помощью атрибута <code>android:stateListAnimator</code>. Чтобы в своем коде назначить представлению аниматор списка состояний, используйте метод {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()}, а затем назначьте аниматор своему представлению с помощью метода {@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
+<p>Чтобы присоединить к представлению настраиваемые анимации состояния представления, определите аниматор, используя элемент 
+<code>selector</code> в файле XML-ресурса (как в этом примере), а затем назначьте его своему представлению
+с помощью атрибута <code>android:stateListAnimator</code>. Чтобы в своем коде назначить представлению аниматор
+ списка состояний, используйте метод {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()}, а затем назначьте аниматор своему представлению с помощью метода 
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
 
-<p>Когда ваша тема является расширением темы Material Design, по умолчанию у кнопок имеется возможность анимации по оси Z. Чтобы отключить такое поведение для кнопок, задайте для атрибута <code>android:stateListAnimator</code> значение <code>@null</code>.</p>
+<p>Если ваша тема является расширением темы Material Design, по умолчанию у кнопок имеется возможность анимации по оси Z. Чтобы отключить
+такое поведение кнопок, задайте для атрибута <code>android:stateListAnimator</code> значение 
+<code>@null</code>.</p>
 
-<p>С помощью класса {@link android.graphics.drawable.AnimatedStateListDrawable} можно создавать элементы, которые служат для отображения анимации между изменениями состояния связанного представления. В Android 5.0 в некоторых системных виджетах такая анимация используется по умолчанию. В примере ниже показан порядок определения {@link android.graphics.drawable.AnimatedStateListDrawable} в качестве XML-ресурса:</p>
+<p>С помощью класса {@link android.graphics.drawable.AnimatedStateListDrawable} можно создавать элементы, которые служат для отображения анимации между изменениями состояния связанного представления.
+ В Android 5.0 в некоторых системных виджетах такая анимация используется по умолчанию.
+ В следующем примере показан порядок
+определения {@link android.graphics.drawable.AnimatedStateListDrawable} в качестве XML-ресурса:</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -379,19 +458,28 @@
 
 <h2 id="AnimVector">Анимация векторных элементов</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Векторные элементы</a> можно масштабировать без ущерба четкости. Класс {@link android.graphics.drawable.AnimatedVectorDrawable} позволяет анимировать свойства векторного элемента.</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Векторные элементы</a> можно масштабировать без ущерба четкости.
+ Класс {@link android.graphics.drawable.AnimatedVectorDrawable}
+позволяет анимировать свойства векторного элемента.</p>
 
 <p>Анимированные векторные элементы обычно определяются в трех XML-файлах:</p>
 
 <ul>
-<li>векторный элемент с элементом <code>&lt;vector&gt;</code> в <code>res/drawable/</code>;</li>
-<li>анимированный векторный элемент с элементом <code>&lt;animated-vector&gt;</code> в <code>res/drawable/</code>;</li>
-<li>один или несколько аниматоров объектов с элементом <code>&lt;objectAnimator&gt;</code> в <code>res/anim/</code>.</li>
+<li>векторный элемент с элементом <code>&lt;vector&gt;</code> в
+<code>res/drawable/</code>;</li>
+<li>анимированный векторный элемент с элементом <code>&lt;animated-vector&gt;</code> в
+<code>res/drawable/</code>;</li>
+<li>один или несколько аниматоров для объектов с элементом <code>&lt;objectAnimator&gt;</code> в
+<code>res/anim/</code>.</li>
 </ul>
 
-<p>С помощью анимированных векторных элементов можно анимировать атрибуты элементов <code>&lt;group&gt;</code> и <code>&lt;path&gt;</code>. Элемент<code>&lt;group&gt;</code> определяет набор траекторий или подгрупп, а элемент <code>&lt;path&gt;</code> – траектории для создания.</p>
+<p>С помощью анимированных векторных элементов можно анимировать атрибуты элементов <code>&lt;group&gt;</code> и
+<code>&lt;path&gt;</code>. Элемент<code>&lt;group&gt;</code> определяет набор траекторий
+или подгрупп, а элемент <code>&lt;path&gt;</code> — траектории для прорисовки.</p>
 
-<p>При определении векторного элемента, который требуется анимировать, используйте атрибут <code>android:name</code> для назначения уникальных имен группам или траекториям, чтобы на них можно было сослаться в определениях аниматора. Пример:</p>
+<p>При определении векторного элемента, который требуется анимировать, используйте атрибут <code>android:name</code>
+для назначения уникальных имен группам или траекториям, чтобы на них можно было сослаться в определениях аниматора.
+ Например:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>Определение анимированного векторного элемента ссылается на группы и траектории в векторном элементе, используя их имена:</p>
+<p>Определение анимированного векторного элемента ссылается на группы и траектории в векторном элементе, используя их имена:
+</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>Определения анимации представляют объекты {@link android.animation.ObjectAnimator} или {@link android.animation.AnimatorSet}. Первый аниматор в этом примере поворачивает целевую группу на 360 градусов:</p>
+<p>Определения анимации представляются объектами {@link android.animation.ObjectAnimator} или {@link
+android.animation.AnimatorSet}. Первый аниматор в этом примере поворачивает целевую группу на 360 градусов:
+</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>Второй аниматор в этом примере преобразует траекторию векторного элемента из одной формы в другую. Для преобразования траектории должны быть совместимы: они должны содержать одинаковое количество команд, а также одинаковое количество параметров для каждой команды.</p>
+<p>Второй аниматор в этом примере преобразует траекторию векторного элемента из одной формы в другую.
+ Для преобразования обе траектории должны быть совместимы: они должны содержать одинаковое количество команд, а также одинаковое количество параметров для каждой команды.
+</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>Дополнительные сведения представлены в справке по API для {@link android.graphics.drawable.AnimatedVectorDrawable}.</p> 
\ No newline at end of file
+<p>Дополнительные сведения представлены в справке по API для {@link
+android.graphics.drawable.AnimatedVectorDrawable}.</p>
diff --git a/docs/html-intl/intl/ru/training/material/compatibility.jd b/docs/html-intl/intl/ru/training/material/compatibility.jd
index 167f2aa..b7ca338 100644
--- a/docs/html-intl/intl/ru/training/material/compatibility.jd
+++ b/docs/html-intl/intl/ru/training/material/compatibility.jd
@@ -20,42 +20,63 @@
 </div>
 
 
-<p>Некоторые возможности Material Design, такие как тема Material Design и настраиваемые переходы, доступны только в Android 5.0 (уровень API 21) и более поздних версиях. Однако приложения можно разработать таким образом, чтобы эти функции были доступны при запуске на устройствах, поддерживающих Material Design, сохранив при этом совместимость приложений с устройствами под управлением более ранних выпусков Android.</p>
+<p>Некоторые возможности Material Design, такие как "материальные" темы и настраиваемые переходы между операциями,
+ доступны только в Android 5.0 (уровень API 21) и более поздних версиях. Однако приложения можно разработать таким образом,
+чтобы эти функции были доступны при запуске на устройствах, поддерживающих Material Design, сохранив при этом
+совместимость приложений с устройствами под управлением более ранних выпусков Android.</p>
 
 
 <h2 id="Theme">Определение альтернативных стилей</h2>
 
-<p>Приложение можно настроить на использование темы Material Design на поддерживающих ее устройствах, а также на переключение на более старую тему при запуске этого приложения на устройствах под управлением более ранних версий ОС Android. Ниже описан порядок такой настройки.</p>
+<p>Приложение можно настроить так, чтобы тема Material Design использовалась при работе на поддерживающих эту технологию устройствах,
+а при запуске приложения на устройствах с более ранними версиями Android происходило переключение на старые варианты тем. Ниже описан порядок такой настройки.</p>
 
 <ol>
-<li>В файле <code>res/values/styles.xml</code> определите тему, наследующую более старую тему (например, Holo).</li>
-<li>В файле <code>res/values-v21/styles.xml</code> определите тему с таким же именем, наследующую тему Material Design.</li>
+<li>В файле
+<code>res/values/styles.xml</code> определите тему, наследующую более старой теме (например, Holo).</li>
+<li>В файле
+<code>res/values-v21/styles.xml</code> определите тему с таким же именем, наследующую теме Material Design.</li>
 <li>В файле манифеста укажите эту тему как тему приложения.</li>
 </ol>
 
-<p class="note"><strong>Примечание.</strong> Если в приложении используется тема Material Design, однако в нем отсутствует альтернативная тема, как предлагается выше, ваше приложение не будет запускаться на устройствах под управлением версий Android, предшествующих 5.0.
+<p class="note"><strong>Примечание.</strong>
+Если в приложении используется тема Material Design, но отсутствует определенная описанным способом альтернативная тема,
+это приложение не будет запускаться на устройствах под управлением версий Android, предшествующих 5.0.
 </p>
 
 
 <h2 id="Layouts">Предоставление альтернативных макетов</h2>
 
-<p>Если в создаваемых согласно рекомендациям Material Design макетах отсутствуют новые атрибуты XML, представленные в Android 5.0 (уровень API 21), такие макеты поддерживаются в предыдущих версиях ОС Android. В противном случае необходимо предоставить альтернативные макеты. Можно также предоставить альтернативные макеты для настройки внешнего вида приложения в более ранних версиях Android.</p>
+<p>Если в создаваемых согласно рекомендациям Material Design макетах отсутствуют новые
+атрибуты XML, представленные в Android 5.0 (уровень API 21),
+такие макеты поддерживаются в предыдущих версиях ОС Android. В противном случае необходимо предоставить альтернативные макеты. Можно также предоставить
+альтернативные макеты для настройки внешнего вида приложения в более ранних версиях Android.</p>
 
-<p>Создайте файлы макета для Android 5.0 (уровень API 21) в <code>res/layout-v21/</code>, а также файлы альтернативного макета для более ранних версий Android (в <code>res/layout/</code>). Например, <code>res/layout/my_activity.xml</code> – это альтернативный макет для <code>res/layout-v21/my_activity.xml</code>.</p>
+<p>Создайте файлы макета для Android 5.0 (уровень API 21) в <code>res/layout-v21/</code>,
+а также файлы альтернативного макета для более ранних версий Android (в <code>res/layout/</code>).
+Например, <code>res/layout/my_activity.xml</code> — это альтернативный макет для
+<code>res/layout-v21/my_activity.xml</code>.</p>
 
-<p>Чтобы сделать код более компактным, определите стили в <code>res/values/</code>, измените стили в <code>res/values-v21/</code> для новых API, а также используйте наследование стилей, определив основные стили в <code>res/values/</code> и задав наследование из них в <code>res/values-v21/</code>.</p>
+<p>Чтобы сделать код более компактным, определите стили в <code>res/values/</code>, измените
+ стили в <code>res/values-v21/</code> для новых API, а также используйте наследование стилей,
+ определив основные стили в <code>res/values/</code> и задав наследование из них в <code>res/values-v21/</code>.</p>
 
 
 <h2 id="SupportLib">Использование вспомогательной библиотеки</h2>
 
-<p><a href="{@docRoot}tools/support-library/features.html#v7">Вспомогательные библиотеки v7</a> r21 и более поздних версий включают следующие функции Material Design:</p>
+<p><a href="{@docRoot}tools/support-library/features.html#v7">Вспомогательные библиотеки v7</a>
+r21 и более поздних версий включают следующие функции Material Design:</p>
 
 <ul>
-<li><a href="{@docRoot}training/material/theme.html">стили Material Design</a> для некоторых системных виджетов в случае применения одной из тем <code>Theme.AppCompat</code>;</li>
-<li><a href="{@docRoot}training/material/theme.html#ColorPalette">атрибуты цветовой палитры темы</a> в темах <code>Theme.AppCompat</code>;</li>
-<li>виджет {@link android.support.v7.widget.RecyclerView} для <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">отображения коллекций данных</a>;</li>
-<li>виджет {@link android.support.v7.widget.CardView} для <a href="{@docRoot}training/material/lists-cards.html#CardView">создания подсказок</a>;</li>
-<li>класс {@link android.support.v7.graphics.Palette} для <a href="{@docRoot}training/material/drawables.html#ColorExtract">извлечения главных цветов на изображениях</a>.</li>
+<li><a href="{@docRoot}training/material/theme.html">стили Material Design</a> для некоторых
+системных виджетов в случае применения одной из тем <code>Theme.AppCompat</code>;</li>
+<li><a href="{@docRoot}training/material/theme.html#ColorPalette">атрибуты цветовой палитры темы</a>
+в темах <code>Theme.AppCompat</code>;</li>
+<li>виджет {@link android.support.v7.widget.RecyclerView} для <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">отображения коллекций
+данных</a>;</li>
+<li>виджет {@link android.support.v7.widget.CardView} для <a href="{@docRoot}training/material/lists-cards.html#CardView">создания карточек</a>;</li>
+<li>класс {@link android.support.v7.graphics.Palette} для <a href="{@docRoot}training/material/drawables.html#ColorExtract">извлечения главных цветов
+на изображениях</a>.</li>
 </ul>
 
 <h3>Системные виджеты</h3>
@@ -73,7 +94,8 @@
 
 <h3>Цветовая палитра</h3>
 
-<p>Чтобы получить стили Material Design и настроить цветовую палитру с помощью вспомогательной библиотеки Android v7, примените одну из следующих тем <code>Theme.AppCompat</code>:</p>
+<p>Чтобы получить стили Material Design и настроить цветовую палитру с помощью вспомогательной библиотеки
+Android v7, примените одну из следующих тем <code>Theme.AppCompat</code>:</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -85,18 +107,23 @@
 &lt;/style>
 </pre>
 
-<h3>Списки и подсказки</h3>
+<h3>Списки и карточки</h3>
 
-<p>Виджеты {@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView} имеются в более ранних версиях Android. Они находятся во вспомогательной библиотеке Android v7, и для них существуют следующие ограничения:</p>
+<p>Виджеты {@link android.support.v7.widget.RecyclerView} и {@link
+android.support.v7.widget.CardView} имеются в более ранних версиях Android. Они находятся во
+вспомогательной библиотеке Android v7, и для них существуют следующие ограничения.</p>
 <ul>
-<li>В виджете {@link android.support.v7.widget.CardView} применяется программная реализация тени с помощью дополнительного заполнения.</li>
-<li>Виджет {@link android.support.v7.widget.CardView} не выполняет обрезку своих дочерних представлений, пересекающихся со скругленными углами.</li>
+<li>В виджете {@link android.support.v7.widget.CardView} применяется программная реализация тени
+с помощью дополнительного отступа.</li>
+<li>Виджет {@link android.support.v7.widget.CardView} не выполняет обрезку своих дочерних представлений,
+пересекающихся со скругленными углами.</li>
 </ul>
 
 
 <h3>Зависимости</h3>
 
-<p>Чтобы воспользоваться этими возможностями в версиях Android, предшествующих 5.0 (уровень API 21), включите в свой проект вспомогательную библиотеку Android v7 как <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">зависимость Gradle</a>:</p>
+<p>Чтобы воспользоваться этими возможностями в версиях Android, предшествующих 5.0 (уровень API 21), включите в свой проект вспомогательную библиотеку
+Android v7 как <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">зависимость Gradle</a>:</p>
 
 <pre>
 dependencies {
@@ -117,10 +144,12 @@
 <li>анимации появления;</li>
 <li>анимации по траектории;</li>
 <li>векторные элементы;</li>
-<li>Тонирование элементов дизайна.</li>
+<li>тонирование элементов дизайна.</li>
 </ul>
 
-<p>Чтобы обеспечить совместимость приложения с более ранними версиями Android, проверьте системный параметр {@link android.os.Build.VERSION#SDK_INT version} во время запуска, прежде чем вызвать API любой из этих функций:</p>
+<p>Чтобы обеспечить совместимость приложения с более ранними версиями Android, проверьте системный параметр {@link
+android.os.Build.VERSION#SDK_INT version} во время запуска, прежде чем вызвать API любой из этих
+функций:</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>Примечание.</strong> Чтобы указать версии Android, поддерживаемые вашим приложением, укажите в файле манифеста атрибуты <code>android:minSdkVersion</code> и <code>android:targetSdkVersion</code>. Чтобы использовать функции Material Design, которые имеются в Android 5.0, задайте для атрибута <code>android:targetSdkVersion</code> значение <code>21</code>. Дополнительные сведения представлены в <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">руководстве по API &lt;uses-sdk&gt;</a>.</p> 
\ No newline at end of file
+<p class="note"><strong>Примечание.</strong> Чтобы указать версии Android, поддерживаемые вашим приложением,
+установите атрибуты <code>android:minSdkVersion</code> и <code>android:targetSdkVersion</code>
+в файле манифеста. Чтобы использовать функции Material Design, которые имеются в Android 5.0, задайте
+для атрибута <code>android:targetSdkVersion</code> значение <code>21</code>. Дополнительные сведения см.
+ в <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">руководстве по API
+&lt;uses-sdk&gt;</a>.</p>
diff --git a/docs/html-intl/intl/ru/training/material/drawables.jd b/docs/html-intl/intl/ru/training/material/drawables.jd
index a602c99..2554f07 100644
--- a/docs/html-intl/intl/ru/training/material/drawables.jd
+++ b/docs/html-intl/intl/ru/training/material/drawables.jd
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">Тонирование элементов дизайна</h2>
 
-<p>В Android 5.0 (уровень API 21) и более поздних версий можно тонировать растровые изображения и изображения в формате NinePatch, определенные как альфа-маски. Для тонирования можно применять как цветовые ресурсы, так и атрибуты темы, которые разрешаются в цветовые ресурсы (например, <code>?android:attr/colorPrimary</code>). Обычно такие ресурсы создаются только один раз, после чего они автоматически окрашиваются для соответствия цветам темы.</p>
+<p>В Android 5.0 (уровень API 21) и более поздних версий можно тонировать растровые изображения и изображения в формате NinePatch, определенные как
+альфа-маски. Для тонирования можно применять как цветовые ресурсы, так и атрибуты темы, которые
+разрешаются в цветовые ресурсы (например, <code>?android:attr/colorPrimary</code>). Обычно такие ресурсы создаются
+только один раз, после чего они автоматически окрашиваются для соответствия цветам темы.</p>
 
-<p>Тонирование можно применить к объектам {@link android.graphics.drawable.BitmapDrawable} и {@link android.graphics.drawable.NinePatchDrawable} с помощью метода {@code setTint()}. Также можно задать цвет и способ тонирования в макетах, используя для этого атрибуты <code>android:tint</code> и <code>android:tintMode</code>.</p>
+<p>Тонирование можно применить к объектам {@link android.graphics.drawable.BitmapDrawable} и {@link
+android.graphics.drawable.NinePatchDrawable} с помощью метода {@code setTint()}. Также можно
+задать цвет и способ тонирования в макетах, используя для этого атрибуты <code>android:tint</code> и 
+<code>android:tintMode</code>.</p>
 
 
 <h2 id="ColorExtract">Извлечение главных цветов на изображении</h2>
 
-<p>Во вспомогательной библиотеке Android r21 и более поздних версий содержится класс {@link android.support.v7.graphics.Palette}, с помощью которого можно извлекать главные цвета на изображении. Данный класс позволяет извлекать следующие главные цвета:</p>
+<p>Во вспомогательной библиотеке Android r21 и более поздних версий содержится класс {@link
+android.support.v7.graphics.Palette},
+с помощью которого можно извлекать следующие главные цвета на изображении:</p>
 
 <ul>
 <li>насыщенные цвета;</li>
@@ -49,36 +57,46 @@
 <li>приглушенные светлые цвета.</li>
 </ul>
 
-<p>Для извлечения этих цветов передайте объект {@link android.graphics.Bitmap} в статический метод {@link android.support.v7.graphics.Palette#generate Palette.generate()} в фоновом потоке, где вы загружаете изображения. Если невозможно использовать этот поток, вместо этого вызовите метод {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} и укажите прослушиватель.</p>
+<p>Для извлечения этих цветов передайте объект {@link android.graphics.Bitmap} в статический метод
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} в фоновом
+потоке, где загружаются изображения. Если невозможно использовать этот поток, вместо этого вызовите метод
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} и укажите
+модуль прослушивания.</p>
 
-<p>Извлечь главные цвета на изображении можно также с помощью методов get из класса <code>Palette</code>, таких как <code>Palette.getVibrantColor</code>.</p>
+<p>Извлечь главные цвета на изображении можно также с помощью методов getter из класса
+<code>Palette</code>, таких как <code>Palette.getVibrantColor</code>.</p>
 
-<p>Чтобы использовать класс {@link android.support.v7.graphics.Palette} в своем проекте, добавьте в модуль своего приложения следующую <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">зависимость Gradle</a>:</p>
+<p>Чтобы использовать класс {@link android.support.v7.graphics.Palette} в своем проекте, добавьте в модуль своего приложения следующую
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">зависимость Gradle</a>:
+</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>Дополнительные сведения представлены в справке по API для класса {@link android.support.v7.graphics.Palette}.</p>
+<p>Дополнительные сведения представлены в справке по API для класса {@link android.support.v7.graphics.Palette}
+.</p>
 
 
 <h2 id="VectorDrawables">Создание векторных элементов</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>Видео</h3>
     <p>Векторная графика в Android</p>
 </div>
 </a>
 
-<p>В Android 5.0 (уровень API 21) и более поздних версий имеется возможность определить векторные элементы, которые можно масштабировать без ущерба для четкости. Для векторного изображения требуется лишь один файл ресурсов, тогда как для растровых изображений требуется отдельный файл ресурсов для каждого разрешения. Чтобы создать векторное изображение, укажите детали формы в XML-элементе <code>&lt;vector&gt;</code>.</p>
+<p>В Android 5.0 (уровень API 21) и более поздних версий имеется возможность определить векторные элементы, которые можно масштабировать без ущерба для четкости.
+ Для векторного изображения требуется лишь один файл ресурсов, тогда как для растровых изображений необходим отдельный файл ресурсов для каждой плотности экрана.
+ Чтобы создать векторное изображение, укажите детали формы в XML-элементе <code>&lt;vector&gt;</code>.
+</p>
 
-<p>В примере ниже задается векторное изображение в форме сердца:</p>
+<p>В следующем примере создается векторное изображение в форме сердца.</p>
 
 <pre>
 &lt;!-- res/drawable/heart.xml -->
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>Векторные изображения представлены в Android как объекты {@link android.graphics.drawable.VectorDrawable}. Дополнительные сведения о синтаксисе <code>pathData</code> представлены в <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">справке по траекториям SVG</a>. Дополнительные сведения об анимации свойств векторных элементов см. в разделе <a href="{@docRoot}training/material/animations.html#AnimVector">Анимация векторных элементов</a>.</p> 
\ No newline at end of file
+<p>Векторные изображения представлены в Android как объекты {@link android.graphics.drawable.VectorDrawable}.
+ Дополнительные сведения о синтаксисе <code>pathData</code> см. в <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">справке по траекториям SVG</a>. Дополнительные сведения
+об анимации свойств векторных элементов см. в разделе
+<a href="{@docRoot}training/material/animations.html#AnimVector">Анимация векторных элементов</a>.</p>
diff --git a/docs/html-intl/intl/ru/training/material/get-started.jd b/docs/html-intl/intl/ru/training/material/get-started.jd
index 545cd16..476de7f 100644
--- a/docs/html-intl/intl/ru/training/material/get-started.jd
+++ b/docs/html-intl/intl/ru/training/material/get-started.jd
@@ -9,7 +9,7 @@
   <li><a href="#ApplyTheme">Применение темы Material Design</a></li>
   <li><a href="#Layouts">Разработка макетов</a></li>
   <li><a href="#Depth">Установка высоты представлений</a></li>
-  <li><a href="#ListsCards">Создание списков и подсказок</a></li>
+  <li><a href="#ListsCards">Создание списков и карточек</a></li>
   <li><a href="#Animations">Настройка анимации</a></li>
 </ol>
 <h2>См. также</h2>
@@ -33,27 +33,34 @@
   <li style="margin-bottom:10px">
     Установите <strong>высоту</strong> своих представлений для отбрасывания теней.</li>
   <li style="margin-bottom:10px">
-    Используйте системные <strong>виджеты</strong> для списков и подсказок.</li>
+    Используйте системные <strong>виджеты</strong> для списков и карточек.</li>
   <li style="margin-bottom:10px">
     Настройте <strong>анимацию</strong> в своем приложении.</li>
 </ol>
 
 <h3>Обеспечение обратной совместимости</h3>
 
-<p>В приложении можно реализовать множество функций Material Design и одновременно сохранить его совместимость с версиями Android, предшествующими версии 5.0. Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>.</p>
+<p>В приложении можно реализовать множество функций Material Design и одновременно сохранить его совместимость с версиями Android, предшествующими версии 5.0.
+ Дополнительные сведения представлены на странице
+<a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>.</p>
 
-<h3>Обновление приложения с помощью элементов Material Design</h3>
+<h3>Обновление приложения с добавлением элементов Material Design</h3>
 
-<p>Чтобы освежить существующее приложение с помощью функций и элементов Material Design, обновите макеты в соответствии с рекомендациями Material Design. Также не забудьте реализовать такие функции, как глубина, реакция на касание и анимация.</p>
+<p>Чтобы дополнить существующее приложение функциями и элементами Material Design, обновите макеты в соответствии с рекомендациями Material Design.
+ Также не забудьте добавить в приложение функции глубины, реакции на касание и анимации.
+</p>
 
 <h3>Создание новых приложений с элементами Material Design</h3>
 
-<p>При создании приложений с функциями Material Design следуйте <a href="http://www.google.com/design/spec">рекомендациям Material Design</a>, которые позволят вам получить целостное представление о принципах дизайна. При проектировании и разработке своего приложения следуйте инструкциям и используйте новые функциональные возможности платформы Android.</p>
+<p>При создании приложений с "материальными" функциями следуйте <a href="http://www.google.com/design/spec">рекомендациям Material Design</a>, которые позволят вам получить целостное представление о новых принципах дизайна.
+ При проектировании и разработке своего приложения следуйте инструкциям и используйте новые функциональные возможности платформы Android.
+</p>
 
 
 <h2 id="ApplyTheme">Применение темы Material Design</h2>
 
-<p>Чтобы применить тему Material Design в своем приложении, укажите стиль, который наследуется от <code>android:Theme.Material</code>:</p>
+<p>Чтобы применить тему Material Design в своем приложении, укажите стиль, который наследует от 
+<code>android:Theme.Material</code>:</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,15 +72,19 @@
 &lt;/resources>
 </pre>
 
-<p>В теме Material Design содержатся обновленные системные виджеты, для которых можно настраивать цветовую палитру, а также анимации для реакции на касание и переходы. Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/theme.html">Использование темы Material Design</a>.</p>
+<p>В теме Material Design содержатся обновленные системные виджеты, для которых можно настраивать цветовую палитру, а также стандартные анимации для реакции на касания и переходы.
+ Дополнительные сведения представлены в разделе
+<a href="{@docRoot}training/material/theme.html">Использование темы Material Design</a>.</p>
 
 
 <h2 id="Layouts">Разработка макетов</h2>
 
-<p>Помимо применения и настройки темы Material Design, ваши макеты должны быть созданы в соответствии с <a href="http://www.google.com/design/spec">рекомендациями Material Design</a>. Особо внимание при разработке макетов следует обращать на следующие элементы:</p>
+<p>Помимо применения и настройки темы Material Design, необходимо соответствие
+<a href="http://www.google.com/design/spec">рекомендациям Material Design</a> используемых макетов. При разработке макетов необходимо контролировать следующие элементы:
+</p>
 
 <ul>
-<li>сетка базовых линий;</li>
+<li>сетки базовых линий;</li>
 <li>контуры;</li>
 <li>интервалы;</li>
 <li>размер целевой области касания;</li>
@@ -81,9 +92,11 @@
 </ul>
 
 
-<h2 id="Depth">Установка высоты представлений</h2>
+<h2 id="Depth">Определение высоты представлений</h2>
 
-<p>Представления могут отбрасывать тени, и значение высоты определяет размер тени и порядок ее прорисовки. Чтобы установить высоту представления, используйте в макетах атрибут <code>android:elevation</code>:</p>
+<p>Представления могут отбрасывать тени, и значение высоты определяет размер тени и порядок ее прорисовки.
+ Чтобы установить высоту представления, используйте в макетах атрибут
+<code>android:elevation</code>:</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>С помощью нового свойства <code>translationZ</code> можно создавать анимации, которые отражают временные изменения в высоте представления. Изменения высоты могут быть полезны при <a href="{@docRoot}training/material/animations.html#ViewState">реагировании на сенсорные жесты</a>.</p>
+<p>С помощью нового свойства <code>translationZ</code> можно создавать анимации, которые отражают временные изменения в высоте представления.
+ Изменения высоты могут быть полезны при
+<a href="{@docRoot}training/material/animations.html#ViewState">реагировании на сенсорные
+жесты</a>.</p>
 
-<p>Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/shadows-clipping.html">Определение теней и обрезка представлений</a>.</p>
+<p>Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/shadows-clipping.html">Определение теней и обрезка представлений</a>.
+</p>
 
 
-<h2 id="ListsCards">Создание списков и подсказок</h2>
+<h2 id="ListsCards">Создание списков и карточек</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} представляет собой более гибкую версию {@link android.widget.ListView}. Она поддерживает различные типы макетов и способствует повышению производительности. {@link android.support.v7.widget.CardView} обеспечивает единообразное отображение фрагментов информации внутри подсказок в разных приложениях. В следующем примере демонстрируется, как включить {@link android.support.v7.widget.CardView} в макет:</p>
+<p>{@link android.support.v7.widget.RecyclerView} представляет собой более гибкую версию {@link
+android.widget.ListView}. Она поддерживает различные типы макетов и способствует повышению производительности.
+{@link android.support.v7.widget.CardView} обеспечивает единообразное отображение фрагментов информации внутри карточек в разных приложениях.
+ В следующем примере показано, как включить
+{@link android.support.v7.widget.CardView} в макет:</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/lists-cards.html">Создание списков и подсказок</a>.</p>
+<p>Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/lists-cards.html">Создание списков и карточек</a>.
+</p>
 
 
 <h2 id="Animations">Настройка анимации</h2>
 
-<p>В состав Android 5.0 (уровень API 21) входят новые API для создания в приложении настраиваемой анимации. Например, можно активировать переходы между операциями и задавать для операций конечный переход:</p>
+<p>В состав Android 5.0 (уровень API 21) входят новые API для создания в приложении настраиваемой анимации.
+Например, можно разрешать переходы между операциями и задавать для операций конечный переход:
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -142,6 +166,6 @@
 }
 </pre>
 
-<p>При запуске другой операции из этой операции активируется конечный переход.</p>
+<p>При запуске одной операции из другой активируется конечный переход.</p>
 
-<p>Подробные сведения о новых API для анимации см. в разделе <a href="{@docRoot}training/material/animations.html">Определение настраиваемой анимации</a>.</p> 
\ No newline at end of file
+<p>Подробные сведения о новых API для анимации см. в разделе <a href="{@docRoot}training/material/animations.html">Определение настраиваемой анимации</a>.</p>
diff --git a/docs/html-intl/intl/ru/training/material/index.jd b/docs/html-intl/intl/ru/training/material/index.jd
index 1483c51..0b3f1c4 100644
--- a/docs/html-intl/intl/ru/training/material/index.jd
+++ b/docs/html-intl/intl/ru/training/material/index.jd
@@ -1,33 +1,39 @@
-page.title=Создание приложений с помощью Material Design
-page.type=проектирование
-page.image=images/material.png
-page.metaDescription=Узнайте, как применить Material Design к своим приложениям. 
+page.title=Создание приложений с помощью Material Design 
+page.type=проектирование 
+page.image=images/cards/material_2x.png
+page.metaDescription=Научитесь применять Material Design к своим приложениям. 
+
 
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-  <h2>Зависимости и необходимые компоненты</h2>
+  <h2>Необходимые знания и компоненты</h2>
   <ul>
     <li>Android 5.0 (уровень API 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>Material Design представляет собой полное руководство по созданию визуальных, движущихся и интерактивных элементов для различных платформ и устройств. Чтобы применить элементы Material Design в своих приложениях Android, руководствуйтесь инструкциями в <a href="http://www.google.com/design/spec/material-design/introduction.html">спецификации Material Design</a>, а также воспользуйтесь новыми компонентами и функциями, которые доступны в Android 5.0 (уровень API 21).</p>
+<p>Material Design представляет собой комплексную концепцию создания визуальных, движущихся и интерактивных элементов для различных платформ и устройств.
+ Чтобы применить элементы Material Design в своих приложениях Android,
+руководствуйтесь инструкциями в
+<a href="http://www.google.com/design/spec/material-design/introduction.html">спецификации Material
+Design</a>, а также воспользуйтесь новыми компонентами и функциями, которые доступны в Android 5.0 (уровень API 21).
+</p>
 
-<p>Данный курс обучения посвящен созданию приложений Material Design с использованием следующих элементов:</p>
+<p>Данный курс обучения посвящен созданию приложений Material Design, в ходе которого используются следующие элементы:</p>
 
 <ul>
 <li>тема Material Design;</li>
-<li>виджеты для подсказок и списков;</li>
+<li>виджеты для карточек и списков;</li>
 <li>настраиваемые тени и обрезка представлений;</li>
 <li>векторные элементы;</li>
 <li>настраиваемая анимация.</li>
 </ul>
 
-<p>В этом курсе также рассматривается обеспечение обратной совместимости нового приложения, в котором используются функции Material Design, с версиями Android, предшествующими версии 5.0 (уровень API 21).</p>
+<p>В этом курсе также рассматривается обеспечение обратной совместимости нового приложения, в котором используются функции Material Design, с версиями Android, предшествующими версии 5.0 (уровень API 21).
+</p>
 
 <h2>Уроки</h2>
 
@@ -38,8 +44,8 @@
   <dt><a href="{@docRoot}training/material/theme.html">Использование темы Material Design</a></dt>
   <dd>Узнайте, как применять стили Material Design в приложениях.</dd>
 
-  <dt><a href="{@docRoot}training/material/lists-cards.html">Создание списков и подсказок</a></dt>
-  <dd>Узнайте, как с помощью системных виджетов создавать единообразные списки и подсказки.</dd>
+  <dt><a href="{@docRoot}training/material/lists-cards.html">Создание списков и карточек</a></dt>
+  <dd>Узнайте, как с помощью системных виджетов создавать единообразные списки и карточки.</dd>
 
   <dt><a href="{@docRoot}training/material/shadows-clipping.html">Определение теней и обрезка представлений</a></dt>
   <dd>Узнайте, как устанавливать высоту представлений для создания настраиваемых теней, а также обрезать представления.</dd>
@@ -52,4 +58,4 @@
 
   <dt><a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a></dt>
   <dd>Узнайте, как обеспечить совместимость приложений с версиями платформы, предшествующими Android 5.0.</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/ru/training/material/lists-cards.jd b/docs/html-intl/intl/ru/training/material/lists-cards.jd
index 7f2ab98..44ff160 100644
--- a/docs/html-intl/intl/ru/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/ru/training/material/lists-cards.jd
@@ -1,4 +1,4 @@
-page.title=Создание списков и подсказок
+page.title=Создание списков и карточек
 
 @jd:body
 
@@ -7,7 +7,7 @@
 <h2>Содержание этого урока</h2>
 <ol>
   <li><a href="#RecyclerView">Создание списков</a></li>
-  <li><a href="#CardView">Создание подсказок</a></li>
+  <li><a href="#CardView">Создание карточек</a></li>
   <li><a href="#Dependencies">Добавление зависимостей</a></li>
 </ol>
 <h2>См. также</h2>
@@ -19,28 +19,40 @@
 </div>
 
 
-<p>Для создания в приложениях составных списков и подсказок с помощью стилей Material Design можно использовать виджеты {@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView}.</p>
+<p>Для создания в приложениях составных списков и карточек с помощью стилей Material Design можно использовать виджеты
+{@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView}.
+</p>
 
 
 <h2 id="RecyclerView">Создание списков</h2>
 
-<p>Виджет {@link android.support.v7.widget.RecyclerView} представляет собой расширенную и более гибкую версию {@link android.widget.ListView}. Он является контейнером для отображения больших наборов данных, которые можно эффективно прокручивать, сохраняя при этом ограниченное количество представлений. Виджет {@link android.support.v7.widget.RecyclerView} рекомендуется использовать в случаях, когда имеются коллекции данных, элементы которых изменяются во время выполнения на основе действий пользователя или сетевых событий.</p>
+<p>Виджет {@link android.support.v7.widget.RecyclerView} представляет собой расширенную и более гибкую версию {@link android.widget.ListView}.
+ Он является контейнером для отображения больших наборов данных, которые можно эффективно прокручивать, сохраняя при этом ограниченное количество представлений.
+ Виджет
+{@link android.support.v7.widget.RecyclerView} рекомендуется использовать в случаях, когда имеются коллекции данных, элементы которых изменяются во время выполнения в зависимости от действий пользователя или сетевых событий.
+</p>
 
-<p>Класс {@link android.support.v7.widget.RecyclerView} упрощает отображение и обработку больших наборов данных за счет предоставления:</p>
+<p>Класс {@link android.support.v7.widget.RecyclerView} упрощает отображение и обработку больших наборов данных с помощью следующих возможностей:
+</p>
 
 <ul>
   <li>менеджеров макетов для размещения элементов;</li>
-  <li>анимации по умолчанию для операций с общими элементами, таких как удаление или добавление элементов.</li>
+  <li>стандартных анимаций для операций с общими элементами, таких как удаление или добавление элементов.</li>
 </ul>
 
-<p>Также предоставляются гибкие возможности определения настраиваемых менеджеров макетов и анимации для виджетов {@link android.support.v7.widget.RecyclerView}.</p>
+<p>Также предоставляются гибкие возможности определения настраиваемых менеджеров макетов и анимации для виджетов {@link
+android.support.v7.widget.RecyclerView}.</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>Рисунок 1</strong>. Виджет <code>RecyclerView</code>.
 </p>
 
-<p>Чтобы воспользоваться виджетом {@link android.support.v7.widget.RecyclerView}, необходимо определить адаптер и менеджер макетов. Для создания адаптера следует наследовать класс {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Характеристики реализации зависят от особенностей используемого набора данных и типа представлений. Дополнительные сведения представлены в <a href="#RVExamples">примерах</a> ниже.</p>
+<p>Чтобы воспользоваться виджетом {@link android.support.v7.widget.RecyclerView}, необходимо определить адаптер и менеджер макетов.
+ Для создания адаптера необходимо наследовать класс {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Характеристики реализации зависят от особенностей используемого набора данных и типа представлений.
+ Дополнительные сведения представлены в <a href="#RVExamples">примерах</a> ниже.
+</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
@@ -49,25 +61,37 @@
 </p>
 </div>
 
-<p><strong>Менеджер макетов</strong> размещает представления элемента внутри {@link android.support.v7.widget.RecyclerView} и определяет порядок повторного использования представлений элемента, которые более не отображаются для пользователя. Чтобы повторно использовать (или <em>перезапустить</em>) представление, менеджер макетов может запросить адаптер заменить содержимое представления другим элементом из набора данных. Такой перезапуск представлений позволяет повысить производительность за счет того, что исключается создание ненужных представлений и выполнение ресурсоемких операций подстановки {@link android.app.Activity#findViewById findViewById()}.</p>
+<p><strong>Менеджер макетов</strong> размещает представления элемента внутри {@link
+android.support.v7.widget.RecyclerView} и определяет порядок повторного использования представлений элемента, которые перестают быть видимыми пользователю.
+ Чтобы повторно использовать (или <em>перезапустить</em>) представление, менеджер макетов может запросить адаптер заменить содержимое представления другим элементом из набора данных.
+ Такой перезапуск представлений позволяет повысить производительность за счет того, что исключается создание ненужных представлений и выполнение ресурсоемких операций поиска {@link android.app.Activity#findViewById findViewById()}.
+
+</p>
 
 <p>Виджет {@link android.support.v7.widget.RecyclerView} включает следующие встроенные менеджеры макетов:</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} для отображения элементов в виде списка с вертикальной или горизонтальной прокруткой;</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} для отображения элементов в виде списка с вертикальной или горизонтальной прокруткой;
+</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} для отображения элементов в виде сетки;</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} для отображения элементов в виде шахматной сетки.</li>
 </ul>
 
-<p>Для создания менеджера макетов следует наследовать класс {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
+<p>Для создания менеджера макетов необходимо наследовать класс {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
 
 <h3>Анимация</h3>
 
-<p>По умолчанию анимация для добавления и удаления элементов включается в виджете {@link android.support.v7.widget.RecyclerView}. Для настройки такой анимации следует наследовать класс {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} и воспользоваться методом {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}.</p>
+<p>По умолчанию анимация для добавления и удаления элементов включается в виджете {@link
+android.support.v7.widget.RecyclerView}. Для настройки такой анимации следует наследовать класс
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} и воспользоваться методом
+ {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+.</p>
 
 <h3 id="RVExamples">Примеры</h3>
 
-<p>В следующем примере демонстрируется, как включить в макет виджет {@link android.support.v7.widget.RecyclerView}:</p>
+<p>В следующем примере демонстрируется, как включить в макет виджет 
+{@link android.support.v7.widget.RecyclerView}:</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>После добавления виджета {@link android.support.v7.widget.RecyclerView} подключите дескриптор объекта, подключите его к менеджеру макетов, а затем подключите адаптер к данным, которые будут отображаться:</p>
+<p>После добавления виджета {@link android.support.v7.widget.RecyclerView} подключите дескриптор объекта, подключите его к менеджеру макетов, а затем подключите адаптер к данным, которые будут отображаться:
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>Адаптер обеспечивает доступ к элементам в наборе данных, создает представления для элементов и заменяет содержимое некоторых представлений новыми элементами данных, когда исходный элемент уже не отображается. Пример кода ниже представляет собой простую реализацию для набора данных, который состоит из массива строк, выведенного на экран с помощью виджетов {@link android.widget.TextView}:</p>
+<p>Адаптер обеспечивает доступ к элементам в наборе данных, создает представления для элементов и заменяет содержимое некоторых представлений новыми элементами данных, когда исходный элемент уже не отображается.
+
+ Пример кода ниже является простой реализацией набора данных, который состоит из массива строк, выведенного на экран с помощью виджетов {@link android.widget.TextView}:
+</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -165,25 +194,35 @@
 <div style="float:right;margin-top:15px;margin-left:30px">
 <img src="{@docRoot}design/material/images/card_travel.png" alt="" width="225" height="383">
 <p class="img-caption" style="margin-left:12px">
-<strong>Рисунок 3</strong>. Примеры подсказок.
+<strong>Рисунок 3</strong>. Примеры карточек.
 </p>
 </div>
 
-<h2 id="CardView">Создание подсказок</h2>
+<h2 id="CardView">Создание карточек</h2>
 
-<p>Виджет {@link android.support.v7.widget.CardView} является расширением класса {@link android.widget.FrameLayout} и позволяет отображать информацию внутри подсказок, которые будут выглядеть одинаково в рамках платформы. Виджеты {@link android.support.v7.widget.CardView} могут отбрасывать тени и иметь закругленные углы.</p>
+<p>Виджет {@link android.support.v7.widget.CardView} является расширением класса {@link android.widget.FrameLayout}
+и позволяет отображать информацию внутри карточек, которые будут выглядеть одинаково в рамках платформы. Виджеты {@link
+android.support.v7.widget.CardView} могут отбрасывать тени и иметь закругленные углы.</p>
 
-<p>Чтобы создать подсказку, отбрасывающую тень, воспользуйтесь атрибутом <code>card_view:cardElevation</code>. В Android 5.0 (уровень API 21) и более поздних версий виджет {@link android.support.v7.widget.CardView} использует реальную высоту и динамические тени, а в более ранних версиях виджет возвращается к программным теням. Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>.</p>
+<p>Чтобы создать карточку, отбрасывающую тень, воспользуйтесь атрибутом <code>card_view:cardElevation</code>. В Android 5.0 (уровень API 21) и более поздних версий виджет
+{@link android.support.v7.widget.CardView} использует реальную
+высоту и динамические тени, а в более ранних версиях в виджете реализованы программные тени.
+Дополнительные сведения представлены на странице <a href="{@docRoot}training/material/compatibility.html">Обеспечение
+совместимости</a>.</p>
 
-<p>Для настройки внешнего вида виджета {@link android.support.v7.widget.CardView} используйте следующие свойства:</p>
+<p>Для настройки внешнего вида виджета
+{@link android.support.v7.widget.CardView} используйте следующие свойства:</p>
 
 <ul>
-  <li>Чтобы задать радиус скругления углов в макете, используйте атрибут <code>card_view:cardCornerRadius</code>.</li>
-  <li>Чтобы задать радиус скругления углов в программном коде, используйте метод <code>CardView.setRadius</code>.</li>
-  <li>Чтобы задать цвет фона подсказки, используйте атрибут <code>card_view:cardBackgroundColor</code>.</li>
+  <li>чтобы задать радиус скругления углов в макете, используйте атрибут <code>card_view:cardCornerRadius</code>;
+</li>
+  <li>чтобы задать радиус скругления углов в программном коде, используйте метод <code>CardView.setRadius</code>;</li>
+  <li>чтобы задать цвет фона карточки, используйте атрибут <code>card_view:cardBackgroundColor</code>.
+</li>
 </ul>
 
-<p>В следующем примере показано, как включить виджет {@link android.support.v7.widget.CardView} в макет:</p>
+<p>В следующем примере показано, как включить виджет {@link android.support.v7.widget.CardView}
+ в макет:</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -212,7 +251,11 @@
 
 <h2 id="Dependencies">Добавление зависимостей</h2>
 
-<p>Виджеты {@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView} имеются во <a href="{@docRoot}tools/support-library/features.html#v7">вспомогательных библиотеках v7</a>. Чтобы использовать эти виджеты в своем проекте, добавьте в модуль приложения следующие <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">зависимости Gradle</a>:</p>
+<p> Виджеты {@link android.support.v7.widget.RecyclerView} и {@link android.support.v7.widget.CardView}
+входят во <a href="{@docRoot}tools/support-library/features.html#v7">вспомогательные
+библиотеки v7</a>. Чтобы использовать эти виджеты в своем проекте, добавьте в модуль приложения следующие 
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">зависимости Gradle</a>:
+</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/ru/training/material/shadows-clipping.jd b/docs/html-intl/intl/ru/training/material/shadows-clipping.jd
index fe634d3..a1c41fc 100644
--- a/docs/html-intl/intl/ru/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/ru/training/material/shadows-clipping.jd
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>В Material Design представлена возможность настройки высоты элементов интерфейса. Высота позволяет пользователю понять относительную важность каждого элемента и сосредоточиться на выполнении необходимой задачи.</p>
+<p>В Material Design появилась возможность настройки высоты элементов интерфейса. Высота позволяет пользователю понять относительную важность каждого элемента и сосредоточиться на выполнении поставленной задачи.
+</p>
 
-<p>Высота представления, выраженная с помощью свойства Z, определяет внешний вид его тени: представления с более высоким значением Z отбрасывают более мягкие тени большего размера. Представления с более высокими значениями Z перекрывают представления с более низкими значениями Z, однако значение Z не влияет на размер самого представления.</p>
+<p>Высота представления, выраженная с помощью свойства Z, определяет внешний вид его тени: представления с более высоким значением Z отбрасывают более мягкие тени большего размера.
+ Представления с более высокими значениями Z перекрывают представления с более низкими значениями Z, однако значение Z не влияет на размер самого представления.
+</p>
 
-<p>Прорисовка теней выполняется родительским представлением, поэтому к приподнятому представлению можно применять стандартную операцию обрезки представления (по умолчанию представление обрезается своим родительским представлением).</p>
+<p>Прорисовка теней выполняется родительским представлением, поэтому к приподнятому представлению можно применять стандартную операцию обрезки представления (по умолчанию представление обрезается своим родительским представлением).
+</p>
 
-<p>Установка высоты также полезна для создания анимации, когда виджеты временно поднимаются выше плоскости представления при выполнении какого-либо действия.</p>
+<p>Установка высоты также полезна для создания анимации, когда виджеты временно поднимаются выше плоскости представления при выполнении какого-либо действия.
+</p>
 
-<p>Дополнительные сведения об установке высоты в Material Design представлены в статье <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Objects in 3D space</a>.</p>
+<p>Дополнительные сведения об установке высоты в Material Design представлены на странице 
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Объекты в трехмерном пространстве</a>.
+</p>
 
 
 <h2 id="Elevation">Установка высоты представления</h2>
 
-<p>Значение Z для представления включает два компонента: <ul>
+<p>Значение Z для представления включает два компонента:
+
+<ul>
 <li>высота: статический компонент;</li>
 <li>смещение: динамический компонент, используемый для анимации.</li>
 </ul>
@@ -41,20 +50,32 @@
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
 <p class="img-caption"><strong>Рисунок 1</strong>. Тени для различной высоты представления.</p>
 
-<p>Чтобы установить высоту представления в определении макета, используйте атрибут <code>android:elevation</code>. Чтобы установить высоту представления в программном коде операции, используйте метод{@link android.view.View#setElevation View.setElevation()}.</p>
+<p>Чтобы установить высоту представления в определении макета, используйте атрибут <code>android:elevation</code>
+. Чтобы установить высоту представления в программном коде операции, используйте метод
+{@link android.view.View#setElevation View.setElevation()}.</p>
 
-<p>Чтобы установить смещение представления, используйте метод {@link android.view.View#setTranslationZ View.setTranslationZ()}.</p>
+<p>Чтобы установить смещение представления, используйте метод {@link android.view.View#setTranslationZ
+View.setTranslationZ()}.</p>
 
-<p>Новые методы {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} и {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} позволяют с легкостью анимировать изменение высоты представления. Дополнительные сведения представлены в справке по API для {@link android.view.ViewPropertyAnimator}, а также в руководстве по <a href="{@docRoot}guide/topics/graphics/prop-animation.html">анимации свойств</a> для разработчиков.</p>
+<p>Новые методы {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} и {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} позволяют с легкостью анимировать изменение высоты представлений.
+ Дополнительные сведения см. в справке по API для 
+{@link android.view.ViewPropertyAnimator}, а также в руководстве по <a href="{@docRoot}guide/topics/graphics/prop-animation.html">анимации свойств</a> для разработчиков.
+</p>
 
-<p>Также можно воспользоваться {@link android.animation.StateListAnimator} для указания этих анимаций описательно. Это особенно полезно в тех случаях, когда состояние изменяется при анимации переключения, например, когда пользователь нажимает на кнопку. Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/animations.html#ViewState">Анимация изменений состояния представления</a>.</p>
+<p>Также можно использовать класс {@link android.animation.StateListAnimator} для декларирования этих анимаций.
+ Это особенно полезно в тех случаях, когда анимация запускается при изменении состояния, например, когда пользователь нажимает на кнопку.
+ Дополнительные сведения см. в разделе 
+<a href="{@docRoot}training/material/animations.html#ViewState">Анимация изменений состояния представления</a>.</p>
 
-<p>Значения Z измеряются в dp (пикселы, не зависящие от плотности).</p>
+<p>Значения Z измеряются в dp (пиксели, не зависящие от плотности).</p>
 
 
 <h2 id="Shadows">Настройка теней и контуров представления</h2>
 
-<p>Границы фонового элемента представления определяют форму его тени по умолчанию. <strong>Контуры</strong> – это внешние границы графического объекта, они также определяют область ряби для реакции на касание.</p>
+<p>Границы фонового элемента представления определяют форму его тени по умолчанию.
+<strong>Контуры</strong> — это внешние границы графического объекта, они также определяют область ряби для отклика на касание.
+</p>
 
 <p>В примере ниже рассматривается это представление, определенное с помощью фонового элемента дизайна:</p>
 
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>Представление отбрасывает тень с закругленными углами, поскольку фоновый элемент дизайна определяет контур представления. Если указать настраиваемый контур, он будет переопределять форму тени по умолчанию для представления.</p>
+<p>Представление отбрасывает тень с закругленными углами, поскольку контур представления определяется фоновым элементом дизайна.
+ Если указать настраиваемый контур, он будет переопределять стандартную форму тени для представления.</p>
 
 <p>Порядок определения настраиваемого контура представления в программном коде<p>
 
 <ol>
-<li>Сначала следует наследовать класс {@link android.view.ViewOutlineProvider}.</li>
+<li>Сначала наследуйте класс {@link android.view.ViewOutlineProvider}.</li>
 <li>Затем переопределите метод {@link android.view.ViewOutlineProvider#getOutline getOutline()}.</li>
-<li>Наконец, назначьте поставщика контуров для своего представления с помощью метода {@link android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
+<li>Наконец, назначьте источник контуров для своего представления с помощью метода {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
 </ol>
 
-<p>Можно создавать овальные и прямоугольные контуры со скругленными углами, используя для этого методы класса {@link android.graphics.Outline}. Поставщик контуров по умолчанию получает контуры из фона представления. Чтобы представление не отбрасывало тень, задайте для поставщика контуров значение <code>null</code>.</p>
+<p>Можно создавать овальные и прямоугольные контуры со скругленными углами, используя для этого методы класса 
+{@link android.graphics.Outline}. Стандартный источник контуров получает контуры из фона представления.
+ Чтобы представление не отбрасывало тень, задайте для источника контуров значение <code>null</code>.
+</p>
 
 
 <h2 id="Clip">Обрезка представления</h2>
 
-<p>С помощью обрезки представлений можно с легкостью изменять их форму. Представление можно обрезать для обеспечения единообразия элементов дизайна. Также можно изменить форму представления в ответ на действия пользователя. С помощью метода {@link android.view.View#setClipToOutline View.setClipToOutline()} или атрибута <code>android:clipToOutline</code> представление можно обрезать по его контуру. Обрезать можно только прямоугольники, круги и скругленные прямоугольники, как определено в методе {@link android.graphics.Outline#canClip Outline.canClip()}.</p>
+<p>С помощью обрезки представлений можно с легкостью изменять их форму. Представление можно обрезать для обеспечения единообразия элементов дизайна.
+Также можно изменить форму представления в ответ на действия пользователя.
+С помощью метода {@link android.view.View#setClipToOutline
+View.setClipToOutline()} или атрибута <code>android:clipToOutline</code> представление можно обрезать по его контуру. Обрезать
+можно только прямоугольники, круги и скругленные прямоугольники, как определено в методе
+{@link android.graphics.Outline#canClip Outline.canClip()}.</p>
 
-<p>Чтобы обрезать представление по форме элемента дизайна, установите элемент дизайна в качестве фона представления (как показано выше) и вызовите метод {@link android.view.View#setClipToOutline View.setClipToOutline()}.</p>
+<p>Чтобы обрезать представление по форме элемента дизайна, установите этот элемент в качестве фона представления
+(как показано выше) и вызовите метод {@link android.view.View#setClipToOutline View.setClipToOutline()}
+.</p>
 
-<p>Обрезка представления – довольно ресурсоемкая операция, поэтому не анимируйте форму, которую вы используете для обрезки представления. Для достижения этого эффекта используйте анимацию <a href="{@docRoot}training/material/animations.html#Reveal">эффекта появления</a>.</p> 
\ No newline at end of file
+<p>Обрезка представления — довольно ресурсоемкая операция, поэтому не анимируйте форму, которую вы используете для обрезки представления.
+ Для достижения требуемого эффекта используйте анимацию <a href="{@docRoot}training/material/animations.html#Reveal">эффекта появления</a>.</p>
diff --git a/docs/html-intl/intl/ru/training/material/theme.jd b/docs/html-intl/intl/ru/training/material/theme.jd
index 6b92987..320f308 100644
--- a/docs/html-intl/intl/ru/training/material/theme.jd
+++ b/docs/html-intl/intl/ru/training/material/theme.jd
@@ -27,9 +27,12 @@
   <li>анимация переходов между операциями.</li>
 </ul>
 
-<p>Внешний вид темы Material Design можно настроить с учетом фирменного стиля, воспользовавшись для этого цветовой палитрой. Можно изменить оттенок строки действий и строки состояния, используя атрибуты темы, как показано на <a href="#fig3">рисунке 3</a>.</p>
+<p>Внешний вид темы Material Design можно настроить с учетом фирменного стиля, воспользовавшись для этого цветовой палитрой.
+ Можно изменить оттенок строки действий и строки состояния, используя атрибуты темы, как показано на <a href="#fig3">рисунке 3</a>.
+</p>
 
-<p>Системные виджеты отличаются новым дизайном и анимацией для реакции на касание. В своем приложении вы можете настроить цветовую палитру, анимацию реакции на касание и переходы между операциями.</p>
+<p>Системные виджеты отличаются новым дизайном и анимацией отклика на касание. В своем приложении вы можете настроить цветовую палитру, анимацию отклика на касание и переходы между операциями.
+</p>
 
 <p>Тема Material Design задается следующими параметрами:</p>
 
@@ -39,7 +42,8 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code>.</li>
 </ul>
 
-<p>Список доступных стилей Material Design представлен в справке по API для {@link android.R.style R.style}.</p>
+<p>Список доступных стилей Material Design см. в справке по API для 
+{@link android.R.style R.style}.</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
@@ -59,13 +63,18 @@
 </div>
 
 <p class="note">
-<strong>Примечание.</strong> Тема Material Design доступна только в Android 5.0 (уровень API 21) и более поздних версий. Во <a href="{@docRoot}tools/support-library/features.html#v7">вспомогательных библиотеках v7</a> представлены темы со стилями Material Design для некоторых виджетов. Эти библиотеки также обеспечивают поддержку настройки цветовой палитры. Дополнительные сведения представлены в разделе <a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>.
+<strong>Примечание.</strong> Темы Material Design доступны только в ОС Android 5.0 (уровень API 21) и более поздних версий.
+ Во <a href="{@docRoot}tools/support-library/features.html#v7">вспомогательных библиотеках v7</a>
+ представлены темы со стилями Material Design для некоторых виджетов. Эти библиотеки также обеспечивают поддержку настройки цветовой палитры.
+ Дополнительные сведения см. на странице 
+<a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>.
 </p>
 
 
 <h2 id="ColorPalette">Настройка цветовой палитры</h2>
 
-<p style="margin-bottom:30px">Для настройки основных цветов в соответствии с фирменным стилем определите настраиваемые цвета с помощью атрибутов темы при наследовании от темы Material Design:</p>
+<p style="margin-bottom:30px">Для настройки основных цветов в соответствии с фирменным стилем определите настраиваемые цвета с помощью атрибутов темы при наследовании от темы Material Design:
+</p>
 
 <pre>
 &lt;resources>
@@ -91,17 +100,32 @@
 
 <h2 id="StatusBar">Настройка строки состояния</h2>
 
-<p>В теме Material Design можно с легкостью настроить строку состояния, указав нужный цвет в соответствии с фирменным стилем и задав достаточную контрастность для отображения белых значков состояния. Чтобы задать настраиваемый цвет для строки состояния, воспользуйтесь атрибутом <code>android:statusBarColor</code> при наследовании темы Material Design. По умолчанию параметр <code>android:statusBarColor</code> наследует значение <code>android:colorPrimaryDark</code>.</p>
+<p>В теме Material Design можно с легкостью настроить строку состояния, указав нужный цвет в соответствии с фирменным стилем и задав достаточную контрастность для отображения белых значков состояния.
+ Чтобы установить настраиваемый цвет для строки состояния, воспользуйтесь атрибутом <code>android:statusBarColor</code> при наследовании темы Material Design.
 
-<p>Кроме того, можно самостоятельно разместить элемент за строкой состояния. Например, если требуется наложить прозрачную строку состояния поверх фотографии, применив еле уловимый темный градиент, чтобы были видны белые значки состояния. Для этого задайте для атрибута <code>android:statusBarColor</code> значение <code>&#64;android:color/transparent</code> и настройте флаги окна требуемым образом. Также можно воспользоваться методом {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} для применения анимации или эффекта постепенного исчезновения.</p>
-
-<p class="note">
-<strong>Примечание.</strong> Строка состояния почти всегда должна иметь четкую границу, отделяющую ее от основной панели инструментов, за исключением случаев, когда за этими панелями от края и до края экрана отображается большое количество изображений или мультимедийный контент, а также в случае, когда вы используете градиент, чтобы обеспечить отображение значков.
+ По умолчанию параметр <code>android:statusBarColor</code> наследует значение <code>android:colorPrimaryDark</code>.
 </p>
 
-<p>При настройке панели навигации и строки состояния сделайте их прозрачными либо измените только строку состояния. Во всех остальных случаях панель навигации должна оставаться черной.</p>
+<p>Кроме того, можно самостоятельно разместить элемент за строкой состояния. Например, если требуется наложить прозрачную строку состояния поверх фотографии, применив еле уловимый темный градиент, чтобы были видны белые значки состояния.
+
+ Для этого задайте для атрибута <code>android:statusBarColor</code> значение 
+<code>&#64;android:color/transparent</code> и настройте флаги окна требуемым образом. Также можно воспользоваться
+методом {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} для применения анимации или эффекта постепенного исчезания.
+</p>
+
+<p class="note">
+<strong>Примечание.</strong> Строка состояния почти всегда должна иметь четкую границу, отделяющую ее от основной панели инструментов, за исключением случаев, когда за этими панелями от края и до края экрана отображается большое количество изображений или мультимедийный контент, а также в случае, когда вы используете градиент, чтобы обеспечить видимость значков.
+
+
+</p>
+
+<p>При настройке панели навигации и строки состояния сделайте их прозрачными либо измените только строку состояния.
+ Во всех остальных случаях панель навигации должна оставаться черной.</p>
 
 
 <h2 id="Inheritance">Отдельные представления темы</h3>
 
-<p>Элементы в определениях макета XML могут задавать атрибут <code>android:theme</code>, который ссылается на ресурс темы. Этот атрибут изменяет тему для элемента и любых дочерних элементов, что удобно для изменения цветовых палитр темы в определенной области интерфейса.</p> 
\ No newline at end of file
+<p>Элементы в определениях макета XML могут задавать атрибут <code>android:theme</code>, который ссылается на ресурс темы.
+ Этот атрибут изменяет тему для элемента и любых дочерних элементов,
+что можно использовать для изменения цветовых палитр темы в определенной области интерфейса.
+</p>
diff --git a/docs/html-intl/intl/vi/design/get-started/principles.jd b/docs/html-intl/intl/vi/design/get-started/principles.jd
new file mode 100644
index 0000000..61b2c77
--- /dev/null
+++ b/docs/html-intl/intl/vi/design/get-started/principles.jd
@@ -0,0 +1,307 @@
+page.title=Nguyên tắc Thiết kế Android
+@jd:body
+
+<p>Những nguyên tắc thiết kế này được xây dựng bởi và dành cho
+Nhóm Trải nghiệm Người dùng Android để đảm bảo lợi ích tốt nhất cho người dùng.
+Đối với nhà phát triển và nhà thiết kế Android, chúng tiếp tục
+nhấn mạnh những nguyên tắc chỉ đạo thiết kế chi tiết hơn dành cho các loại
+thiết bị khác nhau.</p>
+
+<p>
+Hãy cân nhắc những nguyên tắc này khi áp dụng sự sáng tạo
+và tư duy thiết kế của mình. Thay đổi có mục đích.
+</p>
+
+<h2 id="enchant-me">Thu hút tôi</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="delight-me">Khiến tôi xao xuyến vì ngạc nhiên</h4>
+<p>Cảnh vật đẹp, hoạt hình được bố trí cẩn thận hay hiệu ứng âm thanh đúng lúc khiến
+trải nghiệm càng thêm phần thích thú. Hiệu ứng tinh tế góp phần đem lại cảm giác nhẹ nhàng nhưng
+mạnh mẽ trong tầm tay.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_delight.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="real-objects-more-fun">Các đối tượng đời thật trông thú vị hơn các nút bấm và menu</h4>
+<p>Để người dùng trực tiếp chạm và thao tác các đối tượng trong ứng dụng của bạn. Làm như vậy vừa giảm nỗ lực nhận thức
+cần thiết để thực hiện một tác vụ, vừa đem lại sự thỏa mãn về cảm xúc.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_real_objects.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="make-it-mine">Hãy để tôi biến nó thành của mình</h4>
+<p>Người dùng thích cảm giác tiếp xúc cá nhân bởi nó giúp họ cảm thấy rất tự nhiên và nắm quyền kiểm soát. Cung cấp
+thiết lập mặc định tuyệt đẹp, dễ cảm nhận, nhưng cũng phải xét đến những tùy chỉnh thú vị, có thể lựa chọn để không cản trở
+nhiệm vụ chính yếu.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_make_it_mine.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="get-to-know-me">Hiểu rõ về tôi</h4>
+<p>Tìm hiểu sở thích của người dùng qua thời gian. Thay vì bảo họ chọn
+đi chọn lại cùng một thứ, hãy bố trí để những lựa chọn trước đó dễ dàng trong tầm với.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_get_to_know_me.png">
+
+  </div>
+</div>
+
+<h2 id="simplify-my-life">Đơn giản hóa cuộc sống của tôi</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="keep-it-brief">Hãy ngắn gọn</h4>
+<p>Sử dụng những cụm từ ngắn với từ ngữ đơn giản. Người dùng thường hay bỏ qua những câu dài dòng.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_keep_it_brief.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="pictures-faster-than-words">Hình ảnh đến nhanh hơn câu chữ</h4>
+<p>Hãy nghĩ đến việc dùng hình ảnh để giải thích ý tưởng. Chúng dễ thu hút sự chú ý của người dùng và có thể hiệu quả hơn nhiều
+so với từ ngữ.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_pictures.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="decide-for-me">Quyết định hộ tôi nhưng phải để tôi “chốt hạ”</h4>
+<p>Hãy đưa ra phán đoán tốt nhất và hành động thay vì hỏi trước. Quá nhiều lựa chọn và quyết định khiến người dùng
+không vui. Phòng trường hợp bạn sai, hãy cho 'hoàn tác'.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_decide_for_me.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="only-show-when-i-need-it">Chỉ hiện những thứ tôi cần khi tôi cần đến</h4>
+<p>Người dùng sẽ bị quá tải khi họ thấy quá nhiều thứ cùng lúc. Hãy chia các tác vụ và thông tin thành những đoạn nhỏ,
+dễ nắm bắt. Ẩn những tùy chọn không thiết yếu vào thời điểm đó và nhắc người dùng khi đi qua chúng.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_information_when_need_it.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="always-know-where-i-am">Tôi cần luôn biết mình đang ở đâu</h4>
+<p>Khiến người khác tự tin rằng họ biết mình đang ở đâu. Khiến những địa điểm trong ứng dụng của bạn trông khác biệt
+và sử dụng chuyển tiếp để thể hiện mối quan hệ giữa các màn hình. Cung cấp phản hồi về các tác vụ đang diễn ra.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_navigation.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="never-lose-my-stuff">Không bao giờ đánh mất những thứ của tôi</h4>
+<p>Lưu những thứ người dùng mất thời gian để tạo và cho phép họ truy cập chúng từ mọi nơi. Nhớ các cài đặt,
+thao tác chạm cá nhân và nội dung khởi tạo giữa các điện thoại, máy tính bảng và máy tính. Điều đó sẽ khiến việc nâng cấp
+trở nên dễ dàng nhất trên đời.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="looks-same-should-act-same">Nếu bề ngoài giống nhau thì hành động cũng phải như nhau</h4>
+<p>Giúp người dùng phân biệt sự khác nhau về chức năng bằng cách khiến bề ngoài trông khác biệt thay vì chỉ khác một chút.
+Tránh những chế độ trông giống nhau nhưng lại phản hồi khác nhau với cùng nội dung đầu vào.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_looks_same.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="interrupt-only-if-important">Chỉ làm tôi gián đoạn nếu thật sự quan trọng</h4>
+<p>Như một trợ lý cá nhân đúng nghĩa, hãy tránh làm người dùng mất thời gian vào thứ không quan trọng. Người dùng thường muốn
+tập trung và trừ trường hợp rất quan trọng và nhạy cảm về thời gian, nếu không việc gián đoạn có thể khiến họ khó chịu.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_important_interruption.png">
+
+  </div>
+</div>
+
+<h2 id="make-me-amazing">Làm tôi ấn tượng</h2>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="give-me-tricks">Cho tôi xem những trò có thể áp dụng ở mọi nơi</h4>
+<p>Người dùng thấy thích thú khi họ tự khám phá mọi thứ. Thiết kế ứng dụng của bạn dễ học hỏi hơn nhờ
+tận dụng các kiểu mẫu trực quan và trí nhớ có điều kiện từ các ứng dụng Android khác. Ví dụ, cử chỉ trượt nhanh
+có thể là một lối tắt điều hướng hay.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_tricks.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="its-not-my-fault">Không phải lỗi của tôi</h4>
+<p>Nhẹ nhàng trong cách nhắc người dùng sửa lỗi. Họ luôn muốn cảm thấy thông minh khi dùng ứng dụng
+của bạn. Nếu có gì đó không đúng, hãy đưa ra chỉ dẫn khắc phục rõ ràng nhưng bỏ qua những chi tiết kỹ thuật.
+Nếu bạn có thể khắc phục mà không làm phiền họ thì càng tuyệt.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_error.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="sprinkle-encouragement">Khơi gợi sự khuyến khích</h4>
+<p>Chia các nhiệm vụ phức tạp thành nhiều bước nhỏ hơn và dễ hoàn thành. Phản hồi hành động,
+kể cả khi đó chỉ là một vầng sáng nhỏ.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="do-heavy-lifting-for-me">Làm giúp tôi những chuyện nặng nhọc</h4>
+<p>Khiến người mới cảm thấy mình như chuyên gia bằng cách cho phép họ làm những việc mà họ chưa từng nghĩ mình có thể làm được. Ví
+dụ, các lối tắt kết hợp nhiều hiệu ứng ảnh chụp có thể khiến một bức ảnh nghiệp dư trở nên đáng kinh ngạc
+chỉ sau vài bước.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_heavy_lifting.png">
+
+  </div>
+</div>
+
+<div class="vspace size-2">&nbsp;</div>
+
+<div class="cols">
+  <div class="col-7">
+
+<h4 id="make-important-things-fast">Nhanh chóng đến phần quan trọng</h4>
+<p>Không phải hành động nào cũng như nhau. Quyết định xem điều gì là quan trọng nhất trong ứng dụng của bạn và khiến nó dễ tìm thấy và
+nhanh chóng được sử dụng, ví dụ như nút chụp trong camera hoặc nút tạm dừng trong một trình phát nhạc.</p>
+
+  </div>
+  <div class="col-6">
+
+    <img src="{@docRoot}design/media/principles_make_important_fast.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/vi/design/material/index.jd b/docs/html-intl/intl/vi/design/material/index.jd
new file mode 100644
index 0000000..d72636f
--- /dev/null
+++ b/docs/html-intl/intl/vi/design/material/index.jd
@@ -0,0 +1,186 @@
+page.title=Material Design cho Android
+page.tags=Material,design
+page.type=thiết kế
+page.image=images/cards/design-material-for-android_2x.jpg
+
+@jd:body
+
+<!-- developer docs box -->
+<a class="notice-developers right" href="{@docRoot}training/material/index.html">
+  <div>
+    <h3>Tài liệu cho Nhà phát triển</h3>
+    <p>Tạo ứng dụng với Material Design</p>
+  </div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=p4gmvHyuZzw">
+<div>
+    <h3>Video</h3>
+    <p>Giới thiệu Material Design</p>
+</div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=YaG_ljfzeUw">
+<div>
+    <h3>Video</h3>
+    <p>Giấy và Mực: Những vật liệu quan trọng</p>
+</div>
+</a>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=XOcCOBe8PTc">
+<div>
+    <h3>Video</h3>
+    <p>Material Design trong Google I/O App</p>
+</div>
+</a>
+
+
+
+<p itemprop="description">Material design là một hướng dẫn toàn diện về thiết kế
+trực quan, chuyển động và tương tác giữa nhiều nền tảng và thiết bị. Hiện nay Android có hỗ trợ
+những ứng dụng theo phong cách material design. Để sử dụng material design trong ứng dụng Androi của mình, hãy làm theo hướng dẫn nêu
+trong <a href="http://www.google.com/design/spec">đặc tả material design</a> và sử dụng
+những thành phần và tính năng mới sẵn có trong Android 5.0 (API mức 21) trở lên.</p>
+
+<p>Android cung cấp những phần tử sau để bạn dựng ứng dụng theo phong cách material design:</p>
+
+<ul>
+  <li>Một giao diện mới</li>
+  <li>Widget mới cho các dạng xem phức tạp</li>
+  <li>API mới cho đổ bóng và hoạt hình tùy chỉnh</li>
+</ul>
+
+<p>Để biết thêm thông tin về triển khai material design trên Android, hãy xem
+<a href="{@docRoot}training/material/index.html">Tạo ứng dụng với Material Design</a>.</p>
+
+
+<h3>Giao diện Material</h3>
+
+<p>Giao diện material mang đến một phong cách mới cho ứng dụng của bạn và các widget hệ thống, cho phép bạn đặt
+bảng màu của chúng và hoạt hình mặc định cho phản hồi chạm và chuyển tiếp hoạt động.</p>
+
+<!-- two columns -->
+<div style="width:700px;margin-top:25px;margin-bottom:20px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238" />
+  <div style="width:140px;margin:0 auto">
+  <p style="margin-top:8px">Giao diện material tối</p>
+  </div>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238" />
+  <div style="width:140px;margin:0 auto">
+  <p style="margin-top:8px">Giao diện material sáng</p>
+  </div>
+</div>
+<br style="clear:left"/>
+</div>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/theme.html">Sử dụng Giao diện Material
+</a>.</p>
+
+
+<h3>Danh sách và Thẻ</h3>
+
+<p>Android cung cấp hai loại widget mới để hiển thị thẻ và danh sách bằng phong cách
+và hoạt hình material design:</p>
+
+<!-- two columns -->
+<div style="width:700px;margin-top:25px;margin-bottom:20px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" />
+  <p>Widget <code>RecyclerView</code> mới là một phiên bản có thể ghép nối hơn của <code>ListView</code>
+  có hỗ trợ nhiều kiểu bố trí khác nhau và cải thiện hiệu năng.</p>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
+  <p>Widget <code>CardView</code> mới cho phép bạn hiển thị những mẩu thông tin quan trọng bên trong
+  thẻ với diện mạo và cảm nhận nhất quán.</p>
+</div>
+<br style="clear:left"/>
+</div>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/lists-cards.html">Tạo Danh sách
+và Thẻ</a>.</p>
+
+
+<h3>Đổ bóng Dạng xem</h3>
+
+<p>Bên cạnh các thuộc tính X và Y, dạng xem trong Android nay có
+thêm thuộc tính Z. Thuộc tính mới này biểu diễn độ cao của một dạng xem và sẽ quyết định:</p>
+
+<ul>
+<li>Kích cỡ của đổ bóng: dạng xem có giá trị Z cao hơn sẽ đặt đổ bóng lớn hơn.</li>
+<li>Thứ tự vẽ: dạng xem có giá trị Z cao hơn sẽ xuất hiện phía trên những dạng xem khác.</li>
+</ul>
+
+<div style="width:290px;margin-left:35px;float:right">
+  <div class="framed-nexus5-port-span-5">
+  <video class="play-on-hover" autoplay>
+    <source src="{@docRoot}design/material/videos/ContactsAnim.mp4"/>
+    <source src="{@docRoot}design/videos/ContactsAnim.webm"/>
+    <source src="{@docRoot}design/videos/ContactsAnim.ogv"/>
+  </video>
+  </div>
+  <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+    <em>Để phát lại phim, nhấp vào màn hình thiết bị</em>
+  </div>
+</div>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/shadows-clipping.html">Định nghĩa
+Đổ bóng và Dạng xem Cắt hình</a>.</p>
+
+
+<h3>Hoạt hình</h3>
+
+<p>API hoạt hình mới cho phép bạn tạo hoạt hình tùy chỉnh cho phản hồi chạm trong điều khiển UI,
+thay đổi trạng thái xem và chuyển tiếp hoạt động.</p>
+
+<p>Những API này cho phép bạn:</p>
+
+<ul>
+<li style="margin-bottom:15px">
+Phản hồi lại sự kiện chạm trong dạng xem của mình bằng hoạt hình <strong>phản hồi chạm</strong>.
+</li>
+<li style="margin-bottom:15px">
+Ẩn và hiện dạng xem bằng hoạt hình <strong>hiện hình tròn</strong>.
+</li>
+<li style="margin-bottom:15px">
+Chuyển giữa các hoạt động bằng hoạt hình <strong>chuyển tiếp hoạt động</strong> tùy chỉnh.
+</li>
+<li style="margin-bottom:15px">
+Tạo hoạt hình tự nhiên hơn bằng <strong>chuyển động cong</strong>.
+</li>
+<li style="margin-bottom:15px">
+Tạo hoạt hình cho các thay đổi trong một hoặc nhiều thuộc tính dạng xem bằng hoạt hình <strong>thay đổi trạng thái dạng xem</strong>.
+</li>
+<li style="margin-bottom:15px">
+Thể hiện hoạt hình trong các <strong>nội dung vẽ được theo danh sách trạng thái</strong> giữa những thay đổi về trạng thái dạng xem.
+</li>
+</ul>
+
+<p>Hoạt hình phản hồi chạm được tích hợp vào một vài dạng xem tiêu chuẩn, ví dụ như các nút. Các API mới này
+cho phép bạn tùy biến những hoạt hình này và thêm chúng vào dạng xem tùy chỉnh của mình.</p>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/animations.html">Định nghĩa Hoạt hình
+Tùy chỉnh</a>.</p>
+
+
+<h3>Nội dung vẽ được</h3>
+
+<p>Những khả năng mới này của nội dung vẽ được sẽ giúp bạn triển khai các ứng dụng theo phong cách material design:</p>
+
+<ul>
+<li><strong>Nội dung vẽ được véc-tơ</strong> có thể thay đổi kích cỡ mà không làm mất độ sắc nét và hoàn hảo
+cho các biểu tượng trong ứng dụng đơn sắc.</li>
+<li><strong>Nhuộm nội dung vẽ được</strong> cho phép bạn định nghĩa ảnh bitmap thành mặt nạ alpha và nhuộm
+màu cho chúng theo thời gian chạy.</li>
+<li><strong>Trích xuất màu</strong> cho phép bạn tự động trích xuất màu nổi bật từ
+hình ảnh bitmap.</li>
+</ul>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/drawables.html">Làm việc với
+Nội dung Vẽ được</a>.</p>
diff --git a/docs/html-intl/intl/vi/design/patterns/compatibility.jd b/docs/html-intl/intl/vi/design/patterns/compatibility.jd
new file mode 100644
index 0000000..f1a610b
--- /dev/null
+++ b/docs/html-intl/intl/vi/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=Tương thích Ngược
+page.tags="support"
+page.metaDescription=Lưu ý về cách Android 4.x thích ứng với UI được thiết kế cho các phần cứng và phiên bản HĐH cũ hơn.
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>Tài liệu cho Nhà phát triển</h3>
+    <p>Hỗ trợ nhiều Thiết bị khác nhau</p>
+  </div>
+</a>
+
+<p>Những thay đổi đáng kể trong Android 3.0 gồm có:</p>
+<ul>
+<li>Bỏ phím cứng điều hướng (Quay lại, Menu, Tìm kiếm, Trang chủ̉), đổi thành xử lý điều hướng
+  thông qua các nút điều khiển ảo (Quay lại, Trang chủ, Gần đây).</li>
+<li>Mẫu hình thiết thực để sử dụng menu trong thanh hành động.</li>
+</ul>
+<p>Android 4.0 mang những thay đổi cho máy tính bảng sang nền tảng điện thoại.</p>
+
+<h2 id="older-hardware">Thích nghi Android 4.0 với Phần cứng và Ứng dụng cũ hơn</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Điện thoại có các điều khiển điều hướng ảo</h4>
+<p>Ứng dụng Android được viết cho Android 3.0 trở lên sẽ hiển thị các hành động trong thanh hành động. Những hành động không vừa
+với thanh hành động hoặc không đủ quan trọng để được hiển thị ở mức trên cùng sẽ xuất hiện trong
+vùng tràn hành động.</p>
+<p>Người dùng truy cập vùng tràn hành động bằng cách chạm vào nó trong thanh hành động.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Điện thoại có phím điều hướng vật lý</h4>
+<p>Điện thoại Android có phím cứng điều hướng truyền thống không hiển thị thanh điều hướng ảo ở
+phía dưới màn hình. Thay vào đó, có thể sử dụng vùng tràn hành động từ phím cứng menu. Kết quả là
+cửa sổ hành động bật lên có cùng kiểu như trong ví dụ trước, nhưng được hiển thị ở phía dưới màn hình.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>Ứng dụng kế thừa trên điện thoại có điều khiển điều hướng ảo</h4>
+<p>Khi bạn chạy một ứng dụng được dựng cho Android 2.3 hoặc cũ hơn trên một điện thoại có điều khiển điều hướng
+ảo, điều khiển vùng tràn hành động sẽ xuất hiện phía bên phải của thanh điều hướng ảo. Bạn có thể
+chạm vào điều khiển này để hiển thị hành động của ứng dụng theo kiểu dáng menu Android truyền thống.</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/vi/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/vi/design/patterns/confirming-acknowledging.jd
new file mode 100644
index 0000000..e0253c3
--- /dev/null
+++ b/docs/html-intl/intl/vi/design/patterns/confirming-acknowledging.jd
@@ -0,0 +1,70 @@
+page.title=Xác nhận &amp; Báo nhận
+page.tags=dialog,toast,notification
+@jd:body
+
+<p>Trong một số tình huống, khi người dùng gọi ra một hành động trong ứng dụng của bạn, bạn nên <em>xác nhận</em> hoặc <em>báo nhận</em> hành động đó thông qua văn bản.</p>
+
+<div class="cols">
+  <div class="col-6">
+    <img src="{@docRoot}design/media/confirm_ack_confirming.png">
+    <p><strong>Xác nhận</strong> là việc yêu cầu người dùng xác minh rằng họ thực sự muốn tiếp tục hành động mà họ vừa gọi ra. Trong một số trường hợp, xác nhận được đưa ra cùng với một cảnh báo hoặc thông tin trọng yếu liên quan tới hành động mà họ cần cân nhắc.</p>
+  </div>
+  <div class="col-6">
+    <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
+    <p><strong>Báo nhận</strong> là việc hiển thị văn bản để người dùng biết rằng hành động họ vừa gọi ra đã được hoàn tất. Điều này loại bỏ sự không chắc chắn về các thao tác không biểu thị mà hệ thống đang thực hiện. Trong một số trường hợp, báo nhận được đưa ra cùng với một tùy chọn hoàn tác hành động đó.</p>
+  </div>
+</div>
+
+<p>Giao tiếp với người dùng theo những cách này có thể giúp gỡ bỏ sự không chắc chắn về những thứ đã hoặc sẽ xảy ra. Xác nhận hoặc báo nhận cũng có thể ngăn người dùng mắc sai lầm mà họ có thể hối tiếc.</p>
+
+<h2>Khi nào thì xác nhận hoặc báo nhận hành động của người dùng</h2>
+<p>Không phải hành động nào cũng chắc chắn có xác nhận hay báo nhận. Hãy sử dụng lưu đồ sau làm hướng dẫn đưa ra quyết định thiết kế của bạn.</p>
+<img src="{@docRoot}design/media/confirm_ack_flowchart.png">
+
+<h2>Xác nhận</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Ví dụ: Google Play Books</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
+    <p>Trong ví dụ này, người dùng đã yêu cầu xóa một cuốn sách khỏi thư viện Google Play của mình. Một <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">cảnh báo</a> hiện ra để xác nhận hành động này bởi quan trọng là phải hiểu rằng cuốn sách sẽ không còn khả dụng trên bất cứ thiết bị nào nữa.</p>
+    <p>Khi tạo một hộp thoại xác nhận, hãy đặt tiêu đề có ý nghĩa bằng cách thể hiện hành động được yêu cầu đó.</p>
+  </div>
+  <div class="col-7">
+    <h4>Ví dụ: Android Beam</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
+    <p>Không nhất thiết phải đưa ra xác nhận trong cảnh báo có hai nút. Sau khi khởi chạy Android Beam, người dùng được nhắc chạm vào nội dung muốn chia sẻ (trong ví dụ này là một ảnh chụp). Nếu quyết định không tiếp tục, họ chỉ cần đưa điện thoại của mình ra xa.</p>
+  </div>
+</div>
+
+<h2>Báo nhận</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Ví dụ: Bỏ đi bản thảo Gmail đã lưu</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
+    <p>Trong ví dụ này, nếu người dùng điều hướng quay lại hoặc lên trên từ màn hình soạn thảo Gmail thì có thể sẽ xảy ra việc ngoài ý muốn: bản thảo hiện tại được tự động lưu. Báo nhận dưới hình thức cửa sổ sẽ khiến bản thảo đó biểu hiện ra ngoài. Cửa sổ này sẽ mờ dần sau vài giây.</p>
+    <p>Ở đây việc hoàn tác sẽ không thích hợp bởi việc lưu là do ứng dụng khởi chạy chứ không phải người dùng. Sẽ dễ dàng và nhanh chóng tiếp tục soạn thư bằng cách điều hướng tới danh sách bản thảo.</p>
+
+  </div>
+  <div class="col-6">
+    <h4>Ví dụ: Đã xóa hội thoại Gmail</h4>
+    <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
+    <p>Sau khi người dùng xóa một hội thoại khỏi danh sách trong Gmail, báo nhận sẽ xuất hiện cùng tùy chọn hoàn tác. Báo nhận vẫn còn đó tới khi người dùng thực hiện một hành động không liên quan, ví dụ như cuộn danh sách.</p>
+  </div>
+</div>
+
+<h2>Không xác nhận hoặc báo nhận</h2>
+<div class="cols">
+  <div class="col-6">
+    <h4>Ví dụ: hành động +1</h4>
+    <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
+    <p><strong>Xác nhận là không cần thiết</strong>. Nếu người dùng vô tình +1 thì cũng không sao. Họ chỉ cần chạm lại vào nút này để hoàn tác hành động đó.</p>
+    <p><strong>Báo nhận là không cần thiết</strong>. Người dùng sẽ thấy nút +1 bật lại và chuyển màu đỏ. Đó là một dấu hiệu rất rõ ràng.</p>
+  </div>
+  <div class="col-7">
+    <h4>Ví dụ: Xóa một ứng dụng khỏi Màn hình Trang chủ</h4>
+    <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
+    <p><strong>Xác nhận là không cần thiết</strong>. Đây là một hành động có chủ ý: người dùng phải kéo và thả một mục lên một mụ̣c tiêu tương đối lớn và tách biệt. Vì thế, rất khó có khả năng xảy ra trường hợp vô ý. Nhưng nếu người dùng hối hận về quyết định, họ chỉ mất vài giây để đưa trở lại như cũ.</p>
+    <p><strong>Báo nhận là không cần thiết</strong>. Người dùng sẽ biết ứng dụng đã biến mất khỏi Màn hình Trang chủ bởi họ khiến nó biến mất bằng cách kéo nó đi.</p>
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/vi/design/patterns/navigation.jd b/docs/html-intl/intl/vi/design/patterns/navigation.jd
new file mode 100644
index 0000000..98490db
--- /dev/null
+++ b/docs/html-intl/intl/vi/design/patterns/navigation.jd
@@ -0,0 +1,213 @@
+page.title=Điều hướng bằng Quay lại và Lên trên
+page.tags="navigation","activity","task","up navigation","back navigation"
+page.image=/design/media/navigation_between_siblings_gmail.png
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
+  <div>
+    <h3>Tài liệu cho Nhà phát triển</h3>
+    <p>Triển khai Điều hướng Hiệu quả</p>
+  </div>
+</a>
+
+<p itemprop="description">Điều hướng nhất quán là một thành phần thiết yếu trong trải nghiệm người dùng nói chung. Một vài điều nhỏ bé lại khiến
+người dùng khó chịu hơn so với điều hướng cơ bản chính là hành xử không nhất quán và không như kỳ vọng. Android 3.0
+đã giới thiệu những thay đổi đáng kể về hành vi điều hướng toàn cục. Tuân thủ kỹ lưỡng các hướng dẫn
+về Quay lại và Lên trên sẽ giúp việc điều hướng trên ứng dụng của bạn trở nên dễ đoán và đáng tin cậy cho người dùng của bạn.</p>
+<p>Phiên bản Android 2.3 và mới hơn dựa vào nút <em>Quay lại</em> của hệ thống để hỗ trợ điều hướng trong một
+ứng dụng. Với việc giới thiệu thanh hành động trong Android 3.0, một cơ chế điều hướng thứ hai đã xuất hiện:
+nút <em>Lên trên</em>, bao gồm biểu tượng ứng dụng và dấu nháy lùi trái.</p>
+
+<img src="{@docRoot}design/media/navigation_with_back_and_up.png">
+
+<h2 id="up-vs-back">Lên trên so với Quay lại</h2>
+
+<p>Nút Lên trên được sử dụng để điều hướng bên trong một ứng dụng dựa trên mối quan hệ thứ bậc
+giữa các màn hình. Ví dụ, nếu màn hình A hiển thị một danh sách các mục và việc chọn một mục sẽ dẫn đến
+màn hình B (trình bày chi tiết hơn về mục đó), khi đó B sẽ đưa ra nút Lên trên để
+quay lại màn hình A.</p>
+<p>Nếu một màn hình đang ở trên cùng trong một ứng dụng (cụ thể là trang chủ của ứng dụng), thì nó sẽ xuất hiện nút
+Lên trên.</p>
+
+<p>Nút Quay lại của hệ thống được sử dụng để điều hướng ngược theo thứ tự thời gian, qua lịch sử các màn hình
+mà người dùng mới thao tác qua. Nó thường được dựa trên mối quan hệ thời gian
+giữa các màn hình thay vì thứ bậc của ứng dụng.</p>
+
+<p>Khi màn hình xem trước đó cũng đồng thời là màn hình mẹ theo thứ bậc của màn hình hiện tại, nhấn nút
+Quay lại sẽ có cùng kết quả như khi nhấn nút Lên trên&mdash;điều này thường hay
+xảy ra. Tuy nhiên, không như nút Lên trên đảm bảo người dùng vẫn còn trong ứng dụng của bạn,
+nút Quay lại có thể trả người dùng về màn hình Trang chủ hoặc thậm chí sang một ứng dụng khác.</p>
+
+<img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
+
+<p>Nút Quay lại cũng hỗ trợ một vài hành vi không trực tiếp gắn với điều hướng giữa các màn hình:
+</p>
+<ul>
+<li>Bỏ qua cửa sổ nổi (hộp thoại, cửa sổ bật lên)</li>
+<li>Bỏ qua thanh hành động ngữ cảnh và bỏ tô sáng khỏi mục đã chọn</li>
+<li>Ẩn bàn phím trên màn hình (IME)</li>
+</ul>
+<h2 id="within-app">Điều hướng trong Ứng dụng của Bạn</h2>
+
+<h4>Điều hướng tới màn hình với nhiều điểm bắt đầu</h4>
+<p>Đôi khi một màn hình không chỉ có một vị trí cố định trong thứ bậc của ứng dụng và bạn có thể truy cập nó
+từ nhiều điểm bắt đầu&mdash;ví dụ như màn hình cài đặt có thể được truy cập từ bất cứ màn hình
+nào khác trong ứng dụng của bạn. Trong trường hợp này, nút Lên trên sẽ chọn quay lại màn hình đã chuyển đến, có tác dụng
+giống như Quay lại.</p>
+<h4>Thay đổi dạng xem bên trong một màn hình</h4>
+<p>Thay đổi tùy chọn dạng xem cho một màn hình không làm thay đổi hành vi Lên trên hay Quay lại: màn hình vẫn
+ở cùng một chỗ trong thứ bậc của ứng dụng và không tạo thêm lịch sử điều hướng mới nào.</p>
+<p>Ví dụ về thay đổi dạng xem gồm:</p>
+<ul>
+<li>Chuyển dạng xem bằng tab và/hoặc trượt nhanh trái phải</li>
+<li>Chuyển dạng xem bằng danh sách thả xuống (còn gọi là tab thu gọn)</li>
+<li>Lọc một danh sách</li>
+<li>Sắp xếp một danh sách</li>
+<li>Thay đổi đặc tính hiển thị (như thu phóng)</li>
+</ul>
+<h4>Điều hướng giữa các màn hình anh em</h4>
+<p>Khi ứng dụng của bạn hỗ trợ điều hướng từ một danh mục tới một dạng xem chi tiết của một trong những mục đó, thường
+nó ưu tiên hỗ trợ điều hướng theo hướng từ mục đó tới một mục khác ở phía trước hoặc
+phía sau nó trong danh sách. Ví dụ, trong Gmail, bạn có thể dễ dàng trượt nhanh sang trái hoặc phải từ một hội thoại
+để xem hội thoại mới hơn hoặc cũ hơn trong cùng Hộp thư đến. Như khi thay đổi dạng xem trong một màn hình,
+điều hướng đó không làm thay đổi hành vi Lên trên hoặc Quay lại.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
+
+<p>Tuy nhiên, có một trường hợp ngoại lệ đáng chú ý đó là khi duyệt giữa các dạng xem chi tiết có liên quan, không
+ràng buộc với nhau bởi danh sách chuyển đến&mdash;ví dụ như khi duyệt trong Play Store giữa các ứng dụng từ
+cùng một nhà phát triển hoặc giữa các album bởi cùng một nghệ sĩ. Trong các trường hợp này, truy cập vào từng liên kết không tạo ra
+lịch sử, khiến nút Quay lại đi qua từng màn hình được xem trước đó. Thao tác Lên trên sẽ tiếp tục
+bỏ qua những màn hình liên quan này và điều hướng tới màn hình bộ chứa được xem gần đây nhất.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
+
+<p>Bạn có khả năng thiết kế để hành vi Lên trên thông minh hơn dựa trên hiểu biết của mình về dạng xem
+chi tiết. Suy rộng từ ví dụ về Play Store bên trên, tưởng tượng người dùng đã điều hướng từ
+Cuốn sách xem gần nhất tới chi tiết chuyển thể Phim. Trong trường hợp đó, thao tác Lên trên có thể trả về một bộ chứa
+(Phim) mà trước đó người dùng chưa điều hướng qua.</p>
+
+<img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
+
+<h2 id="into-your-app">Điều hướng tới Ứng dụng của Bạn thông qua Widget và Thông báo trên Màn hình Trang chủ</h2>
+
+<p>Bạn có thể sử dụng widget hoặc thông báo trên màn hình Trang chủ để giúp người dùng của mình điều hướng trực tiếp tới màn hình
+nằm sâu trong thứ bậc ứng dụng của bạn. Ví dụ, widget Hộp thư đến của Gmail và thông báo thư mới có thể
+vừa bỏ qua màn hình Hộp thư đến, vừa đưa người dùng trực tiếp tới dạng xem hội thoại.</p>
+
+<p>Trong cả hai trường hợp này, hãy điều khiển nút Lên trên như sau:</p>
+
+<ul>
+<li><em>Nếu màn hình đích thường được truy cập từ một màn hình cụ thể trong ứng dụng
+của bạn</em>, thao tác Lên trên sẽ điều hướng tới màn hình đó.</li>
+<li><em>Nếu không</em>, thao tác Lên trên sẽ điều hướng tới màn hình trên cùng ("Trang chủ") của ứng dụng của bạn.</li>
+</ul>
+
+<p>Trong trường hợp nút Quay lại, bạn nên thiết kế để việc điều hướng dễ đoán hơn bằng cách chèn vào ngăn xếp
+của tác vụ toàn bộ đường dẫn điều hướng lên trên tới màn hình trên cùng của ứng dụng. Làm vậy sẽ cho phép những người dùng nào
+quên cách họ vào ứng dụng của bạn sẽ điều hướng tới màn hình trên cùng của ứng dụng trước khi
+thoát.</p>
+
+<p>Ví dụ, widget màn hình Trang chủ của Gmail có một nút để đi trực tiếp vào màn hình
+soạn email của nó. Lên hoặc Quay lại từ màn hình soạn thư sẽ đưa người dùng tới Hộp thư đến, và từ đó
+nút Quay lại tiếp tục đưa về Trang chủ.</p>
+
+<img src="{@docRoot}design/media/navigation_from_outside_back.png">
+
+<h4>Thông báo gián tiếp</h4>
+
+<p>Khi ứng dụng của bạn cần trình bày thông tin về nhiều sự kiện đồng thời, nó có thể sử dụng
+thông báo duy nhất để chuyển hướng người dùng tới một màn hình xen kẽ. Màn hình này tổng hợp những sự kiện
+này và cung cấp đường dẫn cho người dùng đi sâu vào ứng dụng. Thông báo kiểu này được gọi
+là <em>thông báo gián tiếp</em>.</p>
+
+<p>Không như thông báo tiêu chuẩn (trực tiếp), nhấn Quay lại từ màn hình xen kẽ của một thông báo gián tiếp
+sẽ trả người dùng về điểm mà từ đó thông báo đó được kích hoạt&mdash;không có
+màn hình bổ sung nào được chèn vào ngăn xếp. Sau khi người dùng tiến vào ứng dụng từ màn hình xen kẽ
+, thao tác Lên trên và Quay lại có tác dụng như với thông báo tiêu chuẩn, như được mô tả ở trên:
+điều hướng bên trong ứng dụng thay vì quay lại màn hình xen kẽ.</p>
+
+<p>Ví dụ, giả sử một người dùng trong Gmail nhận được một thông báo gián tiếp từ Lịch. Chạm
+vào thông báo này để mở ra màn hình xen kẽ, trong đó hiển thị nhắc nhở cho một vài sự kiện
+khác nhau. Chạm vào Quay lại từ màn hình xen kẽ sẽ trả người dùng về Gmail. Chạm vào một sự kiện
+cụ thể sẽ đưa người dùng ra khỏi màn hình xen kẽ và vào ứng dụng Lịch để hiển thị chi tiết về
+sự kiện. Từ chi tiết sự kiện, Lên trên và Quay lại sẽ điều hướng tới dạng xem trên cùng của Lịch.</p>
+
+<img src="{@docRoot}design/media/navigation_indirect_notification.png">
+
+<h4>Thông báo bật lên</h4>
+
+<p><em>Thông báo bật lên</em> sẽ bỏ qua ngăn thông báo thay vì xuất hiện trực tiếp phía
+trước người dùng. Chúng hiếm khi được sử dụng và <strong>nên được để dành cho những dịp khi cần
+phản ứng kịp thời và việc gián đoạn ngữ cảnh của người dùng là cần thiết</strong>. Ví dụ,
+Talk sử dụng kiểu này để cảnh báo người dùng về lời mời từ một người bạn để tham gia trò chuyện video, bởi
+lời mời này sẽ tự động hết hạn sau một vài giây.</p>
+
+<p>Xét về hành vi điều hướng, thông báo bật lên bám sát chặt chẽ hành vi của màn hình xen kẽ
+trong thông báo gián tiếp. Quay lại sẽ bỏ qua thông báo bật lên. Nếu người dùng điều hướng
+từ màn hình bật lên vào ứng dụng thông báo, hành vi Lên trên và Quay lại sẽ bám sát quy tắc áp dụng với thông báo tiêu chuẩn,
+điều hướng bên trong ứng dụng.</p>
+
+<img src="{@docRoot}design/media/navigation_popup_notification.png">
+
+<h2 id="between-apps">Điều hướng giữa các Ứng dụng</h2>
+
+<p>Một trong những thế mạnh cơ bản của hệ thống Android đó là khả năng các ứng dụng kích hoạt
+lẫn nhau, giúp người dùng có thể điều hướng trực tiếp từ ứng dụng này sang ứng dụng khác. Ví dụ, một ứng dụng
+cần chụp ảnh có thể kích hoạt ứng dụng Camera, ứng dụng này sẽ trả
+ảnh về ứng dụng chuyển đến. Điều này đặc biệt có ích đối với cả nhà phát triển, những người có thể dễ dàng tận dụng
+đoạn mã từ các ứng dụng khác, lẫn người dùng, những người thích có một trải nghiệm nhất quán đối với những hành động
+được thực hiện thường xuyên.</p>
+
+<p>Để hiểu rõ điều hướng giữa các ứng dụng, quan trọng là phải hiểu được hành vi bộ khung Android
+được đề cập dưới đây.</p>
+
+<h4>Hoạt động, tác vụ và ý định</h4>
+
+<p>Trong Android, <strong>hoạt động</strong> là một thành phần ứng dụng định nghĩa một màn hình
+thông tin và tất cả hành động liên kết mà người dùng có thể thực hiện. Ứng dụng của bạn là tập hợp
+của nhiều hoạt động, bao gồm cả hoạt động do bạn tạo và hoạt động mà bạn sử dụng lại từ các ứng dụng khác.</p>
+
+<p><strong>Tác vụ</strong> là trình tự các hoạt động mà một người dùng tuân theo để hoàn thành một mục tiêu. 
+Tác vụ đơn có thể sử dụng các hoạt động từ chỉ một ứng dụng, hoặc có thể dựa trên hoạt động từ nhiều
+ứng dụng khác nhau.</p>
+
+<p><strong>Ý định</strong> là một cơ chế để một ứng dụng báo hiệu rằng nó muốn sự trợ giúp
+của một ứng dụng khác khi thực hiện một hành động. Các hoạt động của một ứng dụng có thể biểu thị những ý định
+mà chúng có thể phản hồi. Đối với những ý định thường gặp như "Chia sẻ", người dùng có thể cài đặt nhiều ứng dụng
+có khả năng thực hiện yêu cầu đó.</p>
+
+<h4>Ví dụ: điều hướng giữa các ứng dụng để hỗ trợ chia sẻ</h4>
+
+<p>Để hiểu những hoạt động, tác vụ và ý định này vận hành với nhau như thế nào, hãy xem cách một ứng dụng cho phép người dùng
+chia sẻ nội dung bằng cách dùng một ứng dụng khác. Ví dụ, khởi chạy ứng dụng Play Store từ Trang chủ sẽ bắt đầu
+Tác vụ A mới (xem hình bên dưới). Sau khi điều hướng qua Play Store và chạm vào một cuốn sách được quảng cáo
+để xem chi tiết của sách, người dùng vẫn ở trong cùng một tác vụ, mở rộng nó bằng cách thêm vào các hoạt động. Kích hoạt
+hành động Chia sẻ sẽ nhắc người dùng bằng một hộp thoại liệt kê từng hoạt động một (từ các ứng dụng khác nhau)
+mà đã đăng ký xử lý ý định Chia sẻ đó.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_inward.png">
+
+<p>Khi người dùng chọn chia sẻ qua Gmail, hoạt động soạn email của Gmail sẽ được thêm làm hoạt động tiếp tục
+Tác vụ A&mdash;không có tác vụ mới nào được tạo thêm. Nếu Gmail có tác vụ riêng đang chạy nền, nó sẽ
+không bị ảnh hưởng.</p>
+
+<p>Từ hoạt động soạn email, gửi thư hoặc chạm vào nút Quay lại sẽ trả người dùng về
+hoạ̣t động chi tiết về cuốn sách. Những lần chạm sau đó vào Quay lại sẽ tiếp tục điều hướng quay lại qua
+Store và cuối cùng về lại Trang chủ.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_back.png">
+
+<p>Tuy nhiên, nếu chạm vào Lên trên từ hoạt động soạn email, người dùng biểu thị mong muốn vẫn ở nguyên trong
+Gmail. Hoạt động danh sách hội thoại của Gmail xuất hiện và Tác vụ B mới sẽ được tạo cho nó. Các tác vụ mới
+sẽ luôn được liên kết gốc với Trang chủ, vì thế chạm vào Quay lại từ danh sách hội thoại sẽ quay lại đó.</p>
+
+<img src="{@docRoot}design/media/navigation_between_apps_up.png">
+
+<p>Tác vụ A duy trì chạy nền và người dùng có thể quay lại nó sau (ví dụ, thông qua
+màn hình Gần đây). Nếu Gmail đã có tác vụ riêng đang chạy nền, nó sẽ được thay thế
+bằng Tác vụ B&mdash;ngữ cảnh trước đó sẽ bị bỏ đi phục vụ cho mục đích mới của người dùng.</p>
+
+<p>Khi ứng dụng của bạn đăng ký điều khiển ý định bằng một hoạt động nằm sâu trong thứ bậc của ứng dụng,
+hãy tham khảo phần <a href="#into-your-app">Điều hướng tới Ứng dụng của Bạn thông qua Widget và Thông báo trên
+Màn hình Trang chủ</a> để xem hướng dẫn về cách quy định điều hướng Lên trên.</p>
diff --git a/docs/html-intl/intl/vi/sdk/index.jd b/docs/html-intl/intl/vi/sdk/index.jd
index af01ede..4d6bfec 100644
--- a/docs/html-intl/intl/vi/sdk/index.jd
+++ b/docs/html-intl/intl/vi/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=Tải xuống Android Studio và SDK Tools
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Tải xuống Android IDE chính thức và bộ công cụ cho nhà phát triển để xây dựng ứng dụng cho điện thoại, máy tính bảng, thiết bị đeo được, TV chạy Android và nhiều thiết bị khác.
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,15 +231,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">IDE Android chính thức</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>IDE Android Studio</li>
 <li>Bộ công cụ SDK Android</li>
 <li>Nền tảng Android 6.0 (Marshmallow)</li>
 <li>Ảnh hệ thống trình mô phỏng Android 6.0 cùng các API của Google</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/vi/sdk/installing/adding-packages.jd b/docs/html-intl/intl/vi/sdk/installing/adding-packages.jd
index 728c92d..1c9072c 100644
--- a/docs/html-intl/intl/vi/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/vi/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=Thêm Gói SDK
 
 page.tags=trình quản lý sdk
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/vi/training/material/animations.jd b/docs/html-intl/intl/vi/training/material/animations.jd
new file mode 100644
index 0000000..e93c99d
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/animations.jd
@@ -0,0 +1,550 @@
+page.title=Định nghĩa Hoạt hình Tùy chỉnh
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#Touch">Tùy chỉnh Phản hồi Chạm</a></li>
+  <li><a href="#Reveal">Sử dụng Hiệu ứng Lộ ra</a></li>
+  <li><a href="#Transitions">Tùy chỉnh Chuyển tiếp Hoạt động</a></li>
+  <li><a href="#ViewState">Tạo Hiệu ứng Hoạt hình Thay đổi Trạng thái Xem</a></li>
+  <li><a href="#AnimVector">Tạo Hiệu ứng Hoạt hình Nội dung vẽ được Véc-tơ</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Hoạt hình theo phong cách material design phản hồi hành động của người dùng và cung cấp 
+tính liên tục trực quan khi người dùng tương tác với ứng dụng của bạn. Giao diện material cung cấp một số hoạt hình
+mặc định cho các nút và chuyển tiếp hoạt động, và Android 5.0 (API mức 21) và cao hơn cho phép bạn tùy chỉnh
+những hoạt hình này và tạo các hoạt hình mới:</p>
+
+<ul>
+<li>Phản hồi chạm</li>
+<li>Lộ ra Vòng tròn</li>
+<li>Chuyển tiếp hoạt động</li>
+<li>Chuyển động cong</li>
+<li>Thay đổi trạng thái xem</li>
+</ul>
+
+
+<h2 id="Touch">Tùy chỉnh Phản hồi Chạm</h2>
+
+<p>Phản hồi chạm trong Material Design đưa ra một xác nhận trực quan tức thời tại
+điểm tiếp xúc khi người dùng tương tác với các phần tử UI. Hoạt hình phản hồi chạm mặc định
+cho nút sẽ sử dụng lớp {@link android.graphics.drawable.RippleDrawable} mới để chuyển tiếp
+giữa các trạng thái khác nhau bằng hiệu ứng gợn sóng.</p>
+
+<p>Trong hầu hết trường hợp, bạn nên áp dụng tính năng này trong tệp XML dạng xem của mình bằng cách chỉ định nền
+dạng xem là:</p>
+
+<ul>
+<li><code>?android:attr/selectableItemBackground</code> cho gợn sóng có giới hạn.</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> cho gợn sóng lan ra ngoài
+dạng xem. Hiệu ứng sẽ được vẽ lên và được giới hạn bởi dạng xem mẹ gần nhất có nền
+không rỗng.</li>
+</ul>
+
+<p class="note"><strong>Lưu ý:</strong> <code>selectableItemBackgroundBorderless</code> là một thuộc tính
+mới được giới thiệu trong API mức 21.</p>
+
+
+<p>Hoặc, bạn có thể định nghĩa {@link android.graphics.drawable.RippleDrawable}
+làm tài nguyên XML bằng cách sử dụng phần tử <code>ripple</code>.</p>
+
+<p>Bạn có thể gán một màu cho các đối tượng {@link android.graphics.drawable.RippleDrawable}. Để thay đổi
+màu phản hồi chạm mặc định, hãy sử dụng thuộc tính <code>android:colorControlHighlight</code>
+của chủ đề.</p>
+
+<p>Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho lớp {@link
+android.graphics.drawable.RippleDrawable}.</p>
+
+
+<h2 id="Reveal">Sử dụng Hiệu ứng Lộ ra</h2>
+
+<p>Hoạt hình lộ ra đảm bảo tính liên tục trực quan cho người dùng khi bạn hiện hoặc ẩn một nhóm phần tử
+UI. Phương thức {@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} cho phép bạn tạo hiệu ứng hoạt hình một vòng tròn cắt hình
+để lộ ra hoặc ẩn một dạng xem.</p>
+
+<p>Để lộ ra một dạng xem ẩn trước đó bằng hiệu ứng này:</p>
+
+<pre>
+// previously invisible view
+View myView = findViewById(R.id.my_view);
+
+// get the center for the clipping circle
+int cx = (myView.getLeft() + myView.getRight()) / 2;
+int cy = (myView.getTop() + myView.getBottom()) / 2;
+
+// get the final radius for the clipping circle
+int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
+
+// create the animator for this view (the start radius is zero)
+Animator anim =
+    ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
+
+// make the view visible and start the animation
+myView.setVisibility(View.VISIBLE);
+anim.start();
+</pre>
+
+<p>Để ẩn một dạng xem hiển thị trước đó bằng hiệu ứng này:</p>
+
+<pre>
+// previously visible view
+final View myView = findViewById(R.id.my_view);
+
+// get the center for the clipping circle
+int cx = (myView.getLeft() + myView.getRight()) / 2;
+int cy = (myView.getTop() + myView.getBottom()) / 2;
+
+// get the initial radius for the clipping circle
+int initialRadius = myView.getWidth();
+
+// create the animation (the final radius is zero)
+Animator anim =
+    ViewAnimationUtils.createCircularReveal(myView, cx, cy, initialRadius, 0);
+
+// make the view invisible when the animation is done
+anim.addListener(new AnimatorListenerAdapter() {
+    &#64;Override
+    public void onAnimationEnd(Animator animation) {
+        super.onAnimationEnd(animation);
+        myView.setVisibility(View.INVISIBLE);
+    }
+});
+
+// start the animation
+anim.start();
+</pre>
+
+
+<h2 id="Transitions">Tùy chỉnh Chuyển tiếp Hoạt động</h2>
+
+<!-- shared transition video -->
+<div style="width:290px;margin-left:35px;float:right">
+  <div class="framed-nexus5-port-span-5">
+  <video class="play-on-hover" autoplay="">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.mp4">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.webm">
+    <source src="{@docRoot}design/material/videos/ContactsAnim.ogv">
+  </video>
+  </div>
+  <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>Hình 1</strong> - Chuyển tiếp
+    với những phần tử chung.</p>
+    <em>Để phát lại phim, nhấp vào màn hình thiết bị</em>
+  </div>
+</div>
+
+<p>Chuyển tiếp hoạt động trong các ứng dụng theo phong cách material design cung cấp kết nối trực quan giữa các trạng thái khác nhau
+thông qua chuyển động và chuyển đổi giữa những phần tử hay dùng. Bạn có thể quy định hoạt hình tùy chỉnh cho
+các chuyển tiếp ra vào và chuyển tiếp phần tử chung giữa các hoạt động.</p>
+
+<ul>
+<li>Chuyển tiếp <strong>vào</strong> xác định các dạng xem trong một hoạt động sẽ vào cảnh đó như thế nào.
+Ví dụ, trong chuyển tiếp vào dạng <em>nổ tung</em>, dạng xem sẽ vào cảnh từ bên ngoài
+và bay về phía chính giữa màn hình.</li>
+
+<li>Chuyển tiếp <strong>ra</strong> xác định các dạng xem trong một hoạt động sẽ ra khỏi cảnh như thế nào. Ví
+ dụ, trong chuyển tiếp ra kiểu <em>nổ tung</em>, dạng xem sẽ ra khỏi cảnh từ
+trung tâm.</li>
+
+<li>Chuyển tiếp <strong>phần tử chung</strong> xác định các dạng xem chung giữa hai hoạt động
+sẽ chuyển tiếp như thế nào giữa những hoạt động này. Ví dụ, nếu hai hoạt động có cùng
+hình ảnh ở các vị trí và kích cỡ khác nhau, chuyển tiếp phần tử chung <em>changeImageTransform</em> 
+sẽ thể hiện và co giãn hình ảnh một cách mượt mà giữa những hoạt động này.</li>
+</ul>
+
+<p>Android 5.0 (API mức 21) hỗ trợ những chuyển tiếp ra vào sau:</p>
+
+<ul>
+<li><em>nổ tung</em> - Di chuyển các dạng xem vào hoặc ra khỏi chính giữa cảnh.</li>
+<li><em>trượt</em> - Di chuyển các dạng xem vào hoặc ra từ một trong các mép của cảnh.</li>
+<li><em>mờ dần</em> - Thêm hoặc gỡ bỏ dạng xem khỏi cảnh bằng cách thay đổi độ mờ đục của nó.</li>
+</ul>
+
+<p>Bất cứ chuyển tiếp nào mở rộng lớp {@link android.transition.Visibility} đều được hỗ trợ
+như một chuyển tiếp vào hoặc ra. Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho lớp
+{@link android.transition.Transition}.</p>
+
+<p>Android 5.0 (API mức 21) cũng hỗ trợ những chuyển tiếp phần tử chung này:</p>
+
+<ul>
+<li><em>changeBounds</em> - Tạo hiệu ứng hoạt hình các thay đổi trong giới hạn bố trí của dạng xem mục tiêu.</li>
+<li><em>changeClipBounds</em> - Tạo hiệu ứng hoạt hình các thay đổi trong giới hạn cắt hình của dạng xem mục tiêu.</li>
+<li><em>changeTransform</em> - Tạo hiệu ứng hoạt hình các thay đổi về co giãn và xoay dạng xem mục tiêu.</li>
+<li><em>changeImageTransform</em> - Tạo hiệu ứng hoạt hình các thay đổi về kích cỡ và co giãn của ảnh mục tiêu.</li>
+</ul>
+
+<p>Khi bạn cho phép chuyển tiếp hoạt động trong ứng dụng của mình, chuyển tiếp mờ dần chéo cross-fading
+mặc định sẽ được kích hoạt giữa các hoạt động ra vào.</p>
+
+<img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
+<p class="img-caption">
+  <strong>Hình 2</strong> - Chuyển tiếp cảnh với một phần tử chung.
+</p>
+
+<h3>Quy định chuyển tiếp tùy chỉnh</h3>
+
+<p>Trước tiên, cho phép chuyển tiếp nội dung cửa sổ bằng thuộc tính <code>android:windowContentTransitions</code>
+khi bạn định nghĩa một kiểu kế thừa từ chủ đề material. Bạn cũng có thể quy định chuyển tiếp
+ra, vào và phần tử chung trong định nghĩa kiểu của mình:</p>
+
+<pre>
+&lt;style name="BaseAppTheme" parent="android:Theme.Material">
+  &lt;!-- enable window content transitions -->
+  &lt;item name="android:windowContentTransitions">true&lt;/item>
+
+  &lt;!-- specify enter and exit transitions -->
+  &lt;item name="android:windowEnterTransition">@transition/explode&lt;/item>
+  &lt;item name="android:windowExitTransition">@transition/explode&lt;/item>
+
+  &lt;!-- specify shared element transitions -->
+  &lt;item name="android:windowSharedElementEnterTransition">
+    &#64;transition/change_image_transform&lt;/item>
+  &lt;item name="android:windowSharedElementExitTransition">
+    &#64;transition/change_image_transform&lt;/item>
+&lt;/style>
+</pre>
+
+<p>Chuyển tiếp <code>change_image_transform</code> trong ví dụ này được định nghĩa như sau:</p>
+
+<pre>
+&lt;!-- res/transition/change_image_transform.xml -->
+&lt;!-- (see also Shared Transitions below) -->
+&lt;transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
+  &lt;changeImageTransform/>
+&lt;/transitionSet>
+</pre>
+
+<p>Phần tử <code>changeImageTransform</code> tương ứng với lớp
+{@link android.transition.ChangeImageTransform}. Để biết thêm thông tin, hãy xem tài liệu tham khảo API
+cho {@link android.transition.Transition}.</p>
+
+<p>Thay vào đó, để cho phép chuyển tiếp nội dung cửa sổ trong mã của bạn, hãy gọi phương thức
+{@link android.view.Window#requestFeature Window.requestFeature()}:</p>
+
+<pre>
+// inside your activity (if you did not enable transitions in your theme)
+getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
+
+// set an exit transition
+getWindow().setExitTransition(new Explode());
+</pre>
+
+<p>Để quy định chuyển tiếp trong mã của bạn, hãy gọi những phương thức này bằng đối tượng {@link
+android.transition.Transition}:</p>
+
+<ul>
+  <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
+  <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
+</ul>
+
+<p>Phương thức {@link android.view.Window#setExitTransition setExitTransition()} và {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} định nghĩa
+chuyển tiếp ra cho hoạt động gọi. Phương thức {@link android.view.Window#setEnterTransition
+setEnterTransition()} và {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} định nghĩa chuyển tiếp vào cho hoạt động được gọi.</p>
+
+<p>Để có đầy đủ hiệu ứng của một chuyển tiếp, bạn phải cho phép chuyển tiếp nội dung cửa sổ trên cả hoạt động
+gọi và được gọi. Nếu không, hoạt động gọi sẽ bắt đầu chuyển tiếp ra,
+nhưng khi đó bạn sẽ thấy chuyển tiếp cửa sổ (như co giãn và mờ dần).</p>
+
+<p>Để bắt đầu một chuyển tiếp vào ngay khi có thể, hãy sử dụng phương thức
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+trên hoạt động được gọi. Nó cho phép bạn có chuyển tiếp vào ấn tượng hơn.</p>
+
+<h3>Bắt đầu một hoạt động bằng chuyển tiếp</h3>
+
+<p>Nếu bạn cho phép chuyển tiếp và đặt chuyển tiếp ra cho một hoạt động, chuyển tiếp sẽ được
+kích hoạt khi bạn khởi chạy một hoạt động khác như sau:</p>
+
+<pre>
+startActivity(intent,
+              ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
+</pre>
+
+<p>Nếu bạn đặt một chuyển tiếp vào cho hoạt động thứ hai, chuyển tiếp này cũng được kích hoạt khi hoạt động
+bắt đầu. Để vô hiệu hoá chuyển tiếp khi bạn bắt đầu một hoạt động khác, hãy cung cấp
+một nhóm tùy chọn <code>null</code>.</p>
+
+<h3>Bắt đầu một hoạt động bằng một phần tử chung</h3>
+
+<p>Để tạo một hoạt hình chuyển tiếp màn hình giữa hai hoạt động có một phần tử chung:</p>
+
+<ol>
+<li>Cho phép chuyển tiếp nội dung cửa sổ trong chủ đề của bạn.</li>
+<li>Quy định một chuyển tiếp phần tử chung trong kiểu của bạn.</li>
+<li>Định nghĩa chuyển tiếp của bạn dưới dạng một tài nguyên XML.</li>
+<li>Gán một tên chung cho các phần tử chung ở cả hai bố trí bằng thuộc tính
+    <code>android:transitionName</code>.</li>
+<li>Sử dụng phương thức {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()}.</li>
+</ol>
+
+<pre>
+// get the element that receives the click event
+final View imgContainerView = findViewById(R.id.img_container);
+
+// get the common element for the transition in this activity
+final View androidRobotView = findViewById(R.id.image_small);
+
+// define a click listener
+imgContainerView.setOnClickListener(new View.OnClickListener() {
+    &#64;Override
+    public void onClick(View view) {
+        Intent intent = new Intent(this, Activity2.class);
+        // create the transition animation - the images in the layouts
+        // of both activities are defined with android:transitionName="robot"
+        ActivityOptions options = ActivityOptions
+            .makeSceneTransitionAnimation(this, androidRobotView, "robot");
+        // start the new activity
+        startActivity(intent, options.toBundle());
+    }
+});
+</pre>
+
+<p>Đối với các dạng xem động dùng chung mà bạn khởi tạo trong mã của mình, hãy sử dụng phương thức
+{@link android.view.View#setTransitionName View.setTransitionName()} để quy định một
+tên phần tử chung trong cả hai hoạt động.</p>
+
+<p>Để đảo ngược hoạt hình chuyển tiếp cảnh khi bạn kết thúc hoạt động thứ hai, hãy gọi phương thức
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+thay vì {@link android.app.Activity#finish Activity.finish()}.</p>
+
+<h3>Bắt đầu một hoạt động bằng nhiều phần tử chung</h3>
+
+<p>Để tạo một hoạt hình chuyển tiếp cảnh giữa hai hoạt động có nhiều hơn một phần tử
+chung, hãy định nghĩa các phần tử chung trong cả hai bố trí bằng thuộc tính <code>android:transitionName</code>
+ (hoặc sử dụng phương thức {@link android.view.View#setTransitionName View.setTransitionName()} 
+trong cả hai hoạt động), và tạo một đối tượng {@link android.app.ActivityOptions} như sau:</p>
+
+<pre>
+ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
+        Pair.create(view1, "agreedName1"),
+        Pair.create(view2, "agreedName2"));
+</pre>
+
+
+<h2 id="CurvedMotion">Sử dụng Chuyển động Cong</h2>
+
+<p>Hoạt hình theo phong cách material design phụ thuộc vào đường cong làm mẫu hình nội suy thời gian
+và chuyển động không gian. Với Android 5.0 (API mức 21) trở lên, bạn có thể định nghĩa đường cong định thời tùy chỉnh và
+mẫu hình chuyển động cong cho hoạt hình.</p>
+
+<p>Lớp {@link android.view.animation.PathInterpolator} là một hàm nội suy mới dựa trên đường cong
+Bézier hoặc đối tượng {@link android.graphics.Path}. Hàm nội suy này quy định một đường cong chuyển động
+trong một hình vuông 1x1, với các điểm neo tại (0,0) và (1,1) cùng các điểm kiểm soát được quy định bằng cách sử dụng
+các tham đối của hàm dựng. Bạn cũng có thể định nghĩa một hàm nội suy đường dẫn dưới dạng tài nguyên XML:</p>
+
+<pre>
+&lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:controlX1="0.4"
+    android:controlY1="0"
+    android:controlX2="1"
+    android:controlY2="1"/>
+</pre>
+
+<p>Hệ thống cung cấp tài nguyên XML cho ba đường cong cơ bản trong đặc tả
+material design:</p>
+
+<ul>
+  <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
+  <li><code>&#64;interpolator/fast_out_slow_in.xml</code></li>
+  <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
+</ul>
+
+<p>Bạn có thể chuyển một đối tượng {@link android.view.animation.PathInterpolator} tới phương thức {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()}.</p>
+
+<p>Lớp {@link android.animation.ObjectAnimator} có các hàm dựng mới cho phép bạn tạo hiệu ứng hoạt hình
+cho các tọa độ dọc theo một đường dẫn bằng hai hoặc nhiều thuộc tính đồng thời. Ví dụ, trình tạo hoạt hình sau
+sử dụng một đối tượng {@link android.graphics.Path} để tạo hiệu ứng hoạt hình cho thuộc tính X và Y của một dạng xem:</p>
+
+<pre>
+ObjectAnimator mAnimator;
+mAnimator = ObjectAnimator.ofFloat(view, View.X, View.Y, path);
+...
+mAnimator.start();
+</pre>
+
+
+<h2 id="ViewState">Tạo Hiệu ứng Hoạt hình Thay đổi Trạng thái Xem</h2>
+
+<p>Lớp {@link android.animation.StateListAnimator} cho phép bạn định nghĩa trình tạo hoạt hình để chạy khi
+trạng thái của dạng xem thay đổi. Ví dụ sau cho biết cách định nghĩa một {@link
+android.animation.StateListAnimator}  dưới dạng tài nguyên XML:</p>
+
+<pre>
+&lt;!-- animate the translationZ property of a view when pressed -->
+&lt;selector xmlns:android="http://schemas.android.com/apk/res/android">
+  &lt;item android:state_pressed="true">
+    &lt;set>
+      &lt;objectAnimator android:propertyName="translationZ"
+        android:duration="@android:integer/config_shortAnimTime"
+        android:valueTo="2dp"
+        android:valueType="floatType"/>
+        &lt;!-- you could have other objectAnimator elements
+             here for "x" and "y", or other properties -->
+    &lt;/set>
+  &lt;/item>
+  &lt;item android:state_enabled="true"
+    android:state_pressed="false"
+    android:state_focused="true">
+    &lt;set>
+      &lt;objectAnimator android:propertyName="translationZ"
+        android:duration="100"
+        android:valueTo="0"
+        android:valueType="floatType"/>
+    &lt;/set>
+  &lt;/item>
+&lt;/selector>
+</pre>
+
+<p>Để gắn kèm hoạt hình trạng thái dạng xem tùy chỉnh vào một dạng xem, hãy định nghĩa một trình tạo hoạt hình bằng cách sử dụng phần tử
+<code>selector</code> trong một tệp tài nguyên XML như trong ví dụ này, và gán nó cho dạng xem
+của bạn bằng thuộc tính <code>android:stateListAnimator</code>. Để gán một trình tạo hoạt hình danh sách trạng thái
+cho một dạng xem trong mã của bạn, hãy sử dụng phương thức {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} và gán trình tạo hoạt hình cho dạng xem của bạn bằng phương thức
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()}.</p>
+
+<p>Khi chủ đề của bạn mở rộng ra chủ đề material, các nút sẽ có hoạt hình Z theo mặc định. Để tránh hành vi
+này trong nút của bạn, hãy đặt thuộc tính <code>android:stateListAnimator</code> thành
+<code>@null</code>.</p>
+
+<p>Lớp {@link android.graphics.drawable.AnimatedStateListDrawable} cho phép bạn tạo các nội dung vẽ được
+để hiển thị hoạt hình giữa các thay đổi trạng thái của dạng xem được liên kết. Một số widget hệ thống trong
+Android 5.0 sử dụng những hoạt hình này theo mặc định. Ví dụ sau cho biết cách
+cách định nghĩa {@link android.graphics.drawable.AnimatedStateListDrawable} dưới dạng tài nguyên XML:</p>
+
+<pre>
+&lt;!-- res/drawable/myanimstatedrawable.xml -->
+&lt;animated-selector
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    &lt;!-- provide a different drawable for each state-->
+    &lt;item android:id="@+id/pressed" android:drawable="@drawable/drawableP"
+        android:state_pressed="true"/>
+    &lt;item android:id="@+id/focused" android:drawable="@drawable/drawableF"
+        android:state_focused="true"/>
+    &lt;item android:id="@id/default"
+        android:drawable="@drawable/drawableD"/>
+
+    &lt;!-- specify a transition -->
+    &lt;transition android:fromId="@+id/default" android:toId="@+id/pressed">
+        &lt;animation-list>
+            &lt;item android:duration="15" android:drawable="@drawable/dt1"/>
+            &lt;item android:duration="15" android:drawable="@drawable/dt2"/>
+            ...
+        &lt;/animation-list>
+    &lt;/transition>
+    ...
+&lt;/animated-selector>
+</pre>
+
+
+<h2 id="AnimVector">Tạo Hiệu ứng Hoạt hình Nội dung vẽ được Véc-tơ</h2>
+
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">Nội dung vẽ được Véc-tơ</a> sẽ co giãn được
+mà không làm mất độ sắc nét. Lớp {@link android.graphics.drawable.AnimatedVectorDrawable}
+cho phép bạn tạo hiệu ứng hoạt hình các thuộc tính của nội dung vẽ được véc-tơ.</p>
+
+<p>Thường thì bạn định nghĩa nội dung vẽ được véc-tơ hoạt hình theo ba tệp XML:</p>
+
+<ul>
+<li>Nội dung vẽ được véc-tơ với phần tử <code>&lt;vector&gt;</code> trong
+<code>res/drawable/</code></li>
+<li>Nội dung vẽ được véc-tơ hoạt hình với phần tử <code>&lt;animated-vector&gt;</code> trong
+<code>res/drawable/</code></li>
+<li>Một hoặc nhiều trình tạo hoạt hình đối tượng với phần tử <code>&lt;objectAnimator&gt;</code> trong
+<code>res/anim/</code></li>
+</ul>
+
+<p>Nội dung vẽ được véc-tơ hoạt hình có thể tạo hiệu ứng hoạt hình các thuộc tính của phần tử <code>&lt;group&gt;</code> và
+<code>&lt;path&gt;</code>. Phần tử <code>&lt;group&gt;</code> định nghĩa một bộ
+đường dẫn hoặc nhóm phụ và phần tử <code>&lt;path&gt;</code> định nghĩa các đường dẫn sẽ được vẽ.</p>
+
+<p>Khi định nghĩa một nội dung vẽ được véc-tơ mà bạn muốn tạo hiệu ứng hoạt hình, hãy sử dụng thuộc tính <code>android:name</code>
+để gán một tên duy nhất cho các nhóm và đường dẫn, sao cho bạn có thể tham chiếu tới chúng từ các định nghĩa
+trình tạo hoạt hình của mình. Ví dụ:</p>
+
+<pre>
+&lt;!-- res/drawable/vectordrawable.xml -->
+&lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="64dp"
+    android:width="64dp"
+    android:viewportHeight="600"
+    android:viewportWidth="600">
+    &lt;group
+        <strong>android:name="rotationGroup"</strong>
+        android:pivotX="300.0"
+        android:pivotY="300.0"
+        android:rotation="45.0" >
+        &lt;path
+            <strong>android:name="v"</strong>
+            android:fillColor="#000000"
+            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
+    &lt;/group>
+&lt;/vector>
+</pre>
+
+<p>Định nghĩa nội dung vẽ được véc-tơ hoạt hình sẽ tham chiếu tới các nhóm và đường dẫn trong nội dung vẽ được véc-tơ theo
+tên của chúng:</p>
+
+<pre>
+&lt;!-- res/drawable/animvectordrawable.xml -->
+&lt;animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
+  android:drawable="@drawable/vectordrawable" >
+    &lt;target
+        android:name="rotationGroup"
+        android:animation="@anim/rotation" />
+    &lt;target
+        android:name="v"
+        android:animation="@anim/path_morph" />
+&lt;/animated-vector>
+</pre>
+
+<p>Định nghĩa hoạt hình biểu diễn các đối tượng {@link android.animation.ObjectAnimator} hoặc {@link
+android.animation.AnimatorSet}. Trình tạo hoạt hình đầu tiên trong ví dụ này sẽ xoay nhóm
+đối tượng 360 độ:</p>
+
+<pre>
+&lt;!-- res/anim/rotation.xml -->
+&lt;objectAnimator
+    android:duration="6000"
+    android:propertyName="rotation"
+    android:valueFrom="0"
+    android:valueTo="360" />
+</pre>
+
+<p>Trình tạo hoạt hình thứ hai trong ví dụ này sẽ đổi dạng đường dẫn của nội dung vẽ được véc-tơ từ hình này sang
+hình khác. Cả hai đường dẫn đều phải tương thích với việc đổi dạng: chúng phải có cùng số lệnh
+và cùng số lượng tham số cho từng lệnh.</p>
+
+<pre>
+&lt;!-- res/anim/path_morph.xml -->
+&lt;set xmlns:android="http://schemas.android.com/apk/res/android">
+    &lt;objectAnimator
+        android:duration="3000"
+        android:propertyName="pathData"
+        android:valueFrom="M300,70 l 0,-70 70,70 0,0   -70,70z"
+        android:valueTo="M300,70 l 0,-70 70,0  0,140 -70,0 z"
+        android:valueType="pathType" />
+&lt;/set>
+</pre>
+
+<p>Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho {@link
+android.graphics.drawable.AnimatedVectorDrawable}.</p>
diff --git a/docs/html-intl/intl/vi/training/material/compatibility.jd b/docs/html-intl/intl/vi/training/material/compatibility.jd
new file mode 100644
index 0000000..65e81312
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/compatibility.jd
@@ -0,0 +1,168 @@
+page.title=Duy trì Tính tương thích
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#Theme">Định nghĩa Kiểu Thay thế</a></li>
+  <li><a href="#Layouts">Cung cấp Bố trí Thay thế</a></li>
+  <li><a href="#SupportLib">Sử dụng Thư viện Hỗ trợ</a></li>
+  <li><a href="#CheckVersion">Kiểm tra Phiên bản Hệ thống</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Một số tính năng của Material Design như chủ đề Material và chuyển tiếp hoạt động tùy chỉnh
+chỉ sẵn có trên Android 5.0 (API mức 21) trở lên. Tuy nhiên, bạn có thể thiết kế ứng dụng của mình để tận dụng
+những tính năng này khi chạy trên thiết bị hỗ trợ material design mà vẫn tương thích
+với thiết bị đang chạy các bản phát hành Android trước đây.</p>
+
+
+<h2 id="Theme">Định nghĩa Kiểu Thay thế</h2>
+
+<p>Bạn có thể cấu hình ứng dụng của mình để sử dụng chủ đề material trên những thiết bị hỗ trợ và chuyển về
+chủ đề cũ hơn trên những thiết bị đang chạy phiên bản Android cũ hơn:</p>
+
+<ol>
+<li>Định nghĩa một chủ đề kế thừa từ một chủ đề cũ hơn (như Holo) trong
+    <code>res/values/styles.xml</code>.</li>
+<li>Định nghĩa một chủ đề với cùng tên và kế thừa chủ đề material trong
+    <code>res/values-v21/styles.xml</code>.</li>
+<li>Đặt chủ đề này làm chủ đề cho ứng dụng của bạn trong tệp bản kê khai.</li>
+</ol>
+
+<p class="note"><strong>Lưu ý:</strong>
+Nếu ứng dụng của bạn sử dụng chủ đề material nhưng không cung cấp chủ đề thay thế bằng cách này,
+ứng dụng của bạn sẽ không chạy trên phiên bản Android trước 5.0.
+</p>
+
+
+<h2 id="Layouts">Cung cấp Bố trí Thay thế</h2>
+
+<p>Nếu những bố trí mà bạn thiết kế theo hướng dẫn về material design không sử dụng bất cứ
+thuộc tính XML mới nào được giới thiệu trong Android 5.0 (API mức 21), chúng sẽ hoạt động trên các phiên bản
+Android trước đó. Nếu không, bạn có thể cung cấp bố trí thay thế. Bạn cũng có thể cung cấp
+bố trí thay thế để tùy chỉnh diện mạo ứng dụng của mình trên các phiên bản Android cũ hơn.</p>
+
+<p>Tạo tệp bố trí của bạn cho Android 5.0 (API mức 21) bên trong <code>res/layout-v21/</code> và
+tệp bố trí thay thế của bạn cho các phiên bản Android cũ hơn trong <code>res/layout/</code>.
+Ví dụ, <code>res/layout/my_activity.xml</code> là một bố trí thay thế cho
+<code>res/layout-v21/my_activity.xml</code>.</p>
+
+<p>Để tránh lặp mã, hãy định nghĩa kiểu của bạn bên trong <code>res/values/</code>, sửa đổi
+các kiểu trong <code>res/values-v21/</code> cho các API mới và sử dụng kế thừa kiểu, định nghĩa
+kiểu cơ bản trong <code>res/values/</code> và kế thừa từ những kiểu trong <code>res/values-v21/</code>.</p>
+
+
+<h2 id="SupportLib">Sử dụng Thư viện Hỗ trợ</h2>
+
+<p><a href="{@docRoot}tools/support-library/features.html#v7">Thư viện Hỗ trợ v7</a>
+r21 và cao hơn gồm những tính năng material design sau:</p>
+
+<ul>
+<li><a href="{@docRoot}training/material/theme.html">Các kiểu mang phong cách material design</a> cho một số widget
+    hệ thống khi bạn áp dụng một trong các chủ đề <code>Theme.AppCompat</code>.</li>
+<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Thuộc tính chủ đề bảng màu</a>
+   trong các chủ đề <code>Theme.AppCompat</code>.</li>
+<li>Widget {@link android.support.v7.widget.RecyclerView} để <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">hiển thị các bộ sưu tập
+    dữ liệu</a>.</li>
+<li>Widget {@link android.support.v7.widget.CardView} để <a href="{@docRoot}training/material/lists-cards.html#CardView">tạo thẻ</a>.</li>
+<li>Lớp {@link android.support.v7.graphics.Palette} để <a href="{@docRoot}training/material/drawables.html#ColorExtract">trích xuất màu nổi bật từ
+    hình ảnh</a>.</li>
+</ul>
+
+<h3>Widget hệ thống</h3>
+
+<p>Chủ đề <code>Theme.AppCompat</code> cung cấp các kiểu phong cách material design cho những widget này:</p>
+
+<ul>
+  <li>{@link android.widget.EditText}</li>
+  <li>{@link android.widget.Spinner}</li>
+  <li>{@link android.widget.CheckBox}</li>
+  <li>{@link android.widget.RadioButton}</li>
+  <li>{@link android.support.v7.widget.SwitchCompat}</li>
+  <li>{@link android.widget.CheckedTextView}</li>
+</ul>
+
+<h3>Bảng màu</h3>
+
+<p>Để có được các kiểu phong cách material design và tùy chỉnh bảng màu bằng Thư viện Hỗ trợ v7 
+của Android, hãy áp dụng một trong các chủ đề <code>Theme.AppCompat</code>:</p>
+
+<pre>
+&lt;!-- extend one of the Theme.AppCompat themes -->
+&lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
+    &lt;!-- customize the color palette -->
+    &lt;item name="colorPrimary">@color/material_blue_500&lt;/item>
+    &lt;item name="colorPrimaryDark">@color/material_blue_700&lt;/item>
+    &lt;item name="colorAccent">@color/material_green_A200&lt;/item>
+&lt;/style>
+</pre>
+
+<h3>Danh sách và Thẻ</h3>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} và {@link
+android.support.v7.widget.CardView} sẵn có trong các phiên bản Android cũ hơn thông qua
+Thư viện Hỗ trợ v7 của Android với những hạn chế sau:</p>
+<ul>
+<li>{@link android.support.v7.widget.CardView} quay lại triển khai đổ bóng theo lập trình
+    bằng cách sử dụng phần đệm bổ sung.</li>
+<li>{@link android.support.v7.widget.CardView} không cắt hình những dạng xem con của nó có giao cắt với
+    các góc bo tròn.</li>
+</ul>
+
+
+<h3>Phụ thuộc</h3>
+
+<p>Để sử dụng những tính năng này trong các phiên bản Android trước 5.0 (API mức 21), hãy thêm
+Thư viện Hỗ trợ v7 của Android vào dự án của bạn như một <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Phần phụ thuộc Gradle</a>:</p>
+
+<pre>
+dependencies {
+    compile 'com.android.support:appcompat-v7:21.0.+'
+    compile 'com.android.support:cardview-v7:21.0.+'
+    compile 'com.android.support:recyclerview-v7:21.0.+'
+}
+</pre>
+
+
+<h2 id="CheckVersion">Kiểm tra Phiên bản Hệ thống</h2>
+
+<p>Những tính năng sau chỉ sẵn có trong Android 5.0 (API mức 21) trở lên:</p>
+
+<ul>
+<li>Chuyển tiếp hoạt động</li>
+<li>Phản hồi chạm</li>
+<li>Lộ ra hoạt hình</li>
+<li>Hoạt hình dựa trên đường dẫn</li>
+<li>Nội dung vẽ được véc-tơ</li>
+<li>Nhuộm màu nội dung vẽ được</li>
+</ul>
+
+<p>Để duy trì tính tương thích với các phiên bản Android cũ hơn, hãy kiểm tra {@link
+android.os.Build.VERSION#SDK_INT version} vào thời gian chạy trước khi bạn gọi ra API cho bất cứ tính năng nào
+sau đây:</p>
+
+<pre>
+// Check if we're running on Android 5.0 or higher
+if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+    // Call some material design APIs here
+} else {
+    // Implement this feature without material design
+}
+</pre>
+
+<p class="note"><strong>Lưu ý:</strong> Để quy định ứng dụng của bạn hỗ trợ những phiên bản Android nào,
+hãy sử dụng thuộc tính <code>android:minSdkVersion</code> và <code>android:targetSdkVersion</code>
+trong tệp bản kê khai của bạn. Để sử dụng các tính năng của material design trong Android 5.0, hãy đặt
+thuộc tính <code>android:targetSdkVersion</code> thành <code>21</code>. Để biết thêm thông tin, hãy xem hướng dẫn
+ <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API
+</a>.</p>
diff --git a/docs/html-intl/intl/vi/training/material/drawables.jd b/docs/html-intl/intl/vi/training/material/drawables.jd
new file mode 100644
index 0000000..175e77d
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/drawables.jd
@@ -0,0 +1,126 @@
+page.title=Làm việc với Nội dung vẽ được
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#DrawableTint">Nhuộm màu Tài nguyên Vẽ được</a></li>
+  <li><a href="#ColorExtract">Trích xuất Màu Nổi bật từ một Hình ảnh</a></li>
+  <li><a href="#VectorDrawables">Tạo Nội dung vẽ được Véc-tơ</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+<p>Những khả năng sau của nội dung vẽ được giúp bạn triển khai phong cách material design trong các ứng dụng của mình:</p>
+
+<ul>
+<li>Nhuộm màu nội dung vẽ được</li>
+<li>Trích xuất màu nổi bật</li>
+<li>Nội dung vẽ được véc-tơ</li>
+</ul>
+
+<p>Bài học này cho bạn biết cách sử dụng những tính năng này trong ứng dụng của mình.</p>
+
+
+<h2 id="DrawableTint">Nhuộm màu Tài nguyên Vẽ được</h2>
+
+<p>Với Android 5.0 (API mức 21) và cao hơn, bạn có thể nhuộm màu ảnh bitmap và ảnh chín miếng được định nghĩa làm
+mặt nạ alpha. Bạn có thể nhuộm chúng bằng tài nguyên màu hoặc những thuộc tính chủ đề nhằm phân giải thành các tài nguyên
+màu (ví dụ, <code>?android:attr/colorPrimary</code>). Thông thường, bạn chỉ tạo những tài sản này
+một lần và tô màu tự động cho chúng để khớp với chủ đề của mình.</p>
+
+<p>Bạn có thể áp dụng một màu nhuộm cho đối tượng {@link android.graphics.drawable.BitmapDrawable} hoặc {@link
+android.graphics.drawable.NinePatchDrawable} bằng phương thức {@code setTint()}. Bạn cũng có thể
+đặt màu nhuộm và chế độ trong bố trí của mình bằng các thuộc tính <code>android:tint</code> và
+<code>android:tintMode</code>.</p>
+
+
+<h2 id="ColorExtract">Trích xuất Màu Nổi bật từ một Hình ảnh</h2>
+
+<p>Thư viện Hỗ trợ Android r21 và cao hơn bao gồm lớp {@link
+android.support.v7.graphics.Palette}, cho phép bạn trích xuất màu nổi bật từ một hình ảnh.
+Lớp này trích xuất những màu nổi bật sau:</p>
+
+<ul>
+<li>Rực rỡ</li>
+<li>Tối rực rỡ</li>
+<li>Sáng rực rỡ</li>
+<li>Lặng</li>
+<li>Tối lặng</li>
+<li>Sáng lặng</li>
+</ul>
+
+<p>Để trích xuất những màu này, hãy chuyển một đối tượng {@link android.graphics.Bitmap} cho phương thức tĩnh 
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} trong
+luồng chạy ngầm nơi bạn tải hình ảnh của mình. Nếu bạn không thể sử dụng luồng đó, hãy gọi phương thức
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} và
+cung cấp một trình nghe.</p>
+
+<p>Bạn có thể truy xuất màu nổi bật từ hình ảnh bằng cách sử dụng các phương thức getter trong lớp
+<code>Palette</code> chẳng hạn như <code>Palette.getVibrantColor</code>.</p>
+
+<p>Để sử dụng lớp {@link android.support.v7.graphics.Palette} trong dự án của mình, hãy thêm
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Phần phụ thuộc Gradle</a> sau vào
+mô-đun ứng dụng của bạn:</p>
+
+<pre>
+dependencies {
+    ...
+    compile 'com.android.support:palette-v7:21.0.0'
+}
+</pre>
+
+<p>Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho lớp
+{@link android.support.v7.graphics.Palette}.</p>
+
+
+<h2 id="VectorDrawables">Tạo Nội dung vẽ được Véc-tơ</h2>
+
+<!-- video box -->
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<div>
+    <h3>Video</h3>
+    <p>Đồ họa Véc-tơ Android</p>
+</div>
+</a>
+
+<p>Trong Android 5.0 (API mức 21) và cao hơn, bạn có thể định nghĩa nội dung vẽ được véc-tơ co giãn mà không làm mất
+độ sắc nét. Bạn chỉ cần một tệp tài sản cho một hình ảnh véc-tơ, đối lập với tệp tài sản cho
+từng mật độ màn hình trong trường hợp hình ảnh bitmap. Để tạo một hình ảnh véc-tơ, bạn định nghĩa chi tiết
+của hình ảnh trong phần tử XML <code>&lt;vector&gt;</code>.</p>
+
+<p>Ví dụ sau định nghĩa hình ảnh véc-tơ có hình một trái tim:</p>
+
+<pre>
+&lt;!-- res/drawable/heart.xml -->
+&lt;vector xmlns:android="http://schemas.android.com/apk/res/android"
+    &lt;!-- intrinsic size of the drawable -->
+    android:height="256dp"
+    android:width="256dp"
+    &lt;!-- size of the virtual canvas -->
+    android:viewportWidth="32"
+    android:viewportHeight="32">
+
+  &lt;!-- draw a path -->
+  &lt;path android:fillColor="#8fff"
+      android:pathData="M20.5,9.5
+                        c-1.955,0,-3.83,1.268,-4.5,3
+                        c-0.67,-1.732,-2.547,-3,-4.5,-3
+                        C8.957,9.5,7,11.432,7,14
+                        c0,3.53,3.793,6.257,9,11.5
+                        c5.207,-5.242,9,-7.97,9,-11.5
+                        C25,11.432,23.043,9.5,20.5,9.5z" />
+&lt;/vector>
+</pre>
+
+<p>Hình ảnh véc-tơ được biểu diễn trong Android dưới dạng đối tượng {@link android.graphics.drawable.VectorDrawable}
+. Để biết thêm thông tin về cú pháp <code>pathData</code>, hãy xem tham chiếu <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">Đường dẫn SVG</a>. Để biết thêm thông tin
+về việc tạo hiệu ứng hoạt hình các thuộc tính của nội dung vẽ được véc-tơ, hãy xem
+<a href="{@docRoot}training/material/animations.html#AnimVector">Tạo Hiệu ứng Hoạt hình Nội dung vẽ được Véc-tơ</a>.</p>
diff --git a/docs/html-intl/intl/vi/training/material/get-started.jd b/docs/html-intl/intl/vi/training/material/get-started.jd
new file mode 100644
index 0000000..9e612ad
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/get-started.jd
@@ -0,0 +1,171 @@
+page.title=Bắt đầu
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#ApplyTheme">Áp dụng Chủ đề Material</a></li>
+  <li><a href="#Layouts">Thiết kế Bố trí của Bạn</a></li>
+  <li><a href="#Depth">Quy định Độ cao trong Dạng xem của Bạn</a></li>
+  <li><a href="#ListsCards">Tạo Danh sách và Thẻ</a></li>
+  <li><a href="#Animations">Tùy chỉnh Hoạt hình của Bạn</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Để tạo ứng dụng với material design:</p>
+
+<ol>
+  <li style="margin-bottom:10px">
+    Xem phần <a href="http://www.google.com/design/spec">đặc tả phong cách material design</a>.</li>
+  <li style="margin-bottom:10px">
+    Áp dụng chủ đề <strong>material</strong> cho ứng dụng của bạn.</li>
+  <li style="margin-bottom:10px">
+    Tạo <strong>bố trí</strong> của bạn theo hướng dẫn về material design.</li>
+  <li style="margin-bottom:10px">
+    Quy định <strong>độ cao</strong> cho dạng xem của bạn để đổ bóng.</li>
+  <li style="margin-bottom:10px">
+    Sử dụng <strong>widget</strong> hệ thống cho danh sách và thẻ.</li>
+  <li style="margin-bottom:10px">
+    Tùy chỉnh <strong>hoạt hình</strong> trong ứng dụng của bạn.</li>
+</ol>
+
+<h3>Duy trì tính tương thích ngược</h3>
+
+<p>Bạn có thể thêm nhiều tính năng material design vào ứng dụng của mình trong khi vẫn duy trì tính tương thích với
+các phiên bản Android trước 5.0. Để biết thêm thông tin, hãy xem phần
+<a href="{@docRoot}training/material/compatibility.html">Duy trì Tính tương thích</a>.</p>
+
+<h3>Cập nhật ứng dụng của bạn với material design</h3>
+
+<p>Để cập nhật một ứng dụng hiện tại bằng material design, hãy cập nhật các bố trí của bạn theo
+hướng dẫn về material design. Cũng nhớ kết hợp chiều sâu, phản hồi chạm và
+hoạt hình.</p>
+
+<h3>Tạo ứng dụng mới với material design</h3>
+
+<p>Nếu bạn tạo một ứng dụng mới với các tính năng của material design, <a href="http://www.google.com/design/spec">hướng dẫn về material design</a> cung cấp cho bạn một
+khuôn khổ thiết kế súc tích. Làm theo hướng dẫn đó và sử dụng chức năng mới trong khuôn khổ Android
+để thiết kế và phát triển ứng dụng của bạn.</p>
+
+
+<h2 id="ApplyTheme">Áp dụng Chủ đề Material</h2>
+
+<p>Để áp dụng chủ đề material trong ứng dụng của mình, hãy quy định một kiểu kế thừa từ
+<code>android:Theme.Material</code>:</p>
+
+<pre>
+&lt;!-- res/values/styles.xml -->
+&lt;resources>
+  &lt;!-- your theme inherits from the material theme -->
+  &lt;style name="AppTheme" parent="android:Theme.Material">
+    &lt;!-- theme customizations -->
+  &lt;/style>
+&lt;/resources>
+</pre>
+
+<p>Chủ đề material cung cấp các widget hệ thống được cập nhật để bạn có thể đặt bảng màu và
+hoạt hình mặc định cho phản hồi chạm và chuyển tiếp hoạt động. Để biết thêm chi tiết, hãy xem phần
+<a href="{@docRoot}training/material/theme.html">Sử dụng Chủ đề Material</a>.</p>
+
+
+<h2 id="Layouts">Thiết kế Bố trí của Bạn</h2>
+
+<p>Bên cạnh việc áp dụng và tùy chỉnh chủ đề material, bố trí của bạn cần tuân thủ
+<a href="http://www.google.com/design/spec">hướng dẫn về material design</a>. Khi thiết kế
+bố trí của bạn, hãy đặc biệt chú ý tới điều sau đây:</p>
+
+<ul>
+<li>Lưới đường cơ sở</li>
+<li>Dòng chính</li>
+<li>Giãn cách</li>
+<li>Kích cỡ mục tiêu chạm</li>
+<li>Cấu trúc bố trí</li>
+</ul>
+
+
+<h2 id="Depth">Quy định Độ cao trong Dạng xem của Bạn</h2>
+
+<p>Dạng xem có thể đổ bóng và giá trị độ cao của một dạng xem 
+xác định kích cỡ bóng và thứ tự vẽ của nó. Để đặt độ cao của một dạng xem, hãy sử dụng thuộc tính
+<code>android:elevation</code> trong bố trí của bạn:</p>
+
+<pre>
+&lt;TextView
+    android:id="&#64;+id/my_textview"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:text="&#64;string/next"
+    android:background="&#64;color/white"
+    android:elevation="5dp" />
+</pre>
+
+<p>Thuộc tính <code>translationZ</code> mới cho phép bạn tạo những hoạt hình phản ánh các thay đổi
+tạm thời về độ cao của một dạng xem. Thay đổi về độ cao có thể hữu ích khi
+<a href="{@docRoot}training/material/animations.html#ViewState">phản hồi lại các cử chỉ
+chạm</a>.</p>
+
+<p>Để biết thêm chi tiết, hãy xem phần <a href="{@docRoot}training/material/shadows-clipping.html">Định nghĩa
+Đổ bóng và Dạng xem Cắt hình</a>.</p>
+
+
+<h2 id="ListsCards">Tạo Danh sách và Thẻ</h2>
+
+<p>{@link android.support.v7.widget.RecyclerView} là một phiên bản dễ ghép nối hơn của {@link
+android.widget.ListView} có hỗ trợ các kiểu bố trí khác nhau và cung cấp những cải tiến về hiệu năng.
+{@link android.support.v7.widget.CardView} cho phép bạn hiện các mẩu thông tin bên trong thẻ với
+một diện mạo nhất quán giữa các ứng dụng. Ví dụ về mã sau đây minh họa cách thêm 
+{@link android.support.v7.widget.CardView} vào bố trí của bạn:</p>
+
+<pre>
+&lt;android.support.v7.widget.CardView
+    android:id="&#64;+id/card_view"
+    android:layout_width="200dp"
+    android:layout_height="200dp"
+    card_view:cardCornerRadius="3dp">
+    ...
+&lt;/android.support.v7.widget.CardView>
+</pre>
+
+<p>Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/lists-cards.html">Tạo Danh sách
+và Thẻ</a>.</p>
+
+
+<h2 id="Animations">Tùy chỉnh Hoạt hình của Bạn</h2>
+
+<p>Android 5.0 (API mức 21) bao gồm các API mới để tạo hoạt hình tùy chỉnh trong ứng dụng của bạn.
+Ví dụ, bạn có thể cho phép chuyển tiếp hoạt động và định nghĩa một chuyển tiếp ra bên trong một
+hoạt động:</p>
+
+<pre>
+public class MyActivity extends Activity {
+
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // enable transitions
+        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
+        setContentView(R.layout.activity_my);
+    }
+
+    public void onSomeButtonClicked(View view) {
+        getWindow().setExitTransition(new Explode());
+        Intent intent = new Intent(this, MyOtherActivity.class);
+        startActivity(intent,
+                      ActivityOptions
+                          .makeSceneTransitionAnimation(this).toBundle());
+    }
+}
+</pre>
+
+<p>Khi bạn bắt đầu một hoạt động khác từ hoạt động này, chuyển tiếp ra được kích hoạt.</p>
+
+<p>Để tìm hiểu thêm về các API hoạt hình mới, hãy xem <a href="{@docRoot}training/material/animations.html">Định nghĩa Hoạt hình Tùy chỉnh</a>.</p>
diff --git a/docs/html-intl/intl/vi/training/material/index.jd b/docs/html-intl/intl/vi/training/material/index.jd
new file mode 100644
index 0000000..44b74e1
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/index.jd
@@ -0,0 +1,61 @@
+page.title=Material Design cho Nhà phát triển
+page.type=design
+page.image=images/cards/material_2x.png
+page.metaDescription=Tìm hiểu cách áp dụng material design cho ứng dụng của bạn.
+
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Phụ thuộc và Điều kiện Tiên quyết</h2>
+  <ul>
+    <li>Android 5.0 (API mức 21)</li>
+  </ul>
+</div>
+</div>
+
+<p>Material design là một hướng dẫn toàn diện về thiết kế trực quan, chuyển động
+và tương tác giữa nhiều nền tảng và thiết bị. Để sử dụng material design trong ứng dụng Androi của mình, hãy làm theo hướng dẫn
+mô tả trong 
+<a href="http://www.google.com/design/spec/material-design/introduction.html">đặc tả
+material design</a> và sử dụng những thành phần và tính năng mới sẵn có trong Android 5.0
+(API mức 21).</p>
+
+<p>Bài học này sẽ cho bạn thấy cách tạo ứng dụng material design bằng những phần tử sau:</p>
+
+<ul>
+<li>Chủ đề material</li>
+<li>Widget cho thẻ và danh sách</li>
+<li>Đổ bóng và cắt xén dạng xem tùy chỉnh</li>
+<li>Nội dung vẽ được véc-tơ</li>
+<li>Hoạt hình tùy chỉnh</li>
+</ul>
+
+<p>Bài học này cũng hướng dẫn cho bạn cách duy trì tính tương thích với các phiên bản Android trước
+5.0 (API mức 21) khi bạn sử dụng các tính năng về material design trong ứng dụng của mình.</p>
+
+<h2>Bài học</h2>
+
+<dl>
+  <dt><a href="{@docRoot}training/material/get-started.html">Bắt đầu</a></dt>
+  <dd>Tìm hiểu cách cập nhật ứng dụng của bạn với các tính năng của material design.</dd>
+
+  <dt><a href="{@docRoot}training/material/theme.html">Sử dụng Chủ đề Material</a></dt>
+  <dd>Tìm hiểu cách áp dụng các kiểu phong cách material design cho ứng dụng của bạn.</dd>
+
+  <dt><a href="{@docRoot}training/material/lists-cards.html">Tạo Danh sách và Thẻ</a></dt>
+  <dd>Tìm hiểu cách tạo danh sách và thẻ với một diện mạo và cảm giác nhất quán bằng cách sử dụng widget hệ thống.</dd>
+
+  <dt><a href="{@docRoot}training/material/shadows-clipping.html">Định nghĩa Đổ bóng và Dạng xem Cắt hình</a></dt>
+  <dd>Tìm hiểu cách đặt độ cao cho dạng xem của bạn để tạo đổ bóng tùy chỉnh và cách cắt hình dạng xem.</dd>
+
+  <dt><a href="{@docRoot}training/material/drawables.html">Làm việc với Nội dung vẽ được</a></dt>
+  <dd>Tìm hiểu cách tạo nội dung vẽ được véc-tơ và cách nhuộm màu tài nguyên vẽ được.</dd>
+
+  <dt><a href="{@docRoot}training/material/animations.html">Định nghĩa Hoạt hình Tùy chỉnh</a></dt>
+  <dd>Tìm hiểu cách tạo hoạt hình tùy chỉnh cho các dạng xem và chuyển tiếp hoạt động bằng các phần tử chung.</dd>
+
+  <dt><a href="{@docRoot}training/material/compatibility.html">Duy trì Tính tương thích</a></dt>
+  <dd>Tìm hiểu cách duy trì tính tương thích với các phiên bản nền tảng trước Android 5.0.</dd>
+</dl>
diff --git a/docs/html-intl/intl/vi/training/material/lists-cards.jd b/docs/html-intl/intl/vi/training/material/lists-cards.jd
new file mode 100644
index 0000000..7127649
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/lists-cards.jd
@@ -0,0 +1,266 @@
+page.title=Tạo Danh sách và Thẻ
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#RecyclerView">Tạo Danh sách</a></li>
+  <li><a href="#CardView">Tạo Thẻ</a></li>
+  <li><a href="#Dependencies">Thêm Phụ thuộc</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Để tạo danh sách và thẻ phức tạp bằng phong cách material design trong ứng dụng của mình, bạn có thể sử dụng widget
+{@link android.support.v7.widget.RecyclerView} và {@link android.support.v7.widget.CardView}
+.</p>
+
+
+<h2 id="RecyclerView">Tạo Danh sách</h2>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} là một phiên bản nâng cao và linh hoạt hơn
+của {@link android.widget.ListView}. Widget này là một bộ chứa để hiển thị các tập dữ liệu
+lớn có thể được cuộn rất hiệu quả bằng cách duy trì một số dạng xem hữu hạn. Sử dụng widget
+{@link android.support.v7.widget.RecyclerView} khi bạn có các bộ sưu tập dữ liệu với phần tử
+thay đổi vào thời gian chạy dựa vào hành động của người dùng hoặc sự kiện mạng.</p>
+
+<p>Lớp {@link android.support.v7.widget.RecyclerView} đơn giản hóa việc hiển thị và xử lý
+các tập dữ liệu lớn bằng cách cung cấp:</p>
+
+<ul>
+  <li>Trình quản lý bố trí để định vị mục</li>
+  <li>Hoạt hình mặc định cho các thao tác chung đối với mục như loại bỏ hoặc thêm mục</li>
+</ul>
+
+<p>Bạn cũng có sự linh hoạt để định nghĩa các trình quản lý bố trí tùy chỉnh và hoạt hình cho widget {@link
+android.support.v7.widget.RecyclerView}.</p>
+
+<img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
+<p class="img-caption">
+<strong>Hình 1</strong>. Widget <code>RecyclerView</code>.
+</p>
+
+<p>Để sử dụng widget {@link android.support.v7.widget.RecyclerView}, bạn phải quy định một
+trình điều hợp và trình quản lý bố trí. Để tạo một trình điều hợp, hãy mở rộng lớp {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Chi tiết
+của triển khai phụ thuộc vào các chỉ định của tập dữ liệu của bạn và kiểu dạng xem. Để biết thêm
+thông tin, hãy xem <a href="#RVExamples">ví dụ</a> bên dưới.</p>
+
+<div style="float:right">
+<img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
+<p class="img-caption" style="margin-left:8px">
+<strong>Hình 2</strong> - Danh sách với <code>RecyclerView</code>.
+</p>
+</div>
+
+<p><strong>Trình quản lý bố trí</strong> sẽ định vị các dạng xem mục bên trong {@link
+android.support.v7.widget.RecyclerView} và xác định thời điểm sử dụng lại các dạng xem mục
+không còn hiển thị trước người dùng nữa. Để sử dụng lại (hoặc <em>tái chế</em>) một dạng xem, trình quản lý bố
+trí có thể yêu cầu trình điều hợp thay thế nội dung của dạng xem bằng một phần tử khác từ tập dữ liệu. Tái chế
+dạng xem bằng cách này sẽ cải thiện hiệu năng nhờ tránh tạo những dạng xem không cần thiết hoặc thực hiện
+tra cứu {@link android.app.Activity#findViewById findViewById()} tốn kém.</p>
+
+<p>{@link android.support.v7.widget.RecyclerView} cung cấp những trình quản lý bố trí dựng sẵn sau:</p>
+
+<ul>
+<li>{@link android.support.v7.widget.LinearLayoutManager} hiện các mục trong một danh sách cuộn
+thẳng đứng hoặc nằm ngang.</li>
+<li>{@link android.support.v7.widget.GridLayoutManager} hiện các mục trong lưới.</li>
+<li>{@link android.support.v7.widget.StaggeredGridLayoutManager} hiện các mục trong một lưới so le.</li>
+</ul>
+
+<p>Để tạo một trình quản lý bố trí tùy chỉnh, hãy mở rộng lớp {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.</p>
+
+<h3>Hoạt hình</h3>
+
+<p>Hoạt hình để thêm và loại bỏ mục được kích hoạt theo mặc định trong {@link
+android.support.v7.widget.RecyclerView}. Để tùy chỉnh những hoạt hình này, hãy mở rộng lớp
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} và sử dụng
+phương thức {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+.</p>
+
+<h3 id="RVExamples">Ví dụ</h3>
+
+<p>Ví dụ đoạn mã sau minh họa cách thêm
+{@link android.support.v7.widget.RecyclerView} vào bố trí:</p>
+
+<pre>
+&lt;!-- A RecyclerView with some commonly used attributes -->
+&lt;android.support.v7.widget.RecyclerView
+    android:id="@+id/my_recycler_view"
+    android:scrollbars="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"/>
+</pre>
+
+<p>Sau khi thêm widget {@link android.support.v7.widget.RecyclerView} vào bố trí của bạn,
+hãy lấy một núm điều tác tới đối tượng, kết nối nó với một trình quản lý bố trí và gắn kèm một trình điều hợp cho dữ liệu
+cần được hiển thị:</p>
+
+<pre>
+public class MyActivity extends Activity {
+    private RecyclerView mRecyclerView;
+    private RecyclerView.Adapter mAdapter;
+    private RecyclerView.LayoutManager mLayoutManager;
+
+    &#64;Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.my_activity);
+        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
+
+        // use this setting to improve performance if you know that changes
+        // in content do not change the layout size of the RecyclerView
+        mRecyclerView.setHasFixedSize(true);
+
+        // use a linear layout manager
+        mLayoutManager = new LinearLayoutManager(this);
+        mRecyclerView.setLayoutManager(mLayoutManager);
+
+        // specify an adapter (see also next example)
+        mAdapter = new MyAdapter(myDataset);
+        mRecyclerView.setAdapter(mAdapter);
+    }
+    ...
+}
+</pre>
+
+<p>Trình điều hợp cung cấp truy cập vào các mục trong tập dữ liệu của bạn, tạo dạng xem cho mục và
+thay thế nội dung của một số dạng xem bằng mục dữ liệu mới khi mục ban đầu không còn
+hiển thị. Ví dụ đoạn mã sau đây thể hiện việc triển khai đơn giản của tập dữ liệu bao gồm
+một mảng xâu được hiển thị bằng widget {@link android.widget.TextView}:</p>
+
+<pre>
+public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
+    private String[] mDataset;
+
+    // Provide a reference to the views for each data item
+    // Complex data items may need more than one view per item, and
+    // you provide access to all the views for a data item in a view holder
+    public static class ViewHolder extends RecyclerView.ViewHolder {
+        // each data item is just a string in this case
+        public TextView mTextView;
+        public ViewHolder(TextView v) {
+            super(v);
+            mTextView = v;
+        }
+    }
+
+    // Provide a suitable constructor (depends on the kind of dataset)
+    public MyAdapter(String[] myDataset) {
+        mDataset = myDataset;
+    }
+
+    // Create new views (invoked by the layout manager)
+    &#64;Override
+    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
+                                                   int viewType) {
+        // create a new view
+        View v = LayoutInflater.from(parent.getContext())
+                               .inflate(R.layout.my_text_view, parent, false);
+        // set the view's size, margins, paddings and layout parameters
+        ...
+        ViewHolder vh = new ViewHolder(v);
+        return vh;
+    }
+
+    // Replace the contents of a view (invoked by the layout manager)
+    &#64;Override
+    public void onBindViewHolder(ViewHolder holder, int position) {
+        // - get element from your dataset at this position
+        // - replace the contents of the view with that element
+        holder.mTextView.setText(mDataset[position]);
+
+    }
+
+    // Return the size of your dataset (invoked by the layout manager)
+    &#64;Override
+    public int getItemCount() {
+        return mDataset.length;
+    }
+}
+</pre>
+
+
+<div style="float:right;margin-top:15px;margin-left:30px">
+<img src="{@docRoot}design/material/images/card_travel.png" alt="" width="225" height="383">
+<p class="img-caption" style="margin-left:12px">
+<strong>Hình 3</strong>. Ví dụ thẻ.
+</p>
+</div>
+
+<h2 id="CardView">Tạo Thẻ</h2>
+
+<p>{@link android.support.v7.widget.CardView} mở rộng lớp {@link android.widget.FrameLayout} và
+cho phép bạn hiển thị thông tin bên trong các thẻ có diện mạo nhất quán trên khắp nền tảng. Widget {@link
+android.support.v7.widget.CardView} có thể có đổ bóng và góc bo tròn.</p>
+
+<p>Để tạo một thẻ có bóng, hãy sử dụng thuộc tính <code>card_view:cardElevation</code>.
+{@link android.support.v7.widget.CardView} sử dụng độ cao thực và đổ bóng động trên Android 5.0
+(API mức 21) và cao hơn, và quay lại triển khai đổ bóng theo lập trình trên các phiên bản cũ hơn.
+Để biết thêm thông tin, hãy xem phần <a href="{@docRoot}training/material/compatibility.html">Duy trì
+Tính tương thích</a>.</p>
+
+<p>Sử dụng những thuộc tính sau để tùy chỉnh diện mạo của widget 
+{@link android.support.v7.widget.CardView}:</p>
+
+<ul>
+  <li>Để đặt bán kính góc trong bố trí của bạn, hãy sử dụng thuộc tính <code>card_view:cardCornerRadius</code>
+.</li>
+  <li>Để đặt bán kính góc trong mã của bạn, hãy sử dụng phương thức <code>CardView.setRadius</code>.</li>
+  <li>Để đặt màu nền của thẻ, hãy sử dụng thuộc tính <code>card_view:cardBackgroundColor</code>
+.</li>
+</ul>
+
+<p>Ví dụ về mã sau đây cho bạn thấy cách thêm widget {@link android.support.v7.widget.CardView}
+trong bố trí của mình:</p>
+
+<pre>
+&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    ... >
+    &lt;!-- A CardView that contains a TextView -->
+    &lt;android.support.v7.widget.CardView
+        xmlns:card_view="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/card_view"
+        android:layout_gravity="center"
+        android:layout_width="200dp"
+        android:layout_height="200dp"
+        card_view:cardCornerRadius="4dp">
+
+        &lt;TextView
+            android:id="@+id/info_text"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    &lt;/android.support.v7.widget.CardView>
+&lt;/LinearLayout>
+</pre>
+
+<p>Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho {@link android.support.v7.widget.CardView}.</p>
+
+
+<h2 id="Dependencies">Thêm Phụ thuộc</h2>
+
+<p>Widget {@link android.support.v7.widget.RecyclerView} và {@link android.support.v7.widget.CardView}
+là bộ phận của <a href="{@docRoot}tools/support-library/features.html#v7">Thư viện Hỗ trợ
+v7</a>. Để sử dụng những widget này trong dự án của mình, hãy thêm những
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Phụ thuộc Gradle</a> này vào mô-đun
+ứng dụng của bạn:</p>
+
+<pre>
+dependencies {
+    ...
+    compile 'com.android.support:cardview-v7:21.0.+'
+    compile 'com.android.support:recyclerview-v7:21.0.+'
+}
+</pre>
diff --git a/docs/html-intl/intl/vi/training/material/shadows-clipping.jd b/docs/html-intl/intl/vi/training/material/shadows-clipping.jd
new file mode 100644
index 0000000..e9091f2
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/shadows-clipping.jd
@@ -0,0 +1,133 @@
+page.title=Định nghĩa Đổ bóng và Dạng xem Cắt hình
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#Elevation">Gán Độ cao cho Dạng xem của Bạn</a></li>
+  <li><a href="#Shadows">Tùy chỉnh Đổ bóng và Viền của Dạng xem</a></li>
+  <li><a href="#Clip">Dạng xem Cắt hình</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+<p>Material design giới thiệu độ cao cho phần tử UI. Độ cao giúp người dùng hiểu được
+tầm quan trọng tương đối của từng phần tử và tập chung sự chú ý của họ vào tác vụ hiện có.</p>
+
+<p>Độ cao của một dạng xem, được biểu diễn bằng thuộc tính Z, sẽ xác định diện mạo trực quan của
+bóng đổ: dạng xem có giá trị Z cao hơn sẽ đổ bóng lớn hơn, mềm hơn. Dạng xem có giá trị Z cao hơn sẽ che khuất dạng xem 
+có giá trị Z thấp hơn; tuy nhiên, giá trị Z của một dạng xem không ảnh hưởng tới kích cỡ của dạng xem.</p>
+
+<p>Đổ bóng được vẽ bởi dạng xem mẹ của dạng xem cao hơn, do vậy nó phụ thuộc vào tiêu chuẩn cắt dạng xem,
+được cắt bởi dạng xem mẹ theo mặc định.</p>
+
+<p>Độ cao cũng hữu ích trong việc tạo hoạt hình ở nơi widget tạm thời dâng cao hơn
+mặt phẳng dạng xem khi thực hiện một hành động nào đó.</p>
+
+<p>Để biết thêm thông tin về độ cao trong material design, hãy xem
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">Đối tượng
+trong không gian 3D</a>.</p>
+
+
+<h2 id="Elevation">Gán Độ cao cho Dạng xem của Bạn</h2>
+
+<p>Giá trị Z của một dạng xem có hai thành phần:
+
+<ul>
+<li>Độ cao: Thành phần tĩnh.</li>
+<li>Độ dịch: Thành phần động được sử dụng cho hoạt hình.</li>
+</ul>
+
+<p><code>Z = elevation + translationZ</code></p>
+
+<img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
+<p class="img-caption"><strong>Hình 1</strong> - Đổ bóng cho các độ cao dạng xem khác nhau.</p>
+
+<p>Để đặt độ cao của dạng xem trong một định nghĩa bố trí, hãy sử dụng thuộc tính <code>android:elevation</code>
+. Để đặt độ cao của dạng xem trong mã của một hoạt động, hãy sử dụng phương thức 
+{@link android.view.View#setElevation View.setElevation()}.</p>
+
+<p>Để đặt độ dịch của dạng xem, hãy sử dụng phương thức {@link android.view.View#setTranslationZ
+View.setTranslationZ()}.</p>
+
+<p>Các phương thức {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} và {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} mới cho phép
+bạn dễ dàng tạo hiệu ứng hoạt hình cho độ cao của dạng xem. Để biết thêm thông tin, hãy xem tài liệu tham khảo API cho 
+{@link android.view.ViewPropertyAnimator} và hướng dẫn cho nhà phát triển về <a href="{@docRoot}guide/topics/graphics/prop-animation.html">Hoạt hình Thuộc tính</a>
+.</p>
+
+<p>Bạn cũng có thể sử dụng {@link android.animation.StateListAnimator} để
+quy định những hoạt hình này bằng cách khai báo. Điều này đặc biệt hữu ích đối với trường hợp các thay đổi
+trạng thái sẽ kích hoạt hoạt hình như khi người dùng nhấn một nút. Để biết thêm thông tin, hãy xem phần
+<a href="{@docRoot}training/material/animations.html#ViewState">Tạo Hiệu ứng Hoạt hình Thay đổi Trạng thái Xem</a>.</p>
+
+<p>Giá trị Z được đo bằng dp (điểm ảnh độc lập với mật độ).</p>
+
+
+<h2 id="Shadows">Tùy chỉnh Đổ bóng và Viền của Dạng xem</h2>
+
+<p>Các giới hạn nội dung vẽ được của nền dạng xem sẽ xác định hình dạng mặc định của bóng.
+<strong>Viền</strong> biểu thị hình dạng ngoài của một đối tượng đồ họa và định nghĩa vùng
+gợn sóng cho phản hồi chạm.</p>
+
+<p>Hãy cân nhắc dạng xem sau được định nghĩa với nội dung vẽ được làm nền:</p>
+
+<pre>
+&lt;TextView
+    android:id="@+id/myview"
+    ...
+    android:elevation="2dp"
+    android:background="@drawable/myrect" />
+</pre>
+
+<p>Nội dung vẽ được làm nền được định nghĩa là một hình chữ nhật với góc bo tròn:</p>
+
+<pre>
+&lt;!-- res/drawable/myrect.xml -->
+&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    &lt;solid android:color="#42000000" />
+    &lt;corners android:radius="5dp" />
+&lt;/shape>
+</pre>
+
+<p>Dạng xem sẽ tạo đổ bóng có góc bo tròn do nội dung vẽ được làm nền sẽ định nghĩa
+viền của dạng xem. Khi cung cấp viền tùy chỉnh, nó ghi đè hình dạng mặc định của bóng đổ dạng xem.</p>
+
+<p>Để định nghĩa viền tùy chỉnh cho một dạng xem trong mã của bạn:<p>
+
+<ol>
+<li>Mở rộng lớp {@link android.view.ViewOutlineProvider}.</li>
+<li>Ghi đè phương thức {@link android.view.ViewOutlineProvider#getOutline getOutline()}.</li>
+<li>Gán trình cung cấp viền mới cho dạng xem của bạn bằng phương thức {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()}.</li>
+</ol>
+
+<p>Bạn có thể tạo viền hình bầu dục và hình chữ nhật có góc bo tròn bằng cách sử dụng các phương thức trong lớp
+{@link android.graphics.Outline}. Trình cung cấp viền mặc định cho dạng xem sẽ lấy viền
+từ nền của dạng xem. Để ngăn dạng xem đổ bóng, hãy đặt trình cung cấp viền của nó
+thành <code>null</code>.</p>
+
+
+<h2 id="Clip">Dạng xem Cắt hình</h2>
+
+<p>Dạng xem cắt hình cho phép bạn dễ dàng thay đổi hình dạng của một dạng xem. Bạn có thể cắt hình dạng xem để
+nhất quán với các phần tử thiết kế khác hoặc để thay đổi hình dạng của một dạng xem để đáp ứng lại thông tin đầu vào của người dùng.
+Bạn có thể cắt một dạng xem thành vùng viền của nó bằng cách sử dụng phương thức {@link android.view.View#setClipToOutline
+View.setClipToOutline()} hoặc thuộc tính <code>android:clipToOutline</code>. Chỉ
+viền là hình chữ nhật, hình tròn và hình chữ nhật bo tròn mới hỗ trợ cắt hình như được xác định bởi phương thức
+{@link android.graphics.Outline#canClip Outline.canClip()}.</p>
+
+<p>Để cắt dạng xem thành hình dạng của một nội dung vẽ được, hãy đặt nội dung vẽ được làm nền của dạng xem
+(như minh họa bên trên) và gọi phương thức {@link android.view.View#setClipToOutline View.setClipToOutline()}
+.</p>
+
+<p>Cắt dạng xem là một thao tác tốn kém, vì vậy đừng tạo hiệu ứng hoạt hình cho hình dạng bạn sử dụng để
+cắt dạng xem. Để đạt được hiệu ứng này, hãy sử dụng hoạt hình <a href="{@docRoot}training/material/animations.html#Reveal">Hiệu ứng Lộ ra</a>.</p>
diff --git a/docs/html-intl/intl/vi/training/material/theme.jd b/docs/html-intl/intl/vi/training/material/theme.jd
new file mode 100644
index 0000000..9c46b5d
--- /dev/null
+++ b/docs/html-intl/intl/vi/training/material/theme.jd
@@ -0,0 +1,131 @@
+page.title=Sử dụng Chủ đề Material
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>Bài học này hướng dẫn bạn cách</h2>
+<ol>
+  <li><a href="#ColorPalette">Tùy chỉnh Bảng màu</a></li>
+  <li><a href="#StatusBar">Tùy chỉnh Thanh Trạng thái</a></li>
+  <li><a href="#Inheritance">Tạo Chủ đề Dạng xem Riêng</a></li>
+</ol>
+<h2>Bạn cũng nên đọc</h2>
+<ul>
+  <li><a href="http://www.google.com/design/spec">Đặc tả phong cách Material Design</a></li>
+  <li><a href="{@docRoot}design/material/index.html">Material Design trên Android</a></li>
+</ul>
+</div>
+</div>
+
+
+<p>Chủ đề material mới cung cấp:</p>
+
+<ul>
+  <li>Widget hệ thống cho phép bạn đặt bảng màu của chúng</li>
+  <li>Hoạt hình phản hồi chạm cho widget hệ thống</li>
+  <li>Hoạt hình chuyển tiếp hoạt động</li>
+</ul>
+
+<p>Bạn có thể tùy chỉnh diện mạo của chủ đề material
+theo nhận diện thương hiệu của mình bằng một bảng màu mà bạn kiểm soát. Bạn có thể nhuộm màu thanh hành động và
+thanh trạng thái bằng cách sử dụng các thuộc tính chủ đề như minh họa trong <a href="#fig3">Hình 3</a>.</p>
+
+<p>Widget hệ thống có một thiết kế mới và hoạt hình phản hồi chạm. Bạn có thể tùy chỉnh
+bảng màu, hoạt hình phản hồi chạm và chuyển tiếp hoạt động cho ứng dụng của mình.</p>
+
+<p>Chủ đề material được định nghĩa là:</p>
+
+<ul>
+  <li><code>@android:style/Theme.Material</code> (phiên bản tối)</li>
+  <li><code>@android:style/Theme.Material.Light</code> (phiên bản sáng)</li>
+  <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
+</ul>
+
+<p>Để biết danh sách các kiểu material mà bạn có thể sử dụng, hãy xem tài liệu tham chiếu API cho
+{@link android.R.style R.style}.</p>
+
+<!-- two columns, dark/light material theme example -->
+<div style="width:700px;margin-top:25px;margin-bottom:10px">
+<div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
+  <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238">
+  <div style="width:170px;margin:0 auto">
+  <p style="margin-top:8px;font-size:12px"><strong>Hình 1</strong>. Giao diện material tối</p>
+  </div>
+</div>
+<div style="float:left;width:250px;margin-right:0px;">
+  <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238">
+  <div style="width:170px;margin:0 auto">
+  <p style="margin-top:8px;font-size:12px"><strong>Hình 2</strong>. Giao diện material sáng</p>
+  </div>
+</div>
+<br style="clear:left">
+</div>
+
+<p class="note">
+<strong>Lưu ý:</strong> Chủ đề material chỉ sẵn có trong Android 5.0 (API mức 21) trở
+lên. <a href="{@docRoot}tools/support-library/features.html#v7">Thư viện Hỗ trợ v7</a>
+cung cấp chủ đề mang phong cách material design cho một số widget và hỗ trợ tùy chỉnh
+bảng màu. Để biết thêm thông tin, hãy xem phần
+<a href="{@docRoot}training/material/compatibility.html">Duy trì Tính tương thích</a>.
+</p>
+
+
+<h2 id="ColorPalette">Tùy chỉnh Bảng màu</h2>
+
+<p style="margin-bottom:30px">Để tùy chỉnh các màu cơ bản của chủ đề cho phù hợp với nhãn hiệu của bạn, hãy định nghĩa
+màu tùy chỉnh của bạn bằng thuộc tính chủ đề khi bạn kế thừa từ chủ đề material:</p>
+
+<pre>
+&lt;resources>
+  &lt;!-- inherit from the material theme -->
+  &lt;style name="AppTheme" parent="android:Theme.Material">
+    &lt;!-- Main theme colors -->
+    &lt;!--   your app branding color for the app bar -->
+    &lt;item name="android:colorPrimary">@color/primary&lt;/item>
+    &lt;!--   darker variant for the status bar and contextual app bars -->
+    &lt;item name="android:colorPrimaryDark">@color/primary_dark&lt;/item>
+    &lt;!--   theme UI controls like checkboxes and text fields -->
+    &lt;item name="android:colorAccent">@color/accent&lt;/item>
+  &lt;/style>
+&lt;/resources>
+</pre>
+
+<div style="float:right;margin-left:25px;margin-top:20px;margin-bottom:10px" id="fig3">
+<img src="{@docRoot}training/material/images/ThemeColors.png" width="250" height="445" />
+<p class="img-caption" style="margin-bottom:0px">
+<strong>Hình 3.</strong> Tùy chỉnh chủ đề material.</p>
+</div>
+
+
+<h2 id="StatusBar">Tùy chỉnh Thanh Trạng thái</h2>
+
+<p>Chủ đề material cho phép bạn dễ dàng tùy chỉnh thanh trạng thái để bạn có thể quy định
+màu cho phù hợp với nhãn hiệu của mình và đảm bảo đủ độ tương phản để hiển thị biểu tượng trạng thái màu trắng. Để
+đặt màu tùy chỉnh cho thanh trạng thái, hãy sử dụng thuộc tính <code>android:statusBarColor</code> khi
+bạn mở rộng chủ đề material. Theo mặc định, <code>android:statusBarColor</code> kế thừa
+giá trị của <code>android:colorPrimaryDark</code>.</p>
+
+<p>Bạn cũng có thể tự vẽ phía sau thanh trạng thái. Ví dụ, nếu bạn muốn hiển thị
+thanh trạng thái trong suốt trên một ảnh chụp, với graddien hơi tối để đảm bảo biểu tượng
+trạng thái màu trắng nhìn thấy được. Để làm vậy, hãy đặt thuộc tính <code>android:statusBarColor</code> thành
+<code>&#64;android:color/transparent</code> và điều chỉnh cờ cửa sổ nếu cần. Bạn cũng có thể
+sử dụng phương thức {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} cho hoạt hình
+hoặc hiệu ứng mờ dần.</p>
+
+<p class="note">
+<strong>Lưu ý:</strong> Thanh trạng thái cần luôn có một bản vẽ rõ ràng từ
+thanh công cụ chính, trừ trường hợp bạn hiển thị nội dung hình ảnh hoặc phương tiện phong phú từ cạnh tới cạnh phía sau
+những thanh này và khi bạn sử dụng gradient để đảm bảo rằng các biểu tượng vẫn nhìn thấy được.
+</p>
+
+<p>Khi bạn tùy chỉnh thanh điều hướng và trạng thái, hãy khiến cả hai đều trong suốt hoặc chỉ sửa đổi
+thanh trạng thái. Thanh điều hướng nên giữ lại màu đen trong mọi trường hợp khác.</p>
+
+
+<h2 id="Inheritance">Tạo Chủ đề Dạng xem Riêng</h3>
+
+<p>Những phần tử trong định nghĩa bố trí XML có thể quy định thuộc tính <code>android:theme</code> để
+tham chiếu tới một tài nguyên chủ đề. Thuộc tính này sửa đổi chủ đề cho phần tử và bất cứ
+phần tử con nào, điều này có ích đối với việc thay đổi bảng màu của chủ đề trong một phần cụ thể
+của giao diện.</p>
diff --git a/docs/html-intl/intl/zh-cn/design/get-started/principles.jd b/docs/html-intl/intl/zh-cn/design/get-started/principles.jd
index fbb46c9..1738c84 100644
--- a/docs/html-intl/intl/zh-cn/design/get-started/principles.jd
+++ b/docs/html-intl/intl/zh-cn/design/get-started/principles.jd
@@ -14,8 +14,8 @@
 
 <h2 id="enchant-me">让我着迷</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">以意想不到的方式让我眼前一亮</h4>
 <p>漂亮的界面、精心布置的动画,或恰到好处的声效,都会带来快乐的体验。
@@ -23,7 +23,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="real-objects-more-fun">实际对象要比按钮和菜单更有趣</h4>
-<p>让用户可以直接触摸和操作您应用中的对象,让执行任务更轻松,让用户更满意。
+<p>让用户可以直接触摸和操作您应用中的对象,这样,可以让执行任务更轻松,让用户更满意。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,8 +49,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">我的应用我做主</h4>
 <p>用户喜欢添加个性化手势,因为这样会让他们觉得更顺手并且一切尽在他们的掌控之中。提供感性、美观的默认手势,但也要考虑到趣味性,不要让可选的定制手势妨碍主要任务的操作。
@@ -58,7 +58,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">让应用了解我</h4>
 <p>逐渐了解用户的偏好。不要让用户反复做出相同的选择,将之前的选择列作快捷选择。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">让我的生活更轻松</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">语言简洁</h4>
 <p>使用简单的字词组成简短的句子。用户往往会跳过冗长的句子。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">图片比文字更直观</h4>
 <p>考虑以图示意。它们会吸引用户的注意力,并且比文字更高效。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">为我决定,但最终由我做主</h4>
 <p>先提供您心目中的最佳选择,而不是先进行询问。太多的选择和决策会让人不悦。
 只是在您的选择可能不当时,才赋予用户“撤消”的权利。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="only-show-when-i-need-it">仅在我需要时显示我所需要的</h4>
 <p>如果一次性看到过多内容,用户会感到无所适从。将任务和信息细分为更小、更容易接受的片段。
 隐藏当前不必要的选项,并在用户操作期间提供指导。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="always-know-where-i-am">我应该始终清楚自己在哪里</h4>
 <p>让用户感到轻车熟路。为应用中的不同场景赋予不同的外观,使用过渡效果来展现屏幕之间的关系。
 提供任务进度反馈。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">决不能让我的成果付诸东流</h4>
 <p>务必保存好用户耗费花时间创造的内容,让他们能随处访问这些内容。跨手机、平板电脑和计算机等平台,记住设置、个人手势和创作内容,
@@ -177,7 +177,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">如果看上去一样,其行为也应当相同</h4>
 <p>通过视觉上的显著差异(而不是微妙差异)帮助用户区分不同的功能。避免使用固定模式,那样会导致外观相似的场景中,用户执行同样的输入,应用却给出不同的响应。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">只在确实对我很重要时才打断我</h4>
 <p>就像优秀的个人助理一样,不要让上司被一些无关紧要的琐事打扰。用户希望专注于核心任务,除非确实非常重要并且情况紧急,否则,打断用户会让人烦不胜烦。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,8 +220,8 @@
 
 <h2 id="make-me-amazing">给我惊喜</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">到处为我提供有用的诀窍</h4>
 <p>如果能自己摸索出花样来,用户总是很开心的。利用直观的图案以及其他 Android 应用中常见的习惯手势,让您的应用更容易学习。
@@ -229,7 +229,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">不是我的错</h4>
-<p>在提醒用户改正错误时要礼貌。他们希望在使用您的应用时感觉自己很聪明。如果用户操作出错,请提供清晰的恢复说明,而不要让他们咀嚼详细的技术信息。如果您能在后台修复错误,那当然更好。
-
+<p>在提醒用户改正错误时要礼貌。他们希望在使用您的应用时感觉自己很聪明。
+如果用户操作出错,请提供清晰的恢复说明,而不要让他们咀嚼详细的技术信息。如果您能在后台修复错误,那当然更好。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">多多鼓励</h4>
 <p>将复杂的任务分解为可轻松完成的小步骤。对操作提供反馈,哪怕只是微弱的灯光,也聊胜于无。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,8 +273,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">为我处理繁重事务</h4>
 <p>通过让新手完成他们认为自己不可能做到的事情,让他们感觉自己就像一名行家。例如,通过提供融合多种照片特效的快捷操作,只需几步,就可以让业余照片达到惊艳的效果。
@@ -282,7 +282,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">让重要事项能更快地完成</h4>
 <p>不是所有操作都同样重要。确定应用中哪些功能是最重要的,将这些功能放在便于找到和使用的地方,例如相机的快门按钮,或者音乐播放器中的暂停按钮。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/zh-cn/design/material/index.jd b/docs/html-intl/intl/zh-cn/design/material/index.jd
index 78e6d38..b667bb8 100644
--- a/docs/html-intl/intl/zh-cn/design/material/index.jd
+++ b/docs/html-intl/intl/zh-cn/design/material/index.jd
@@ -1,7 +1,6 @@
-page.title=材料设计
-page.tags=Material, design
-page.type=设计
-page.image=design/material/images/MaterialLight.png
+page.title=Android 材料设计
+page.tags=Material,design,设计
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -53,13 +52,13 @@
   <li>用于自定义阴影和动画的全新 API</li>
 </ul>
 
-<p>有关在 Android 上实现材料设计的详细信息,请参阅<a href="{@docRoot}training/material/index.html">创建材料设计应用</a>。
+<p>有关在 Android 上实现材料设计的详细信息,请参阅<a href="{@docRoot}training/material/index.html">使用材料设计创建应用</a>。
 </p>
 
 
 <h3>材料主题</h3>
 
-<p>材料主题提供了新的应用样式和系统小工具,让您能够为触摸反馈以及活动转换设置配色工具以及默认动画。
+<p>材料主题提供了新的应用样式和系统小工具,让您能够为触摸反馈以及 Activity 转换设置配色工具以及默认动画。
 </p>
 
 <!-- two columns -->
@@ -136,7 +135,7 @@
 
 <h3>动画</h3>
 
-<p>动画 API 让您可为 UI 控件中的触摸反馈、视图状态更改以及活动转换创建自定义动画。
+<p>动画 API 让您可为 UI 控件中的触摸反馈、视图状态更改以及 Activity 转换创建自定义动画。
 </p>
 
 <p>这些 API 的作用是:</p>
@@ -149,7 +148,7 @@
 使用<strong>循环显示</strong>动画隐藏和显示视图。
 </li>
 <li style="margin-bottom:15px">
-使用自定义<strong>活动转换</strong>动画切换活动。
+使用自定义 <strong>Activity 转换</strong>动画切换 Activity。
 </li>
 <li style="margin-bottom:15px">
 使用<strong>曲线运动</strong>创建更自然的动画。
diff --git a/docs/html-intl/intl/zh-cn/design/patterns/compatibility.jd b/docs/html-intl/intl/zh-cn/design/patterns/compatibility.jd
new file mode 100644
index 0000000..7ec1bf3
--- /dev/null
+++ b/docs/html-intl/intl/zh-cn/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=向后兼容性
+page.tags="support"
+page.metaDescription=关于 Android 4.x 如何让其 UI 设计适应早期硬件和操作系统版本的说明。
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>开发者文档</h3>
+    <p>支持不同设备</p>
+  </div>
+</a>
+
+<p>Android 3.0 中的重大更改包括:</p>
+<ul>
+<li>弃用导航硬按键(返回、菜单、搜索、主屏幕),改为通过虚拟控件(返回、主屏幕、最近使用记录)处理导航。
+</li>
+<li>使用操作栏中的菜单的可靠模式。</li>
+</ul>
+<p>Android 4.0 将这些针对平板电脑的更改引入手机平台。</p>
+
+<h2 id="older-hardware">让 Android 4.0 适应早期硬件和应用</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>带有虚拟导航控件的手机</h4>
+<p>针对 Android 3.0 和后续版本编写的 Android 应用在操作栏中显示操作。操作栏中放不下或者不够重要因而不值得显示在操作栏顶级菜单中的操作将显示在操作溢出菜单中。
+
+</p>
+<p>用户可通过在操作栏中触摸操作溢出菜单来访问该菜单。</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>带有实体导航按键的手机</h4>
+<p>带有传统导航硬按键的 Android 手机在屏幕底部不会显示虚拟导航栏。
+其操作溢出菜单可从硬按键菜单中进行访问。其形成的操作弹出菜单与上例风格相同,但显示在屏幕底部。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>带有虚拟导航控件的手机上的传统应用</h4>
+<p>当您在带有虚拟导航控件的手机上运行为 Android 2.3 或更早版本编写的应用时,在虚拟导航栏的右侧将会显示操作溢出菜单控件。
+您可以触摸这些控件,以传统 Android 菜单风格显示应用的操作。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/zh-cn/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/zh-cn/design/patterns/confirming-acknowledging.jd
index aa4ae1f..d4eaaff 100644
--- a/docs/html-intl/intl/zh-cn/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/zh-cn/design/patterns/confirming-acknowledging.jd
@@ -4,12 +4,12 @@
 
 <p>在某些情况下,当用户在您的应用中调用某个操作时,最好使用文字内容来<em>确认</em>或<em>确知</em>该操作。</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>确认</strong>是要求用户确认自己确实希望执行刚才所调用的操作。在某些情况下,确认随需要用户考虑的操作所相关的警告或关键信息一起显示。</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p><strong>确知</strong>就是显示一段文字信息,让用户知道自己刚才调用的操作已经完成。这将消除系统正在执行的隐式操作的不确定性。在某些情况下,确知随撤消操作的选项一起显示。</p>
   </div>
@@ -22,14 +22,14 @@
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>确认</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>示例:Google Play 书籍</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>在该示例中,用户要求从其 Google Play 书架中删除一本书。系统显示了一条<a href="{@docRoot}design/building-blocks/dialogs.html#alerts">警告</a>来要求确认该操作,因为用户必须知道,一旦删除,该书籍将无法继续在任何设备上使用。</p>
     <p>在设计确认对话框时,请使用反映所请求操作的文字作为标题,使标题更有意义。</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>示例:Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>确认不一定要显示在有两个按钮的警告中。在启动 Android Beam 后,系统提示用户触摸要分享的内容(本例中是一张照片)。如果他们决定不继续操作,只需移开手机即可。</p>
@@ -37,15 +37,15 @@
 </div>
 
 <h2>确知</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>示例:已保存中断的 Gmail 草稿</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
     <p>在本例中,如果用户在 Gmail 撰写邮件屏幕中向后或向上导航,可能会发生一些意外情况,此时会自动保存当前草稿。Toast 形式的确知会明确告知这一点。它会在几秒钟后消失。</p>
     <p>在这种情况下不能执行撤消操作,因为保存是由应用发起的,而不是由用户执行的。通过导航至草稿列表,可迅速方便地恢复邮件。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>示例:已删除 Gmail 会话</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>在用户从 Gmail 中的列表删除某个会话后,会出现带撤消选项的确知。确知消息会一直等到用户采取无关操作才会消失,例如滚动列表。</p>
@@ -53,14 +53,14 @@
 </div>
 
 <h2>无需确认或确知</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>示例:+1 操作</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>无需确认</strong>。如果用户意外触摸 +1 按钮,不会有什么大问题。他们只需再次触摸该按钮,撤消该操作即可。</p>
     <p><strong>无需确知</strong>。用户将看到 +1 按钮弹起并变红。这是非常明确的信号。</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>示例:从主屏幕删除应用</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>无需确认</strong>。这属于有意操作:用户必须将项目拖放到相对较大并且独立的目标上。因此,很难发生意外。但是如果用户反悔决定,只需数秒钟时间即可复原。</p>
diff --git a/docs/html-intl/intl/zh-cn/design/patterns/navigation.jd b/docs/html-intl/intl/zh-cn/design/patterns/navigation.jd
index 339a2c5..5d8eae9 100644
--- a/docs/html-intl/intl/zh-cn/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/zh-cn/design/patterns/navigation.jd
@@ -14,15 +14,15 @@
 Android 3.0对全局导航行为做出了重大改变。
 对用户来说,认真遵照“返回”和“向上”的指导准则可让应用的导航更可靠、更符合预期。
 </p>
-<p>Android 2.3 及更早的版本使用<em>返回</em>按钮来支持应用内的导航。在 Android 3.0 中引入操作栏后,出现了第二种导航机制:即<em>向上</em>按钮,由应用图标和左向箭头构成。
-
+<p>Android 2.3 及更早的版本使用系统<em>返回</em>按钮来支持应用内的导航。
+在 Android 3.0 中引入操作栏后,出现了第二种导航机制:即<em>向上</em>按钮,由应用图标和左向箭头构成。
 </p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
-<h2 id="up-vs-back">向上和返回</h2>
+<h2 id="up-vs-back">向上与返回的比较</h2>
 
-<p>“向上”按钮用于根据屏幕之间的层级关系在应用中导航。
+<p>“向上”按钮用于根据屏幕之间的层级关系在某个应用内部导航。
 例如,如果屏幕 A 显示项目列表,并且选择某个项目会调出屏幕 B(该屏幕显示项目的更多详情),则屏幕 B 应提供可返回屏幕 A 的“向上”按钮。
 
 </p>
@@ -50,9 +50,9 @@
 <h2 id="within-app">应用内导航</h2>
 
 <h4>通过多个入口点导航屏幕</h4>
-<p>有时,某个屏幕在应用层级中的位置并不固定,可以从多个入口点抵达 &mdash; 例如可从应用中的其他任何屏幕抵达设置屏幕。在这种情况下,选择“向上”按钮会返回到引用屏幕,其行为跟“返回”按钮相同。
+<p>有时,某个屏幕在应用层级中的位置并不固定,可以从多个入口点抵达 &mdash; 例如可从应用中的其他任何屏幕抵达设置屏幕。
 
-
+在这种情况下,应选择“向上”按钮来返回到引用屏幕,其行为跟“返回”按钮相同。
 </p>
 <h4>更改屏幕中的视图</h4>
 <p>更改屏幕的视图选项不会更改“向上”或“返回”的行为:屏幕仍然位于应用层级中的同一位置,并且不会创建新的导航历史记录。
@@ -117,8 +117,8 @@
 <h4>间接通知</h4>
 
 <p>如果您的应用需要同时提供关于多个事件的信息,可使用一条通知将用户引导至某个间隙屏幕。
-该屏幕将这些事件汇总,并为用户提供深度导航应用的路径。这种样式的通知称为<em>间接通知</em>。
-
+该屏幕将这些事件汇总,并为用户提供深度导航应用的路径。
+这种样式的通知称为<em>间接通知</em>。
 </p>
 
 <p>与标准(直接)通知不同,在间接通知的间隙屏幕上按下“返回”会让用户回到触发通知的点 &mdash; 不会在返回栈中插入额外的屏幕。
@@ -153,53 +153,53 @@
 <h2 id="between-apps">在应用之间导航</h2>
 
 <p>Android 系统的一个基本优势在于能够让应用相互激活,这样用户就可以直接从一个应用导航到另一个应用。
-例如,需要获取照片的应用可激活相机应用,后者可将照片返回给前者。这对于开发者和用户来说都极为有利,开发者可以方便地利用来自其他应用的代码,而用户则在执行常用操作时可以获得一致的体验。
+例如,需要获取照片的应用可激活相机应用,后者可将照片返回给前者。
 
-
+这对于开发者和用户来说都极为有利,开发者可以方便地利用来自其他应用的代码,而用户则在执行常用操作时可以获得一致的体验。
 
 </p>
 
-<p>为了理解应用到应用的导航,必须理解下面探讨的 Android 框架行为
-。</p>
-
-<h4>活动、任务和意向</h4>
-
-<p>在 Android 中,<strong>活动</strong>是一个应用组件,用于定义信息屏幕以及用户可执行的所有相关操作。
-您的应用是活动的集合,由您创建的活动以及从其他应用重用的活动构成。
+<p>为了理解应用到应用的导航,必须理解下面探讨的 Android 框架行为。
 </p>
 
-<p><strong>任务</strong>是用户为达成某个目标而执行的活动序列。一个
-任务可以只利用一个应用的活动,也可以利用来自多个不同应用的活动。
+<h4>Activity、任务和 Intent</h4>
+
+<p>在 Android 中,<strong>Activity</strong> 是一个应用组件,用于定义信息屏幕以及用户可执行的所有相关操作。
+您的应用是 Activity 的集合,由您创建的 Activity 以及从其他应用重用的 Activity 构成。
 </p>
 
-<p><strong>意向</strong>是应用的一种机制,用于发出信号以表明需要另一个应用的辅助才能执行某个操作。
-应用的活动可指示其可响应哪些意向。
-对于诸如“分享”这样的常用意向,用户可能安装有许多可执行该请求的应用。
+<p><strong>任务</strong>是用户为达成某个目标而执行的 Activity 序列。一个
+任务可以只利用一个应用的 Activity,也可以利用来自多个不同应用的 Activity。
+</p>
+
+<p><strong>Intent</strong>是应用的一种机制,用于发出信号以表明需要另一个应用的辅助才能执行某个操作。
+应用的 Activity 可指示其可响应哪些 Intent。
+对于诸如“分享”这样的常用Intent,用户可能安装有许多可执行该请求的应用。
 </p>
 
 <h4>示例:在应用之间导航以支持分享</h4>
 
-<p>要了解如何结合使用活动、任务和意向,可以考虑一个应用如何让用户通过使用另一应用来分享内容的例子。例如,从主屏幕启动 Play 商店应用可启动新任务 A(参见下图)。
-
-在 Play 商店中导航并触摸某本促销图书来查看其详情之后,用户会停留在该任务中并通过添加活动来扩展该任务。
-触发“分享”操作会通过一个对话框来提示用户选择活动,该对话框中会列出来自不同应用、之前已注册用于处理“分享”意向的每一种活动。
+<p>要了解如何结合使用 Activity、任务和 Intent,可以考虑如何让一个应用允许用户通过使用另一应用来分享内容的例子。
+例如,从主屏幕启动 Play 商店应用可启动新任务 A(参见下图)。
+在 Play 商店中导航并触摸某本促销图书来查看其详情之后,用户会停留在该任务中并通过添加 Activity 来扩展该任务。
+触发“分享”操作会通过一个对话框来提示用户选择 Activity,该对话框中会列出来自不同应用、之前已注册用于处理“分享” Intent 的每一种 Activity。
 
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_inward.png">
 
-<p>如果用户选择通过 Gmail 分享,则会以延续任务 A 的形式添加 Gmail 的写邮件活动 &mdash; 而不会创建新任务。
+<p>如果用户选择通过 Gmail 分享,则会以延续任务 A 的形式添加 Gmail 的写邮件 Activity &mdash; 而不会创建新任务。
 如果 Gmail 在后台还运行有自己的任务,该任务不会受影响。
 </p>
 
-<p>在写邮件活动中,发送邮件或触摸“返回”按钮会让用户回到图书详情活动。
+<p>在写邮件 Activity 中,发送邮件或触摸“返回”按钮会让用户回到图书详情 Activity。
 之后继续触摸“返回”会在 Play 商店中继续回退,直至抵达主屏幕。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_back.png">
 
-<p>尽管如此,用户可通过在写邮件活动中触摸“向上”按钮表明其希望留在 Gmail 中。
-此时会显示 Gmail 的会话列表活动,并为其创建新任务 B。新任务都始于主屏幕,因此从会话列表触摸“返回”按钮,始终会回到主屏幕。
+<p>尽管如此,用户可通过在写邮件 Activity 中触摸“向上”按钮表明其希望留在 Gmail 中。
+此时会显示 Gmail 的会话列表 Activity,并为其创建新任务 B。新任务都始于主屏幕,因此从会话列表触摸“返回”按钮,始终会回到主屏幕。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_up.png">
@@ -208,6 +208,6 @@
 如果 Gmail 在后台还运行有自己的任务,该任务会被任务 B 取代 &mdash; 之前的上下文会被丢弃,以使用户达成新目标。
 </p>
 
-<p>如果您的应用经过注册,以使用应用中的深层活动来处理意向,可参阅<a href="#into-your-app">通过主屏幕小工具和通知进入您的应用</a>,获得有关如何指定“向上”导航行为的指导。
+<p>如果您的应用经过注册,以使用应用中的深层 Activity 来处理 Intent,可参阅<a href="#into-your-app">通过主屏幕小工具和通知进入您的应用</a>,获得有关如何指定“向上”导航行为的指导。
 
 </p>
diff --git a/docs/html-intl/intl/zh-cn/distribute/tools/promote/brand.jd b/docs/html-intl/intl/zh-cn/distribute/tools/promote/brand.jd
index 065673e..8984fc5 100644
--- a/docs/html-intl/intl/zh-cn/distribute/tools/promote/brand.jd
+++ b/docs/html-intl/intl/zh-cn/distribute/tools/promote/brand.jd
@@ -69,77 +69,6 @@
 
   <p>不得使用 Android 徽标专用的字体。</p>
 
-  <h2 id="brand-google_play">Google Play</h2>
-
-
-   <p>以下是关于 Google Play 品牌和相关资源的指南。</p>
-
-  <h4>在文本中使用 Google Play</h4>
-
-  <p>在文本中,请务必为首次出现或位于显著位置的 Google Play™ 加上 TM 符号。</p>
-
-  <p>在提及移动设备体验时,除非相应文本中是很明显的说明性内容,否则请使用“Google Play”。例如,营销资料的标题可以是“从 Google Play™ 下载我们的游戏”,但是说明性内容可以是“使用 Google Play™ 商店应用下载我们的游戏”。
-
-   <p>每次使用 Google Play 名称或图标时,你的资料中都应注明以下归属信息:</p>
-
-  <blockquote><em>Google Play 是 Google Inc. 的商标。</em></blockquote>
-
-
-    <div style="float:right;width:96px;margin-left:30px">
-       <img src="{@docRoot}images/brand/Google_Play_Store_96.png" alt="" />
-      <p style="text-align:center">
-         <a href="{@docRoot}images/brand/Google_Play_Store_48.png">48x48</a> |
-         <a href="{@docRoot}images/brand/Google_Play_Store_96.png">96x96</a><br />
-         <a href="{@docRoot}images/brand/Google_Play_Store_600.png">600x576</a>
-         </p>
-    </div>
-
-  <h4>Google Play 商店图标</h4>
-
-  <p>你可以使用 Google Play 商店图标,但不得修改它。</p>
-
-  <p>如上文所述,在文案中提及 Google Play 商店应用时,请使用全称:“Google Play 商店”。但直接标注 Google Play 商店图标时,可以只使用“Play 商店”,以便与设备上显示的图标标签一致。</p>
-
-
-  <h4>Google Play 徽章</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>你可以在网站和宣传资料中使用“即刻获取 Google Play”和“即刻获取 Android 应用 Google Play”徽标作为徽章,以指向你在 Google Play 上的商品。你也可以使用其他 Google Play 徽章格式,以及用于音乐、图书、杂志、电影和电视节目的徽章。要申请这些徽章,请使用 <a href="https://docs.google.com/forms/d/1YE5gZpAAcFKjYcUddCsK1Bv9a9Y-luaLVnkazVlaJ2w/viewform">Android 和 Google Play 品牌权限咨询表单</a>。</p>
-
-    <ul>
-      <li>请不要修改徽章图片的颜色、比例、间距或其他任何方面。
-      </li>
-      <li>当与其他应用市场的徽标一起使用时,Google Play 徽标尺寸不应小于这些徽标的尺寸。</li>
-      <li>在线使用时,徽章应链接至以下内容之一:
-        <ul>
-          <li>由你发布的商品的列表,例如:<br />
-          <span style="margin-left:1em">http://play.google.com/store/search?q=publisherName<em></em></span>
-          </li>
-          <li>Google Play 中相应应用的商品详情页,例如:<br />
-          <span style="margin-left:1em">http://play.google.com/store/apps/details?id=packageName<em></em></span>
-          </li>
-        </ul>
-      </li>
-    </ul>
-
-    <p>要快速创建链接至你在 Google Play 上的应用的徽章,请使用 <a href="{@docRoot}distribute/tools/promote/badges.html">Google Play 徽章生成器</a>(支持 40 多种语言)。</p>
-
-    <p>要创建自定义尺寸的徽章,请下载<a href="{@docRoot}distribute/tools/promote/badge-files.html">支持 40 多种语言的 Google Play 徽章</a>的 Adobe® Illustrator® (.ai) 文件。</p>
-
-    <p>要详细了解如何链接至 Google Play 中的商品详情页,请参阅<a href="{@docRoot}distribute/tools/promote/linking.html">链接至你的商品</a>。</p>
 
   <h2 id="Marketing_Review">营销审核和品牌咨询</h2>
 
diff --git a/docs/html-intl/intl/zh-cn/index.jd b/docs/html-intl/intl/zh-cn/index.jd
index b392895..c915863 100644
--- a/docs/html-intl/intl/zh-cn/index.jd
+++ b/docs/html-intl/intl/zh-cn/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/zh-cn/sdk/index.jd b/docs/html-intl/intl/zh-cn/sdk/index.jd
index 2b2e98b..407fc2d 100644
--- a/docs/html-intl/intl/zh-cn/sdk/index.jd
+++ b/docs/html-intl/intl/zh-cn/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=下载 Android Studio 和 SDK 工具
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=下载官方 Android IDE 和开发者工具,构建适用于 Android 手机、平板电脑、可穿戴设备、电视等设备的应用。
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,15 +231,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">官方 Android IDE</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK 工具</li>
 <li>Android 6.0 (Marshmallow) 平台</li>
 <li>Android 6.0 模拟器系统映像(附带 Google API)</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/zh-cn/sdk/installing/adding-packages.jd b/docs/html-intl/intl/zh-cn/sdk/installing/adding-packages.jd
index 04f55b1..4d5d7ec 100644
--- a/docs/html-intl/intl/zh-cn/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/zh-cn/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=添加 SDK 软件包
 
 page.tags=sdk 管理器
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/zh-cn/training/material/animations.jd b/docs/html-intl/intl/zh-cn/training/material/animations.jd
index 049bf32..75e5bad 100644
--- a/docs/html-intl/intl/zh-cn/training/material/animations.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/animations.jd
@@ -1,4 +1,4 @@
-page.title=定义定制动画 
+page.title=定义定制动画
 
 @jd:body
 
@@ -21,7 +21,10 @@
 </div>
 
 
-<p>材料设计中的动画将为用户提供操作反馈并在用户与您的应用进行互动时提供视觉连续性。材料主题将为按钮与操作行为转换提供一些默认动画,而 Android 5.0 及以上的版本(API 级别 21)可让您定制这些动画,同时也可创建新动画:</p>
+<p>材料设计中的动画将为用户提供操作反馈并在用户与您的应用进行互动时提供视觉连续性。
+材料主题将为按钮与操作行为转换提供一些默认动画,而 Android 5.0(API 级别 21)及更高版本可让您定制这些动画,同时也可创建新动画:
+
+</p>
 
 <ul>
 <li>触摸反馈</li>
@@ -34,28 +37,42 @@
 
 <h2 id="Touch">定制触摸反馈</h2>
 
-<p>材料设计中的触摸反馈可在用户与 UI 元素互动时,在接触点上提供即时视觉确认。适用于按钮的默认触摸动画使用全新 {@link android.graphics.drawable.RippleDrawable} 类别,以波纹效果实现不同状态间的转换。</p>
+<p>材料设计中的触摸反馈可在用户与 UI 元素互动时,在接触点上提供即时视觉确认。
+适用于按钮的默认触摸动画使用全新 {@link android.graphics.drawable.RippleDrawable} 类别,以波纹效果实现不同状态间的转换。
 
-<p>在大多数情况下,您应以下列方式指定视图背景,在您的视图 XML 中应用此功能:</p>
+</p>
+
+<p>在大多数情况下,您应以下列方式指定视图背景,在您的视图 XML 中应用此功能:
+</p>
 
 <ul>
-<li><code>?android:attr/selectableItemBackground</code> 指定有界的波纹</li>
-<li><code>?android:attr/selectableItemBackgroundBorderless</code> 指定越界的波纹</li>
+<li><code>?android:attr/selectableItemBackground</code> 指定有界的波纹。</li>
+<li><code>?android:attr/selectableItemBackgroundBorderless</code> 指定越过视图边界的波纹。
+它将由一个非空背景的视图的最近父项所绘制和设定边界。
+</li>
 </ul>
 
-<p class="note"><strong>注意:</strong><code>selectableItemBackgroundBorderless</code> 是 API 级别 21 中推出的新属性。</p>
+<p class="note"><strong>注意:</strong><code>selectableItemBackgroundBorderless</code> 是 API 级别 21 中推出的新属性。
+</p>
 
 
-<p>此外,您可利用 <code>ripple</code> 元素将 {@link android.graphics.drawable.RippleDrawable} 定义为一个 XML 资源。</p>
+<p>此外,您可利用 <code>ripple</code> 元素将 {@link android.graphics.drawable.RippleDrawable}
+定义为一个 XML 资源。</p>
 
-<p>您可以为 {@link android.graphics.drawable.RippleDrawable} 对象指定一种颜色。如果要改变默认触摸反馈颜色,请使用主题的 <code>android:colorControlHighlight</code> 属性。</p>
+<p>您可以为 {@link android.graphics.drawable.RippleDrawable} 对象指定一种颜色。如果要改变默认触摸反馈颜色,请使用主题的 <code>android:colorControlHighlight</code>
+属性。
+</p>
 
-<p>如果要了解更多信息,请参阅 {@link android.graphics.drawable.RippleDrawable} 类别的 API 参考文档。</p>
+<p>如果要了解更多信息,请参阅 {@link
+android.graphics.drawable.RippleDrawable} 类别的 API 参考文档。</p>
 
 
 <h2 id="Reveal">使用揭露效果</h2>
 
-<p>当您显示或隐藏一组 UI 元素时,揭露动画可为用户提供视觉连续性。{@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} 方法让您能够为裁剪区域添加动画以揭露或隐藏视图。</p>
+<p>当您显示或隐藏一组 UI
+元素时,揭露动画可为用户提供视觉连续性。{@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()} 方法让您能够为裁剪区域添加动画以揭露或隐藏视图。
+</p>
 
 <p>如果要使用此效果揭露之前不可见的视图:</p>
 
@@ -122,19 +139,29 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>图 1</strong> - 拥有共享元素的转换。</p>
-    <em>如果要重新播放影片,请单击设备屏幕</em>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>图 1</strong> - 拥有共享元素的转换。
+</p>
+    <em>如果要重新播放影片,请点击设备屏幕</em>
   </div>
 </div>
 
-<p>材料设计应用中的操作行为转换透过通用元素之间的移动和转换提供不同状态之间的视觉连接。您可为进入、退出以及操作行为之间的共享元素转换指定定制动画。</p>
+<p>材料设计应用中的操作行为转换透过通用元素之间的移动和转换提供不同状态之间的视觉连接。
+您可为进入、退出转换以及操作行为之间的共享元素转换指定定制动画。
+</p>
 
 <ul>
-<li><strong>进入</strong>转换将决定操作行为的视图如何进入场景。例如,<em>分解</em>进入转换中,视图将从屏幕外进入场景并飞往屏幕中心。</li>
+<li><strong>进入</strong>转换将决定操作行为中视图如何进入场景。例如,在<em>分解</em>进入转换中,视图将从屏幕外进入场景并飞往屏幕中心。
 
-<li><strong>退出</strong>转换将决定操作行为的视图如何退出场景。例如,<em>分解</em>退出转换中,视图将从屏幕中心退出场景。</li>
+</li>
 
-<li><strong>共享元素</strong>转换将决定两个操作行为转换之间共享的视图如何在这些操作行为中转换。例如,如果两个操作行为拥有相同的图像,但其位置与大小不同,<em>changeImageTransform</em> 共享元素转换将在这些操作行为之间平滑地转换与缩放图像。</li>
+<li><strong>退出</strong>转换将决定操作行为中应用行为的显示视图如何退出场景。例如,在<em>分解</em>退出转换中,视图将从屏幕中心退出场景。
+
+</li>
+
+<li><strong>共享元素</strong>转换将决定两个操作行为转换之间共享的视图如何在这些操作行为中转换。
+例如,如果两个操作行为拥有相同的图像,但其位置与大小不同,<em>changeImageTransform</em> 共享元素转换将在这些操作行为之间平滑地转换与缩放图像。
+
+</li>
 </ul>
 
 <p>Android 5.0(API 级别 21)支持这些进入与退出转换:</p>
@@ -142,10 +169,12 @@
 <ul>
 <li><em>分解</em> - 从场景中心移入或移出视图。</li>
 <li><em>滑动</em> - 从场景边缘移入或移出视图。</li>
-<li><em>淡入淡出</em> - 通过调整透明度从场景增添或移除视图。</li>
+<li><em>淡入淡出</em> - 通过调整透明度在场景中增添或移除视图。</li>
 </ul>
 
-<p>任何扩展 {@link android.transition.Visibility} 类别的转换均将获得进入或退出转换支持。如果要了解更多信息,请参阅 {@link android.transition.Transition} 类别的 API 参考文档。</p>
+<p>任何扩展 {@link android.transition.Visibility} 类别的转换均将获得进入或退出转换支持。
+如果要了解更多信息,请参阅
+{@link android.transition.Transition} 类别的 API 参考文档。</p>
 
 <p>Android 5.0(API 级别 21)也支持这些共享元素转换:</p>
 
@@ -156,7 +185,8 @@
 <li><em>changeImageTransform</em> - 为目标图像的大小与缩放变化添加动画。</li>
 </ul>
 
-<p>当您在您的应用中启用操作行为转换,默认的交叉淡入淡出转换将在进入与退出操作行为之间激活。</p>
+<p>当您在您的应用中启用操作行为转换,默认的交叉淡入淡出转换将在进入与退出操作行为之间激活。
+</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
@@ -165,7 +195,9 @@
 
 <h3>指定定制转换</h3>
 
-<p>首先,在定义您从材料主题继承的风格时,使用 <code>android:windowContentTransitions</code> 属性启用窗口内容转换。您也可在您的风格定义中指定进入、退出以及共享元素转换:</p>
+<p>首先,在定义您从材料主题继承的风格时,使用 <code>android:windowContentTransitions</code>
+属性启用窗口内容转换。您也可在您的风格定义中指定进入、退出以及共享元素转换:
+</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p><code>changeImageTransform</code> 元素与  {@link android.transition.ChangeImageTransform} 类别相对应。如果要了解更多信息,请参阅 {@link android.transition.Transition} 的 API 参考文档。</p>
+<p><code>changeImageTransform</code> 元素与
+{@link android.transition.ChangeImageTransform} 类别相对应。如果要了解更多信息,请参阅 {@link android.transition.Transition} 的 API
+参考。</p>
 
-<p>如果要在您的代码中启用窗口内容转换,请调用 {@link android.view.Window#requestFeature Window.requestFeature()} 方法:</p>
+<p>如果要在您的代码中启用窗口内容转换,请调用
+{@link android.view.Window#requestFeature Window.requestFeature()} 方法:</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,33 +241,47 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>如果要在您的代码中指定转换,请以 {@link android.transition.Transition} 对象调用这些方法:</p>
+<p>如果要在您的代码中指定转换,请以 {@link
+android.transition.Transition} 对象调用这些方法:</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>{@link android.view.Window#setExitTransition setExitTransition()} 与 {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 方法定义正在调用的操作行为的退出转换。{@link android.view.Window#setEnterTransition setEnterTransition()} 与  {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} 方法定义被调用的操作行为的进入转换。</p>
+<p>{@link android.view.Window#setExitTransition setExitTransition()} 和 {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 方法定义正在调用的操作行为的退出转换。
+{@link android.view.Window#setEnterTransition
+setEnterTransition()} 与 {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} 方法定义被调用的操作行为的进入转换。</p>
 
-<p>如果要取得转换的完整效果,您必须在正在调用以及被调用的操作行为上启用窗口内容转换。否则,正在调用的操作行为将开始退出转换,但是您将会看到窗口转换(例如缩放或淡入淡出)</p>
+<p>如果要取得转换的完整效果,您必须在正在调用以及被调用的操作行为上启用窗口内容转换。
+否则,正在调用的操作行为将开始退出转换,但是您将会看到窗口转换(例如缩放或淡入淡出)。
+</p>
 
-<p>如果要尽快开始进入转换,请在被调用的操作行为上使用 {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} 方法。这可以让您实现更生动的进入转换。</p>
+<p>如果要尽快开始进入转换,请针对被调用的操作行为使用
+{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()}
+方法。这可以让您实现更生动的进入转换。</p>
 
-<h3>使用转换开始一个操作行为</h3>
+<h3>使用转换启动一个操作行为</h3>
 
-<p>如果您启用转换并且为一个操作行为设置退出转换,那么在您启动另一个操作行为时,转换将以下列方式激活:</p>
+<p>如果您启用转换并且为一个操作行为设置退出转换,那么在您启动另一个操作行为时,转换将以下列方式激活:
+</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>如果您已为第二个操作行为设置进入转换,则转换也将会在操作行为开始时激活。如果要在您开始另一个操作行为时禁用转换,请提供 <code>null</code> 选项包。</p>
+<p>如果您已为第二个操作行为设置进入转换,则转换也将会在操作行为启动时激活。
+如果要在您启动另一个操作行为时禁用转换,请提供
+<code>null</code> 选项包。</p>
 
-<h3>以共享元素开始一个操作行为</h3>
+<h3>以共享元素启动一个操作行为</h3>
 
 <p>如果要在两个拥有共享元素的操作行为之间安排屏幕转换动画:</p>
 
@@ -240,8 +289,10 @@
 <li>请在您的主题中启用窗口内容转换。</li>
 <li>在您的风格中指定一个共享元素转换。</li>
 <li>将您的转换定义为 XML 资源。</li>
-<li>利用 <code>android:transitionName</code> 属性对两个布局中的共享元素指定一个通用名称。</li>
-<li>使用 {@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()} 方法。</li>
+<li>利用
+<code>android:transitionName</code> 属性对两个布局中的共享元素指定一个通用名称。</li>
+<li>使用 {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()} 方法。</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>对于在您的代码中生成的共享动态视图,请使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法在两个操作行为中指定一个通用元素名称。</p>
+<p>对于在您的代码中生成的共享动态视图,请使用
+{@link android.view.View#setTransitionName View.setTransitionName()} 方法在两个操作行为中指定一个通用元素名称。
+</p>
 
-<p>如果要在完成第二项操作行为时反转场景转换动画,请调用 {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} 方法而非 {@link android.app.Activity#finish Activity.finish()}。</p>
+<p>如果要在完成第二项操作行为时反转场景转换动画,请调用
+{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()}
+方法而非 {@link android.app.Activity#finish Activity.finish()}。</p>
 
-<h3>以多个共享元素开始一个操作行为</h3>
+<h3>以多个共享元素启动一个操作行为</h3>
 
-<p>如果要在两个拥有多过一个共享元素的操作行为之间安排场景转换动画,请以 <code>android:transitionName</code> 属性(或在两个操作行为中使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法)定义共享元素,并以下列方式创建一个 {@link android.app.ActivityOptions} 对象:</p>
+<p>如果要在两个拥有多个共享元素的操作行为之间安排场景转换动画,请以 <code>android:transitionName</code>
+属性(或在两个操作行为中使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法)定义共享元素,并以下列方式创建一个 {@link android.app.ActivityOptions} 对象:
+
+</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">使用曲线运动</h2>
 
-<p>材料设计中的动画利用曲线进行时间内插与空间移动模式。利用 Android 5.0(API 级别 21)及更高版本,您可为动画定义定制时间曲线以及曲线运动模式。</p>
+<p>材料设计中的动画利用曲线实现时间内插与空间移动模式。
+利用 Android 5.0(API 级别 21)及更高版本,您可为动画定义定制时间曲线以及曲线运动模式。
+</p>
 
-<p>{@link android.view.animation.PathInterpolator} 类别是一个基于贝塞尔曲线或 {@link android.graphics.Path} 对象的全新插入器。此插入器在一个 1x1 的正方形内指定一个运动曲线,定位点位于 (0,0) 以及 (1,1),而控制点则使用构造函数参数指定。您也可以将路径插入器定义为一个 XML 资源:</p>
+<p>{@link android.view.animation.PathInterpolator} 类别是一个基于贝塞尔曲线或 {@link android.graphics.Path} 对象的全新插入器。
+此插入器在一个 1x1 的正方形内指定一个运动曲线,定位点位于 (0,0) 以及 (1,1),而控制点则使用构造函数参数指定。
+
+您也可以将路径插入器定义为一个 XML 资源:</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>系统将为材料设计规范中的三种基本曲线提供 XML 资源:</p>
+<p>系统将为材料设计规范中的三种基本曲线提供 XML 资源:
+</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>您可以将一个 {@link android.view.animation.PathInterpolator} 对象传递给 {@link android.animation.Animator#setInterpolator Animator.setInterpolator()} 方法。</p>
+<p>您可以将一个 {@link android.view.animation.PathInterpolator} 对象传递给 {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()} 方法。</p>
 
-<p>{@link android.animation.ObjectAnimator} 类别拥有新的构造函数,可让您一次使用两个或更多属性在路径上为坐标添加动画。例如,下列的动画使用 {@link android.graphics.Path} 对象为视图的 X 和 Y 属性添加动画:</p>
+<p>{@link android.animation.ObjectAnimator} 类别拥有新的构造函数,可让您一次使用两个或更多属性在路径上为坐标添加动画。
+例如,下列动画使用 {@link android.graphics.Path} 对象为视图的 X 和 Y 属性添加动画:
+</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -317,7 +384,9 @@
 
 <h2 id="ViewState">为视图状态改变添加动画</h2>
 
-<p>{@link android.animation.StateListAnimator} 类别让您能够定义视图状态改变时运行的动画。下列示例显示如何将 {@link android.animation.StateListAnimator} 定义为一个 XML 资源:</p>
+<p>{@link android.animation.StateListAnimator} 类别让您能够定义视图状态改变时运行的动画。
+下列示例显示如何将 {@link
+android.animation.StateListAnimator} 定义为一个 XML 资源:</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>如果要将定制视图状态动画附加至一个视图,请依照此示例使用 XML 资源文件中的 <code>selector</code> 元素定义一个动画,并使用 <code>android:stateListAnimator</code> 属性将此动画分配给您的视图。如果要将一个状态列表动画分配给您的代码内的一个视图,请使用 {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} 方法,并以{@link android.view.View#setStateListAnimator View.setStateListAnimator()} 方法将动画分配给您的视图。</p>
+<p>如果要将定制视图状态动画附加至一个视图,请依照此示例使用 XML 资源文件中的
+<code>selector</code> 元素定义一个动画,并使用 <code>android:stateListAnimator</code> 属性将此动画分配给您的视图。
+如果要将一个状态列表动画分配给您的代码内的一个视图,请使用 {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} 方法,并以
+{@link android.view.View#setStateListAnimator View.setStateListAnimator()} 方法将动画分配给您的视图。
+</p>
 
-<p>当您的主题扩展材料主题,在默认情况下按钮将拥有一个 Z 动画。如果要避免您的按钮出现这类行为,请将 <code>android:stateListAnimator</code> 属性设置为 <code>@null</code>。</p>
+<p>当您的主题扩展材料主题时,在默认情况下按钮将拥有一个 Z 动画。如果要避免您的按钮出现这类行为,请将 <code>android:stateListAnimator</code> 属性设置为
+<code>@null</code>。
+</p>
 
-<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 类别让您能够创建图片,显示相关视图之间的状态变化。Android 5.0 中的某些系统小组件在默认情况下使用这些动画。下列示例显示如何将 {@link android.graphics.drawable.AnimatedStateListDrawable} 定义为一个 XML 资源:</p>
+<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 类别让您能够创建图片,显示相关视图之间的状态变化。
+Android 5.0 中的某些系统小组件在默认情况下使用这些动画。
+下列示例显示如何将 {@link android.graphics.drawable.AnimatedStateListDrawable} 定义为一个 XML 资源:
+</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -379,19 +458,28 @@
 
 <h2 id="AnimVector">为矢量图片添加动画</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">矢量图片</a>可在不丢失定义的情况下缩放。{@link android.graphics.drawable.AnimatedVectorDrawable} 类别可让您为矢量图片的属性添加动画。</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">矢量图片</a>可在不丢失定义的情况下缩放。
+{@link android.graphics.drawable.AnimatedVectorDrawable}
+类别可让您为矢量图片的属性添加动画。</p>
 
 <p>您通常可以在 3 个 XML 文件中定义添加动画的矢量图片:</p>
 
 <ul>
-<li>在 <code>res/drawable/</code> 中拥有 <code>&lt;vector&gt;</code> 元素的矢量图片</li>
-<li>在 <code>res/drawable/</code> 中拥有 <code>&lt;animated-vector&gt;</code> 元素且已添加动画的矢量图片</li>
-<li>在 <code>res/anim/</code> 中拥有 <code>&lt;objectAnimator&gt;</code> 元素的一个或多个对象动画</li>
+<li>在
+<code>res/drawable/</code> 中拥有 <code>&lt;vector&gt;</code> 元素的矢量图片</li>
+<li>在
+<code>res/drawable/</code> 中拥有 <code>&lt;animated-vector&gt;</code> 元素且已添加动画的矢量图片</li>
+<li>在
+<code>res/anim/</code> 中拥有 <code>&lt;objectAnimator&gt;</code> 元素的一个或多个对象动画</li>
 </ul>
 
-<p>添加动画的矢量图片可为 <code>&lt;group&gt;</code> 以及 <code>&lt;path&gt;</code> 元素的属性添加动画。<code>&lt;group&gt;</code> 元素定义路径集或子组,而 <code>&lt;path&gt;</code> 元素则定义将绘制的路径。</p>
+<p>添加动画的矢量图片可为 <code>&lt;group&gt;</code> 以及
+<code>&lt;path&gt;</code> 元素的属性添加动画。<code>&lt;group&gt;</code> 元素定义路径集或子组,而 <code>&lt;path&gt;</code> 元素则定义将绘制的路径。
+</p>
 
-<p>当您定义一个您想要添加动画的矢量图片时,请使用 <code>android:name</code> 属性给这些群组和路径指定一个唯一名称,以便让您能够从您的动画定义中参考这些群组或路径。例如:</p>
+<p>当您定义一个您想要添加动画的矢量图片时,请使用 <code>android:name</code>
+属性给这些群组和路径指定一个唯一名称,以便让您能够从您的动画定义中引用这些群组或路径。
+例如:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>已添加动画的矢量图片定义指的是矢量图片内按名称分类的群组和路径:</p>
+<p>已添加动画的矢量图片定义按名称引用矢量图片内的群组和路径:
+</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>动画定义代表着 {@link android.animation.ObjectAnimator} 或 {@link android.animation.AnimatorSet} 对象。此示例中的首个动画为目标群组进行了 360 度旋转:</p>
+<p>动画定义代表着 {@link android.animation.ObjectAnimator} 或 {@link
+android.animation.AnimatorSet} 对象。此示例中的第一个动画将目标群组旋转 360 度:
+</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>此示例中的第二个动画为矢量图片的路径进行变形。两个路径均需可兼容变形操作:两个路径均需拥有相同数量的指令,而且每个指令均需拥有相同数量的参数。</p>
+<p>此示例中的第二个动画对矢量图片的路径进行变形。
+两个路径均需可兼容变形操作:两个路径均需拥有相同数量的指令,而且每个指令均需拥有相同数量的参数。
+</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>如果要了解更多信息,请参阅 {@link android.graphics.drawable.AnimatedVectorDrawable} 的 API 参考文档。</p> 
\ No newline at end of file
+<p>如果要了解更多信息,请参阅 {@link
+android.graphics.drawable.AnimatedVectorDrawable} 的 API 参考文档。</p>
diff --git a/docs/html-intl/intl/zh-cn/training/material/compatibility.jd b/docs/html-intl/intl/zh-cn/training/material/compatibility.jd
index 6cf228e..aa23d4b 100644
--- a/docs/html-intl/intl/zh-cn/training/material/compatibility.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/compatibility.jd
@@ -20,42 +20,63 @@
 </div>
 
 
-<p>有些材料设计功能(例如材料主题和定制操作行为转换)仅在 Android 5.0(API 级别 21)及更高版本中提供。不过,您可为您的应用进行设计,使应用在支持材料设计的设备上运行时可使用这些功能,且同时能够与运行早期版本 Android 的设备兼容。</p>
+<p>有些材料设计功能(例如材料主题和定制操作行为转换)仅在 Android 5.0(API 级别 21)及更高版本中提供。
+不过,您可为您的应用进行设计,使应用在支持材料设计的设备上运行时可使用这些功能,且同时能够与运行早期版本 Android 的设备兼容。
+
+</p>
 
 
 <h2 id="Theme">定义备用样式</h2>
 
-<p>您可为您的应用进行配置,使应用能够在支持它的设备上使用材料主题,并且能够在运行早期版本 Android 的设备上还原至早期版本的主题:</p>
+<p>您可对您的应用进行配置,使应用能够在支持它的设备上使用材料主题,并且能够在运行早期版本 Android 的设备上还原至早期版本的主题:
+</p>
 
 <ol>
-<li>定义一个从 <code>res/values/styles.xml</code> 中的早期版本主题(例如 Holo)继承的主题。</li>
-<li>定义一个从 <code>res/values-v21/styles.xml</code> 中的材料主题继承且拥有相同名称的主题。</li>
+<li>定义一个从
+<code>res/values/styles.xml</code> 中的早期版本主题(例如 Holo)继承的主题。</li>
+<li>定义一个从
+<code>res/values-v21/styles.xml</code> 中的材料主题继承且拥有相同名称的主题。</li>
 <li>在清单文件中将此主题设置为您的应用主题。</li>
 </ol>
 
-<p class="note"><strong>请注意:</strong>如果您的应用使用材料主题,但没有以这方式提供备用主题,您的应用将无法在 Android 5.0 之前的 Android 版本上运行。
+<p class="note"><strong>注意</strong>:如果您的应用使用材料主题,但没有以这方式提供备用主题,您的应用将无法在 Android 5.0 之前的 Android 版本上运行。
+
+
 </p>
 
 
 <h2 id="Layouts">提供备用布局</h2>
 
-<p>如果您根据材料设计指导方针设计的布局没有使用 Android 5.0(API 级别 21)所推出的新 XML 属性,这些布局将能够在早期版本 Android 上运行。或者,您也可以提供备用布局。您也可以提供备用布局以定制应用在早期版本 Android 上的呈现方式。</p>
+<p>如果您根据材料设计指导方针设计的布局没有使用 Android 5.0(API 级别 21)所推出的新 XML 属性,这些布局将能够在早期版本的 Android 上运行。
 
-<p>您可在 <code>res/layout-v21/</code> 内创建用于 Android 5.0(API 级别 21)的布局文件,同时也可在 <code>res/layout/</code> 内创建用于早期版本 Android 的备用布局文件。例如,<code>res/layout/my_activity.xml</code> 是 <code>res/layout-v21/my_activity.xml</code> 的备用布局。</p>
+或者,您也可以提供备用布局。您也可以提供备用布局以定制应用在早期版本的 Android 上的呈现方式。
+</p>
 
-<p>为避免代码重复,请在 <code>res/values/</code> 内定义您的风格,在 <code>res/values-v21/</code> 内为新 API 修改风格,以及使用风格继承(即:在 <code>res/values/</code> 内定义基础风格,然后在 <code>res/values-v21/</code> 内继承这些风格)。</p>
+<p>您可在 <code>res/layout-v21/</code> 内创建用于 Android 5.0(API 级别 21)的布局文件,同时也可在 <code>res/layout/</code> 内创建用于早期版本 Android 的备用布局文件。例如,<code>res/layout/my_activity.xml</code> 是
+<code>res/layout-v21/my_activity.xml</code> 的备用布局。
+
+</p>
+
+<p>为避免代码重复,请在 <code>res/values/</code> 内定义您的风格,在 <code>res/values-v21/</code> 内为新 API 修改风格,以及使用风格继承(即:在 <code>res/values/</code> 内定义基础风格,然后在 <code>res/values-v21/</code> 内继承这些风格)。
+
+</p>
 
 
 <h2 id="SupportLib">使用支持内容库</h2>
 
-<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a> r21 及更高版本包括下列材料设计功能:</p>
+<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>
+r21 及更高版本包括下列材料设计功能:</p>
 
 <ul>
-<li>应用其中一个 <code>Theme.AppCompat</code> 主题时可取得适用于一些系统小组件的<a href="{@docRoot}training/material/theme.html">材料设计风格</a>。</li>
-<li><code>Theme.AppCompat</code> 主题中拥有<a href="{@docRoot}training/material/theme.html#ColorPalette">配色工具主题属性</a>。</li>
-<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">显示数据集合</a>的 {@link android.support.v7.widget.RecyclerView} 小组件。</li>
+<li>应用其中一个 <code>Theme.AppCompat</code> 主题时可取得适用于一些系统小组件的<a href="{@docRoot}training/material/theme.html">材料设计风格</a>。
+</li>
+<li><code>Theme.AppCompat</code> 主题中拥有<a href="{@docRoot}training/material/theme.html#ColorPalette">配色工具主题属性</a>。
+</li>
+<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">显示数据集合</a>的 {@link android.support.v7.widget.RecyclerView} 小组件。
+</li>
 <li><a href="{@docRoot}training/material/lists-cards.html#CardView">创建卡片</a>的 {@link android.support.v7.widget.CardView} 小组件。</li>
-<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">从图像萃取突出颜色</a>的  {@link android.support.v7.graphics.Palette} 类别。</li>
+<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">从图像萃取突出颜色</a>的 {@link android.support.v7.graphics.Palette} 类别。
+</li>
 </ul>
 
 <h3>系统小组件</h3>
@@ -73,7 +94,8 @@
 
 <h3>配色工具</h3>
 
-<p>如果要利用 Android v7 支持内容库取得材料设计风格以及定制配色工具,请应用其中一个 <code>Theme.AppCompat</code> 主题:</p>
+<p>如果要利用 Android v7 支持内容库取得材料设计风格以及定制配色工具,请应用其中一个 <code>Theme.AppCompat</code> 主题:
+</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -85,18 +107,23 @@
 &lt;/style>
 </pre>
 
-<h3>列表与卡片</h3>
+<h3>列表和卡片</h3>
 
-<p>{@link android.support.v7.widget.RecyclerView} 以及 {@link android.support.v7.widget.CardView} 小组件可通过 Android v7 支持内容库提供给早期版本 Android,但有如下限制:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 以及 {@link
+android.support.v7.widget.CardView} 小组件可通过 Android v7 支持内容库提供给早期版本 Android,但有如下限制:
+</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView} 使用额外边距返回编程阴影实现。</li>
-<li>{@link android.support.v7.widget.CardView} 不会裁剪其与圆角相交的子视图。</li>
+<li>{@link android.support.v7.widget.CardView} 使用额外边距返回编程阴影实现。
+</li>
+<li>{@link android.support.v7.widget.CardView} 不会裁剪其与圆角相交的子视图。
+</li>
 </ul>
 
 
-<h3>依赖关系</h3>
+<h3>依赖项</h3>
 
-<p>如果要在 Android 5.0(API 级别 21)之前的 Android 版本使用这些功能,请将 Android v7 支持内容库作为 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 依赖关系</a>包括在您的项目中:</p>
+<p>如果要在 Android 5.0(API 级别 21)之前的 Android 版本中使用这些功能,请将
+Android v7 支持内容库作为 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 依赖项</a>包括在您的项目中:</p>
 
 <pre>
 dependencies {
@@ -120,7 +147,9 @@
 <li>图片着色</li>
 </ul>
 
-<p>如果要保留与早期版本 Android 的兼容性,请您在运行时检查系统 {@link android.os.Build.VERSION#SDK_INT version},然后再为下列的任何一个功能调用 API:</p>
+<p>如果要保留与早期版本 Android 的兼容性,请您在运行时检查系统 {@link
+android.os.Build.VERSION#SDK_INT version},然后再为下列的任何一个功能调用 API:
+</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>请注意:</strong>如果要指定您的应用所支持的 Android 版本,请使用您的清单文件中的 <code>android:minSdkVersion</code> 以及 <code>android:targetSdkVersion</code> 属性。如果要在 Android 5.0 内使用材料设计功能,请将 <code>android:targetSdkVersion</code> 属性设置为 <code>21</code>。如果要了解更多信息,请参阅 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API 指南</a>。</p> 
\ No newline at end of file
+<p class="note"><strong>注意:</strong>如果要指定您的应用所支持的 Android 版本,请使用您的清单文件中的 <code>android:minSdkVersion</code> 以及 <code>android:targetSdkVersion</code>
+属性。
+如果要在 Android 5.0 内使用材料设计功能,请将 <code>android:targetSdkVersion</code> 属性设置为 <code>21</code>。
+如果要了解更多信息,请参阅
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API
+指南</a>。</p>
diff --git a/docs/html-intl/intl/zh-cn/training/material/drawables.jd b/docs/html-intl/intl/zh-cn/training/material/drawables.jd
index 32f1c54..8a65431 100644
--- a/docs/html-intl/intl/zh-cn/training/material/drawables.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/drawables.jd
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">为图片资源着色</h2>
 
-<p>利用 Android 5.0(API 级别 21)及更高版本,您可为位图以及定义为 Alpha 蒙版的点九图着色。您可使用颜色资源或分解为颜色资源(例如 <code>?android:attr/colorPrimary</code>)的主题属性为其着色。通常,您只有一次机会创建这些资产并自动为其上色以符合您的主题。</p>
+<p>利用 Android 5.0(API 级别 21)及更高版本,您可为位图以及定义为 Alpha 蒙版的点九图着色。
+您可使用颜色资源或分解为颜色资源(例如 <code>?android:attr/colorPrimary</code>)的主题属性为其着色。
+通常,您只有一次机会创建这些资产并自动为其上色以符合您的主题。
+</p>
 
-<p>您可利用 {@code setTint()} 方法为 {@link android.graphics.drawable.BitmapDrawable} 或 {@link android.graphics.drawable.NinePatchDrawable} 对象着色。您也可以利用 <code>android:tint</code> 以及 <code>android:tintMode</code> 属性设置您的布局中的着色颜色和模式。</p>
+<p>您可利用 {@code setTint()} 方法为 {@link android.graphics.drawable.BitmapDrawable} 或 {@link
+android.graphics.drawable.NinePatchDrawable} 对象着色。您也可以利用 <code>android:tint</code> 以及
+<code>android:tintMode</code> 属性设置您的布局中的着色颜色和模式。
+</p>
 
 
 <h2 id="ColorExtract">从图像萃取突出颜色</h2>
 
-<p>Android 支持内容库 r21 及更高版本包括 {@link android.support.v7.graphics.Palette} 类别,可让您从图像萃取突出颜色。此类别将萃取下列突出颜色:</p>
+<p>Android 支持内容库 r21 及更高版本包括 {@link
+android.support.v7.graphics.Palette} 类别,可让您从图像萃取突出颜色。此类别将萃取下列突出颜色:
+</p>
 
 <ul>
 <li>鲜艳</li>
@@ -49,34 +57,44 @@
 <li>低调浅色</li>
 </ul>
 
-<p>如果要萃取这些颜色,请将 {@link android.graphics.Bitmap} 对象传递给位于您上载图像的背景线程的 {@link android.support.v7.graphics.Palette#generate Palette.generate()} 静态方法。如果您无法使用此线程,请调用 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 方法并提供一个侦听程序。</p>
+<p>如果要萃取这些颜色,请将 {@link android.graphics.Bitmap} 对象传递给位于您上载图像的背景线程的
+{@link android.support.v7.graphics.Palette#generate Palette.generate()} 静态方法。
+如果您无法使用此线程,请调用
+{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 方法并提供一个侦听程序。
+</p>
 
-<p>您可使用 <code>Palette</code> 类别(例如 <code>Palette.getVibrantColor</code>)中的 getter 方法从图像检索突出颜色。</p>
+<p>您可使用
+<code>Palette</code> 类别(例如 <code>Palette.getVibrantColor</code>)中的 getter 方法从图像检索突出颜色。</p>
 
-<p>如果要使用您项目中的 {@link android.support.v7.graphics.Palette} 类别,请将下列 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依赖关系</a>添加至您的应用模块:</p>
+<p>如果要在项目中使用 {@link android.support.v7.graphics.Palette} 类别,请将下列
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依赖项</a>添加至您的应用模块:
+</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>如果要了解更多信息,请参阅 {@link android.support.v7.graphics.Palette} 类别的 API 参考文档。</p>
+<p>如果要了解更多信息,请参阅{@link android.support.v7.graphics.Palette}
+类别的 API 参考文档。</p>
 
 
 <h2 id="VectorDrawables">创建矢量图片</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>视频</h3>
     <p>Android 矢量图形</p>
 </div>
 </a>
 
-<p>在 Android 5.0(API 级别 21)及更高版本中,您可定义矢量图片,而且图片可在不丢失定义的情况下缩放。您只需一个资产文件即可创建一个矢量图像,而位图图像则需要为每个屏幕密度提供一个资产文件。如果要创建一个矢量图像,请您在 <code>&lt;vector&gt;</code> XML 元素中定义形状的详情。</p>
+<p>在 Android 5.0(API 级别 21)及更高版本中,您可定义矢量图片,而且图片可在不损失清晰度的情况下缩放。
+您只需一个资产文件即可创建一个矢量图像,而位图图像则需要为每个屏幕密度提供一个资产文件。
+如果要创建一个矢量图像,请您在 <code>&lt;vector&gt;</code> XML 元素中定义形状的详情。
+</p>
 
 <p>下列示例以心形定义一个矢量图像:</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>矢量图像在 Android 中以 {@link android.graphics.drawable.VectorDrawable} 对象表示。如果要了解更多有关 <code>pathData</code> 语法的信息,请参阅 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG 路径参考文档</a>。如果要了解更多有关为矢量图片属性添加动画的信息,请参阅<a href="{@docRoot}training/material/animations.html#AnimVector">为矢量图片添加动画</a>。</p> 
\ No newline at end of file
+<p>矢量图像在 Android 中以 {@link android.graphics.drawable.VectorDrawable}
+对象表示。如果要了解更多有关 <code>pathData</code> 语法的信息,请参阅 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG 路径参考</a>。如果要了解更多有关为矢量图片属性添加动画的信息,请参阅<a href="{@docRoot}training/material/animations.html#AnimVector">为矢量图片添加动画</a>。
+
+</p>
diff --git a/docs/html-intl/intl/zh-cn/training/material/get-started.jd b/docs/html-intl/intl/zh-cn/training/material/get-started.jd
index 3d5beab..16db97b 100644
--- a/docs/html-intl/intl/zh-cn/training/material/get-started.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/get-started.jd
@@ -38,22 +38,29 @@
     定制您的应用中的<strong>动画</strong>。</li>
 </ol>
 
-<h3>维护后向兼容性</h3>
+<h3>保持后向兼容性</h3>
 
-<p>您可将多个材料设计功能添加至您的应用,同时维护与 Android 5.0 之前的 Android 版本的兼容性。如果要了解更多信息,请参阅<a href="{@docRoot}training/material/compatibility.html">维护兼容性</a>。</p>
+<p>您可将多个材料设计功能添加至您的应用,同时保持与 Android 5.0 之前的 Android 版本的兼容性。
+如果要了解更多信息,请参阅
+<a href="{@docRoot}training/material/compatibility.html">保持兼容性</a>。</p>
 
 <h3>使用材料设计更新您的应用</h3>
 
-<p>如果要更新现有应用以纳入材料设计,请遵循材料设计指导方针更新您的布局。同时也须确保纳入深度、触摸反馈和动画。</p>
+<p>如果要更新现有应用以纳入材料设计,请遵循材料设计指导方针更新您的布局。
+同时也须确保纳入深度、触摸反馈和动画。
+</p>
 
 <h3>使用材料设计创建新应用</h3>
 
-<p>如果您要使用材料设计功能创建新应用,<a href="http://www.google.com/design/spec">材料设计指导方针</a>将为您提供一个紧密结合的设计框架。请遵循这些指导方针并使用 Android 框架中的新功能来设计与开发您的应用。</p>
+<p>如果您要使用材料设计功能创建新应用,<a href="http://www.google.com/design/spec">材料设计指导方针</a>将为您提供一个紧密结合的设计框架。
+请遵循这些指导方针并使用 Android
+框架中的新功能来设计与开发您的应用。</p>
 
 
 <h2 id="ApplyTheme">使用材料主题</h2>
 
-<p>如果要在您的应用中使用材料主题,请指定一个从 <code>android:Theme.Material</code> 继承的风格:</p>
+<p>如果要在您的应用中使用材料主题,请指定一个从
+<code>android:Theme.Material</code> 继承的风格:</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>材料主题提供更新的系统小组件,让您能够为触摸反馈以及操作行为转换设置配色工具以及默认动画。有关更多详情,请参阅<a href="{@docRoot}training/material/theme.html">使用材料主题</a>。</p>
+<p>材料主题提供更新的系统小组件,让您能够为触摸反馈以及操作行为转换设置配色工具以及默认动画。
+有关更多详情,请参阅<a href="{@docRoot}training/material/theme.html">使用材料主题</a>。
+</p>
 
 
 <h2 id="Layouts">设计布局</h2>
 
-<p>除了应用及定制材料主题,您的布局同时也应符合<a href="http://www.google.com/design/spec">材料设计指导方针</a>。设计布局时,请特别注意下列几点:</p>
+<p>除了应用及定制材料主题,您的布局同时也应符合<a href="http://www.google.com/design/spec">材料设计指导方针</a>。
+设计布局时,请特别注意下列几点:
+</p>
 
 <ul>
 <li>基线格点</li>
@@ -83,7 +94,9 @@
 
 <h2 id="Depth">指定您视图内的高度</h2>
 
-<p>视图可透射阴影,而视图的高度值将决定其阴影的大小以及其显示顺序。如果要设置视图的高度,请使用您的布局中的 <code>android:elevation</code> 属性:</p>
+<p>视图可透射阴影,而视图的高度值将决定其阴影的大小以及其显示顺序。
+如果要设置视图的高度,请使用您的布局中的
+<code>android:elevation</code> 属性:</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>新的 <code>translationZ</code> 属性可让您创建反映出视图高度临时变化的动画。高度变化可在<a href="{@docRoot}training/material/animations.html#ViewState">响应触摸手势</a>时发挥作用。</p>
+<p>新的 <code>translationZ</code> 属性可让您创建反映出视图高度临时变化的动画。
+高度变化可在<a href="{@docRoot}training/material/animations.html#ViewState">响应触摸手势</a>时发挥作用。
 
-<p>有关更多详情,请参阅<a href="{@docRoot}training/material/shadows-clipping.html">定义阴影与裁剪视图</a>。</p>
+</p>
+
+<p>有关更多详情,请参阅<a href="{@docRoot}training/material/shadows-clipping.html">定义阴影与裁剪视图</a>。
+</p>
 
 
 <h2 id="ListsCards">创建列表与卡片</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 是 {@link android.widget.ListView} 的可插入版本,支持不同布局类型,具有更高性能。{@link android.support.v7.widget.CardView} 让您能够展示卡片内的各种信息并且在各种应用中实现一致的呈现方式。下列代码示例将展示如何将 {@link android.support.v7.widget.CardView} 包括在您的布局中:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 是 {@link
+android.widget.ListView} 的可插入版本,支持不同布局类型,具有更高性能。
+{@link android.support.v7.widget.CardView} 让您能够展示卡片内的各种信息并且在各种应用中实现一致的呈现方式。
+下列代码示例将展示如何将
+{@link android.support.v7.widget.CardView} 包括在您的布局中:</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>如果要了解更多信息,请参阅<a href="{@docRoot}training/material/lists-cards.html">创建列表与卡片</a>。</p>
+<p>如需了解详细信息,请参阅<a href="{@docRoot}training/material/lists-cards.html">创建列表和卡片</a>。
+</p>
 
 
 <h2 id="Animations">定制您的动画</h2>
 
-<p>Android 5.0(API 级别 21)包括新 API,可用于在您的应用中创建定制动画。例如,您可启用操作行为转换并定义操作行为内的退出转换:</p>
+<p>Android 5.0(API 级别 21)包括新 API,可用于在您的应用中创建定制动画。例如,您可启用操作行为转换并定义操作行为内的退出转换:
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -142,6 +166,6 @@
 }
 </pre>
 
-<p>当您从此操作行为开始另一个操作行为时,退出转换将被激活。</p>
+<p>当您从此操作行为启动另一个操作行为时,退出转换将被激活。</p>
 
-<p>如果要了解有关新动画 API 的更多详情,请参阅<a href="{@docRoot}training/material/animations.html">定义定制动画</a>。</p> 
\ No newline at end of file
+<p>如果要了解有关新动画 API 的更多详情,请参阅<a href="{@docRoot}training/material/animations.html">定义定制动画</a>。</p>
diff --git a/docs/html-intl/intl/zh-cn/training/material/index.jd b/docs/html-intl/intl/zh-cn/training/material/index.jd
index 0a968df..dea1483 100644
--- a/docs/html-intl/intl/zh-cn/training/material/index.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/index.jd
@@ -1,21 +1,26 @@
-page.title=使用材料设计创建应用
-page.type=design
-page.image=images/material.png
+page.title=面向开发者的材料设计
+page.type=设计
+page.image=images/cards/material_2x.png
 page.metaDescription=学习如何将材料设计运用到您的应用中。
 
+
 @jd:body
 
 <div id="tb-wrapper">
 <div id="tb">
-  <h2>依赖关系和先决条件</h2>
+  <h2>依赖项和先决条件</h2>
   <ul>
     <li>Android 5.0(API 级别 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>材料设计是专为设计适用于多个平台和设备的视觉、移动与互动效果而制定的综合指南。如果要在您的 Android 应用中使用材料设计,请遵循<a href="http://www.google.com/design/spec/material-design/introduction.html">材料设计规范</a>内所述的指导方针,并使用 Android 5.0(API 级别 21)所提供的新组件与功能。</p>
+<p>材料设计是专为设计适用于多个平台和设备的视觉、运动与互动效果而制定的综合指南。
+如果要在您的 Android 应用中使用材料设计,请遵循<a href="http://www.google.com/design/spec/material-design/introduction.html">材料设计规范</a>内所述的指导方针,并使用 Android 5.0(API 级别 21)所提供的新组件与功能。
+
+
+
+</p>
 
 <p>本课程将向您介绍如何利用下列元素创建材料设计应用:</p>
 
@@ -27,7 +32,8 @@
 <li>定制动画</li>
 </ul>
 
-<p>本课程也将向您展示在您的应用中使用材料设计功能时应如何维护与 Android 5.0(API 级别 21)之前的 Android 版本的兼容性。</p>
+<p>本课程也将向您展示在您的应用中使用材料设计功能时应如何保持与 Android
+5.0(API 级别 21)之前的 Android 版本的兼容性。</p>
 
 <h2>课程</h2>
 
@@ -52,4 +58,4 @@
 
   <dt><a href="{@docRoot}training/material/compatibility.html">维护兼容性</a></dt>
   <dd>了解如何维护与 Android 5.0 之前各种平台版本的兼容性。</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/zh-cn/training/material/lists-cards.jd b/docs/html-intl/intl/zh-cn/training/material/lists-cards.jd
index c17a975..47efe26 100644
--- a/docs/html-intl/intl/zh-cn/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/lists-cards.jd
@@ -19,28 +19,40 @@
 </div>
 
 
-<p>如果要在您的应用中使用材料设计风格创建复杂列表与卡片,您可使用 {@link android.support.v7.widget.RecyclerView} 以及 {@link android.support.v7.widget.CardView} 小组件。</p>
+<p>如果要在您的应用中使用材料设计风格创建复杂列表与卡片,您可使用
+{@link android.support.v7.widget.RecyclerView} 以及 {@link android.support.v7.widget.CardView}
+小组件。</p>
 
 
 <h2 id="RecyclerView">创建列表</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 小组件比 {@link android.widget.ListView} 更高级且更具灵活性。此小组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。如果您有数据收集任务,且在任务运行过程中其元素将因用户操作或网络事件而发生改变,则请使用 {@link android.support.v7.widget.RecyclerView} 小组件。</p>
+<p>{@link android.support.v7.widget.RecyclerView} 小组件比 {@link android.widget.ListView} 更高级且更具灵活性。
+此小组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。
+如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用
+{@link android.support.v7.widget.RecyclerView} 小组件。
+</p>
 
-<p>{@link android.support.v7.widget.RecyclerView} 类别将通过提供下列功能简化庞大数据集的显示与处理:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 类别将通过提供下列功能简化庞大数据集的显示与处理:
+</p>
 
 <ul>
   <li>用于项目定位的布局管理器</li>
-  <li>用于通用项目操作(例如删除或添加项目)的默认动画。</li>
+  <li>用于通用项目操作(例如删除或添加项目)的默认动画</li>
 </ul>
 
-<p>您也可灵活选择如何为 {@link android.support.v7.widget.RecyclerView} 小组件定义定制布局管理器与动画。</p>
+<p>您也可灵活选择如何为 {@link
+android.support.v7.widget.RecyclerView} 小组件定义定制布局管理器与动画。</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>图 1</strong>.<code>RecyclerView</code> 小组件。
 </p>
 
-<p>如果要使用 {@link android.support.v7.widget.RecyclerView} 小组件,您必须指定一个适配器和一个布局管理器。如果要创建一个适配器,请扩展 {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 类别。实现的详情将取决于数据集的具体信息以及视图的类型。如果要了解更多信息,请参阅下列<a href="#RVExamples">示例</a>。</p>
+<p>如果要使用 {@link android.support.v7.widget.RecyclerView} 小组件,您必须指定一个适配器和一个布局管理器。
+如果要创建一个适配器,请扩展 {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 类别。实现的详情将取决于数据集的具体信息以及视图的类型。
+如果要了解更多信息,请参阅下列<a href="#RVExamples">示例</a>。
+</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
@@ -49,25 +61,37 @@
 </p>
 </div>
 
-<p><strong>布局管理器</strong>将确定 {@link android.support.v7.widget.RecyclerView} 内各项目视图的位置并决定何时重新使用用户已不可见的项目视图。如果要重新使用(或<em>重复使用</em>)一个视图,布局管理器可能会要求适配器以数据集中的另一个元素替换视图的内容。以此方式重复使用视图将可避免创建不必要的视图或执行成本高昂的 {@link android.app.Activity#findViewById findViewById()} 查找,从而改善性能。</p>
+<p><strong>布局管理器</strong>将确定 {@link
+android.support.v7.widget.RecyclerView} 内各项目视图的位置并决定何时重新使用用户已不可见的项目视图。
+如果要重新使用(或<em>重复使用</em>)一个视图,布局管理器可能会要求适配器以数据集中的另一个元素替换视图的内容。
+以此方式重复使用视图将可避免创建不必要的视图或执行成本高昂的 {@link android.app.Activity#findViewById findViewById()} 查找,从而改善性能。
+
+</p>
 
 <p>{@link android.support.v7.widget.RecyclerView} 提供这些内置布局管理器:</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} 以垂直或水平滚动列表方式显示项目。</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} 以垂直或水平滚动列表方式显示项目。
+</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} 在网格中显示项目。</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} 在分散对齐网格中显示项目。</li>
 </ul>
 
-<p>如果要创建一个定制布局管理器,请扩展 {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 类别。</p>
+<p>如果要创建一个定制布局管理器,请扩展 {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 类别。</p>
 
 <h3>动画</h3>
 
-<p>{@link android.support.v7.widget.RecyclerView} 在默认情况下启用增添与删除项目的动画。如果要定制这些动画,请扩展 {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 类别并使用 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()} 方法。</p>
+<p>{@link
+android.support.v7.widget.RecyclerView} 在默认情况下启用增添与删除项目的动画。如果要定制这些动画,请扩展
+{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 类别并使用 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}
+方法。
+</p>
 
 <h3 id="RVExamples">示例</h3>
 
-<p>下列代码示例将展示如何将 {@link android.support.v7.widget.RecyclerView} 添加至布局:</p>
+<p>下列代码示例将展示如何将
+{@link android.support.v7.widget.RecyclerView} 添加至布局:</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>将 {@link android.support.v7.widget.RecyclerView} 小组件添加至您的布局后,立即获取对象图柄并将其连接至布局管理器,同时附加一个适配器以便显示数据:</p>
+<p>将 {@link android.support.v7.widget.RecyclerView} 小组件添加至您的布局后,立即获取对象图柄并将其连接至布局管理器,同时附加一个适配器以便显示数据:
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>适配器可让您存取数据集中的项目,为项目创建视图,并且在原始项目不再可见时以新数据项目替换视图的某些内容。下列代码示例将展示一个简单的实现,目标为一个包含使用 {@link android.widget.TextView} 小组件显示的字符串阵列的数据集:</p>
+<p>适配器可让您存取数据集中的项目,为项目创建视图,并且在原始项目不再可见时以新数据项目替换视图的某些内容。
+
+下列代码示例将展示一个简单的实现,目标为一个包含使用 {@link android.widget.TextView} 小组件显示的字符串阵列的数据集:
+</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -171,19 +200,29 @@
 
 <h2 id="CardView">创建卡片</h2>
 
-<p>{@link android.support.v7.widget.CardView} 扩展 {@link android.widget.FrameLayout} 类别并让您能够显示卡片内的信息,这些信息在整个平台中拥有一致的呈现方式。{@link android.support.v7.widget.CardView} 小组件可拥有阴影和圆角。</p>
+<p>{@link android.support.v7.widget.CardView} 扩展 {@link android.widget.FrameLayout} 类别并让您能够显示卡片内的信息,这些信息在整个平台中拥有一致的呈现方式。{@link
+android.support.v7.widget.CardView} 小组件可拥有阴影和圆角。
+</p>
 
-<p>如果要使用阴影创建卡片,请使用 <code>card_view:cardElevation</code> 属性。{@link android.support.v7.widget.CardView} 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编程阴影实现。如果要了解更多信息,请参阅<a href="{@docRoot}training/material/compatibility.html">维护兼容性</a>。</p>
+<p>如果要使用阴影创建卡片,请使用 <code>card_view:cardElevation</code> 属性。{@link android.support.v7.widget.CardView} 在 Android 5.0(API 级别 21)及更高版本中使用真实高度与动态阴影,而在早期的 Android 版本中则返回编程阴影实现。如需了解详细信息,请参阅<a href="{@docRoot}training/material/compatibility.html">保持兼容性</a>
 
-<p>使用这些属性定制 {@link android.support.v7.widget.CardView} 小组件的外观:</p>
+
+
+</p>
+
+<p>使用这些属性定制
+{@link android.support.v7.widget.CardView} 小组件的外观:</p>
 
 <ul>
-  <li>如果要在您的布局中设置圆角半径,请使用 <code>card_view:cardCornerRadius</code> 属性。</li>
+  <li>如果要在您的布局中设置圆角半径,请使用 <code>card_view:cardCornerRadius</code>
+属性。</li>
   <li>如果要在您的代码中设置圆角半径,请使用 <code>CardView.setRadius</code> 方法。</li>
-  <li>如果要设置卡片的背景颜色,请使用 <code>card_view:cardBackgroundColor</code> 属性。</li>
+  <li>如果要设置卡片的背景颜色,请使用 <code>card_view:cardBackgroundColor</code>
+属性。</li>
 </ul>
 
-<p>下列代码示例将展示如何将 {@link android.support.v7.widget.CardView} 小组件包括在您的布局中:</p>
+<p>下列代码示例将展示如何将 {@link android.support.v7.widget.CardView}
+小组件包括在您的布局中:</p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -207,12 +246,16 @@
 &lt;/LinearLayout>
 </pre>
 
-<p>如果要了解更多信息,请参阅 {@link android.support.v7.widget.CardView} 的 API 参考文档。</p>
+<p>如果要了解更多信息,请参阅 {@link android.support.v7.widget.CardView} 的 API 参考。</p>
 
 
-<h2 id="Dependencies">添加依赖关系</h2>
+<h2 id="Dependencies">添加依赖项</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 与 {@link android.support.v7.widget.CardView} 小组件为 <a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>的一部分。如果要在您的项目中使用这些小组件,请将这些 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依赖关系</a>添加至您的应用模块:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 与 {@link android.support.v7.widget.CardView}
+小组件为 <a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>的一部分。
+如果要在您的项目中使用这些小组件,请将这些
+<a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 依赖项</a>添加至您的应用模块:
+</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/zh-cn/training/material/shadows-clipping.jd b/docs/html-intl/intl/zh-cn/training/material/shadows-clipping.jd
index da58be6..e063d33 100644
--- a/docs/html-intl/intl/zh-cn/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/shadows-clipping.jd
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>材料设计为 UI 元素引入高度高度将帮助用户了解每个元素的相对重要性,让他们能够集中于手边的工作。</p>
+<p>材料设计为 UI 元素引入高度。高度将帮助用户了解每个元素的相对重要性,让他们能够集中于手边的工作。
+</p>
 
-<p>由 Z 属性所表示的视图高度将决定其阴影的视觉外观:拥有较高 Z 值的视图将投射更大且更柔和的阴影。拥有较高 Z 值的视图将挡住拥有较低 Z 值的视图;不过视图的 Z 值并不影响视图的大小。</p>
+<p>由 Z 属性所表示的视图高度将决定其阴影的视觉外观:拥有较高 Z 值的视图将投射更大且更柔和的阴影。
+拥有较高 Z 值的视图将挡住拥有较低 Z 值的视图;不过视图的 Z 值并不影响视图的大小。
+</p>
 
-<p>阴影是由提升的视图的父项所绘制,因此将受到标准视图裁剪的影响,而在默认情况下裁剪将由父项执行。</p>
+<p>阴影是由提升的视图的父项所绘制,因此将受到标准视图裁剪的影响,而在默认情况下裁剪将由父项执行。
+</p>
 
-<p>此外,在创建其中的小组件在执行某些操作行为时会暂时升至视图平面之上的动画时,高度也很实用。</p>
+<p>此外,在创建其中的小组件在执行某些操作行为时会暂时升至视图平面之上的动画时,高度也很实用。
+</p>
 
-<p>要了解更多有关材料设计高度的信息,请参阅 <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 空间内的对象</a>。</p>
+<p>要了解更多有关材料设计高度的信息,请参阅
+<a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 空间内的对象</a>。
+</p>
 
 
 <h2 id="Elevation">指定视图高度</h2>
 
-<p>视图的 Z 值包含两个组件: <ul>
+<p>视图的 Z 值包含两个组件:
+
+<ul>
 <li>高度:静态组件。</li>
 <li>转换:用于动画的动态组件。</li>
 </ul>
@@ -41,20 +50,32 @@
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
 <p class="img-caption"><strong>图 1</strong> - 不同视图高度的阴影。</p>
 
-<p>如果要在布局定义中设置视图的高度,请使用 <code>android:elevation</code> 属性。如果要在操作行为的代码中设置视图高度,请使用 {@link android.view.View#setElevation View.setElevation()} 方法。</p>
+<p>如果要在布局定义中设置视图的高度,请使用 <code>android:elevation</code>
+ 属性。如果要在操作行为的代码中设置视图高度,请使用
+{@link android.view.View#setElevation View.setElevation()} 方法。</p>
 
-<p>如果要设置视图转换,请使用 {@link android.view.View#setTranslationZ View.setTranslationZ()} 方法。</p>
+<p>如果要设置视图转换,请使用 {@link android.view.View#setTranslationZ
+View.setTranslationZ()} 方法。</p>
 
-<p>全新的 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 与 {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 方法让您能够轻松地为视图高度添加动画。如果要了解更多信息,请参阅 {@link android.view.ViewPropertyAnimator} 的 API 参考文档以及<a href="{@docRoot}guide/topics/graphics/prop-animation.html">属性动画</a>开发指南。</p>
+<p>全新的 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 与 {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 方法让您能够轻松地为视图高度添加动画。
+如果要了解更多信息,请参阅
+{@link android.view.ViewPropertyAnimator} 的 API 参考以及<a href="{@docRoot}guide/topics/graphics/prop-animation.html">属性动画</a>开发指南。
+</p>
 
-<p>您也可使用 {@link android.animation.StateListAnimator} 以说明性方式指定这些动画。当状态改变会触发动画(例如当用户按下按钮)时,此方法特别有用。如果要了解更多信息,请参阅<a href="{@docRoot}training/material/animations.html#ViewState">为视图状态改变添加动画</a>。</p>
+<p>您也可使用 {@link android.animation.StateListAnimator} 以说明性方式指定这些动画。
+当状态改变会触发动画(例如当用户按下按钮)时,此方法特别有用。
+如果要了解更多信息,请参阅<a href="{@docRoot}training/material/animations.html#ViewState">为视图状态改变添加动画</a>。
+</p>
 
-<p>Z 值按 dp(密度独立像素)测量。</p>
+<p>Z 值以 dp(密度独立像素)为单位度量。</p>
 
 
 <h2 id="Shadows">定制视图阴影与轮廓</h2>
 
-<p>视图的背景图片的边界将决定其阴影的默认形状。<strong>轮廓</strong>代表图形对象的外形并定义触摸反馈的波纹区域。</p>
+<p>视图的背景图片的边界将决定其阴影的默认形状。<strong>轮廓</strong>代表图形对象的外形并定义触摸反馈的波纹区域。
+
+</p>
 
 <p>下面举一个以背景图片定义的视图示例:</p>
 
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>视图将投射一个带有圆角的阴影,因为背景图片将定义视图的轮廓。如果提供一个定制轮廓,则此轮廓将替代视图阴影的默认形状。</p>
+<p>视图将投射一个带有圆角的阴影,因为背景图片将定义视图的轮廓。
+如果提供一个定制轮廓,则此轮廓将替代视图阴影的默认形状。</p>
 
 <p>如果要为您的代码中的视图定义定制轮廓:<p>
 
 <ol>
 <li>扩展 {@link android.view.ViewOutlineProvider} 类别。</li>
 <li>替代 {@link android.view.ViewOutlineProvider#getOutline getOutline()} 方法。</li>
-<li>利用 {@link android.view.View#setOutlineProvider View.setOutlineProvider()} 方法向您的视图指定新的轮廓提供程序。</li>
+<li>利用 {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()} 方法向您的视图指定新的轮廓提供程序。</li>
 </ol>
 
-<p>您可使用 {@link android.graphics.Outline} 类别中的方法创建带有圆角的椭圆形和矩形轮廓。视图的默认轮廓提供程序将从视图背景取得轮廓。如果要防止视图投射阴影,请将其轮廓提供程序设置为 <code>null</code>。</p>
+<p>您可使用
+{@link android.graphics.Outline} 类别中的方法创建带有圆角的椭圆形和矩形轮廓。视图的默认轮廓提供程序将从视图背景取得轮廓。
+如果要防止视图投射阴影,请将其轮廓提供程序设置为 <code>null</code>。
+</p>
 
 
 <h2 id="Clip">裁剪视图</h2>
 
-<p>裁剪视图让您能够轻松改变视图形状。您可以裁剪视图,以便与其他设计元素保持一致,也可以根据用户输入改变视图形状。您可使用 {@link android.view.View#setClipToOutline View.setClipToOutline()} 方法或 <code>android:clipToOutline</code> 属性将视图裁剪至其轮廓区域。由 {@link android.graphics.Outline#canClip Outline.canClip()} 方法所决定,仅有矩形、圆形和圆角矩形轮廓支持裁剪。</p>
+<p>裁剪视图让您能够轻松改变视图形状。您可以裁剪视图,以便与其他设计元素保持一致,也可以根据用户输入改变视图形状。您可使用 {@link android.view.View#setClipToOutline
+View.setClipToOutline()} 方法或 <code>android:clipToOutline</code> 属性将视图裁剪至其轮廓区域。
 
-<p>如果要将视图裁剪至图片的形状,请将图片设置为视图背景(如上所示)并调用 {@link android.view.View#setClipToOutline View.setClipToOutline()} 方法。</p>
+由
+{@link android.graphics.Outline#canClip Outline.canClip()} 方法所决定,仅有矩形、圆形和圆角矩形轮廓支持裁剪。
+</p>
 
-<p>裁剪视图是一个成本高昂的操作,因此不可为您用于裁剪视图的形状添加动画。如果要实现此效果,请使用<a href="{@docRoot}training/material/animations.html#Reveal">揭露效果</a>动画。</p> 
\ No newline at end of file
+<p>如果要将视图裁剪至图片的形状,请将图片设置为视图背景(如上所示)并调用 {@link android.view.View#setClipToOutline View.setClipToOutline()}
+方法。
+</p>
+
+<p>裁剪视图是一个成本高昂的操作,因此不可为您用于裁剪视图的形状添加动画。
+如果要实现此效果,请使用<a href="{@docRoot}training/material/animations.html#Reveal">揭露效果</a>动画。</p>
diff --git a/docs/html-intl/intl/zh-cn/training/material/theme.jd b/docs/html-intl/intl/zh-cn/training/material/theme.jd
index e9b5d06..5a45d4b 100644
--- a/docs/html-intl/intl/zh-cn/training/material/theme.jd
+++ b/docs/html-intl/intl/zh-cn/training/material/theme.jd
@@ -27,9 +27,12 @@
   <li>操作行为转换动画</li>
 </ul>
 
-<p>您可使用您所控制的配色工具,按照您的品牌形象定制材料主题的外观。您可使用主题属性为操作栏和状态栏着色,如<a href="#fig3">图 3</a> 所示。</p>
+<p>您可使用您所控制的配色工具,按照您的品牌形象定制材料主题的外观。
+您可使用主题属性为操作栏和状态栏着色,如<a href="#fig3">图 3</a> 所示。
+</p>
 
-<p>系统小组件拥有全新的设计与触摸反馈动画。您可为您的应用定制配色工具、触摸反馈动画以及操作行为转换。</p>
+<p>系统小组件拥有全新的设计与触摸反馈动画。您可为您的应用定制配色工具、触摸反馈动画以及操作行为转换。
+</p>
 
 <p>材料主题的定义为:</p>
 
@@ -39,7 +42,8 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>如果要了解您可使用的材料风格,请参阅 {@link android.R.style R.style} 的 API 参考文档。</p>
+<p>如果要了解您可使用的材料风格,请参阅
+{@link android.R.style R.style} 的 API 参考。</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
@@ -59,13 +63,18 @@
 </div>
 
 <p class="note">
-<strong>请注意:</strong>材料主题仅在 Android 5.0(API 级别 21)及更高版本中提供。<a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>为一些小组件提供附带材料设计风格的主题,同时为配色工具定制提供支持。如果要了解更多信息,请参阅<a href="{@docRoot}training/material/compatibility.html">维护兼容性</a>。
+<strong>注意:</strong>材料主题仅在 Android 5.0(API 级别 21)及更高版本中提供。
+<a href="{@docRoot}tools/support-library/features.html#v7">v7 支持内容库</a>为一些小组件提供附带材料设计风格的主题,同时为配色工具定制提供支持。
+
+如果要了解更多信息,请参阅
+<a href="{@docRoot}training/material/compatibility.html">保持兼容性</a>。
 </p>
 
 
 <h2 id="ColorPalette">定制配色工具</h2>
 
-<p style="margin-bottom:30px">如果要定制主题的基色以符合您的品牌,您可在进行材料主题继承时使用主题属性定义您的定制颜色:</p>
+<p style="margin-bottom:30px">如果要定制主题的基色以符合您的品牌,您可在进行材料主题继承时使用主题属性定义您的定制颜色:
+</p>
 
 <pre>
 &lt;resources>
@@ -91,17 +100,32 @@
 
 <h2 id="StatusBar">定制状态栏</h2>
 
-<p>材料主题可让您轻松定制状态栏,因此您可以指定一个符合自己品牌特色且对比度足够高、能够显示白色状态图标的颜色。如果要为状态栏设置定制颜色,您可在扩展材料主题时使用 <code>android:statusBarColor</code> 属性。默认情况下,<code>android:statusBarColor</code> 将继承 <code>android:colorPrimaryDark</code> 的值。</p>
+<p>材料主题可让您轻松定制状态栏,因此您可以指定一个符合自己品牌特色且对比度足够高、能够显示白色状态图标的颜色。
+如果要为状态栏设置定制颜色,您可在扩展材料主题时使用 <code>android:statusBarColor</code> 属性。
 
-<p>您也可自行将状态栏移到后侧。例如,您想在一个照片上以透明的方式显示状态栏,同时利用细微的深色渐变以确保白色状态图标仍保持可见。如果要执行此操作,请将 <code>android:statusBarColor</code> 属性设置为 <code>&#64;android:color/transparent</code> 并根据需要调整窗口标志。您也可以使用 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 方法进行动画或淡出设置。</p>
-
-<p class="note">
-<strong>请注意:</strong>在多数情况下,状态栏与主工具栏之间应该有一个清楚的分割,您在这些栏的后侧显示全屏的丰富图像或媒体内容以及使用颜色渐变以确保图表仍保持可见的情况除外。
+默认情况下,<code>android:statusBarColor</code> 将继承 <code>android:colorPrimaryDark</code> 的值。
 </p>
 
-<p>定制导航栏和状态栏时,您可选择将导航栏和状态栏变透明或仅修改状态栏。在所有其他情况中,导航栏均应保持黑色。</p>
+<p>您也可自行将状态栏移到后侧。例如,您想在一个照片上以透明的方式显示状态栏,同时利用细微的深色渐变以确保白色状态图标仍保持可见。
+
+如果要执行此操作,请将 <code>android:statusBarColor</code> 属性设置为
+<code>&#64;android:color/transparent</code> 并根据需要调整窗口标志。您也可以使用 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 方法进行动画或淡出设置。
+
+</p>
+
+<p class="note">
+<strong>注意:</strong>在多数情况下,状态栏与主工具栏之间应该有一个清楚的分割,您在这些栏的后侧显示全屏的丰富图像或媒体内容以及使用颜色渐变以确保图表仍保持可见的情况除外。
+
+
+</p>
+
+<p>定制导航栏和状态栏时,您可选择将导航栏和状态栏变透明或仅修改状态栏。
+在所有其他情况中,导航栏均应保持黑色。</p>
 
 
 <h2 id="Inheritance">主题个别视图</h3>
 
-<p>XML 布局定义内的元素可指定 <code>android:theme</code> 属性,而该属性将引用一个主题资源。此属性可修改元素以及任何子元素的主题,有助于改变界面中特定部分的主题配色工具。</p> 
\ No newline at end of file
+<p>XML 布局定义内的元素可指定 <code>android:theme</code> 属性,而该属性将引用一个主题资源。
+此属性可修改元素以及任何子元素的主题,有助于改变界面中特定部分的主题配色工具。
+
+</p>
diff --git a/docs/html-intl/intl/zh-tw/design/get-started/principles.jd b/docs/html-intl/intl/zh-tw/design/get-started/principles.jd
index 27cce81..c5d40d4 100644
--- a/docs/html-intl/intl/zh-tw/design/get-started/principles.jd
+++ b/docs/html-intl/intl/zh-tw/design/get-started/principles.jd
@@ -9,13 +9,13 @@
 
 <p>
 當您套用您本身的創意與設計思維時,請考慮這些原則。
-偏離一般做法要帶有目的。
+除非有特定目的,否則請遵循這些原則。
 </p>
 
 <h2 id="enchant-me">使人著迷</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="delight-me">以出乎意外的方式取悅人</h4>
 <p>漂亮的外觀、精心設置的動畫,或時機恰到好處的音效,都是令人感到喜悅的體驗。
@@ -23,7 +23,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -32,15 +32,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="real-objects-more-fun">真實的物件比按鈕和功能表更有趣</h4>
-<p>讓人們可以在您應用程式中直接輕觸和操縱物件,這可減少執行某項工作所需的認知過程,同時在情緒上更令人感到滿足。
+<h4 id="real-objects-more-fun">真實的物件比生硬的按鈕和選單,更能夠引人入勝。</h4>
+<p>您所設計的應用程式應該要能讓使用者可直接輕觸並操縱物件。這將可減少執行工作所需的認知準備,同時也能讓使用者在情緒上更為滿足。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -49,16 +49,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-it-mine">提供個人設定</h4>
-<p>人們喜歡加上個人風格,因為這有助於他們感到自在並握有主控權。提供能令人感受及美觀的預設設定,但也可以考慮使用不會阻礙主要工作卻又好玩的可選用性自訂項目。
+<p>很多人喜歡加上個人風格,因為這有助於他們感到自在並握有主控權。提供實用且美觀的預設設定,但也可以考慮使用不會阻礙主要工作而且有趣的選用自訂項目。
 
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -67,15 +67,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="get-to-know-me">設法了解使用者</h4>
-<p>隨著時間而學習使用者的偏好。讓人們易於取得之前的選擇,而不是一再詢問他們會做出相同選擇的問題。
+<p>隨著時間而學習使用者的偏好。讓使用者容易取得之前的選擇,而不是一再請他們做出相同的選擇。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -84,14 +84,14 @@
 
 <h2 id="simplify-my-life">簡化生活</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="keep-it-brief">保持簡潔</h4>
-<p>以簡單單字組成簡短語句。人們傾向於略過冗長的句子。</p>
+<p>以簡單單字組成簡短語句。多數人傾向於略過冗長的句子。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -100,15 +100,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="pictures-faster-than-words">圖片的傳達效果更勝於言語</h4>
-<p>請考慮使用圖片來解釋想法。圖片能吸引人們的注意力,並比言語更有效率。
+<p>請考慮使用圖片來解釋想法。圖片能吸引目光,並比言語更有效率。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -117,15 +117,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="decide-for-me">幫使用者決定,但使用者擁有最終決定權</h4>
-<p>做出最好的猜測,先行動,而非先詢問。太多的選擇和決定會讓人們不高興。
+<p>做出最好的猜測,先行動,而非先詢問。太多的選擇和決定會讓使用者覺得很痛苦。
 為防止錯誤,務必允許復原。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -134,15 +134,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="only-show-when-i-need-it">必要時僅顯示使用者需要的東西</h4>
-<p>人們無法承受一次看到太多東西。將工作和資訊細分成小型、易消化的區塊。
-隱藏當下不重要的選項,但在人們需要選擇時要明確指導。</p>
+<h4 id="only-show-when-i-need-it">必要時僅顯示使用者需要的內容</h4>
+<p>多數人無法承受一次看到太多東西。將工作和資訊細分成小型、易消化的區塊。
+隱藏當下不重要的選項,但在需要選擇時要明確指導。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -151,15 +151,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
-<h4 id="always-know-where-i-am">使用者應該總是清楚所在位置</h4>
-<p>給人們信心,知道自己沒有迷路。讓您應用程式中的各處看起來都有獨特性,並使用轉換來顯示畫面之間的關係。
+<h4 id="always-know-where-i-am">使用者應該永遠清楚所在位置</h4>
+<p>給使用者信心,知道自己沒有迷路。讓您應用程式中的各個地方看起來都有獨特性,並使用轉換來顯示畫面之間的關係。
 針對進行中的工作提供回饋。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -168,8 +168,8 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="never-lose-my-stuff">別弄丟使用者的東西</h4>
 <p>儲存使用者花時間所建立的資訊,並且讓使用者可從任何地方存取。跨手機、平板電腦和電腦記住設定、個人風格和建立的資訊。
@@ -177,7 +177,7 @@
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -186,15 +186,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="looks-same-should-act-same">如果看起來一樣,就應該有相同的動作</h4>
-<p>讓功能看起來就不一樣,而非變化微妙,這可以協助人們辨別功能差異。在相同輸入環境下,因為模式看起來很類似但卻有不同的動作,請盡量避免使用。
+<p>讓功能看起來就不一樣,而非變化微妙,這可以協助使用者辨別功能差異。在相同輸入環境下,請盡量避免使用看起來很類似但作用卻不同的模式。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -203,15 +203,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="interrupt-only-if-important">重要時才打斷</h4>
-<p>就像一位好的私人助理,讓人們免於無關緊要的枝微末節。人們總想集中注意力,除非很重要且具時效性,不然貿然中斷會令人感到費力且沮喪。
+<p>就像一位好的私人助理,應該讓使用者免於無關緊要的枝微末節。使用者總想集中注意力,除非很重要且具時效性,否則貿然中斷會令人感到費力且沮喪。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -220,16 +220,16 @@
 
 <h2 id="make-me-amazing">讓使用者驚艷</h2>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="give-me-tricks">提供使用者各處通用的訣竅</h4>
-<p>當人們能自行弄清楚來龍去脈時是很棒的體驗。運用來自其他 Android 應用程式的視覺模式和肌肉記憶效應,讓使用者更易於學會您的應用程式。
+<p>當使用者能自行弄清楚來龍去脈時是很棒的體驗。運用來自其他 Android 應用程式的視覺模式和肌肉記憶效應,讓使用者更易於學會您的應用程式。
 例如,擺動手勢可能是很好的導覽捷徑。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -238,16 +238,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="its-not-my-fault">不是使用者的錯</h4>
-<p>提示人們更正時要溫和。人們使用您的應用程式時,會想要感受到自已非常明智。如果有什麼不對,請提供明確的復原指示,但不需要使用者明瞭技術細節。如果可以,請盡量在幕後修正。
-
+<p>提示使用者進行更正時要溫和。使用者使用您的應用程式時,不會自覺是笨蛋。
+若有地方出錯,請提供明確的復原指示,但不需要使用者明瞭技術細節。如果可以,請盡量在幕後修正。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -256,15 +256,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="sprinkle-encouragement">分段鼓勵</h4>
-<p>將複雜工作細分成更小的步驟,讓使用者可以輕鬆完成。對動作給予回饋,即使只是個微光效果。
+<p>將複雜工作細分成更小的步驟,讓使用者可以輕鬆完成。對動作給予回饋,即使只是細微的動作。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -273,16 +273,16 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="do-heavy-lifting-for-me">為使用者處理繁重的工作</h4>
-<p>讓新手也能做出以前從未想像過可以辦到的事情,讓使用者有專家的感覺。例如,組合多個相片效果的捷徑,只要幾個步驟,即可讓業餘照片令人驚艷。
+<p>讓新手也能做到以前從未想像過可以完成的事情,讓使用者覺得自己是專家。例如,組合多個相片效果的捷徑,只要幾個步驟,即可讓業餘照片令人驚艷。
 
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -291,15 +291,15 @@
 
 <div class="vspace size-2">&nbsp;</div>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-7">
+<div class="cols">
+  <div class="col-7">
 
 <h4 id="make-important-things-fast">快速找到重要的功能</h4>
-<p>並非所有的動作都一視同仁。決定應用程式中最重要的部分,並讓使用者易於找到並可迅速使用,例如相機的快門按鈕或音樂播放器的暫停按鈕。
+<p>並非所有的動作都平等。決定應用程式中最重要的部分,並讓使用者易於找到並可迅速使用,例如相機的快門按鈕或音樂播放器的暫停按鈕。
 </p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html-intl/intl/zh-tw/design/material/index.jd b/docs/html-intl/intl/zh-tw/design/material/index.jd
index 620ee6e..464dc2a 100644
--- a/docs/html-intl/intl/zh-tw/design/material/index.jd
+++ b/docs/html-intl/intl/zh-tw/design/material/index.jd
@@ -1,7 +1,6 @@
-page.title=材料設計
-page.tags=Material, design
-page.type=設計
-page.image=design/material/images/MaterialLight.png
+page.title=Android 材料設計
+page.tags=Material,design, 設計
+page.image=images/cards/design-material-for-android_2x.jpg
 
 @jd:body
 
@@ -41,25 +40,25 @@
 
 <p itemprop="description">材料設計是一份內容廣泛的綜合性指南,引導您跨平台、跨裝置進行視覺、動態和互動的設計。
 Android 現已納入對材料設計應用程式的支援。
-如果要在 Android 應用程式中使用材料設計,請依照<a href="http://www.google.com/design/spec">材料設計規格</a>中定義的指示,並使用
-Android
-5.0 (API 層級 21) 或後續版本中的新元件和新功能。</p>
+如果要在 Android 應用程式中使用材料設計,請依照<a href="http://www.google.com/design/spec">材料設計規格</a>中定義的指示,並使用 Android 5.0 (API 級別 21) 或後續版本中的新元件和新功能。
+
+</p>
 
 <p>Android 提供下列元素,供您打造材料設計應用程式:</p>
 
 <ul>
-  <li>一個新的設計風格</li>
-  <li>用於複雜檢視的小工具</li>
+  <li>新的設計風格</li>
+  <li>用於複雜視圖的小工具</li>
   <li>自訂陰影和動畫的新 API</li>
 </ul>
 
-<p>如需取得如何在 Android 上實作材料設計的詳細資訊,請詳見<a href="{@docRoot}training/material/index.html">使用材料設計建立應用程式</a>。
+<p>如需取得如何在 Android 上實作材料設計的詳細資訊,請參閱<a href="{@docRoot}training/material/index.html">使用材料設計建立應用程式</a>。
 </p>
 
 
 <h3>材料設計風格</h3>
 
-<p>材料設計風格提供您應用程式使用的新樣式、可以讓您設定色板的系統小工具,並針對輕觸回饋與操作行為轉換提供預設動畫。
+<p>材料設計風格提供您應用程式使用的新樣式、可以讓您設定色板的系統小工具,並針對輕觸回饋與操作 Activity 轉換提供預設動畫。
 </p>
 
 <!-- two columns -->
@@ -92,8 +91,8 @@
 <div style="width:700px;margin-top:25px;margin-bottom:20px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" />
-  <p>新的 <code>RecyclerView</code> 小工具是 <code>ListView</code>
-更容易插入的版本,支援不同的版面配置類型,並提供效能改善。</p>
+  <p>新的 <code>RecyclerView</code> 小工具是 <code>ListView</code> 更容易插入的版本,支援不同的版面配置類型,並提供效能改善。
+</p>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" />
@@ -109,12 +108,12 @@
 
 <h3>檢視陰影</h3>
 
-<p>除了 X 和 Y 屬性外,Android 中的檢視現在也有 Z 屬性。
-這個新屬性代表檢視的高度,這會決定:</p>
+<p>除了 X 和 Y 屬性外,Android 中的視圖現在也有 Z 屬性。
+這個新屬性代表視圖的高度,這會決定:</p>
 
 <ul>
-<li>陰影大小:帶有較高 Z 值的檢視會投射更大的陰影。</li>
-<li>繪製順序:具有較高 Z 值的檢視會顯示在其他檢視之上。</li>
+<li>陰影大小:Z 值較高的視圖會投射更大的陰影。</li>
+<li>繪製順序:Z 值較高的視圖會顯示在其他視圖之上。</li>
 </ul>
 
 <div style="width:290px;margin-left:35px;float:right">
@@ -130,39 +129,38 @@
   </div>
 </div>
 
-<p>如需取得詳細資訊,請參閱<a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪檢視</a>。
+<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪視圖</a>。
 </p>
 
 
 <h3>動畫</h3>
-
-<p>新的動畫 API 可針對 UI 控制項的輕觸回饋、檢視狀態中的變更,以及行為轉換,讓您建立自訂動畫。
+<p>新的動畫 API 可針對 UI 控制項的輕觸回饋、視圖狀態中的變更,以及操作行為轉換,讓您建立自訂動畫。
 </p>
 
 <p>這些 API 讓您可以:</p>
 
 <ul>
 <li style="margin-bottom:15px">
-回應您檢視中有<strong>輕觸回饋</strong>動畫的輕觸事件。
+回應您視圖中有<strong>輕觸回饋</strong>動畫的輕觸事件。
 </li>
 <li style="margin-bottom:15px">
-隱藏和顯示有<strong>循環顯示</strong>動畫的檢視。
+隱藏和顯示有<strong>循環顯示</strong>動畫的視圖。
 </li>
 <li style="margin-bottom:15px">
-在有自訂<strong>行為轉換</strong>動畫的行為間切換。
+在包含自訂<strong>操作行為轉換</strong>動畫的行為間切換。
 </li>
 <li style="margin-bottom:15px">
 使用<strong>曲線動作</strong>建立更自然的動畫。
 </li>
 <li style="margin-bottom:15px">
-在帶有<strong>檢視狀態變更</strong>動畫的一個或多個檢視屬性中變更動畫。
+在包含<strong>視圖狀態變更</strong>動畫的一個或多個視圖屬性中變更動畫。
 </li>
 <li style="margin-bottom:15px">
-在檢視狀態變更間,顯示<strong>狀態清單可繪項目</strong>中的動畫。
+在視圖狀態變更之間,顯示<strong>狀態清單可繪項目</strong>中的動畫。
 </li>
 </ul>
 
-<p>輕觸回饋動畫會內建於數個標準檢視中,例如按鈕等。新 API 可讓您自訂這些動畫,並將其新增至您的自訂檢視中。
+<p>輕觸回饋動畫會內建於數個標準視圖中,例如按鈕等。新 API 可讓您自訂這些動畫,並將其新增至您的自訂視圖中。
 </p>
 
 <p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/animations.html">定義自訂動畫</a>。
@@ -176,7 +174,7 @@
 <ul>
 <li><strong>矢量可繪項目</strong>可以調整大小,但又不會喪失定義,最適合於應用程式中的單色圖示。
 </li>
-<li><strong>可繪項目著色</strong>可讓您在執行階段將點陣圖定義為 Alpha 遮罩,並以一個顏色進行著色。
+<li><strong>繪製著色</strong>可讓您在執行階段將點陣圖定義為 Alpha 遮罩,並以一個顏色進行著色。
 </li>
 <li><strong>顏色提取</strong>可讓您自動從點陣圖影像中提取顯著顏色。
 </li>
diff --git a/docs/html-intl/intl/zh-tw/design/patterns/compatibility.jd b/docs/html-intl/intl/zh-tw/design/patterns/compatibility.jd
new file mode 100644
index 0000000..b65b90b
--- /dev/null
+++ b/docs/html-intl/intl/zh-tw/design/patterns/compatibility.jd
@@ -0,0 +1,70 @@
+page.title=向下相容性
+page.tags="support"
+page.metaDescription=有關 Android 4.x 改寫針對舊硬體和 OS 版本設計的 UI 之備註。
+@jd:body
+
+<a class="notice-developers" href="{@docRoot}training/basics/supporting-devices/index.html">
+  <div>
+    <h3>開發人員文件</h3>
+    <p>支援不同裝置</p>
+  </div>
+</a>
+
+<p>Android 3.0 主要更新包含:</p>
+<ul>
+<li>淘汰導覽硬體鍵 (返回、選單、搜尋、首頁),以虛擬控制按鍵取代實體導覽按鍵 (返回、首頁、最近使用記錄)。
+</li>
+<li>健全的動作列選單使用模式。</li>
+</ul>
+<p>Android 4.0 版本將平板電腦的變更套用於手機平台。</p>
+
+<h2 id="older-hardware">針對舊版本的硬體及應用程式,改寫 Android 4.0</h2>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>使用虛擬導覽控制鍵的手機</h4>
+<p>專為 Android 3.0 及之後版本設計的應用程式會在動作列中顯示動作。擠不進動作列或重要性不足的動作,會顯示在動作溢位中。
+
+</p>
+<p>使用者可輕觸動作列中的動作溢位以存取它。</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_virtual_nav.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>使用實體導覽鍵的手機</h4>
+<p>使用實體導覽鍵的 Android 手機不會在螢幕底部顯示虛擬導覽列。
+如要存取動作溢位,請使用選單硬體按鍵。所產生的動作彈出式選單的風格與先前範例相同,但會顯示在螢幕頂部。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_physical_buttons.png">
+
+  </div>
+</div>
+
+<div class="cols">
+  <div class="col-6">
+
+<h4>在使用虛擬導覽控制鍵的手機上執行舊版應用程式</h4>
+<p>當您在具備虛擬導覽控制鍵的手機上,執行為 Android 2.3 或之前版本所設計的應用程式時,動作溢位控制會顯示在虛擬導覽列的右側。
+您可以輕觸控制鍵,以顯示傳統 Android 選單風格的應用程式動作。
+</p>
+
+  </div>
+  <div class="col-7">
+
+    <img src="{@docRoot}design/media/compatibility_legacy_apps.png">
+
+  </div>
+</div>
diff --git a/docs/html-intl/intl/zh-tw/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/zh-tw/design/patterns/confirming-acknowledging.jd
index ac8975f..a92a017 100644
--- a/docs/html-intl/intl/zh-tw/design/patterns/confirming-acknowledging.jd
+++ b/docs/html-intl/intl/zh-tw/design/patterns/confirming-acknowledging.jd
@@ -2,14 +2,14 @@
 page.tags=dialog,toast,notification
 @jd:body
 
-<p>在某些情況下,當使用者在您應用程式中呼叫一個動作時,最好是透過文字來「確認」(confirm) <em></em>或「確認完成」<em></em>(acknowledge)。</p>
+<p>在某些情況下,當使用者在您應用程式中呼叫一個動作時,最好是透過文字來「確認」<em></em>或「確認完成」<em></em>。</p>
 
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_confirming.png">
     <p><strong>確認</strong>是要求使用者確認真的要進行剛剛呼叫的動作。在某些情況下,確認訊息出現時會伴隨警告或需要使用者考量是否採取動作的相關重要資訊。</p>
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <img src="{@docRoot}design/media/confirm_ack_acknowledge.png">
     <p><strong>確認完成</strong>是顯示文字,讓使用者知道已經完成剛剛呼叫的動作。這會排除系統正在採取之隱式作業的不確定性。在某些情況下,確認完成出現時會伴隨復原動作的選項。</p>
   </div>
@@ -22,14 +22,14 @@
 <img src="{@docRoot}design/media/confirm_ack_flowchart.png">
 
 <h2>確認</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>範例:Google Play 書籍</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_books.png">
     <p>在此範例中,使用者已要求從其 Google Play 媒體庫中刪除一本書籍。顯示<a href="{@docRoot}design/building-blocks/dialogs.html#alerts">警示</a>來確認此動作,因為使用者必須了解將不再針對任何裝置提供這本書籍。</p>
     <p>設計一個確認的對話方塊時,要讓標題具有意義就必須回應要求的動作。</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>範例:Android Beam</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_beam.png">
     <p>確認不一定要以具有兩個按鈕的警示來呈現。在啟動 Android Beam 之後,會提示使用者輕觸要共用的內容 (在此範例中是一張照片)。如果他們決定不進行,只要移開他們的電話即可。</p>
@@ -37,15 +37,15 @@
 </div>
 
 <h2>確認完成</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>範例:已儲存放棄的 Gmail 草稿</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png">
-    <p>在此範例中,如果使用者從 Gmail 撰寫畫面返回,可能會發生預期外的狀況:會自動儲存目前的草稿。以快顯通知 (toast) 形式出現的確認完成,會讓使用者明瞭此情況。確認完成會在幾秒鐘後淡出。</p>
+    <p>在此範例中,如果使用者從 Gmail 撰寫畫面返回,可能會發生預期外的狀況:會自動儲存目前的草稿。以快顯通知形式出現的確認完成,會讓使用者明瞭此情況。確認完成會在幾秒鐘後淡出。</p>
     <p>在此並不合適使用復原功能,因為儲存動作是由應用程式發起,而非使用者。瀏覽至草稿清單,就可以方便且快速地繼續撰寫。</p>
 
   </div>
-  <div class="layout-content-col span-6">
+  <div class="col-6">
     <h4>範例:已刪除 Gmail 會話群組</h4>
     <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png">
     <p>使用者從 Gmail 清單中刪除一個會話群組後,會出現確認完成訊息,並提供一個復原選項。確認完成會持續出現,直到使用者採取不相關的動作,例如捲動清單。</p>
@@ -53,14 +53,14 @@
 </div>
 
 <h2>無「確認」或「確認完成」</h2>
-<div class="layout-content-row">
-  <div class="layout-content-col span-6">
+<div class="cols">
+  <div class="col-6">
     <h4>範例:+1 中</h4>
     <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png">
     <p><strong>確認並非必要</strong>。如果使用者不小心按了 + 1 按鈕,這並不是什麼大問題。他們可以再次輕觸按鈕,復原此動作。</p>
-    <p><strong>確認完成並非必要</strong>。使用者將會看到 +1 彈起並變成紅色。這是個非常明確的訊號。</p>
+    <p><strong>確認完成並非必要</strong>。使用者將會看到 +1 按鈕彈起並變成紅色。這是個非常明確的訊號。</p>
   </div>
-  <div class="layout-content-col span-7">
+  <div class="col-7">
     <h4>範例:從主螢幕移除應用程式</h4>
     <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png">
     <p><strong>確認並非必要</strong>。這是特意設計的動作:使用者必須拖曳項目放到相對較大且隔離的目標上。因此極不可能發生意外狀況。但如果使用者後悔所做的決定,只需幾秒鐘,就可以恢復原狀。</p>
diff --git a/docs/html-intl/intl/zh-tw/design/patterns/navigation.jd b/docs/html-intl/intl/zh-tw/design/patterns/navigation.jd
index db160c2..a568cb1d 100644
--- a/docs/html-intl/intl/zh-tw/design/patterns/navigation.jd
+++ b/docs/html-intl/intl/zh-tw/design/patterns/navigation.jd
@@ -10,71 +10,71 @@
   </div>
 </a>
 
-<p itemprop="description">一致的導覽是整體使用者體驗的必備組成。基本導覽的行為若不一致又令人意外,是最令使用者感到更沮喪的狀況。
+<p itemprop="description">一致的導覽是整體使用者體驗的要件。以不一致且非預期方式運作的基本導覽行為最令使用者感到沮喪。
 Android 3.0 已將重大變更導入全域的導覽行為中。
-完全遵循 [返回] 及 [上一層] 的方針,會讓使用者感到您的應用程式導覽既可靠又符合預期。
+仔細遵循以下指導方針原則以設定 [返回] 及 [上一層] 按鈕,讓您的應用程式更可靠且符合預期。
 </p>
-<p>Android 2.3 和更早版本依賴系統 [返回]
-<em></em>按鈕,以支援應用程式內的導覽。在 Android 3.0 導入動作列之後,出現第二個導覽機制:[上一層]
-<em></em>按鈕,由應用程式圖示和左指符號組成。</p>
+<p>Android 2.3 及之前版本均使用 [返回]<em></em> 按鈕在應用程式中進行導覽。
+在 Android 3.0 導入導覽列功能,使用者有了另一種導覽方式:[上一層]<em></em> 按鈕,由應用程式圖示及左指插入號組成。
+</p>
 
 <img src="{@docRoot}design/media/navigation_with_back_and_up.png">
 
-<h2 id="up-vs-back">[上一層] vs.[返回]</h2>
+<h2 id="up-vs-back">[返回] 及 [上一層]</h2>
 
-<p>[上一層] 按鈕用於在畫面間有階層關係的應用程式中導覽。
-例如,如果畫面 A
-顯示項目清單,然後選擇其中一個項目導致進入畫面 B (更詳細呈現該項目),那麼畫面 B 應該提供 [上一層] 按鈕,以便返回畫面 A。
+<p>[上一層] 按鈕用於在應用程式中,根據畫面之間的階層關係進行導覽。
+例如,如果畫面 A 顯示項目清單,然後選擇其中一個項目導致進入畫面 B (更詳細呈現該項目),那麼畫面 B 應該提供 [上一層] 按鈕,以便返回畫面 A。
+
 </p>
-<p>如果畫面是在應用程式中的最頂端 (亦即應用程式的首頁),則不應該會有 [上一層]按鈕。
+<p>如果畫面是在應用程式中的最頂端 (亦即應用程式的首頁),則不應該會有 [上一層] 按鈕。
 </p>
 
 <p>系統 [返回] 按鈕用於逆時間順序導覽,透過歷程記錄,可以經歷使用者最近使用過的畫面。
 [返回] 通常基於畫面之間的暫時關係,而非應用程式的階層。
 </p>
 
-<p>當先前檢視的畫面也是目前畫面的階層父項時,按下
-[返回] 按鈕和按下 [上一層] 按鈕效果相同 &mdash; 這是常見的狀況。
-然而,與 [上一層] 按鈕不同的是 (該按鈕可以確保使用者仍停留在您的應用程式內):[返回]
-按鈕可以讓使用者返回主畫面,或甚至是不同的應用程式。</p>
+<p>當先前檢視的畫面也是目前畫面的階層父項時,按下 [返回] 按鈕和按下 [上一層] 按鈕效果相同 &mdash; 這是常見的狀況。
+
+然而,與 [上一層] 按鈕不同的是 (該按鈕可以確保使用者仍停留在您的應用程式內):[返回] 按鈕可以讓使用者返回主螢幕,或甚至是不同的應用程式。
+</p>
 
 <img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
 
 <p>[返回] 按鈕還支援幾個間接關聯畫面對畫面導覽的行為:
 </p>
 <ul>
-<li>關閉浮動視窗 (對話、快顯)</li>
+<li>關閉浮動視窗 (對話框、快顯)</li>
 <li>關閉內容相關的動作列,並從選取項目移除醒目顯示</li>
 <li>隱藏畫面鍵盤 (IME)</li>
 </ul>
 <h2 id="within-app">在應用程式內導覽</h2>
 
-<h4>導覽至具有多重入口的畫面</h4>
-<p>有時候,一個畫面在應用程式的階層中並沒有嚴謹的位置,而且可以從多個入口存取 &mdash; 例如可以從您應用程式中任何其他畫面存取的設定畫面。在這種情況下,[上一層]
-按鈕應該選擇返回導引至此畫面的前一畫面,這個行為與 [返回] 相同。
+<h4>導覽至具有多個進入點的畫面</h4>
+<p>有時畫面在應用程式中的階層並不明確,可從多個入口點進入畫面 &mdash; 例如,可從應用程式中的任何其他畫面進入的設定畫面。
 
+在這種情況下,應按下 [上一層] 按鈕回到之前的參照畫面,操作方式與 [返回] 按鈕相同。
 </p>
-<h4>在畫面內變更檢視</h4>
-<p>變更畫面的檢視選項並不會變更 [上一層] 或 [返回] 的行為:畫面仍維持在應用程式階層中的相同位置,並不會建立新的導覽歷程記錄。
+<h4>在畫面內變更視圖</h4>
+<p>變更畫面的視圖選項並不會變更 [上一層] 或 [返回] 的行為:畫面仍維持在應用程式階層中的相同位置,並不會建立新的導覽歷程記錄。
 </p>
-<p>這類檢視變更的範例如下:</p>
+<p>這類視圖變更的範例如下:</p>
 <ul>
-<li>使用標籤和/或左與右滑動來切換檢視</li>
-<li>使用下拉清單 (亦即折疊標籤) 切換檢視</li>
+<li>使用標籤和/或左與右滑動來切換視圖</li>
+<li>使用下拉清單 (亦即折疊標籤) 切換視圖</li>
 <li>篩選清單</li>
 <li>對清單排序</li>
 <li>變更顯示特性 (如縮放)</li>
 </ul>
 <h4>在同層級畫面間導覽</h4>
-<p>當您的應用程式支援從項目清單導覽至項目之一的詳細檢視時,使用者通常會想使用方向導覽功能,以便從該項目導覽至清單中的前一個或後一個項目。
+<p>當您的應用程式支援從項目清單導覽至項目之一的詳細視圖時,使用者通常會想使用方向導覽功能,以便從該項目導覽至清單中的前一個或後一個項目。
 
 例如在 Gmail 中,可以很容易從會話群組向左或右滑動,方便檢視相同「收件匣」中的較新或舊會話群組。
-就像在一個畫面中變更檢視時,這類導覽不會變更 [上一層] 或 [返回] 的行為。
+就像在一個畫面中變更視圖時,這類導覽不會變更 [上一層] 或 [返回] 的行為。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
 
-<p>然而有一個明顯的例外是,在不被引用清單綁在一起的相關詳細資料檢視之間瀏覽時 &mdash; 例如在 Play 商店中於相同開發者的不同應用程式之間瀏覽時,或是在相同演出者的專輯間瀏覽時。
+<p>然而有一個明顯的例外是,在未與引用清單繫結在一起的相關詳細資料視圖之間瀏覽時 &mdash; 例如在 Play 商店中於相同開發者的不同應用程式之間瀏覽時,或是在相同演出者的專輯間瀏覽時。
 
 在這些情況下,瀏覽每個連結都會產生歷程記錄,這會造成 [返回] 按鈕會經歷每個先前檢視過的畫面。
 [上一層] 應該會繼續略過這些相關的畫面,並導覽到最近檢視過的容器畫面。
@@ -82,16 +82,16 @@
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
 
-<p>基於您對詳細資料檢視的瞭解,您有能力讓 [上一層] 行為甚至變得更聰明。
+<p>基於您對詳細資料視圖的瞭解,您有能力讓 [上一層] 行為甚至變得更聰明。
 再延伸說明之前提及的 Play 商店範例,想像使用者已從最近檢視的「書籍」導覽至「電影」改編的詳細資料。
-在這種情況下,[上一層]
-可以返回到使用者之前沒有導覽過的上層容器 (電影)。</p>
+在這種情況下,[上一層] 可以返回到使用者之前沒有導覽過的上層容器 (電影)。
+</p>
 
 <img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
 
-<h2 id="into-your-app">透過「主畫面小工具」和「通知」,導覽至您的應用程式</h2>
+<h2 id="into-your-app">透過「主螢幕小工具」和「通知」,導覽至您的應用程式</h2>
 
-<p>您可以使用主畫面小工具或通知,協助您直接導覽至深入您應用程式階層中的畫面。
+<p>您可以使用主螢幕小工具或通知,協助您直接導覽至深入您應用程式階層中的畫面。
 例如,Gmail 的「收件匣」小工具和新郵件通知,都可以略過「收件匣」畫面,將使用者直接帶到會話群組檢視之中。
 </p>
 
@@ -100,7 +100,7 @@
 <ul>
 <li>如果目的地畫面通常是透過您應用程式中的一個特定畫面到達,那麼 [上一層] 應該要導覽至該畫面。<em></em>
 </li>
-<li>否則<em></em>, [上一層] 應該導覽至您應用程式的最頂端 (「主」) 畫面。</li>
+<li>否則<em></em>, [上一層] 應該導覽至您應用程式的最頂端 (「主」) 螢幕。</li>
 </ul>
 
 <p>就 [返回] 按鈕而言,您應讓導覽更符合預期,方法是在工作的返回堆疊中,插入前往應用程式最頂端畫面的完整向上導覽路徑。
@@ -108,30 +108,30 @@
 
 </p>
 
-<p>舉例來說,Gmail 的主畫面小工具有一個按鈕,可以直接往下進入撰寫畫面。
-來自撰寫畫面的 [上一層] 或 [返回] 按鈕,會將使用者帶到「收件匣」中,而此處的 [返回] 按鈕則可繼續前往至「主畫面」。
+<p>舉例來說,Gmail 的主螢幕小工具有一個按鈕,可以直接往下進入撰寫畫面。
+來自撰寫畫面的 [上一層] 或 [返回] 按鈕,會將使用者帶到「收件匣」中,而此處的 [返回] 按鈕則可繼續前往至「主螢幕」。
 </p>
 
 <img src="{@docRoot}design/media/navigation_from_outside_back.png">
 
 <h4>間接通知</h4>
 
-<p>當您的應用程式需要同時呈現多個事件的資訊時,可以使用單一通知,引導使用者進入一個插頁畫面。
-此畫面會摘要這些事件,並提供路徑,讓使用者可以深入應用程式之中。這種風格的通知稱為「間接通知」<em></em>。
-
+<p>若應用程式必須同時呈現多個事件,可利用單一通知,引導使用者進入插頁畫面。
+插頁畫面會概述所有事件,並提供讓使用者可以深入應用程式之中的路徑。
+這種通知方式稱為<em>間接通知</em>。
 </p>
 
 <p>與標準 (直接) 通知不同的是,從間接通知的插頁畫面按下 [返回],會讓使用者返回至通知觸發的起點 &mdash; 無其他畫面會插入至返回堆疊之中。
 
-一旦使用者從插頁畫面繼續進入應用程式之後,[上一層]
-與 [返回] 會如上所述,其行為就像針對標準通知一樣:在應用程式內導覽,而非返回插頁畫面。
+一旦使用者從插頁畫面繼續進入應用程式之後,[上一層] 與 [返回] 會如上所述,其行為就像針對標準通知一樣:在應用程式內導覽,而非返回插頁畫面。
+
 </p>
 
 <p>例如,假設 Gmail 中的使用者收到來自「行事曆」的間接通知。輕觸這個通知會打開插頁畫面,而此畫面會顯示數個不同事件的提醒。
 
 從插頁畫面輕觸 [返回],會讓使用者返回至 Gmail。輕觸特定事件會將使用者帶離插頁畫面,並進入完整的「行事曆」應用程式,顯示事件的詳細資料。
 
-從事件詳細資料中,[上一層] 和 [返回] 會導覽至「行事曆」的最頂層檢視。</p>
+從事件詳細資料中,[上一層] 和 [返回] 會導覽至「行事曆」的最頂層視圖。</p>
 
 <img src="{@docRoot}design/media/navigation_indirect_notification.png">
 
@@ -139,75 +139,75 @@
 
 <p>快顯通知<em></em>會略過通知匣,直接出現在使用者面前。
 這不常使用,<strong>應該要保留在需要適時回應,以及必須中斷使用者前後關聯動作的時候</strong>。
-例如,Talk
-就使用這種風格,用來提示使用者有朋友邀請加入視訊聊天,而且此邀請會在幾秒之後自動過期。
+例如,Talk 就使用這種風格,用來提示使用者有朋友邀請加入視訊聊天,而且此邀請會在幾秒之後自動過期。
+
 </p>
 
 <p>就導覽行為而言,快顯通知緊接著間接通知插頁畫面的行為。
-[返回] 會關閉快顯通知。如果使用者從快顯導覽進入通知應用程式,[上一層]
-和 [返回] 會遵循標準通知的規則,只在應用程式內導覽。
+[返回] 會關閉快顯通知。如果使用者從快顯導覽進入通知應用程式,[上一層] 和 [返回] 會遵循標準通知的規則,只在應用程式內導覽。
+
 </p>
 
 <img src="{@docRoot}design/media/navigation_popup_notification.png">
 
 <h2 id="between-apps">在應用程式間導覽</h2>
 
-<p>Android 系統的基本優點之一是應用程式互相啟動的能力,讓使用者能夠直接從一個應用程式導覽至另一個應用程式。
-例如,需要擷取一張相片的應用程式可以啟動「相機」應用程式,而此應用程式會將相片傳回引用的應用程式。開發人員可以輕鬆利用其他應用程式的程式碼,而使用者在經常執行的動作中可以享受一致性的體驗,這對雙方都是一大好處。
+<p>Android 系統的主要優勢在於應用程式之間可彼此互連,使用者可從一個應用程式中直接導覽至另一個應用程式。
+舉例來說,需要拍攝相片的的應用程式,可開啟「相機」應用程式,然後再返回原始參照應用程式中。
 
-
+這項功能不僅使開發人員可輕鬆地利用其他應用程式的程式碼,還可讓使用者透過一致的作業方式享受常用功能。
 
 </p>
 
-<p>要瞭解應用程式對應用程式的導覽,重要的是要瞭解以下討論的 Android 架構行為。
+<p>欲了解應用程式對應用程式的導覽行為,必須先了解以下介紹的 Android 架構行為。
 </p>
 
-<h4>活動、工作和意圖</h4>
+<h4>Activity、工作和意圖</h4>
 
-<p>在 Android 中,<strong>活動</strong>是一個應用程式元件,定義了資訊畫面,以及使用者可以執行的所有關聯動作。
-您的應用程式是個活動的集合,包括您可以建立及您能從其他應用程式重複使用的活動。
+<p>在 Android 中,<strong>Activity</strong> 是一個應用程式元件,定義了資訊畫面,以及使用者可以執行的所有關聯動作。
+您的應用程式是個 Activity 的集合,包括您可以建立及您能從其他應用程式重複使用的 Activity。
 </p>
 
-<p><strong>工作</strong>是使用者遵循以達到目標的一系列活動。單一工作可以利用來自單一應用程式的活動,或是汲取數個不同應用程式的活動。
+<p><strong>工作</strong>是使用者遵循以達到目標的一系列 Activity。單一工作可以利用來自單一應用程式的 Activity,或是汲取數個不同應用程式的 Activity。
 
 </p>
 
-<p><strong>意向</strong>是指應用程式所發出想要另一套應用程式協助執行某動作訊號的機制。
-應用程式的活動可指示其可回應哪些意向。
-針對如「共用」等常見意向,使用者可能已安裝許多可以滿足此要求的應用程式。
+<p><strong>意圖</strong>是指應用程式所發出想要另一套應用程式協助執行某動作訊號的機制。
+應用程式的 Activity 可指示其可回應哪些意圖。
+針對如「共用」等常見意圖,使用者可能已安裝許多可以滿足此要求的應用程式。
 </p>
 
-<h4>範例:在應用程式間導覽,以支援共用</h4>
+<h4>例如:在多個應用程式中導覽以支援共用功能</h4>
 
-<p>要理解活動、工作和意向如何攜手合作,請思考應用程式如何讓使用者使用另一套應用程式來共用內容。例如,從「主」畫面啟動 Play 商店應用程式,開始新工作 A (見下圖)。
-
-在導覽經歷 Play 商店,並輕觸一本促銷的書籍以查看詳細資料後,使用者仍會停留在相同工作中,並透過新增行為延伸工作。
-觸發「共用」動作會提示使用者一個對話框,列出已註冊可用來處理「共用」意向的每個活動 (來自不同的應用程式)。
+<p>要了解使用活動、工作和意圖如何相互作用,必須先考慮一個應用程式如何讓使用者利用另一個應用程式共用內容。
+例如,在首頁中開啟 Play 商店應用程式,並開始工作 A (如下所示)。
+使用者在 Play 商店應用程式中結束導覽後,輕觸促銷的書籍以查看細節,這時仍會停留在相同的工作中,同時新增活動以延伸功能。
+觸發「共用」動作會提示使用者一個對話框,列出已註冊可用來處理「共用」意圖的每個 Activity (來自不同的應用程式)。
 
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_inward.png">
 
-<p>當使用者選擇透過 Gmail 共用,Gmail
-的撰寫活動會被新增為工作 A 的延續 &mdash; 而不會建立新工作。如果 Gmail 有本身的工作正在背景執行,這並不會影響該工作。
+<p>當使用者選擇透過 Gmail 共用,Gmail 的撰寫 Activity 會被新增為工作 A 的延續 &mdash; 而不會建立新工作。
+如果 Gmail 有本身的工作正在背景執行,這並不會影響該工作。
 </p>
 
-<p>從撰寫活動中,傳送訊息或輕觸 [返回] 按鈕,會讓使用者返回至書籍詳細資料的活動。
-繼續輕觸 [返回] 則會經由 Play 商店往回導覽,最終到達「主畫面」。
+<p>從撰寫 Activity 中,傳送訊息或輕觸 [返回] 按鈕,會讓使用者返回至書籍詳細資料的 Activity。
+繼續輕觸 [返回] 則會經由 Play 商店往回導覽,最終到達「主螢幕」。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_back.png">
 
-<p>然而,透過輕觸撰寫行為的 [上一層],代表使用者指明停留在 Gmail 的意願。
-Gmail 的會話群組清單活動會隨即出現,並針對該活動建立一個新的工作 B。新工作的最後根源都是「主畫面」,所以從會話群組輕觸 [返回] 會返回至該處。
+<p>然而,透過輕觸撰寫 Activity 的 [上一層],代表使用者指明停留在 Gmail 的意願。
+Gmail 的會話群組清單 Activity 會隨即出現,並針對該 Activity 建立一個新的工作 B。新工作的最後根源都是「主螢幕」,所以從會話群組輕觸 [返回] 會返回至該處。
 </p>
 
 <img src="{@docRoot}design/media/navigation_between_apps_up.png">
 
-<p>工作 A 仍然存在背景之中,而使用者可能會在稍後返回 (例如,透過「最近」畫面)。
+<p>工作 A 仍然存在背景之中,而使用者可能會在稍後返回 (例如,透過「最近使用記錄」畫面)。
 如果 Gmail 在背景正在執行自己的工作,則其會被工作 B 取代 &mdash; 並捨棄之前的前後關係,而就使用者的新目標。
 </p>
 
-<p>當您的應用程式註冊來處理具有深入應用程式階層活動的意向時,請參考<a href="#into-your-app">透過主畫面視窗小工具和通知,導覽至您的應用程式</a>,取得如何指定 [上一層] 導覽的指導方針。
+<p>當您的應用程式註冊來處理具有深入應用程式階層 Activity 的意圖時,請參考<a href="#into-your-app">透過主螢幕小工具和通知,導覽至您的應用程式</a>,取得如何指定 [上一層] 導覽的指導方針。
 
 </p>
diff --git a/docs/html-intl/intl/zh-tw/index.jd b/docs/html-intl/intl/zh-tw/index.jd
index cbac617..493283b 100644
--- a/docs/html-intl/intl/zh-tw/index.jd
+++ b/docs/html-intl/intl/zh-tw/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="//www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html-intl/intl/zh-tw/sdk/index.jd b/docs/html-intl/intl/zh-tw/sdk/index.jd
index a4869d9..aff9d1b 100644
--- a/docs/html-intl/intl/zh-tw/sdk/index.jd
+++ b/docs/html-intl/intl/zh-tw/sdk/index.jd
@@ -1,62 +1,14 @@
 page.title=下載 Android Studio 和 SDK 工具
 page.tags=sdk, android studio
 page.template=sdk
+page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=下載官方 Android IDE 和開發人員工具以建置適用於 Android 手機、平板電腦、穿戴式裝置、電視等裝置的應用程式。
 
-studio.version=1.4.0.10
-
-studio.linux_bundle_download=android-studio-ide-141.2288178-linux.zip
-studio.linux_bundle_bytes=380821638
-studio.linux_bundle_checksum=137e3734f2e8e285bd7c1d2fae2e8548d0f164bd
-
-studio.mac_bundle_download=android-studio-ide-141.2288178-mac.dmg
-studio.mac_bundle_bytes=364624965
-studio.mac_bundle_checksum=27068d59d5a78717d31bdedd054082b5c50d3897
-
-studio.win_bundle_download=android-studio-ide-141.2288178-windows.zip
-studio.win_bundle_bytes=373492997
-studio.win_bundle_checksum=c0851dc9a506ba9f4c1379a3e9b4019c08478220
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2288178-windows.exe
-studio.win_bundle_exe_bytes=1177811944
-studio.win_bundle_exe_checksum=a2f0141d35f8f0c24dad2ff390e7f6231c5f7625
-
-studio.win_notools_exe_download=android-studio-ide-141.2288178-windows.exe
-studio.win_notools_exe_bytes=348295968
-studio.win_notools_exe_checksum=82d0d9c78ec23834956f941a07821be347fcb7bf
-
-
-
-
-sdk.linux_download=android-sdk_r24.3.4-linux.tgz
-sdk.linux_bytes=309138331
-sdk.linux_checksum=fb293d7bca42e05580be56b1adc22055d46603dd
-
-sdk.mac_download=android-sdk_r24.3.4-macosx.zip
-sdk.mac_bytes=98340900
-sdk.mac_checksum=128f10fba668ea490cc94a08e505a48a608879b9
-
-sdk.win_download=android-sdk_r24.3.4-windows.zip
-sdk.win_bytes=187496897
-sdk.win_checksum=4a8718fb4a2bf2128d34b92f23ddd79fc65839e7
-
-
-sdk.win_installer=installer_r24.3.4-windows.exe
-sdk.win_installer_bytes=139477985
-sdk.win_installer_checksum=094dd45f98a31f839feae898b48f23704f2878dd
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
   .offline {display:none;}
-  a.download-bundle-button {display:block;}
   h2.feature {
     padding-top:30px;
     margin-top:0;
@@ -64,20 +16,7 @@
   }
   .feature-blurb {
   margin:0px; font-size:16px; font-weight:300;
-  padding:40px 0 0 0;
-  }
-
-  .landing-button.green {
-    font-size:16px;
-    background-color:#90c653;
-    padding:8px 10px 10px;
-    margin:0;
-    width:206px;
-    text-align:center;
-  }
-
-  .landing-button.green:hover {
-    background-color:#85b84f;
+  padding-top:40px;
   }
 
   .landing-button .small {
@@ -95,8 +34,8 @@
     white-space: nowrap;
     text-indent: -10000px;
     font-size:0px;
-    background: url(../images/tools/studio-logo.png);
-    background-image: -webkit-image-set(url(../images/tools/studio-logo.png) 1x, url(../images/tools/studio-logo_2x.png) 2x);
+    background: url({@docRoot}images/tools/studio-logo.png);
+    background-image: -webkit-image-set(url({@docRoot}images/tools/studio-logo.png) 1x, url({@docRoot}images/tools/studio-logo_2x.png) 2x);
     background-size: 226px 78px;
   }
 
@@ -292,15 +231,15 @@
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">官方 Android IDE</p>
 
-<ul style="font-size:12px">
+<ul style="font-size:12px;line-height:19px;">
 <li>Android Studio IDE</li>
 <li>Android SDK 工具</li>
 <li>Android 6.0 (Marshmallow) 平台</li>
 <li>含 Google API 的 Android 6.0 模擬器系統映像檔</li>
 </ul>
 
-
-<a class="online landing-button green download-bundle-button" style="margin-top:30px;" href="#Other">Download</a>
+<a class="online landing-button green download-bundle-button"
+href="#Other" >Download Android Studio<br/><span class='small'></span></a>
 
 <!-- this appears when viewing the offline docs -->
 <p class="offline">
diff --git a/docs/html-intl/intl/zh-tw/sdk/installing/adding-packages.jd b/docs/html-intl/intl/zh-tw/sdk/installing/adding-packages.jd
index 7b4ad0b..563df51 100644
--- a/docs/html-intl/intl/zh-tw/sdk/installing/adding-packages.jd
+++ b/docs/html-intl/intl/zh-tw/sdk/installing/adding-packages.jd
@@ -1,7 +1,6 @@
 page.title=新增 SDK 封裝
 
 page.tags=sdk manager
-helpoutsWidget=true
 
 @jd:body
 
@@ -31,7 +30,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html-intl/intl/zh-tw/training/material/animations.jd b/docs/html-intl/intl/zh-tw/training/material/animations.jd
index 02033f5..ba28575 100644
--- a/docs/html-intl/intl/zh-tw/training/material/animations.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/animations.jd
@@ -9,7 +9,7 @@
   <li><a href="#Touch">自訂輕觸回饋</a></li>
   <li><a href="#Reveal">使用顯示效果</a></li>
   <li><a href="#Transitions">自訂操作行為轉換</a></li>
-  <li><a href="#ViewState">動畫顯示檢視狀態變更</a></li>
+  <li><a href="#ViewState">動畫顯示視圖狀態變更</a></li>
   <li><a href="#AnimVector">動畫顯示矢量可繪</a></li>
 </ol>
 <h2>您也應該閱讀</h2>
@@ -21,43 +21,60 @@
 </div>
 
 
-<p>材料設計中的動畫讓使用者在進行操作動作之後獲得回饋,並且在使用者與您的應用程式互動時提供視覺上的連續性。材料設計風格針對按鈕和操作行為轉換提供某些預設的動畫,而 Android 5.0 (API 級別 21) 或更新版本則可讓您自訂這些動畫,以及建立新的動畫:</p>
+<p>材料設計中的動畫讓使用者在進行操作動作之後獲得回饋,並且在使用者與您的應用程式互動時提供視覺上的連續性。
+材料設計風格針對按鈕和操作行為轉換,提供某些預設的動畫,而 Android 5.0 (API 級別 21) 以上版本則可讓您自訂這些動畫並建立新的動畫:
+
+</p>
 
 <ul>
 <li>輕觸回饋</li>
 <li>循環顯示</li>
 <li>操作行為轉換</li>
 <li>曲線動作</li>
-<li>檢視狀態變更</li>
+<li>視圖狀態變更</li>
 </ul>
 
 
 <h2 id="Touch">自訂輕觸回饋</h2>
 
-<p>當使用者與 UI 元素互動時,材料設計中的輕觸回饋在接觸點提供即時的視覺化確認。按鈕的預設輕觸回饋動畫使用新的 {@link android.graphics.drawable.RippleDrawable} 類別,透過漣漪效果在不同的狀態之間進行轉換。</p>
+<p>當使用者與 UI 元素互動時,材料設計中的輕觸回饋在接觸點提供即時的視覺化確認。
+按鈕的預設輕觸回饋動畫使用新的 {@link android.graphics.drawable.RippleDrawable} 類別,透過漣漪效果在不同狀態之間進行轉換。
 
-<p>在大多數情況下,您應該在檢視 XML 中將檢視背景指定為下列項目來套用此功能:</p>
+</p>
+
+<p>大多數情況下,您應該在視圖 XML 中將視圖背景指定為下列項目以套用此功能:
+</p>
 
 <ul>
-<li>對有邊界的漣漪指定為 <code>?android:attr/selectableItemBackground</code></li>
-<li>對延伸出檢視的漣漪指定為 <code>?android:attr/selectableItemBackgroundBorderless</code></li>
+<li>對有邊界的漣漪指定為 <code>?android:attr/selectableItemBackground</code>。</li>
+<li>對延伸出視圖的漣漪指定為 <code>?android:attr/selectableItemBackgroundBorderless</code>。
+這會繪製在具有非空背景的視圖之最接近父項上,並以其作為邊界。
+</li>
 </ul>
 
-<p class="note"><strong>注意:</strong><code>selectableItemBackgroundBorderless</code> 是 API 級別 21 引入的新屬性。</p>
+<p class="note"><strong>注意:</strong><code>selectableItemBackgroundBorderless</code> 是 API 級別 21 推出的新屬性。
+</p>
 
 
-<p>或者,您也可以使用 <code>ripple</code> 元素將 {@link android.graphics.drawable.RippleDrawable} 定義為 XML 資源。</p>
+<p>或者,您也可以使用 <code>ripple</code> 元素將 {@link android.graphics.drawable.RippleDrawable} 定義為 XML 資源。
+</p>
 
-<p>您可以對 {@link android.graphics.drawable.RippleDrawable} 物件指定顏色。如果要變更預設的輕觸回饋顏色,請使用風格主題的 <code>android:colorControlHighlight</code> 屬性。</p>
+<p>您可以對 {@link android.graphics.drawable.RippleDrawable} 物件指定色彩。如要變更預設的輕觸回饋色彩,請使用設計風格的 <code>android:colorControlHighlight</code> 屬性。
 
-<p>如需詳細資訊,請參閱 {@link android.graphics.drawable.RippleDrawable} 類別的 API 參考資料。</p>
+</p>
+
+<p>如需詳細資訊,請參閱 {@link
+android.graphics.drawable.RippleDrawable} 類別的 API 參考資料。</p>
 
 
 <h2 id="Reveal">使用顯示效果</h2>
 
-<p>當您顯示或隱藏一組 UI 元素時,顯示動畫可提供使用者視覺上的連續性。{@link android.view.ViewAnimationUtils#createCircularReveal ViewAnimationUtils.createCircularReveal()} 方法可讓您以動畫顯示裁剪的圓形,來顯示或隱藏檢視。</p>
+<p>當您顯示或隱藏一組 UI 元素時,顯示動畫可提供使用者視覺上的連續性。
+{@link android.view.ViewAnimationUtils#createCircularReveal
+ViewAnimationUtils.createCircularReveal()}方法可讓您以動畫顯示裁剪的圓形,以顯示或隱藏視圖。
+</p>
 
-<p>使用下列效果顯示之前看不見的檢視:</p>
+<p>使用下列效果顯示之前看不見的視圖:</p>
 
 <pre>
 // previously invisible view
@@ -79,7 +96,7 @@
 anim.start();
 </pre>
 
-<p>使用下列效果隱藏之前看見的檢視:</p>
+<p>使用下列效果隱藏之前看見的視圖:</p>
 
 <pre>
 // previously visible view
@@ -122,41 +139,54 @@
   </video>
   </div>
   <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
-    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>圖 1</strong> - 使用分享元素的轉換。</p>
-    <em>如果要重播影片,請按一下裝置螢幕</em>
+    <p class="img-caption" style="margin-top:3px;margin-bottom:10px"><strong>圖 1</strong> - 使用分享元素的轉換。
+</p>
+    如要重播影片,請按一下裝置螢幕<em></em>
   </div>
 </div>
 
-<p>材料設計應用程式中的操作行為轉換透過常見元素之間的動作和轉換,在不同的狀態之間提供視覺上的連接效果。您可以針對進入和離開轉換,以及不同操作行為之間分享元素的轉換指定自訂動畫。</p>
+<p>材料設計應用程式中的操作行為轉換透過常見元素之間的動作和轉換,在不同的狀態之間提供視覺上的連接效果。
+您可針對進入和離開轉換及不同操作行為之間分享元素的轉換指定自訂動畫。
+</p>
 
 <ul>
-<li><strong>進入</strong>轉換決定操作行為中的檢視如何進入場景。例如,在<em>爆炸</em>進入轉換中,檢視會從外面進入場景,然後飛入螢幕的中央。</li>
+<li><strong>進入</strong>轉換決定操作行為中的視圖如何進入場景。例如,在爆炸<em></em>進入轉換中,視圖會從外面進入場景,接著飛入螢幕的中央。
 
-<li><strong>離開</strong>轉換決定操作行為中的檢視如何離開場景。例如,在<em>爆炸</em>離開轉換中,檢視會從中央離開場景。</li>
+</li>
 
-<li><strong>分享元素</strong>轉換決定在兩個操作行為轉換之間分享的檢視如何在這些操作行為之間轉換。例如,如果兩個操作行為在不同的位置和大小有相同的影像,<em>changeImageTransform</em> 分享元素轉換會在這些操作行為之間流暢地解譯影像以及調整影像的大小。</li>
+<li><strong>離開</strong>轉換決定操作行為中的視圖如何離開場景。例如,在爆炸<em></em>離開轉換中,視圖會從中央離開場景。
+
+</li>
+
+<li><strong>分享元素</strong>轉換決定在兩個操作行為轉換之間分享的視圖如何在這些操作行為之間轉換。
+例如,若兩個操作行為在不同的位置和大小具有相同的影像,changeImageTransform<em></em> 分享元素轉換會在這些操作行為之間流暢地解譯影像以及調整影像的大小。
+
+</li>
 </ul>
 
 <p>Android 5.0 (API 級別 21) 支援下列進入和離開轉換:</p>
 
 <ul>
-<li>爆炸<em></em> - 檢視從場景的中央移入和移出。</li>
-<li>滑動<em></em> - 檢視從場景的其中一邊移入和移出。</li>
-<li>淡化<em></em> - 改變檢視的透明度,將檢視加入場景,或從場景移除檢視。</li>
+<li>爆炸<em></em> - 視圖從場景的中央移入和移出。</li>
+<li>滑動<em></em> - 視圖從場景的其中一邊移入和移出。</li>
+<li>淡化<em></em> - 改變視圖的透明度,以將視圖加入場景,或從場景中移除。</li>
 </ul>
 
-<p>延伸 {@link android.transition.Visibility} 類別的轉換都可做為進入或離開轉換。如需詳細資訊,請參閱 {@link android.transition.Transition} 類別的 API 參考資料。</p>
+<p>所有延伸 {@link android.transition.Visibility} 類別的轉換都可作為進入或離開轉換。
+如需詳細資訊,請參閱 {@link android.transition.Transition} 類別的 API 參考資料。
+</p>
 
 <p>Android 5.0 (API 級別 21) 也支援下列分享元素轉換:</p>
 
 <ul>
-<li>changeBounds<em></em> - 動畫顯示目標檢視版面邊界的變更。</li>
-<li>changeClipBounds<em></em> - 動畫顯示目標檢視裁剪邊界的變更。</li>
-<li>changeTransform<em></em> - 動畫顯示目標檢視比例和旋轉方向的變更。</li>
-<li>changeImageTransform<em></em> - 動畫顯示目標影像大小和比例的變更。</li>
+<li>changeBounds<em></em> - 動畫顯示目標視圖版面配置邊界的變更。</li>
+<li>changeClipBounds<em></em> - 動畫顯示目標視圖裁剪邊界的變更。</li>
+<li>changeTransform<em></em> - 動畫顯示目標視圖比例和旋轉方向的變更。</li>
+<li><em>changeImageTransform</em> - 動畫顯示目標影像大小和比例的變更。</li>
 </ul>
 
-<p>當您在應用程式中啟用操作行為轉換時,進入和離開操作行為之間會啟動預設交錯淡化轉換。</p>
+<p>當您在應用程式中啟用操作行為轉換時,進入和離開操作行為之間會啟動預設交錯淡化轉換。
+</p>
 
 <img src="{@docRoot}training/material/images/SceneTransition.png" alt="" width="600" height="405" style="margin-top:20px" />
 <p class="img-caption">
@@ -165,7 +195,9 @@
 
 <h3>指定自訂轉換</h3>
 
-<p>首先,當您定義一個從材料設計風格繼承而來的樣式時,請使用 <code>android:windowContentTransitions</code> 屬性啟用視窗內容轉換。您也可以在樣式定義中指定進入、離開和分享元素轉換:</p>
+<p>首先,當您定義一個從材料設計風格繼承而來的樣式時,請使用 <code>android:windowContentTransitions</code> 屬性啟用視窗內容轉換。
+您也可在樣式定義中指定進入、離開和分享元素轉換:
+</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
@@ -194,9 +226,12 @@
 &lt;/transitionSet>
 </pre>
 
-<p><code>changeImageTransform</code> 元素符合 {@link android.transition.ChangeImageTransform} 類別。如需詳細資訊,請參閱 {@link android.transition.Transition} 的 API 參考資料。</p>
+<p><code>changeImageTransform</code> 元素對應至 {@link android.transition.ChangeImageTransform} 類別。
+如需詳細資訊,請參閱 {@link android.transition.Transition} 的 API 參考資料。
+</p>
 
-<p>如果要在程式碼中改為啟用視窗內容轉換,請呼叫 {@link android.view.Window#requestFeature Window.requestFeature()} 方法:</p>
+<p>如要在程式碼中改為啟用視窗內容轉換,請呼叫 {@link android.view.Window#requestFeature Window.requestFeature()}方法:
+</p>
 
 <pre>
 // inside your activity (if you did not enable transitions in your theme)
@@ -206,42 +241,58 @@
 getWindow().setExitTransition(new Explode());
 </pre>
 
-<p>如果要在程式碼中指定轉換,請搭配 {@link android.transition.Transition} 物件呼叫下列方法:</p>
+<p>如要在程式碼中指定轉換,請以 {@link
+android.transition.Transition} 物件呼叫下列方法:</p>
 
 <ul>
   <li>{@link android.view.Window#setEnterTransition Window.setEnterTransition()}</li>
   <li>{@link android.view.Window#setExitTransition Window.setExitTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementEnterTransition Window.setSharedElementEnterTransition()}</li>
-  <li>{@link android.view.Window#setSharedElementExitTransition Window.setSharedElementExitTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementEnterTransition
+      Window.setSharedElementEnterTransition()}</li>
+  <li>{@link android.view.Window#setSharedElementExitTransition
+      Window.setSharedElementExitTransition()}</li>
 </ul>
 
-<p>{@link android.view.Window#setExitTransition setExitTransition()} 和 {@link android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 方法定義呼叫操作行為的離開轉換。{@link android.view.Window#setEnterTransition setEnterTransition()} 和 {@link android.view.Window#setSharedElementEnterTransition setSharedElementEnterTransition()} 方法定義被呼叫操作行為的進入轉換。</p>
+<p>{@link android.view.Window#setExitTransition setExitTransition()} 和 {@link
+android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} 方法定義了呼叫操作行為的離開轉換。
+{@link android.view.Window#setEnterTransition
+setEnterTransition()} 和 {@link android.view.Window#setSharedElementEnterTransition
+setSharedElementEnterTransition()} 方法定義被呼叫操作行為的進入轉換。</p>
 
-<p>如果要取得轉換的完整效果,您必須同時對呼叫與被呼叫操作行為啟用視窗內容轉換。否則,呼叫操作行為只會啟動離開轉換,然後您只會看到視窗轉換 (類似調整大小或淡化)。</p>
+<p>如要取得轉換的完整效果,您必須同時對呼叫與被呼叫操作行為啟用視窗內容轉換。
+否則,呼叫操作行為會啟動離開轉換,然後您只會看到視窗轉換 (類似調整大小或淡化)。
+</p>
 
-<p>如果要立即啟動進入轉換,請對被呼叫的操作行為使用 {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} 方法。這樣您就會有更戲劇性的進入轉換。</p>
+<p>如要立即啟動進入轉換,請對被呼叫的操作行為使用 {@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} 方法。
+
+這樣您就會有更戲劇性的進入轉換。</p>
 
 <h3>使用轉換啟動操作行為</h3>
 
-<p>如果您啟用轉換並且對操作行為設定離開轉換,當您啟動另一個操作行為時就會啟動轉換,如下所示:</p>
+<p>若您啟用轉換並對操作行為設定離開轉換,當您啟動另一個操作行為時,就會啟動轉換,如下所示:
+</p>
 
 <pre>
 startActivity(intent,
               ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
 </pre>
 
-<p>如果您已經針對第二個操作行為設定進入轉換,當操作行為啟動時,也會啟動轉換。如果要在啟動另一個操作行為時停用轉換,請提供 <code>null</code> 選項組合。</p>
+<p>若您已針對第二個操作行為設定進入轉換,當操作行為啟動時,也會啟動轉換。
+若要在啟動另一個操作行為時停用轉換,請提供 <code>null</code> 選項組合。
+</p>
 
 <h3>使用一個分享元素啟動操作行為</h3>
 
 <p>在兩個擁有分享元素的操作行為之間製作螢幕轉換動畫:</p>
 
 <ol>
-<li>在風格主題中啟用視窗內容轉換。</li>
+<li>在設計風格中啟用視窗內容轉換。</li>
 <li>在樣式中指定分享元素轉換。</li>
 <li>將您的轉換定義為 XML 資源。</li>
-<li>使用 <code>android:transitionName</code> 屬性,對兩個版面配置中的分享元素指定通用名稱。</li>
-<li>使用 {@link android.app.ActivityOptions#makeSceneTransitionAnimation ActivityOptions.makeSceneTransitionAnimation()} 方法。</li>
+<li>使用 <code>android:transitionName</code> 屬性,對兩個版面配置中的分享元素指定通用名稱。
+</li>
+<li>使用 {@link android.app.ActivityOptions#makeSceneTransitionAnimation
+ActivityOptions.makeSceneTransitionAnimation()} 方法。</li>
 </ol>
 
 <pre>
@@ -266,13 +317,20 @@
 });
 </pre>
 
-<p>對於您在程式碼中所產生的分享動態檢視,請使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法,在兩個操作行為中指定通用元素名稱。</p>
+<p>對於您在程式碼中所產生的分享動態視圖,請使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法,在兩個操作行為中指定通用元素名稱。
 
-<p>如果要在完成第二個操作行為時倒轉場景轉換動畫,請呼叫 {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} 方法而不是 {@link android.app.Activity#finish Activity.finish()}。</p>
+</p>
+
+<p>如要在完成第二個操作行為時倒轉場景轉換動畫,請呼叫 {@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} 方法而不是 {@link android.app.Activity#finish Activity.finish()}。
+
+</p>
 
 <h3>使用多個分享元素啟動操作行為</h3>
 
-<p>如果要在兩個擁有多個分享元素的操作行為之間製作場景轉換動畫,請使用 <code>android:transitionName</code> 屬性在兩個版面配置中定義分享元素 (或在兩個操作行為中使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法),然後建立 {@link android.app.ActivityOptions} 物件,如下所示:</p>
+<p>如要在兩個具有多個分享元素的操作行為之間製作場景轉換動畫,請使用 <code>android:transitionName</code> 屬性在兩個版面配置中定義分享元素 (或在兩個操作行為中使用 {@link android.view.View#setTransitionName View.setTransitionName()} 方法),然後建立 {@link android.app.ActivityOptions} 物件,如下所示:
+
+
+</p>
 
 <pre>
 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
@@ -283,9 +341,14 @@
 
 <h2 id="CurvedMotion">使用曲線動作</h2>
 
-<p>材料設計中的動畫依據使用時間插值法和空間移動模式的曲線。在 Android 5.0 (API 級別 21) 或更新版本中,您可以為動畫定義自訂時間曲線和曲線動作模式。</p>
+<p>材料設計中的動畫依據使用時間插值法和空間移動模式的曲線而定。
+在 Android 5.0 (API 級別 21) 及以上版本中,您可為動畫定義自訂時間曲線和曲線動作模式。
+</p>
 
-<p>{@link android.view.animation.PathInterpolator} 類別是根據貝茲曲線 (Bézier curve) 或 {@link android.graphics.Path} 物件的一種新插值器。這個插值器在一個 1x1 的方格中指定動作曲線,在 (0,0) 和 (1,1) 有兩個錨定點,以及使用建構函式引數指定的控制點。您也可以將路徑插值器定義為 XML 資源:</p>
+<p>{@link android.view.animation.PathInterpolator} 類別是根據貝茲曲線 (Bézier curve) 或 {@link android.graphics.Path} 物件的一種新插值器。
+這個插值器在一個 1x1 的方格中指定動作曲線,在 (0,0) 和 (1,1) 有兩個錨定點,以及使用建構函式引數指定的控制點。
+
+您也可以將路徑插值器定義為 XML 資源:</p>
 
 <pre>
 &lt;pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
@@ -295,7 +358,8 @@
     android:controlY2="1"/>
 </pre>
 
-<p>系統在材料設計規格中提供三種基本曲線的 XML 資源:</p>
+<p>系統在材料設計規格中提供三種基本曲線的 XML 資源:
+</p>
 
 <ul>
   <li><code>&#64;interpolator/fast_out_linear_in.xml</code></li>
@@ -303,9 +367,12 @@
   <li><code>&#64;interpolator/linear_out_slow_in.xml</code></li>
 </ul>
 
-<p>您可以將 {@link android.view.animation.PathInterpolator} 物件傳遞到 {@link android.animation.Animator#setInterpolator Animator.setInterpolator()} 方法。</p>
+<p>您可將 {@link android.view.animation.PathInterpolator} 物件傳送至 {@link
+android.animation.Animator#setInterpolator Animator.setInterpolator()} 方法。</p>
 
-<p>{@link android.animation.ObjectAnimator} 類別有新的建構函式,可讓您一次使用兩個以上的屬性沿著路徑以動畫顯示座標。例如,下列動畫器使用 {@link android.graphics.Path} 物件,以動畫顯示檢視的 X 和 Y 屬性:</p>
+<p>{@link android.animation.ObjectAnimator} 類別有新的建構函式,可讓您一次使用兩個以上的屬性沿著路徑以動畫顯示座標。
+例如,下列動畫器使用 {@link android.graphics.Path} 物件,以動畫顯示視圖的 X 和 Y 屬性:
+</p>
 
 <pre>
 ObjectAnimator mAnimator;
@@ -315,9 +382,11 @@
 </pre>
 
 
-<h2 id="ViewState">動畫顯示檢視狀態變更</h2>
+<h2 id="ViewState">動畫顯示視圖狀態變更</h2>
 
-<p>{@link android.animation.StateListAnimator} 類別可讓您定義檢視狀態變更時所執行的動畫器。下列範例示範如何將 {@link android.animation.StateListAnimator} 定義為 XML 資源:</p>
+<p>{@link android.animation.StateListAnimator} 類別可讓您定義視圖狀態變更時所執行的動畫器。
+下列範例示範如何將 {@link
+android.animation.StateListAnimator} 定義為 XML 資源:</p>
 
 <pre>
 &lt;!-- animate the translationZ property of a view when pressed -->
@@ -345,11 +414,21 @@
 &lt;/selector>
 </pre>
 
-<p>如果要將自訂的檢視狀態動畫連接到檢視,請依照此範例在 XML 資源檔案中使用 <code>selector</code> 元素定義動畫器,然後使用 <code>android:stateListAnimator</code> 屬性將它指派到您的檢視。如果要在程式碼中為檢視指派狀態清單動畫器,請使用 {@link android.animation.AnimatorInflater#loadStateListAnimator AnimationInflater.loadStateListAnimator()} 方法,然後使用 {@link android.view.View#setStateListAnimator View.setStateListAnimator()} 方法將動畫器指派到您的檢視。</p>
+<p>如要將自訂的視圖狀態動畫連接到視圖,請依照此範例在 XML 資源檔案中使用 <code>selector</code> 元素定義動畫器,並使用 <code>android:stateListAnimator</code> 屬性將其指派到您的視圖。
 
-<p>當您的風格主題延伸材料設計風格時,按鈕預設會有 Z 動畫。如果要避免在按鈕中出現這類行為,請將 <code>android:stateListAnimator</code> 屬性設定為 <code>@null</code>。</p>
+如要在程式碼中為視圖指派狀態清單動畫器,請使用 {@link android.animation.AnimatorInflater#loadStateListAnimator
+AnimationInflater.loadStateListAnimator()} 方法,然後使用 {@link android.view.View#setStateListAnimator View.setStateListAnimator()} 方法將動畫器指派到您的視圖。
 
-<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 類別可讓您在相關檢視的狀態變更之間,建立顯示動畫的可繪項目。Android 5.0 中的某些系統小工具預設會使用這些動畫。下列範例示範如何將 {@link android.graphics.drawable.AnimatedStateListDrawable} 定義為 XML 資源:</p>
+</p>
+
+<p>當您的設計風格延伸材料設計風格時,按鈕預設會有 Z 動畫。如果要避免在按鈕中出現這類行為,請將 <code>android:stateListAnimator</code> 屬性設定為 <code>@null</code>。
+
+</p>
+
+<p>{@link android.graphics.drawable.AnimatedStateListDrawable} 類別可讓您在相關視圖的狀態變更之間,建立顯示動畫的可繪項目。
+Android 5.0 中的某些系統小工具預設會使用這些動畫。
+下列範例示範如何將 {@link android.graphics.drawable.AnimatedStateListDrawable} 定義為 XML 資源:
+</p>
 
 <pre>
 &lt;!-- res/drawable/myanimstatedrawable.xml -->
@@ -379,19 +458,28 @@
 
 <h2 id="AnimVector">動畫顯示矢量可繪</h2>
 
-<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">矢量可繪</a>可以調整大小,但又不會喪失定義。{@link android.graphics.drawable.AnimatedVectorDrawable} 類別可讓您以動畫顯示矢量可繪的屬性。</p>
+<p><a href="{@docRoot}training/material/drawables.html#VectorDrawables">矢量可繪</a>可以調整大小,但又不會喪失定義。
+{@link android.graphics.drawable.AnimatedVectorDrawable} 類別可讓您以動畫顯示矢量可繪的屬性。
+</p>
 
 <p>您通常會在下列三個 XML 檔案中定義能可動矢量可繪:</p>
 
 <ul>
-<li>在 <code>res/drawable/</code> 中有 <code>&lt;vector&gt;</code> 元素的矢量可繪</li>
-<li>在 <code>res/drawable/</code> 中有 <code>&lt;animated-vector&gt;</code> 元素的可動矢量可繪</li>
-<li>在 <code>res/anim/</code> 中有 <code>&lt;objectAnimator&gt;</code> 元素的一或多個物件動畫器</li>
+<li>在 <code>res/drawable/</code> 中包含 <code>&lt;vector&gt;</code> 元素的矢量可繪
+</li>
+<li>在 <code>res/drawable/</code> 中包含 <code>&lt;animated-vector&gt;</code> 元素的可動矢量可繪
+</li>
+<li>在 <code>res/anim/</code> 中包含 <code>&lt;objectAnimator&gt;</code> 元素的一或多個物件動畫器
+</li>
 </ul>
 
-<p>可動的矢量可繪能以動畫顯示 <code>&lt;group&gt;</code> 和 <code>&lt;path&gt;</code> 元素的屬性。<code>&lt;group&gt;</code> 元素定義一組路徑或子群組,而 <code>&lt;path&gt;</code> 元素則定義要繪製的路徑。</p>
+<p>可動的矢量可繪能以動畫顯示 <code>&lt;group&gt;</code> 和 <code>&lt;path&gt;</code> 元素的屬性。
+<code>&lt;group&gt;</code> 元素定義一組路徑或子群組,而 <code>&lt;path&gt;</code> 元素則定義要繪製的路徑。
+</p>
 
-<p>當您定義要可動的矢量可繪時,請使用 <code>android:name</code> 屬性為群組和路徑指派唯一的名稱,以便從您的動畫器定義參考這些群組和路徑。例如:</p>
+<p>當您定義要可動的矢量可繪時,請使用 <code>android:name</code> 屬性為群組和路徑指派唯一的名稱,以便從您的動畫器定義參考這些群組和路徑。
+
+例如:</p>
 
 <pre>
 &lt;!-- res/drawable/vectordrawable.xml -->
@@ -413,7 +501,8 @@
 &lt;/vector>
 </pre>
 
-<p>可動的矢量可繪定義是依照名稱來參考矢量可繪中的群組和路徑:</p>
+<p>可動的矢量可繪定義是依照名稱來參考矢量可繪中的群組和路徑:
+</p>
 
 <pre>
 &lt;!-- res/drawable/animvectordrawable.xml -->
@@ -428,7 +517,9 @@
 &lt;/animated-vector>
 </pre>
 
-<p>動畫定義代表 {@link android.animation.ObjectAnimator} 或 {@link android.animation.AnimatorSet} 物件。此範例中的第一個動畫器會 360 度旋轉目標群組:</p>
+<p>動畫定義代表 {@link android.animation.ObjectAnimator} 或 {@link
+android.animation.AnimatorSet} 物件。此範例中的第一個動畫器會 360 度旋轉目標群組:
+</p>
 
 <pre>
 &lt;!-- res/anim/rotation.xml -->
@@ -439,7 +530,9 @@
     android:valueTo="360" />
 </pre>
 
-<p>此範例中的第二個動畫器會將矢量可繪的路徑從一種形狀變成另外一種形狀。兩個路徑必須相容才能變形:這表示兩個路徑必須有相同數量的命令,每個命令必須有相同數量的參數。</p>
+<p>此範例中的第二個動畫器會將矢量可繪的路徑從一種形狀變成另外一種形狀。
+兩個路徑必須相容才能變形:意即兩個路徑必須有相同數量的命令,而每個命令必須有相同數量的參數。
+</p>
 
 <pre>
 &lt;!-- res/anim/path_morph.xml -->
@@ -453,4 +546,5 @@
 &lt;/set>
 </pre>
 
-<p>如需詳細資訊,請參閱 {@link android.graphics.drawable.AnimatedVectorDrawable} 的 API 參考資料。</p> 
\ No newline at end of file
+<p>如需詳細資訊,請參閱 {@link
+android.graphics.drawable.AnimatedVectorDrawable} 的 API 參考資料。</p>
diff --git a/docs/html-intl/intl/zh-tw/training/material/compatibility.jd b/docs/html-intl/intl/zh-tw/training/material/compatibility.jd
index 35c135f..767788b 100644
--- a/docs/html-intl/intl/zh-tw/training/material/compatibility.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/compatibility.jd
@@ -20,47 +20,68 @@
 </div>
 
 
-<p>某些材料設計功能 (例如材料設計風格和自訂操作行為轉換) 只能在 Android 5.0 (API 級別 21) 以及更新版本中使用。不過,您還是可以將應用程式設計為在支援材料設計的裝置上執行時才使用這些功能,而且仍然與執行舊版 Android 的裝置相容。</p>
+<p>某些材料設計功能如材料設計風格和自訂操作行為轉換等,只能在 Android 5.0 (API 級別 21) 及以上版本中使用。
+然而,您還是可以將應用程式設計為在支援材料設計的裝置上執行時才使用這些功能,並仍然與執行舊版 Android 的裝置相容。
+
+</p>
 
 
 <h2 id="Theme">定義替代樣式</h2>
 
-<p>您可以設定應用程式在支援材料設計風格的裝置上執行時才予以使用,在執行舊版 Android 的裝置上執行時則轉換成舊版的風格主題:</p>
+<p>您可以設定應用程式在支援材料設計風格的裝置上執行時才予以使用,在執行舊版 Android 的裝置上執行時則轉換成舊版的設計風格:
+</p>
 
 <ol>
-<li>在 <code>res/values/styles.xml</code> 中定義繼承自舊版風格主題 (例如 Holo) 的風格主題。</li>
-<li>在 <code>res/values-v21/styles.xml</code> 中定義與材料設計風格相同名稱的風格主題。</li>
-<li>在宣示說明檔案中將此風格主題設定為應用程式的風格主題。</li>
+<li>在 <code>res/values/styles.xml</code> 中定義繼承自舊版設計風格 (例如 Holo) 的設計風格。
+</li>
+<li>在 <code>res/values-v21/styles.xml</code> 中定義與材料設計風格相同名稱的設計風格。
+</li>
+<li>在宣示說明檔案中將此設計風格設定為應用程式的設計風格。</li>
 </ol>
 
-<p class="note"><strong>注意:</strong>如果您的應用程式使用材料設計風格,但卻未以此方式提供替代風格主題,您的應用程式將無法在 Android 5.0 以前的版本上執行。
+<p class="note"><strong>注意</strong>:若您的應用程式使用材料設計風格,但卻未以此方式提供替代設計風格,您的應用程式將無法在 Android 5.0 之前的版本上執行。
+
+
 </p>
 
 
 <h2 id="Layouts">提供替代版面配置</h2>
 
-<p>如果您根據材料設計指南所設計的版面配置沒有使用 Android 5.0 (API 級別 21) 中導入的任何全新 XML 屬性,則這些版面配置就可以在舊版 Android 上運作。或者,您也可以提供替代的版面配置。您也可以提供替代的版面配置來自訂應用程式在舊版 Android 上要如何顯示。</p>
+<p>若您根據材料設計指南所設計的版面配置並未使用任何 Android 5.0 (API 級別 21) 中推出的全新 XML 屬性,則這些版面配置就可以在舊版 Android 上運作。
 
-<p>在 <code>res/layout-v21/</code> 內建立 Android 5.0 (API 級別 21) 的版面配置檔案,並在 <code>res/layout/</code> 內建立舊版 Android 的替代版面配置檔案。例如,<code>res/layout/my_activity.xml</code> 是 <code>res/layout-v21/my_activity.xml</code> 的替代版面配置。</p>
+或者,您也可以提供替代的版面配置。您也可提供替代的版面配置以自訂應用程式在舊版 Android 上如何顯示。
+</p>
 
-<p>為了避免程式碼重複,請在 <code>res/values/</code> 內定義您的樣式,在 <code>res/values-v21/</code> 中針對新的 API 修改樣式,然後使用樣式繼承,在 <code>res/values/</code> 中定義基礎樣式,然後從 <code>res/values-v21/</code> 中的樣式繼承。</p>
+<p>在 <code>res/layout-v21/</code> 內建立 Android 5.0 (API 級別 21) 的版面配置檔案,並在 <code>res/layout/</code> 內建立舊版 Android 的替代版面配置檔案。例如,<code>res/layout/my_activity.xml</code> 是 <code>res/layout-v21/my_activity.xml</code> 的替代版面配置。
+
+
+</p>
+
+<p>為了避免程式碼重複,請在 <code>res/values/</code> 內定義您的樣式,在 <code>res/values-v21/</code> 中針對新的 API 修改樣式,再使用樣式繼承,在 <code>res/values/</code> 中定義基礎樣式,然後從 <code>res/values-v21/</code> 中的樣式繼承。
+
+</p>
 
 
 <h2 id="SupportLib">使用支援程式庫</h2>
 
-<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a> r21 以及更新版本包含下列材料設計功能:</p>
+<p><a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a> r21 以及更新版本包含下列材料設計功能:
+</p>
 
 <ul>
-<li>當您套用其中一個 <code>Theme.AppCompat</code> 風格主題時,某些系統小工具的<a href="{@docRoot}training/material/theme.html">材料設計樣式</a>。</li>
-<li>在 <code>Theme.AppCompat</code> 風格主題中的<a href="{@docRoot}training/material/theme.html#ColorPalette">色板風格主題屬性</a>。</li>
-<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">顯示資料集合</a>的 {@link android.support.v7.widget.RecyclerView} 小工具。</li>
+<li>當您套用其中一個 <code>Theme.AppCompat</code> 設計風格時,某些系統小工具的<a href="{@docRoot}training/material/theme.html">材料設計樣式</a>。
+</li>
+<li>在 <code>Theme.AppCompat</code> 設計風格中的<a href="{@docRoot}training/material/theme.html#ColorPalette">色板設計風格屬性</a>。
+</li>
+<li><a href="{@docRoot}training/material/lists-cards.html#RecyclerView">顯示資料集合</a>的 {@link android.support.v7.widget.RecyclerView} 小工具。
+</li>
 <li><a href="{@docRoot}training/material/lists-cards.html#CardView">建立卡片</a>的 {@link android.support.v7.widget.CardView} 小工具。</li>
-<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">從影像提取顯著顏色</a>的 {@link android.support.v7.graphics.Palette} 類別。</li>
+<li><a href="{@docRoot}training/material/drawables.html#ColorExtract">從影像提取顯著顏色</a>的 {@link android.support.v7.graphics.Palette} 類別。
+</li>
 </ul>
 
 <h3>系統小工具</h3>
 
-<p><code>Theme.AppCompat</code> 風格主題提供下列小工具的材料設計樣式:</p>
+<p><code>Theme.AppCompat</code> 設計風格提供下列小工具的材料設計樣式:</p>
 
 <ul>
   <li>{@link android.widget.EditText}</li>
@@ -73,7 +94,8 @@
 
 <h3>色板</h3>
 
-<p>如果要取得材料設計樣式並使用 Android v7 支援程式庫自訂色板,請套用其中一個 <code>Theme.AppCompat</code> 風格主題:</p>
+<p>如果要取得材料設計樣式並使用 Android v7 支援程式庫自訂色板,請套用其中一個 <code>Theme.AppCompat</code> 設計風格:
+</p>
 
 <pre>
 &lt;!-- extend one of the Theme.AppCompat themes -->
@@ -87,16 +109,21 @@
 
 <h3>清單和卡片</h3>
 
-<p>在舊版 Android 中,透過 Android v7 支援程式庫可以使用 {@link android.support.v7.widget.RecyclerView} 和 {@link android.support.v7.widget.CardView} 小工具,但是有下列限制:</p>
+<p>在舊版 Android 中,透過 Android v7 支援程式庫可以使用 {@link android.support.v7.widget.RecyclerView} 和 {@link
+android.support.v7.widget.CardView} 小工具,但有下列限制:
+</p>
 <ul>
-<li>{@link android.support.v7.widget.CardView} 只能使用額外的填補方式,有計畫地實作陰影。</li>
-<li>{@link android.support.v7.widget.CardView} 不會裁剪與圓形邊角重疊的下方檢視。</li>
+<li>{@link android.support.v7.widget.CardView} 只能使用額外的填補方式,有計畫地實作陰影。
+</li>
+<li>{@link android.support.v7.widget.CardView} 不會裁剪與圓形邊角重疊的下方視圖。
+</li>
 </ul>
 
 
 <h3>相依性</h3>
 
-<p>如果要在 Android 5.0 (API 級別 21) 以前的版本中使用這些功能,請在您的專案中包含 Android v7 支援程式庫做為 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:</p>
+<p>如果要在 Android 5.0 (API 級別 21) 以前的版本中使用這些功能,請在您的專案中包含 Android v7 支援程式庫做為 <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:
+</p>
 
 <pre>
 dependencies {
@@ -120,7 +147,9 @@
 <li>繪製著色</li>
 </ul>
 
-<p>如果要維持與舊版 Android 的相容性,在您呼叫這些功能的 API 之前,請先在執行期間檢查系統 {@link android.os.Build.VERSION#SDK_INT version}:</p>
+<p>如要維持與舊版 Android 的相容性,在呼叫這些功能的 API 之前,請先在執行期間檢查系統 {@link
+android.os.Build.VERSION#SDK_INT version}:
+</p>
 
 <pre>
 // Check if we're running on Android 5.0 or higher
@@ -131,4 +160,9 @@
 }
 </pre>
 
-<p class="note"><strong>注意:</strong>如果要指定應用程式支援的 Android 版本,請在您的宣示說明檔案中使用 <code>android:minSdkVersion</code> 和 <code>android:targetSdkVersion</code> 屬性。如果要在 Android 5.0 中使用材料設計功能,請將 <code>android:targetSdkVersion</code> 屬性設定為 <code>21</code>。如需詳細資訊,請參閱 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API 指南</a>。</p> 
\ No newline at end of file
+<p class="note"><strong>注意:</strong>如果要指定應用程式支援的 Android 版本,請在您的宣示說明檔案中使用 <code>android:minSdkVersion</code> 和 <code>android:targetSdkVersion</code> 屬性。
+
+如果要在 Android 5.0 中使用材料設計功能,請將 <code>android:targetSdkVersion</code> 屬性設定為 <code>21</code>。
+如需詳細資訊,請參閱 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt; API 指南</a>。
+
+</p>
diff --git a/docs/html-intl/intl/zh-tw/training/material/drawables.jd b/docs/html-intl/intl/zh-tw/training/material/drawables.jd
index 316df07..ae807c0 100644
--- a/docs/html-intl/intl/zh-tw/training/material/drawables.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/drawables.jd
@@ -31,14 +31,22 @@
 
 <h2 id="DrawableTint">為可繪項目資源著色</h2>
 
-<p>如果使用 Android 5.0 (API 級別 21) 或更新版本,您可以對點陣圖和定義為 Alpha 遮罩的九宮格影像著色。您可以使用顏色資源或解析為顏色資源的風格主題屬性 (例如 <code>?android:attr/colorPrimary</code>) 為圖片著色。這些資產您通常只會建立一次,然後自動著色以符合您的風格主題。</p>
+<p>若您使用 Android 5.0 (API 級別 21) 或以上版本,您可對點陣圖和定義為 Alpha 遮罩的九宮格影像著色。
+您可使用顏色資源或解析為顏色資源的設計風格屬性 (如 <code>?android:attr/colorPrimary</code> 為圖片著色。
+這些資產您通常只會建立一次,然後自動著色以符合您的設計風格。
+</p>
 
-<p>您可以使用 {@code setTint()} 方法對 {@link android.graphics.drawable.BitmapDrawable} 或 {@link android.graphics.drawable.NinePatchDrawable} 物件套用著色。您也可以使用 <code>android:tint</code> 和 <code>android:tintMode</code> 屬性,設定版面配置中的著色顏色和模式。</p>
+<p>您可使用 {@code setTint()} 方法對 {@link android.graphics.drawable.BitmapDrawable} 或 {@link
+android.graphics.drawable.NinePatchDrawable} 物件套用著色。您也可以使用 <code>android:tint</code> 和 <code>android:tintMode</code> 屬性,設定版面配置中的著色顏色和模式。
+
+</p>
 
 
 <h2 id="ColorExtract">從影像提取顯著顏色</h2>
 
-<p>Android 支援程式庫 r21 和更新版本包含 {@link android.support.v7.graphics.Palette} 類別,可讓您從影像提取出顯著的顏色。此類別會提取下列顯著顏色:</p>
+<p>Android 支援程式庫 r21 和更新版本包含 {@link
+android.support.v7.graphics.Palette} 類別,可讓您從影像提取出顯著的顏色。此類別會提取下列顯著顏色:
+</p>
 
 <ul>
 <li>鮮明</li>
@@ -49,34 +57,44 @@
 <li>柔和 (淺色)</li>
 </ul>
 
-<p>如果要提取這些顏色,請將 {@link android.graphics.Bitmap} 物件傳遞到載入影像之背景執行緒中的 {@link android.support.v7.graphics.Palette#generate Palette.generate()} 靜態方法。如果您無法使用該執行緒,請改為呼叫 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 方法並提供接聽器。</p>
+<p>如果要提取這些顏色,請將 {@link android.graphics.Bitmap} 物件傳遞到載入影像之背景執行緒中的 {@link android.support.v7.graphics.Palette#generate Palette.generate()} 靜態方法。
 
-<p>您可以使用 <code>Palette</code> 類別中的 getter 方法 (例如 <code>Palette.getVibrantColor</code>) 從影像擷取顯著顏色。</p>
+如果您無法使用該執行緒,請改為呼叫 {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} 方法並提供接聽程式。
 
-<p>如果要在專案中使用 {@link android.support.v7.graphics.Palette} 類別,請在應用程式的模組中加入下列 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:</p>
+</p>
+
+<p>您可使用 <code>Palette</code> 類別中的 getter 方法 (如 <code>Palette.getVibrantColor</code> 從影像擷取顯著顏色。
+</p>
+
+<p>如果要在專案中使用 {@link android.support.v7.graphics.Palette} 類別,請在應用程式的模組中加入下列 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:
+
+</p>
 
 <pre>
 dependencies {
     ...
-    compile 'com.android.support:palette-v7:21.0.+'
+    compile 'com.android.support:palette-v7:21.0.0'
 }
 </pre>
 
-<p>如需詳細資訊,請參閱 {@link android.support.v7.graphics.Palette} 類別的 API 參考資料。</p>
+<p>如需詳細資訊,請參閱 {@link android.support.v7.graphics.Palette} 類別的 API 參考資料。
+</p>
 
 
 <h2 id="VectorDrawables">建立矢量可繪</h2>
 
 <!-- video box -->
-<a class="notice-developers-video"
-href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
+<a class="notice-developers-video" href="https://www.youtube.com/watch?v=wlFVIIstKmA" style="margin-top:18px">
 <div>
     <h3>影片</h3>
     <p>Android Vector Graphics</p>
 </div>
 </a>
 
-<p>在 Android 5.0 (API 級別 21) 或更新版本中,您可以定義矢量可繪,這種圖形可以調整大小但不會遺失定義。一個矢量影像只需要一個資產檔案,但是點陣圖影像的每一種螢幕密度都需要一個資產檔案。如果要建立矢量影像,您必須在 <code>&lt;vector&gt;</code> XML 元素內定義圖形的詳細資料。</p>
+<p>在 Android 5.0 (API 級別 21) 或以上版本中,您可定義矢量可繪,這種圖形可以調整大小但不會遺失定義。
+一個矢量影像只需要一個資產檔案,但點陣圖影像的每一種螢幕密度都需要一個資產檔案。
+如果要建立矢量影像,您必須在 <code>&lt;vector&gt;</code> XML 元素內定義圖形的詳細資料。
+</p>
 
 <p>下列範例定義一個具有心形圖案的矢量影像:</p>
 
@@ -102,4 +120,7 @@
 &lt;/vector>
 </pre>
 
-<p>在 Android 中,矢量影像是以 {@link android.graphics.drawable.VectorDrawable} 物件代表。如需有關 <code>pathData</code> 語法的詳細資訊,請參閱 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG 路徑參考資料</a>。如需有關繪製矢量可繪的屬性,請參閱<a href="{@docRoot}training/material/animations.html#AnimVector">動畫顯示矢量可繪</a>。</p> 
\ No newline at end of file
+<p>在 Android 中,{@link android.graphics.drawable.VectorDrawable} 物件代表矢量影像。
+如需有關 <code>pathData</code> 語法的詳細資訊,請參閱 <a href="http://www.w3.org/TR/SVG11/paths.html#PathData">SVG 路徑參考資料</a>。如需有關繪製矢量可繪屬性的詳細資訊,請參閱<a href="{@docRoot}training/material/animations.html#AnimVector">動畫顯示矢量可繪</a>。
+
+</p>
diff --git a/docs/html-intl/intl/zh-tw/training/material/get-started.jd b/docs/html-intl/intl/zh-tw/training/material/get-started.jd
index a7449b6..dfa0074 100644
--- a/docs/html-intl/intl/zh-tw/training/material/get-started.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/get-started.jd
@@ -8,7 +8,7 @@
 <ol>
   <li><a href="#ApplyTheme">套用材料設計風格</a></li>
   <li><a href="#Layouts">設計版面配置</a></li>
-  <li><a href="#Depth">指定在檢視中的高度</a></li>
+  <li><a href="#Depth">指定視圖中的高度</a></li>
   <li><a href="#ListsCards">建立清單和卡片</a></li>
   <li><a href="#Animations">自訂動畫</a></li>
 </ol>
@@ -27,11 +27,11 @@
   <li style="margin-bottom:10px">
     請閱讀<a href="http://www.google.com/design/spec">材料設計規格</a>。</li>
   <li style="margin-bottom:10px">
-    對應用程式套用材料設計<strong>風格</strong>。</li>
+    對應用程式套用材料<strong>設計風格</strong>。</li>
   <li style="margin-bottom:10px">
     依照材料設計指南建立<strong>版面配置</strong>。</li>
   <li style="margin-bottom:10px">
-    指定檢視的<strong>高度</strong>來投射出陰影。</li>
+    指定視圖的<strong>高度</strong>來投射出陰影。</li>
   <li style="margin-bottom:10px">
     使用系統<strong>小工具</strong>製作清單和卡片。</li>
   <li style="margin-bottom:10px">
@@ -40,20 +40,27 @@
 
 <h3>維持向下相容性</h3>
 
-<p>您可以在應用程式中加入多種材料設計功能,同時維持與 Android 5.0 之前版本的相容性。如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。</p>
+<p>您可在應用程式中加入多種材料設計功能,同時維持與 Android 5.0 之前版本的相容性。
+如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。
+</p>
 
 <h3>更新應用程式以納入材料設計功能</h3>
 
-<p>如果要更新現有應用程式以納入材料設計功能,請依照下列材料設計指南更新版面配置。然後再加入深度、輕觸回饋和動畫。</p>
+<p>如要更新現有應用程式以納入材料設計功能,請依照下列材料設計指南更新版面配置。
+同時確保加入深度、輕觸回饋和動畫。
+</p>
 
 <h3>使用材料設計建立新應用程式</h3>
 
-<p>如果您要使用材料設計功能建立新應用程式,<a href="http://www.google.com/design/spec">材料設計指南</a>可以提供您一致性的設計架構。請依照下列指南,使用 Android 架構中的新功能來設計和開發應用程式。</p>
+<p>如果您要使用材料設計功能建立新應用程式,<a href="http://www.google.com/design/spec">材料設計指南</a>可以提供一致性的設計架構。
+請依照下列指南,使用 Android 架構中的新功能來設計和開發應用程式。
+</p>
 
 
 <h2 id="ApplyTheme">套用材料設計風格</h2>
 
-<p>如果要在應用程式中套用材料設計風格,請指定一個繼承自 <code>android:Theme.Material</code> 的樣式:</p>
+<p>如要在應用程式中套用材料設計風格,請指定一個繼承自 <code>android:Theme.Material</code> 的樣式:
+</p>
 
 <pre>
 &lt;!-- res/values/styles.xml -->
@@ -65,12 +72,16 @@
 &lt;/resources>
 </pre>
 
-<p>材料設計風格提供更新過的系統小工具,可以讓您設定小工具的色板和預設動畫做為輕觸回饋與操作行為轉換。如需詳細資訊,請參閱<a href="{@docRoot}training/material/theme.html">使用材料設計風格</a>。</p>
+<p>材料設計風格提供已更新的系統小工具,可讓您設定系統小工具的色板和預設動畫,作為輕觸回饋與操作行為轉換。
+如需詳細資訊,請參閱<a href="{@docRoot}training/material/theme.html">使用材料設計風格</a>。
+</p>
 
 
 <h2 id="Layouts">設計版面配置</h2>
 
-<p>除了套用和自訂材料設計風格之外,您的版面配置也必須遵守<a href="http://www.google.com/design/spec">材料設計指南</a>。當您設計版面配置時,請注意下列事項:</p>
+<p>除了套用和自訂材料設計風格之外,您的版面配置也必須遵守<a href="http://www.google.com/design/spec">材料設計指南</a>。
+當您設計版面配置時,請注意下列事項:
+</p>
 
 <ul>
 <li>基準線網格</li>
@@ -81,9 +92,11 @@
 </ul>
 
 
-<h2 id="Depth">指定在檢視中的高度</h2>
+<h2 id="Depth">指定視圖中的高度</h2>
 
-<p>檢視可以投射出陰影,因此檢視的高度值會決定陰影的大小及其繪製順序。如果要設定檢視的高度,請在版面配置中使用 <code>android:elevation</code> 屬性:</p>
+<p>檢視可以投射出陰影,因此檢視的高度值會決定陰影的大小及其繪製順序。
+如要設定視圖的高度,請在版面配置中使用 <code>android:elevation</code> 屬性:
+</p>
 
 <pre>
 &lt;TextView
@@ -95,14 +108,22 @@
     android:elevation="5dp" />
 </pre>
 
-<p>您可以使用新的 <code>translationZ</code> 屬性建立動畫,來反映檢視高度的短暫變化。高度變化可以用來<a href="{@docRoot}training/material/animations.html#ViewState">回應輕觸手勢</a>。</p>
+<p>您可以使用新的 <code>translationZ</code> 屬性建立動畫,來反映視圖高度的短暫變化。
+高度變化可以用來<a href="{@docRoot}training/material/animations.html#ViewState">回應輕觸手勢</a>。
 
-<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪檢視</a>。</p>
+</p>
+
+<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪檢視</a>。
+</p>
 
 
 <h2 id="ListsCards">建立清單和卡片</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 是一個更容易插入的 {@link android.widget.ListView},能支援不同的版面配置類型,並且提供更好的效能。{@link android.support.v7.widget.CardView} 可讓您在不同的應用程式之間,以一致的外觀顯示卡片內部的資訊。下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.CardView}:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 是一個更容易插入的 {@link
+android.widget.ListView} 版本,可支援不同的版面配置類型並提供更好的效能。{@link android.support.v7.widget.CardView} 可讓您在不同的應用程式之間以一致的外觀顯示卡片內部的資訊。
+
+下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.CardView}:
+</p>
 
 <pre>
 &lt;android.support.v7.widget.CardView
@@ -114,12 +135,15 @@
 &lt;/android.support.v7.widget.CardView>
 </pre>
 
-<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/lists-cards.html">建立清單和卡片</a>。</p>
+<p>如需詳細資訊,請參閱<a href="{@docRoot}training/material/lists-cards.html">建立清單和卡片</a>。
+</p>
 
 
 <h2 id="Animations">自訂動畫</h2>
 
-<p>Android 5.0 (API 級別 21) 包含許多新的 API 可在應用程式中建立自訂動畫。例如,您可以啟用操作行為轉換,然後在操作行為內部定義離開轉換:</p>
+<p>Android 5.0 (API 級別 21) 包含許多新的 API 以便在應用程式中建立自訂動畫。例如,您可以啟用操作行為轉換,並在操作行為內部定義離開轉換:
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -144,4 +168,4 @@
 
 <p>當您從這個操作行為開始另一個操作行為時,就會啟動離開轉換。</p>
 
-<p>如需深入了解新的動畫 API,請參閱<a href="{@docRoot}training/material/animations.html">定義自訂動畫</a>。</p> 
\ No newline at end of file
+<p>如需深入了解新的動畫 API,請參閱<a href="{@docRoot}training/material/animations.html">定義自訂動畫</a>。</p>
diff --git a/docs/html-intl/intl/zh-tw/training/material/index.jd b/docs/html-intl/intl/zh-tw/training/material/index.jd
index ff17ee7..5599d59 100644
--- a/docs/html-intl/intl/zh-tw/training/material/index.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/index.jd
@@ -1,7 +1,8 @@
-page.title=使用材料設計建立應用程式
-page.type=design
-page.image=images/material.png
-page.metaDescription=了解如何對應用程式套用材料設計。
+page.title=開發人員材料設計
+page.type=設計
+page.image=images/cards/material_2x.png
+page.metaDescription=學習如何套用材料設計至您的應用程式。
+
 
 @jd:body
 
@@ -10,24 +11,29 @@
   <h2>相依性和先決條件</h2>
   <ul>
     <li>Android 5.0 (API 級別 21)</li>
-    <li>Android Studio 0.8</li>
   </ul>
 </div>
 </div>
 
-<p>材料設計是一份廣泛綜合性的指南,引導您跨平台、跨裝置進行視覺、動態和互動的設計。如果要在 Android 應用程式中使用材料設計,請依照<a href="http://www.google.com/design/spec/material-design/introduction.html">材料設計規格</a>中的指示,使用 Android 5.0 (API 級別 21) 中的新元件和新功能。</p>
+<p>材料設計是一份廣泛綜合性的指南,引導您跨平台、跨裝置進行視覺、動態和互動的設計。
+如要在 Android 應用程式中使用材料設計,請依照<a href="http://www.google.com/design/spec/material-design/introduction.html">材料設計規格中的指示</a>,使用 Android 5.0 (API 級別 21) 中的新元件和新功能。
+
+
+
+</p>
 
 <p>本課程示範如何使用下列元素建立材料設計應用程式:</p>
 
 <ul>
 <li>材料設計風格</li>
 <li>卡片和清單的小工具</li>
-<li>自訂陰影和裁剪檢視</li>
+<li>自訂陰影和裁剪視圖</li>
 <li>矢量可繪</li>
 <li>自訂動畫</li>
 </ul>
 
-<p>本課程也示範當您在應用程式中使用材料設計功能時,如何與 Android 5.0 (API 級別 21) 之前的版本維持相容性。</p>
+<p>本課程也示範當您在應用程式中使用材料設計功能時,如何與 Android 5.0 (API 級別 21) 之前的版本維持相容性。
+</p>
 
 <h2>課程</h2>
 
@@ -41,15 +47,15 @@
   <dt><a href="{@docRoot}training/material/lists-cards.html">建立清單和卡片</a></dt>
   <dd>了解如何使用系統小工具,建立外觀和操作方式一致的清單和卡片。</dd>
 
-  <dt><a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪檢視</a></dt>
-  <dd>了解如何對檢視設定高度建立自訂陰影,以及如何裁剪檢視。</dd>
+  <dt><a href="{@docRoot}training/material/shadows-clipping.html">定義陰影和裁剪視圖</a></dt>
+  <dd>了解如何對視圖設定高度建立自訂陰影,以及如何裁剪視圖。</dd>
 
   <dt><a href="{@docRoot}training/material/drawables.html">使用可繪項目</a></dt>
   <dd>了解如何建立矢量可繪項目,以及如何對可繪資源著色。</dd>
 
   <dt><a href="{@docRoot}training/material/animations.html">定義自訂動畫</a></dt>
-  <dd>了解如何使用分享元素對檢視建立自訂動畫和操作行為轉換。</dd>
+  <dd>了解如何使用分享元素對視圖建立自訂動畫和操作行為轉換。</dd>
 
   <dt><a href="{@docRoot}training/material/compatibility.html">維持相容性</a></dt>
   <dd>了解如何與 Android 5.0 之前的平台版本維持相容性。</dd>
-</dl> 
\ No newline at end of file
+</dl>
diff --git a/docs/html-intl/intl/zh-tw/training/material/lists-cards.jd b/docs/html-intl/intl/zh-tw/training/material/lists-cards.jd
index f5dca5f..71adffb 100644
--- a/docs/html-intl/intl/zh-tw/training/material/lists-cards.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/lists-cards.jd
@@ -19,55 +19,79 @@
 </div>
 
 
-<p>如果要在應用程式中使用材料設計樣式建立複雜的清單和卡片,可以使用 {@link android.support.v7.widget.RecyclerView} 和 {@link android.support.v7.widget.CardView} 小工具。</p>
+<p>如要在應用程式中使用材料設計樣式建立複雜的清單和卡片,可以使用 {@link android.support.v7.widget.RecyclerView} 和 {@link android.support.v7.widget.CardView} 小工具。
+
+</p>
 
 
 <h2 id="RecyclerView">建立清單</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 小工具是比較進階和彈性的 {@link android.widget.ListView} 版本。這個小工具是一個用來顯示大型資料集的容器,只要維護少數幾個檢視,就可以非常有效率地捲動資料集。如果您的資料集元素在執行期間會根據使用者操作動作或網路事件而變更,就可以使用 {@link android.support.v7.widget.RecyclerView} 小工具。</p>
+<p>{@link android.support.v7.widget.RecyclerView} 小工具是比較進階和彈性的 {@link android.widget.ListView} 版本。
+這個小工具是一個用來顯示大型資料集的容器,只要維護少數幾個視圖,就可極有效率地捲動資料集。
+當您的資料集元素在執行階段會根據使用者操作動作或網路事件而變更,請使用 {@link android.support.v7.widget.RecyclerView} 小工具。
 
-<p>{@link android.support.v7.widget.RecyclerView} 類別會提供下列項目,簡化大型資料集的顯示和處理方式:</p>
+</p>
+
+<p>{@link android.support.v7.widget.RecyclerView} 類別會提供下列項目,簡化大型資料集的顯示和處理方式:
+</p>
 
 <ul>
   <li>版面配置管理員,用來將項目定位</li>
   <li>常見項目操作 (例如移除或新增項目) 的預設動畫</li>
 </ul>
 
-<p>您也可以針對 {@link android.support.v7.widget.RecyclerView} 小工具定義自訂的版面配置管理員。</p>
+<p>您也可針對 {@link
+android.support.v7.widget.RecyclerView} 小工具定義自訂的版面配置管理員。</p>
 
 <img src="{@docRoot}training/material/images/RecyclerView.png" alt="" width="550" height="106" />
 <p class="img-caption">
 <strong>圖 1.</strong><code>RecyclerView</code> 小工具。
 </p>
 
-<p>如果要使用 {@link android.support.v7.widget.RecyclerView} 小工具,您就必須指定配接器和版面配置管理員。如果要建立配接器,請延伸 {@link android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 類別。實作的詳細情形則根據您的資料集和檢視類型而定。如需詳細資訊,請參閱下面的<a href="#RVExamples">範例</a>。</p>
+<p>如果要使用 {@link android.support.v7.widget.RecyclerView} 小工具,您必須指定配接器和版面配置管理員。
+如要建立配接器,請延伸 {@link
+android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter} 類別。實作的詳細情形根據您的資料集和檢視類型而定。
+如需詳細資訊,請參閱下面的<a href="#RVExamples">範例</a>。
+</p>
 
 <div style="float:right">
 <img src="{@docRoot}design/material/images/list_mail.png" alt="" width="250" height="426" />
 <p class="img-caption" style="margin-left:8px">
-<strong>圖 2</strong> - 使用 <code>RecyclerView</code> 的清單。
+<strong>圖 2</strong> - 含有 <code>RecyclerView</code> 的清單。
 </p>
 </div>
 
-<p><strong>版面配置管理員</strong>會將 {@link android.support.v7.widget.RecyclerView} 內的項目檢視定位,然後判斷何時要重複使用使用者不會再看到的項目檢視。如果要重複使用 (或者「回收」<em></em>) 某個檢視,版面配置管理員會要求配接器使用資料集中不同的元素取代檢視的內容。使用此方式回收檢視可以增進效能,避免建立不必要的檢視或執行耗費資源的 {@link android.app.Activity#findViewById findViewById()} 查詢。</p>
+<p><strong>版面配置管理員</strong>會將 {@link
+android.support.v7.widget.RecyclerView} 內的項目視圖定位,並判斷何時要重複使用使用者不會再看到的項目視圖。
+如要重複使用 (或回收<em></em>) 某個視圖,版面配置管理員會要求配接器以資料集中不同的元素,取代視圖的內容。
+使用此方式回收視圖可避免建立不必要的視圖或執行耗費資源的 {@link android.app.Activity#findViewById findViewById()} 查詢,以增進效能。
+
+</p>
 
 <p>{@link android.support.v7.widget.RecyclerView} 提供下列內建的版面配置管理員:</p>
 
 <ul>
-<li>{@link android.support.v7.widget.LinearLayoutManager} 會在垂直或水平捲動清單中顯示項目。</li>
+<li>{@link android.support.v7.widget.LinearLayoutManager} 在垂直或水平捲動清單中顯示項目。
+</li>
 <li>{@link android.support.v7.widget.GridLayoutManager} 會在網格中顯示項目。</li>
 <li>{@link android.support.v7.widget.StaggeredGridLayoutManager} 會在交錯網格中顯示項目。</li>
 </ul>
 
-<p>如果要建立自訂版面配置管理員,請延伸 {@link android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 類別。</p>
+<p>如要建立自訂版面配置管理員,請延伸 {@link
+android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager} 類別。</p>
 
 <h3>動畫</h3>
 
-<p>在 {@link android.support.v7.widget.RecyclerView} 中,預設已啟用新增和移除項目的動畫。如果要自訂這些動畫,請延伸 {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 類別並使用 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()} 方法。</p>
+<p>在 {@link
+android.support.v7.widget.RecyclerView} 中,預設已啟用新增和移除項目的動畫。如果要自訂這些動畫,請延伸 {@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator} 類別並使用 {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()} 方法。
+
+
+</p>
 
 <h3 id="RVExamples">範例</h3>
 
-<p>下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.RecyclerView}:</p>
+<p>下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.RecyclerView}:
+</p>
 
 <pre>
 &lt;!-- A RecyclerView with some commonly used attributes -->
@@ -78,7 +102,9 @@
     android:layout_height="match_parent"/>
 </pre>
 
-<p>在版面配置中加入 {@link android.support.v7.widget.RecyclerView} 小工具之後,取得該物件的控制代碼、將控制代碼連線到版面配置管理員,然後連接配接器以便顯示資料:</p>
+<p>一旦您在版面配置中加入 {@link android.support.v7.widget.RecyclerView} 小工具之後,先取得該物件的控制代碼、將控制代碼連線到版面配置管理員,再連接配接器以便顯示資料:
+
+</p>
 
 <pre>
 public class MyActivity extends Activity {
@@ -108,7 +134,10 @@
 }
 </pre>
 
-<p>配接器可以存取資料集中的項目、建立項目的檢視,並在原來的項目無法再顯示時,使用新的資料項目取代某些檢視的內容。下列程式碼範例簡單實作一個由使用 {@link android.widget.TextView} 小工具顯示的字串陣列所組成的資料集:</p>
+<p>配接器可存取資料集中的項目、建立項目的視圖,並在原來的項目無法再顯示時,使用新的資料項目取代某些視圖的內容。
+
+下列程式碼範例簡單實作一個由使用 {@link android.widget.TextView} 小工具顯示的字串陣列所組成的資料集:
+</p>
 
 <pre>
 public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {
@@ -171,19 +200,29 @@
 
 <h2 id="CardView">建立卡片</h2>
 
-<p>{@link android.support.v7.widget.CardView} 會延伸 {@link android.widget.FrameLayout} 類別,可讓您跨平台以一致的外觀顯示卡片內部的資訊。{@link android.support.v7.widget.CardView} 小工具可以有陰影和圓形邊角。</p>
+<p>{@link android.support.v7.widget.CardView} 會延伸{@link android.widget.FrameLayout} 類別,讓您跨平台以一致的外觀顯示卡片內部的資訊。{@link
+android.support.v7.widget.CardView} 小工具可以有陰影和圓形邊角。
+</p>
 
-<p>如果要建立有陰影的卡片,請使用 <code>card_view:cardElevation</code> 屬性。在 Android 5.0 (API 級別 21) 以及更新版本上,{@link android.support.v7.widget.CardView} 使用實際高度和動態陰影,但是在較舊的版本上則只能有計畫地實作陰影。如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。</p>
+<p>如要建立有陰影的卡片,請使用 <code>card_view:cardElevation</code> 屬性。在 Android 5.0 (API 級別 21) 以及以上版本,{@link android.support.v7.widget.CardView} 使用實際高度和動態陰影,但在較舊的版本上只能有計畫地實作陰影。如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。
 
-<p>使用下列屬性可自訂 {@link android.support.v7.widget.CardView} 小工具的外觀:</p>
+
+
+</p>
+
+<p>使用下列屬性可自訂 {@link android.support.v7.widget.CardView} 小工具的外觀:
+</p>
 
 <ul>
-  <li>如果要在版面配置中設定圓角的半徑,請使用 <code>card_view:cardCornerRadius</code> 屬性。</li>
+  <li>如果要在版面配置中設定圓角的半徑,請使用 <code>card_view:cardCornerRadius</code> 屬性。
+ </li>
   <li>如果要在程式碼中設定圓角的半徑,請使用 <code>CardView.setRadius</code> 方法。</li>
-  <li>如果要設定卡片的背景顏色,請使用 <code>card_view:cardBackgroundColor</code> 屬性。</li>
+  <li>如果要設定卡片的背景顏色,請使用 <code>card_view:cardBackgroundColor</code> 屬性。
+ </li>
 </ul>
 
-<p>下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.CardView} 小工具:</p>
+<p>下列程式碼範例示範如何在版面配置中加入 {@link android.support.v7.widget.CardView}小工具:
+ </p>
 
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -212,7 +251,11 @@
 
 <h2 id="Dependencies">新增相依性</h2>
 
-<p>{@link android.support.v7.widget.RecyclerView} 和 {@link android.support.v7.widget.CardView} 小工具都屬於 <a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a>。如果要在專案中使用這些小工具,請在應用程式的模組中加入下列 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:</p>
+<p>{@link android.support.v7.widget.RecyclerView} 和 {@link android.support.v7.widget.CardView} 小工具都屬於 <a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a>。
+
+如要在專案中使用這些小工具,請在應用程式的模組中加入下列 <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">Gradle 相依性</a>:
+
+</p>
 
 <pre>
 dependencies {
@@ -220,4 +263,4 @@
     compile 'com.android.support:cardview-v7:21.0.+'
     compile 'com.android.support:recyclerview-v7:21.0.+'
 }
-</pre> 
\ No newline at end of file
+</pre>
diff --git a/docs/html-intl/intl/zh-tw/training/material/shadows-clipping.jd b/docs/html-intl/intl/zh-tw/training/material/shadows-clipping.jd
index 54a8ece..d8c996d 100644
--- a/docs/html-intl/intl/zh-tw/training/material/shadows-clipping.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/shadows-clipping.jd
@@ -1,4 +1,4 @@
-page.title=定義陰影和裁剪檢視
+page.title=定義陰影和裁剪視圖
 
 @jd:body
 
@@ -6,9 +6,9 @@
 <div id="tb">
 <h2>本課程示範</h2>
 <ol>
-  <li><a href="#Elevation">指定檢視的高度</a></li>
-  <li><a href="#Shadows">自訂檢視陰影和外框</a></li>
-  <li><a href="#Clip">裁剪檢視</a></li>
+  <li><a href="#Elevation">指定視圖的高度</a></li>
+  <li><a href="#Shadows">自訂視圖陰影和外框</a></li>
+  <li><a href="#Clip">裁剪視圖</a></li>
 </ol>
 <h2>您也應該閱讀</h2>
 <ul>
@@ -18,20 +18,29 @@
 </div>
 </div>
 
-<p>材料設計為 UI 元素引入高度的概念。高度可以幫助使用者了解每個元素的相對重要性,然後讓使用者把焦點放在手邊的工作上。</p>
+<p>材料設計為 UI 元素引入高度的概念。高度有助使用者了解每個元素的相對重要性並將焦點放在手邊的工作上。
+</p>
 
-<p>檢視的高度以 Z 屬性表示,判斷其陰影的視覺外觀:Z 值越高的檢視投射範圍越大,陰影就越柔和。Z 值較高的檢視會遮住 Z 值較低的檢視。不過,檢視的 Z 值不會影響檢視的大小。</p>
+<p>視圖的高度以 Z 屬性表示,決定其陰影的視覺外觀:視圖的 Z 值越高,投射範圍越大,陰影也就越柔和。
+Z 值較高的視圖會遮住 Z 值較低的視圖。然而,視圖的 Z 值不會影響視圖的大小。
+</p>
 
-<p>陰影是由較高的上層檢視繪製,因此也和標準檢視裁剪一樣,預設由上層檢視裁剪陰影。</p>
+<p>陰影是由較高的上層視圖繪製,因此也和標準視圖裁剪一樣,預設由上層視圖裁剪陰影。
+</p>
 
-<p>當小工具在執行某些操作動作而暫時升高到檢視平面的上方時,高度對於建立動畫也非常有用。</p>
+<p>當小工具在執行某些操作動作而暫時升高到視圖平面的上方時,高度對於建立動畫也非常實用。
+</p>
 
-<p>如需有關材料設計高度的詳細資訊,請參閱 <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 空間中的物件</a>。</p>
+<p>如需有關材料設計高度的詳細資訊,請參閱 <a href="http://www.google.com/design/spec/what-is-material/objects-in-3d-space.html">3D 空間中的物件</a>。
+
+</p>
 
 
-<h2 id="Elevation">指派高度到您的檢視</h2>
+<h2 id="Elevation">指定視圖的高度</h2>
 
-<p>檢視的 Z 值有兩個部分: <ul>
+<p>視圖的 Z 值有兩個部分:
+
+<ul>
 <li>高度:靜態部分。</li>
 <li>解譯:用在動畫的動態部分。</li>
 </ul>
@@ -39,24 +48,36 @@
 <p><code>Z = elevation + translationZ</code></p>
 
 <img src="{@docRoot}training/material/images/shadows-depth.png" width="580" height="261" alt="" />
-<p class="img-caption"><strong>圖 1</strong> - 不同檢視高度的陰影。</p>
+<p class="img-caption"><strong>圖 1</strong> - 不同視圖高度的陰影。</p>
 
-<p>如果要在版面配置定義中設定檢視的高度,請使用 <code>android:elevation</code> 屬性。如果要在操作行為的程式碼中設定檢視的高度,請使用 {@link android.view.View#setElevation View.setElevation()} 方法。</p>
+<p>如要在版面配置定義中設定視圖的高度,請使用 <code>android:elevation</code> 屬性。
+如果要在操作行為的程式碼中設定檢視的高度,請使用 {@link android.view.View#setElevation View.setElevation()} 方法。
+</p>
 
-<p>如果要設定檢視的解譯,請使用 {@link android.view.View#setTranslationZ View.setTranslationZ()} 方法。</p>
+<p>如要在操作行為的程式碼中設定檢視的高度,請使用 {@link android.view.View#setTranslationZ
+View.setTranslationZ()} 方法。</p>
 
-<p>新的 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 和 {@link android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 方法可以很輕易地賦予檢視高度栩栩如生的質感。如需詳細資訊,請參閱 {@link android.view.ViewPropertyAnimator} 的 API 參考資料和<a href="{@docRoot}guide/topics/graphics/prop-animation.html">屬性動畫</a>開發人員指南。</p>
+<p>新的 {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} 和 {@link
+android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} 方法可以很輕易地讓視圖高度變得栩栩如生。
+如需詳細資訊,請參閱 {@link android.view.ViewPropertyAnimator}的 API 參考資料和<a href="{@docRoot}guide/topics/graphics/prop-animation.html">屬性動畫開發人員指南</a>。
 
-<p>您也可以使用 {@link android.animation.StateListAnimator} 以宣告的方式指定這些動畫。當狀態變更觸發動畫時 (例如當使用者按下了按鈕),這會特別有用。如需詳細資訊,請參閱<a href="{@docRoot}training/material/animations.html#ViewState">動畫顯示檢視狀態變更</a>。</p>
+</p>
+
+<p>您也可以使用 {@link android.animation.StateListAnimator} 以宣告的方式指定這些動畫。
+當狀態變更觸發動畫時, 例如使用者按下按鈕,這會特別實用。
+如需詳細資訊,請參閱<a href="{@docRoot}training/material/animations.html#ViewState">動畫顯示視圖狀態變更</a>。
+</p>
 
 <p>Z 值的測量單位為 dp (密度獨立像素)。</p>
 
 
-<h2 id="Shadows">自訂檢視陰影和外框</h2>
+<h2 id="Shadows">自訂視圖陰影和外框</h2>
 
-<p>檢視背景可繪項目的邊界決定檢視陰影的預設形狀。<strong>外框</strong>代表圖形物件的外部形狀,而且會定義輕觸回饋的漣漪區域。</p>
+<p>檢視背景可繪項目的邊界決定了視圖陰影的預設形狀。<strong>外框</strong>代表圖形物件的外部形狀,並可定義輕觸回饋的漣漪區域。
 
-<p>我們來看看這個使用背景可繪項目定義的檢視:</p>
+</p>
+
+<p>我們來看看這個使用背景可繪項目定義的視圖:</p>
 
 <pre>
 &lt;TextView
@@ -77,23 +98,36 @@
 &lt;/shape>
 </pre>
 
-<p>因為背景可繪項目定義了檢視的外框,所以檢視投射出有圓形邊角的陰影。如果提供自訂的外框,則會覆寫檢視陰影的預設形狀。</p>
+<p>因為背景可繪項目定義了視圖的外框,所以視圖投射出有圓形邊角的陰影。
+如果提供自訂的外框,則會覆寫視圖陰影的預設形狀。</p>
 
-<p>在程式碼中定義檢視的自訂外框:<p>
+<p>在程式碼中定義視圖的自訂外框:<p>
 
 <ol>
 <li>延伸 {@link android.view.ViewOutlineProvider} 類別。</li>
 <li>覆寫 {@link android.view.ViewOutlineProvider#getOutline getOutline()} 方法。</li>
-<li>使用 {@link android.view.View#setOutlineProvider View.setOutlineProvider()} 方法對檢視指定新的外框提供者。</li>
+<li>使用 {@link
+android.view.View#setOutlineProvider View.setOutlineProvider()} 方法對您的視圖指定新的外框提供者。</li>
 </ol>
 
-<p>您可以使用 {@link android.graphics.Outline} 類別中的方法,建立橢圓形外框和有圓形邊角的長方形外框。檢視的預設外框提供者會從檢視的背景取得外框。如果要避免檢視投射出陰影,請將檢視的外框提供者設定為 <code>null</code>。</p>
+<p>您可以使用 {@link android.graphics.Outline} 類別中的方法,建立橢圓形外框和有圓形邊角的長方形外框。
+視圖的預設外框提供者會從視圖的背景取得外框。
+如果要避免視圖投射出陰影,請將視圖的外框提供者設定為 <code>null</code>。
+</p>
 
 
-<h2 id="Clip">裁剪檢視</h2>
+<h2 id="Clip">裁剪視圖</h2>
 
-<p>裁剪檢視可以讓您輕鬆地變更檢視的形狀。您可以裁剪檢視,讓檢視與其他設計元素有一致的外觀,或者變更檢視的形狀來回應使用者的輸入。您可以使用 {@link android.view.View#setClipToOutline View.setClipToOutline()} 方法或 <code>android:clipToOutline</code> 屬性,將檢視裁剪為其外框區域。依照 {@link android.graphics.Outline#canClip Outline.canClip()} 方法的定義,只有長方形、圓形和圓角長方形的外框才支援裁剪。</p>
+<p>裁剪視圖可以讓您輕鬆地變更視圖的形狀。您可以裁剪視圖,讓視圖與其他設計元素有一致的外觀,或變更視圖的形狀來回應使用者的輸入。您可以使用 {@link android.view.View#setClipToOutline
+View.setClipToOutline()} 方法或 <code>android:clipToOutline</code> 屬性,將視圖裁剪為其外框區域。
 
-<p>如果要將檢視裁剪為可繪項目的形狀,請將可繪項目設定為檢視的背景 (如上所示),然後呼叫 {@link android.view.View#setClipToOutline View.setClipToOutline()} 方法。</p>
+根據 {@link android.graphics.Outline#canClip Outline.canClip()} 方法的定義,只有長方形、圓形和圓角長方形的外框才支援裁剪。
 
-<p>裁剪檢視是一種耗費資源的操作,所以請不要將您用來裁剪檢視的形狀做成動畫。如果想要達到這種效果,請使用<a href="{@docRoot}training/material/animations.html#Reveal">顯示效果</a>動畫。</p> 
\ No newline at end of file
+</p>
+
+<p>如要將視圖裁剪為可繪項目的形狀,請將可繪項目設定為視圖的背景 (如上所示),然後呼叫 {@link android.view.View#setClipToOutline View.setClipToOutline()} 方法。
+
+</p>
+
+<p>裁剪視圖是一種耗費資源的操作,所以請不要將您用來裁剪視圖的形狀做成動畫。
+如果想要達到這種效果,請使用<a href="{@docRoot}training/material/animations.html#Reveal">顯示效果</a>動畫。</p>
diff --git a/docs/html-intl/intl/zh-tw/training/material/theme.jd b/docs/html-intl/intl/zh-tw/training/material/theme.jd
index 8e36827..61cd8bd 100644
--- a/docs/html-intl/intl/zh-tw/training/material/theme.jd
+++ b/docs/html-intl/intl/zh-tw/training/material/theme.jd
@@ -8,7 +8,7 @@
 <ol>
   <li><a href="#ColorPalette">自訂色板</a></li>
   <li><a href="#StatusBar">自訂狀態列</a></li>
-  <li><a href="#Inheritance">風格主題個別檢視</a></li>
+  <li><a href="#Inheritance">設計風格個別視圖</a></li>
 </ol>
 <h2>您也應該閱讀</h2>
 <ul>
@@ -27,9 +27,12 @@
   <li>操作行為轉換動畫</li>
 </ul>
 
-<p>您可以根據品牌特性,使用您控制的色板來自訂材料設計風格的外觀。您可以使用風格主題屬性,為行為欄和狀態列著色,如<a href="#fig3">圖 3</a> 所示。</p>
+<p>您可根據品牌特性,使用您控制的色板以自訂材料設計風格的外觀。
+您可以使用風格主題屬性,為行為欄和狀態列著色,如<a href="#fig3">圖 3</a> 所示。
+</p>
 
-<p>系統小工具經過全新設計,有輕觸回饋動畫。您可以為應用程式自訂色板、輕觸回饋動畫,以及操作行為轉換。</p>
+<p>系統小工具經過全新設計,有輕觸回饋動畫。您可以為應用程式自訂色板、輕觸回饋動畫,以及操作行為轉換。
+</p>
 
 <p>材料設計風格定義為:</p>
 
@@ -39,33 +42,39 @@
   <li><code>@android:style/Theme.Material.Light.DarkActionBar</code></li>
 </ul>
 
-<p>如需您可以使用的材料樣式清單,請參閱 {@link android.R.style R.style} 的 API 參考資料。</p>
+<p>如需您可以使用的材料樣式清單,請參閱 {@link android.R.style R.style} 的 API 參考資料。
+</p>
 
 <!-- two columns, dark/light material theme example -->
 <div style="width:700px;margin-top:25px;margin-bottom:10px">
 <div style="float:left;width:250px;margin-left:40px;margin-right:60px;">
   <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>圖 1.</strong>深色材料設計風格</p>
+  <p style="margin-top:8px;font-size:12px"><strong>圖 1</strong>.深色材料設計風格</p>
   </div>
 </div>
 <div style="float:left;width:250px;margin-right:0px;">
   <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238">
   <div style="width:170px;margin:0 auto">
-  <p style="margin-top:8px;font-size:12px"><strong>圖 2.</strong>淺色材料設計風格</p>
+  <p style="margin-top:8px;font-size:12px"><strong>圖 2</strong>.淺色材料設計風格</p>
   </div>
 </div>
 <br style="clear:left">
 </div>
 
 <p class="note">
-<strong>注意:</strong>材料設計風格只能在 Android 5.0 (API 級別 21) 以及更新版本中使用。<a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a>針對某些小工具提供使用材料設計樣式的風格主題,並且支援自訂色板。如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。
+<strong>注意:</strong>材料設計風格只能在 Android 5.0 (API 級別 21) 及以上版本中使用。
+<a href="{@docRoot}tools/support-library/features.html#v7">v7 支援程式庫</a>針對某些小工具提供使用材料設計樣式的設計風格,並支援自訂色板。
+
+如需詳細資訊,請參閱<a href="{@docRoot}training/material/compatibility.html">維持相容性</a>。
+
 </p>
 
 
 <h2 id="ColorPalette">自訂色板</h2>
 
-<p style="margin-bottom:30px">如果要自訂風格主題的基礎顏色來搭配您的品牌,在繼承材料設計風格時,請使用風格主題屬性定義您的自訂顏色:</p>
+<p style="margin-bottom:30px">如要自訂設計風格的基礎顏色來搭配您的品牌,在繼承材料設計風格時,請使用設計風格屬性定義您的自訂顏色:
+</p>
 
 <pre>
 &lt;resources>
@@ -91,17 +100,32 @@
 
 <h2 id="StatusBar">自訂狀態列</h2>
 
-<p>材料設計風格可以讓您輕鬆自訂狀態列,因此您可以指定符合品牌的顏色,並且提供足夠的對比來顯示白色的狀態圖示。如果要設定狀態列的自訂顏色,請在延伸材料設計風格時使用 <code>android:statusBarColor</code> 屬性。<code>android:statusBarColor</code> 預設會繼承 <code>android:colorPrimaryDark</code> 的值。</p>
+<p>材料設計風格可讓您輕鬆自訂狀態列,因此,您可指定符合品牌的顏色,並提供足夠的對比來顯示白色的狀態圖示。
+如要設定狀態列的自訂顏色,請在延伸材料設計風格時使用 <code>android:statusBarColor</code> 屬性。
 
-<p>您也可以自行繪製狀態列。例如,如果您想要在相片上面顯示透明的狀態列,但是搭配一點深色的漸層,確保可以看見白色的狀態圖示。請將 <code>android:statusBarColor</code> 屬性設定為 <code>&#64;android:color/transparent</code>,並且視需要調整視窗標幟。您也可以使用 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 方法顯示動畫或進行淡化。</p>
-
-<p class="note">
-<strong>注意:</strong>狀態列必須與主要工具列有清楚區分的輪廓,除非您要在這些列後面顯示全版的豐富圖像或媒體內容,或者使用漸層來確保圖示清晰可見。
+<code>android:statusBarColor</code> 預設會繼承 <code>android:colorPrimaryDark</code> 的值。
 </p>
 
-<p>當您自訂導覽列和狀態列時,請讓兩者都變成透明,或者只修改狀態列。在其他所有狀況下,導覽列都必須保持黑色。</p>
+<p>您也可以自行繪製狀態列。例如,若您想在相片上面顯示透明的狀態列,卻想搭配一點深色的漸層以確保白色的狀態圖示清晰可見。
+
+請將 <code>android:statusBarColor</code> 屬性設定為 <code>&#64;android:color/transparent</code>,並且視需要調整視窗標幟。
+您也可以使用 {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} 方法顯示動畫或進行淡化。
+
+</p>
+
+<p class="note">
+<strong>注意:</strong>狀態列應該與主要工具列有清楚區分的輪廓,除非您想在這些列後面顯示全版的豐富圖像或媒體內容,或使用漸層以確保圖示清晰可見。
 
 
-<h2 id="Inheritance">風格主題個別檢視</h3>
+</p>
 
-<p>XML 版面配置定義中的元素可以指定 <code>android:theme</code> 屬性,參考風格主題資源。這個屬性會修改元素和所有子元素的風格主題,這在改變介面特定部份的風格主題色板時很有用。</p> 
\ No newline at end of file
+<p>當您自訂瀏覽列和狀態列時,請讓兩者都變成透明,或者只修改狀態列。
+在其他所有狀況下,瀏覽列都必須保持黑色。</p>
+
+
+<h2 id="Inheritance">設計風格個別視圖</h3>
+
+<p>XML 版面配置定義中的元素可以指定 <code>android:theme</code> 屬性,參考設計風格資源。
+此屬性會修改元素和所有子元素的設計風格,對於改變介面特定部份的設計風格色板非常實用。
+
+</p>
diff --git a/docs/html/about/about_toc.cs b/docs/html/about/about_toc.cs
index eb59b12..a456012 100644
--- a/docs/html/about/about_toc.cs
+++ b/docs/html/about/about_toc.cs
@@ -1,6 +1,5 @@
 <ul id="nav">
-
-    <li class="nav-section">
+  <li class="nav-section">
     <div class="nav-section-header"><a href="<?cs var:toroot ?>about/versions/marshmallow/index.html">
       <span class="en">Marshmallow</span></a></div>
       <ul>
@@ -10,7 +9,6 @@
         Android 6.0 Changes</a></li>
         <li><a href="<?cs var:toroot ?>about/versions/marshmallow/samples.html">
         Android 6.0 Samples</a></li>
-  </li>
       </ul>
   </li>
   <li class="nav-section">
diff --git a/docs/html/about/android.jd b/docs/html/about/android.jd
index ad0ea7c..e3b6958 100644
--- a/docs/html/about/android.jd
+++ b/docs/html/about/android.jd
@@ -26,7 +26,7 @@
 <blockquote>Every day more than a million new Android devices are activated worldwide.</blockquote>
 
 <p>Android’s openness has made it a favorite for consumers and developers alike,
-driving strong growth in app consumption. Android users download more than 
+driving strong growth in app consumption. Android users download 
 billions of apps and games from Google Play each month. </p>
 
 <p>With its partners, Android is continuously pushing the boundaries of hardware and software
@@ -76,7 +76,7 @@
 packaging Android apps. Using the IDE, you can develop on any available Android
 device or create virtual devices that emulate any hardware configuration.</p>
 
-<blockquote>1.5 billion downloads a month and growing. Get your apps in front
+<blockquote>Billion downloads a month and growing. Get your apps in front
 of millions of users at Google's scale.</blockquote>
 
 <h3>Open marketplace for distributing your apps</h3>
@@ -107,5 +107,5 @@
 the best apps promotional slots in curated collections.
 </p>
 
-<p>Preinstalled on hundreds of billions of Android devices around the world,
+<p>Preinstalled on billions of Android devices around the world,
 Google Play can be a growth engine for your business.</p>
\ No newline at end of file
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 8834a2c..2eecd45 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -1,7 +1,9 @@
 page.title=Dashboards
-page.metaDescription=page.metaDescription=Charts that give you an overview of device characteristics and platform versions that are active in the Android ecosystem.
+page.metaDescription=page.metaDescription=An overview of device characteristics and platform versions that are active in the Android ecosystem.
 page.tags="android, dashboard, platforms, versions"
-meta.tags="ecosystem, versions, whatsnew"
+meta.tags="ecosystem, versions, whatsnew, dashboards"
+page.image=http://chart.googleapis.com/chart?chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A0.1%2C93.5%2C6.4&chco=c4df9b%2C6fad0c&chs=400x250&cht=p
+
 @jd:body
 
 <style>
@@ -57,7 +59,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 2, 2015.
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 1, 2016.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -88,7 +90,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 2, 2015.
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 1, 2016.
 
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
@@ -108,7 +110,7 @@
 
 
 <img alt="" style="float:right"
-src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A56.6%2C38.2%2C5.2&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
+src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A53.2%2C39.7%2C7.1&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
 
 <p>To declare which version of OpenGL ES your application requires, you should use the {@code
 android:glEsVersion} attribute of the <a
@@ -126,21 +128,21 @@
 </tr>
 <tr>
 <td>2.0</td>
-<td>56.6%</td>
+<td>53.2%</td>
 </tr>
 <tr>
 <td>3.0</td>
-<td>38.2%</td>
+<td>39.7%</td>
 </tr>
 <tr>
 <td>3.1</td>
-<td>5.2%</td>
+<td>7.1%</td>
 </tr>
 </table>
 
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 2, 2015</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 1, 2016</em></p>
 
 
 
@@ -154,28 +156,28 @@
       "Large": {
         "hdpi": "0.6",
         "ldpi": "0.3",
-        "mdpi": "4.7",
-        "tvdpi": "2.2",
-        "xhdpi": "0.6"
+        "mdpi": "5.0",
+        "tvdpi": "2.3",
+        "xhdpi": "0.5"
       },
       "Normal": {
-        "hdpi": "41.3",
-        "mdpi": "6.1",
+        "hdpi": "41.5",
+        "mdpi": "5.1",
         "tvdpi": "0.1",
-        "xhdpi": "21.7",
-        "xxhdpi": "15.3"
+        "xhdpi": "22.9",
+        "xxhdpi": "14.8"
       },
       "Small": {
-        "ldpi": "3.1"
+        "ldpi": "2.4"
       },
       "Xlarge": {
         "hdpi": "0.3",
-        "mdpi": "3.0",
+        "mdpi": "3.5",
         "xhdpi": "0.7"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?chs=400x250&cht=p&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chco=c4df9b%2C6fad0c&chd=t%3A3.4%2C13.8%2C2.3%2C42.2%2C23.0%2C15.3&chf=bg%2Cs%2C00000000",
-    "layoutchart": "//chart.googleapis.com/chart?chs=400x250&cht=p&chl=Xlarge%7CLarge%7CNormal%7CSmall&chco=c4df9b%2C6fad0c&chd=t%3A4.0%2C8.4%2C84.5%2C3.1&chf=bg%2Cs%2C00000000"
+    "densitychart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chco=c4df9b%2C6fad0c&chd=t%3A2.7%2C13.6%2C2.4%2C42.4%2C24.1%2C14.8&chf=bg%2Cs%2C00000000",
+    "layoutchart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=Xlarge%7CLarge%7CNormal%7CSmall&chco=c4df9b%2C6fad0c&chd=t%3A4.5%2C8.7%2C84.4%2C2.4&chf=bg%2Cs%2C00000000"
   }
 ];
 
@@ -183,57 +185,57 @@
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?chs=500x250&cht=p&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&chco=c4df9b%2C6fad0c&chd=t%3A0.2%2C3.8%2C3.3%2C29.0%2C37.8%2C25.6%2C0.3&chf=bg%2Cs%2C00000000",
+    "chart": "//chart.googleapis.com/chart?cht=p&chs=500x250&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&chco=c4df9b%2C6fad0c&chd=t%3A0.1%2C2.7%2C2.5%2C23.9%2C35.5%2C34.1%2C1.2&chf=bg%2Cs%2C00000000",
     "data": [
       {
         "api": 8,
         "name": "Froyo",
-        "perc": "0.2"
+        "perc": "0.1"
       },
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "3.8"
+        "perc": "2.7"
       },
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "3.3"
+        "perc": "2.5"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "11.0"
+        "perc": "8.8"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "13.9"
+        "perc": "11.7"
       },
       {
         "api": 18,
         "name": "Jelly Bean",
-        "perc": "4.1"
+        "perc": "3.4"
       },
       {
         "api": 19,
         "name": "KitKat",
-        "perc": "37.8"
+        "perc": "35.5"
       },
       {
         "api": 21,
         "name": "Lollipop",
-        "perc": "15.5"
+        "perc": "17.0"
       },
       {
         "api": 22,
         "name": "Lollipop",
-        "perc": "10.1"
+        "perc": "17.1"
       },
       {
         "api": 23,
         "name": "Marshmallow",
-        "perc": "0.3"
+        "perc": "1.2"
       }
     ]
   }
diff --git a/docs/html/about/index.jd b/docs/html/about/index.jd
index 215fc3c..22f504e 100644
--- a/docs/html/about/index.jd
+++ b/docs/html/about/index.jd
@@ -119,40 +119,4 @@
 <p>Preinstalled on hundreds of millions of Android devices around the world,
 Google Play can be a growth engine for your business.</p>
 
-<p><a class="landing-page-link" href="{@docRoot}about/start.html">GET STARTED</a></p>
-
-<div style="background: #F0F0F0;
-            border-top: 1px solid #DDD;
-            padding: 20px 0 24px 0;
-            overflow: auto;
-            clear:both;
-            margin-bottom:-10px;
-            margin-top:60px;"">
-   <div style="padding:0 0 0 29px;">
-        <h4>Developer Story: Robot Invader</h4>
-          <img alt="" class="screenshot thumbnail" style="-webkit-border-radius: 5px;
-            -moz-border-radius: 5px;
-            border-radius: 5px height:78px;
-            width: 78px;
-            float: left;
-            margin: 17px 20px 9px 0;" src=
-            "//g0.gstatic.com/android/market/com.robotinvader.knightmare/hi-256-0-9e08d83bc8d01649e167131d197ada1cd1783fb0">
-          <div style="width:700px;">
-          <p style="margin-top:26px;margin-bottom:12px;">Robot Invader chose 
-              Android as the launch platform for their first game, 
-              <a data-g-event="Developers Page" data-g-label="Case Study Link" href=
-              "//play.google.com/store/apps/details?id=com.robotinvader.knightmare"><em>Wind-up
-              Knight</em></a>.
-           </p>
-           <p>
-              Hear from the developers themselves how Android helped them reach more
-              than 100 devices with a single app binary, then iterate rapidly to ensure
-              a great experience for users.
-           </p>
-           </div>
-           <iframe style="float:left;
-             margin-right:24px;
-             margin-top:14px;" width="700" height="394" src=
-             "http://www.youtube.com/embed/hTtlLiUTowY" frameborder="0" allowfullscreen></iframe>
-   </div> 
-</div>
\ No newline at end of file
+<p><a class="landing-page-link" href="{@docRoot}about/start.html">GET STARTED</a></p>
\ No newline at end of file
diff --git a/docs/html/about/versions/android-1.6.jd b/docs/html/about/versions/android-1.6.jd
old mode 100644
new mode 100755
index 8e97ff6..97ada3c
--- a/docs/html/about/versions/android-1.6.jd
+++ b/docs/html/about/versions/android-1.6.jd
@@ -63,7 +63,7 @@
 <h2 id="features">Platform Highlights</h2>
 
 <p>For a list of new user features and platform highlights, see the <a
-href="http://developer.android.com/about/versions/android-{@sdkPlatformVersion}-highlights.html">Android 
+href="http://developer.android.com/about/versions/android-{@sdkPlatformVersion}-highlights.html">Android
 {@sdkPlatformVersion} Platform Highlights</a> document.</p>
 
 
@@ -125,11 +125,11 @@
 <dd>
 <p>Requires SDK Tools r6 or higher.</p>
 </dd>
-<dt>Tools:</dt> 
+<dt>Tools:</dt>
 <dd>
-<ul> 
+<ul>
 <li>Adds support for library projects in the Ant build system.</li>
-</ul> 
+</ul>
 </dd>
 </dl>
  </div>
@@ -146,33 +146,33 @@
 <p>Requires SDK Tools r4 or higher.</p>
 </dd>
 
-<dt>API related:</dt> 
+<dt>API related:</dt>
 <dd>
-<ul> 
+<ul>
 <li>Properly exposes CDMA-related constants in <code><a href="{@docRoot}reference/android/telephony/TelephonyManager.html">android.telephony.TelephonyManager</a></code>: <code>DATA_ACTIVITY_DORMANT</code>,
 <code>PHONE_TYPE_CDMA</code>, <code>NETWORK_TYPE_CDMA</code>,
 <code>NETWORK_TYPE_EVDO_0</code>, <code>NETWORK_TYPE_EVDO_A</code>, and
-<code>NETWORK_TYPE_1xRTT</code>.</li> 
-</ul> 
+<code>NETWORK_TYPE_1xRTT</code>.</li>
+</ul>
 </dd>
-<dt>System image:</dt> 
+<dt>System image:</dt>
 <dd>
-<ul> 
-<li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li> 
-<li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li> 
-<li>Fixes TextView to properly compute styled font metrics based on the screen density.</li> 
+<ul>
+<li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li>
+<li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li>
+<li>Fixes TextView to properly compute styled font metrics based on the screen density.</li>
 <li>Updates kernel to 2.6.29, to match kernel on commercially
-available Android-powered devices.</li> 
-</ul> 
+available Android-powered devices.</li>
+</ul>
 </dd>
-<dt>Tools:</dt> 
+<dt>Tools:</dt>
 <dd>
-<ul> 
+<ul>
 <li>Adds new Ant build system with support for Emma instrumentation projects
-(code coverage).</li> 
-<li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li> 
-<li>Fixes density rendering in the layout editor in ADT.</li> 
-</ul> 
+(code coverage).</li>
+<li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li>
+<li>Fixes density rendering in the layout editor in ADT.</li>
+</ul>
 </dd>
 </dl>
  </div>
@@ -227,8 +227,8 @@
           <li><code>OvershootInterpolator</code></li>
         </ul>
       </li>
-      <li>New XML attribute <code>android:onClick</code> to specify a View's 
-<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 
+      <li>New XML attribute <code>android:onClick</code> to specify a View's
+<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a>
 from a layout file.
       </li>
       <li>New support for dealing with varying screen densities. Density
@@ -236,8 +236,8 @@
 correct scaling. The framework will automatically scale bitmaps and
 nine-patches based on the density the resource was found under and the
 density of the screen, etc.
-      </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to 
-set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code> 
+      </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to
+set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code>&lt;uses-sdk&gt;</code>
 element in your application's manifest. </p>
     </ul>
 
@@ -295,33 +295,33 @@
 <h3 id="AndroidManifest">Android Manifest elements</h3>
 
     <ul>
-      <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code 
-      &lt;supports-screens>}</a> element lets you specify the device screen sizes that your 
+      <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code
+      &lt;supports-screens>}</a> element lets you specify the device screen sizes that your
       application is designed and tested to support, where "size" is a combination
-      of resolution and density. If your application is run on a device whose screen 
-      size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system 
+      of resolution and density. If your application is run on a device whose screen
+      size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system
       displays the application in <em>compatibility mode</em>, which performs best-effort scaling
-      of the application UI to match the resolution and density of the screen. 
+      of the application UI to match the resolution and density of the screen.
 
     <p>The attributes available for defining an application's screen support are:
 
         <ul>
 
           <li><code>smallScreen</code>: Boolean value that indicates whether the
-            application is designed to run on devices with small screens. 
+            application is designed to run on devices with small screens.
             Examples: QVGA low density; VGA high density.
           </li>
-          <li><code>normalScreens</code>: Boolean value that indicates whether 
-            the application is designed to run on devices with normal screens. 
+          <li><code>normalScreens</code>: Boolean value that indicates whether
+            the application is designed to run on devices with normal screens.
             Examples: WQVGA low density; HVGA medium density; WVGA high density.
           </li>
-          <li><code>largeScreens</code>: Boolean value that indicates whether 
-            the application is designed to run on devices with significantly 
+          <li><code>largeScreens</code>: Boolean value that indicates whether
+            the application is designed to run on devices with significantly
             larger screens, such that special care may be required on
-            the application's part to make proper use of the screen area. 
+            the application's part to make proper use of the screen area.
             Examples: VGA medium density; WVGA medium density.
           </li>
-          <li><code>anyDensity</code>: Boolean value that indicates whether 
+          <li><code>anyDensity</code>: Boolean value that indicates whether
             the application can accommodate any screen density.
           </li>
           <li><code>resizable</code>: Boolean value that indicates whether
@@ -338,21 +338,21 @@
         on devices that offer the required features. The element supports these
         attributes:
         <ul>
-          <li><code>name</code>: The name of the feature required by the application. Currently accepts 
-          "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a 
+          <li><code>name</code>: The name of the feature required by the application. Currently accepts
+          "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a
           camera and camera autofocus are required, respectively.</li>
           <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li>
         </ul>
       </li>
-      <li>New attributes for the 
+      <li>New attributes for the
       <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code &lt;uses-sdk>}</a> element:
         <ul>
-          <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting. 
-          It is able to run on older versions (down to minSdkVersion), but was explicitly tested to 
-          work with the version specified here. Specifying this version allows the platform to 
-          disable compatibility code that is not required or enable newer features that are not 
+          <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting.
+          It is able to run on older versions (down to minSdkVersion), but was explicitly tested to
+          work with the version specified here. Specifying this version allows the platform to
+          disable compatibility code that is not required or enable newer features that are not
           available to older applications. </li>
-          <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is 
+          <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is
           designed to run. <strong>Important:</strong> Please read the <a
           href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
           documentation before using this attribute. </li>
@@ -366,13 +366,13 @@
 
     <ul>
       <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE
-          CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi 
+          CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi
           Multicast mode.
       </li>
-      <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the 
+      <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the
           global search system to access the data of a specified content provider.
-      </li> 
-      <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: 
+      </li>
+      <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}:
           Allows an application to install a location provider into the Location Manager.
       </li>
       <li>READ_HISTORY_BOOKMARKS:
@@ -380,13 +380,13 @@
           and bookmarks.
       </li>
       <li>WRITE_HISTORY_BOOKMARKS:
-          Allows an application to write (but not read) the user's browsing history 
+          Allows an application to write (but not read) the user's browsing history
           and bookmarks.
       </li>
-      <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: 
+      <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}:
           Allows an application to write to external storage. Applications using API Level 3
-          and lower will be implicitly granted this permission (and this will be visible to 
-          the user); Applications using API Level 4 or higher must explicitly request this 
+          and lower will be implicitly granted this permission (and this will be visible to
+          the user); Applications using API Level 4 or higher must explicitly request this
           permission.
       </li>
     </ul>
@@ -394,8 +394,8 @@
 
 <h3 id="api-diff">API differences report</h3>
 
-<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to 
-the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API 
+<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to
+the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
 Differences Report</a>.</p>
 
 <h2 id="apps">Built-in Applications</h2>
@@ -438,8 +438,8 @@
 <p>The system image included in the downloadable platform provides a variety of
 built-in locales. In some cases, region-specific strings are available for the
 locales. In other cases, a default version of the language is used. The
-languages that are available in the Android {@sdkPlatformVersion} system 
-image are listed below (with <em>language</em>_<em>country/region</em> 
+languages that are available in the Android {@sdkPlatformVersion} system
+image are listed below (with <em>language</em>_<em>country/region</em>
 locale descriptor).</p>
 
 <table style="border:0;margin-bottom:0;padding-bottom:0;">
@@ -479,13 +479,13 @@
 </tr>
 </table>
 
-<p>Localized UI strings match the locales that are accessible 
+<p>Localized UI strings match the locales that are accessible
 through Settings.</p>
 
 <h2 id="skins">Emulator Skins</h2>
 
-<p>The downloadable platform includes a set of emulator skins that you can 
-use for modeling your application in different screen sizes and resolutions. 
+<p>The downloadable platform includes a set of emulator skins that you can
+use for modeling your application in different screen sizes and resolutions.
 The emulator skins are: </p>
 
 <ul>
diff --git a/docs/html/about/versions/android-4.0-highlights.jd b/docs/html/about/versions/android-4.0-highlights.jd
old mode 100644
new mode 100755
index f2b35ac..c980af6
--- a/docs/html/about/versions/android-4.0-highlights.jd
+++ b/docs/html/about/versions/android-4.0-highlights.jd
@@ -143,7 +143,7 @@
 favorites tray</strong></p>
 
 <p>New home screen <strong>folders</strong> offer a new way for users to group
-their apps and shortcuts logically, just by dragging one onto another. Also, 
+their apps and shortcuts logically, just by dragging one onto another. Also,
 in All Apps launcher, users can now simply <strong>drag an app</strong> to get
 information about it or immediately uninstall it, or disable a pre-installed app.</p>
 
@@ -210,7 +210,7 @@
 
 <p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved text input and
 spell-checking</strong></p>
-  
+
 <p>The soft keyboard in Android 4.0 makes text input even faster and more
 accurate. Error correction and word suggestion are improved through a new set of
 default dictionaries and more accurate heuristics for handling cases such as
@@ -693,7 +693,7 @@
 <h3 id="communication-dev">Communication and sharing</h3>
 
 <p>Android 4.0 extends social and sharing features to any application on the
-device. Applications can integrate contacts, profile data, stream items, 
+device. Applications can integrate contacts, profile data, stream items,
 and calendar events from any of the user’s activities or social networks.</p>
 
 
@@ -914,8 +914,8 @@
 Because hierarchies are flatter, developers can also manage alignments between
 components that are visually related to each other even when they are not
 logically related, for precise control over application UI. GridLayout is also
-specifically designed to be configured by drag-and-drop design tools such as the
-ADT Plug-in for Eclipse.</p>
+specifically designed to be configured by drag-and-drop design tools such as
+Android Studio.</p>
 
 
 <p style="margin-top:1em;margin-bottom:.75em;"><strong>OpenGL ES texture
@@ -998,7 +998,7 @@
 screen position, and more. Applications can also request changes to certain
 properties to help manage focus and selected state. For example, an
 accessibility service could use these new capabilities to add convenient
-features such as screen-search by text. </p> 
+features such as screen-search by text. </p>
 
 
 <p style="margin-top:1em;margin-bottom:.75em;"><strong>Text-to-speech
diff --git a/docs/html/about/versions/android-4.2.jd b/docs/html/about/versions/android-4.2.jd
old mode 100644
new mode 100755
index 76acb8a..f9fb359
--- a/docs/html/about/versions/android-4.2.jd
+++ b/docs/html/about/versions/android-4.2.jd
@@ -549,7 +549,7 @@
 </dl>
 
 <p class="note"><strong>Note:</strong> Although Filterscript support is in the platform, developer
-support will be available in ADT and SDK Tools Release 21.0.1. </p>
+support will be available in SDK Tools Release 21.0.1. </p>
 
 
 <p>For a detailed view of all API changes in Android 4.2, see the
diff --git a/docs/html/about/versions/kitkat.jd b/docs/html/about/versions/kitkat.jd
index dff3508..2987bd4 100644
--- a/docs/html/about/versions/kitkat.jd
+++ b/docs/html/about/versions/kitkat.jd
@@ -58,11 +58,10 @@
     <img src="{@docRoot}images/kk-devices.png" alt="Android 4.4 on phone and tablet" width="380">
   </div>
 
-  <div class="landing-docs" style="float:right;clear:both;margin:22px 0 2em 3em;">
-  <div class="col-4 normal-links highlights" style="font-size:12px;">
-    <h3 id="thisd" >Key Developer Features</h3>
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2 id="features" >Key Developer Features</h3>
     <ul style="list-style-type:none;">
-      <!--<li><a href="#44-ui">UI refresh</a></li>-->
       <li><a href="#44-hce">Host Card Emulation</a></li>
       <li><a href="#44-printing">Printing framework</a></li>
       <li><a href="#44-storage-access">Storage access framework</a></li>
diff --git a/docs/html/about/versions/marshmallow/android-6.0-changes.jd b/docs/html/about/versions/marshmallow/android-6.0-changes.jd
index bae4717..f998590 100644
--- a/docs/html/about/versions/marshmallow/android-6.0-changes.jd
+++ b/docs/html/about/versions/marshmallow/android-6.0-changes.jd
@@ -346,8 +346,8 @@
   Owners have the privilege of editing or removing any Wi-Fi configurations, including
   those not created by them.
   </li>
-<li><strong>Download Work Policy Controller via Google account addition:</strong> When a Google
-account that requires management via a Work Policy Controller (WPC) app is added to a device
+<li><strong>Download device policy controller via Google account addition:</strong> When a Google
+account that requires management via a device policy controller (DPC) app is added to a device
 outside of a managed context, the add account flow now prompts the user to install the
 appropriate WPC. This behavior also applies to accounts added via
 <strong>Settings > Accounts</strong> and in the initial device setup wizard.</li>
diff --git a/docs/html/about/versions/marshmallow/android-6.0.jd b/docs/html/about/versions/marshmallow/android-6.0.jd
index 732932f..779ecf4 100644
--- a/docs/html/about/versions/marshmallow/android-6.0.jd
+++ b/docs/html/about/versions/marshmallow/android-6.0.jd
@@ -553,7 +553,7 @@
 update, for instance in the case of a kiosk device, or postpone the update and prevent it being
 taken by the user for up to 30 days. Furthermore, an administrator can set a daily time window in
 which an update must be taken, for example during the hours when a kiosk device is not in use. When
-a system update is available, the system checks if the Work Policy Controller app has set a system
+a system update is available, the system checks if the device policy controller app has set a system
 update policy, and behaves accordingly.
 </li>
 <li>
diff --git a/docs/html/about/versions/marshmallow/index.jd b/docs/html/about/versions/marshmallow/index.jd
index a7bca56..35edd72 100644
--- a/docs/html/about/versions/marshmallow/index.jd
+++ b/docs/html/about/versions/marshmallow/index.jd
@@ -2,7 +2,8 @@
 page.tags="marshmallow"
 meta.tags="marshamallow","android60"
 fullpage=true
-section.landing=true
+nonavpage=true
+forcelocalnav=true
 header.hide=1
 footer.hide=1
 @jd:body
@@ -55,6 +56,7 @@
   <div class="resource-widget resource-flow-layout col-16"
        data-query="collection:marshmallow/landing/more"
        data-cardSizes="6x6"
+       data-items-per-page="15"
        data-initial-results="3"></div>
   </div>
 </section>
@@ -68,17 +70,19 @@
   <div class="resource-widget resource-flow-layout col-16"
        data-query="collection:marshmallow/landing/videos"
        data-cardSizes="6x6"
+       data-items-per-page="15"
        data-initial-results="6"></div>
   </div>
 </section>
 
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
       data-query="type:blog+tag:marshmallow"
       data-sortOrder="-timestamp"
       data-cardSizes="6x6"
-      data-maxResults="12"
+      data-maxResults="24"
+      data-items-per-page="15"
       data-initial-results="3">
   </div>
 </section>
diff --git a/docs/html/auto/images/ui/gearhead_custom_UI.png b/docs/html/auto/images/ui/gearhead_custom_UI.png
index a3baba4..fce7eb8 100644
--- a/docs/html/auto/images/ui/gearhead_custom_UI.png
+++ b/docs/html/auto/images/ui/gearhead_custom_UI.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_custom_user_actions.png b/docs/html/auto/images/ui/gearhead_custom_user_actions.png
index 8e65ee04..5aedbb9 100644
--- a/docs/html/auto/images/ui/gearhead_custom_user_actions.png
+++ b/docs/html/auto/images/ui/gearhead_custom_user_actions.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_day.png b/docs/html/auto/images/ui/gearhead_day.png
index a3baba4..5593caa 100644
--- a/docs/html/auto/images/ui/gearhead_day.png
+++ b/docs/html/auto/images/ui/gearhead_day.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_drawer_generic.png b/docs/html/auto/images/ui/gearhead_drawer_generic.png
index 94dd305..1d6fc85 100644
--- a/docs/html/auto/images/ui/gearhead_drawer_generic.png
+++ b/docs/html/auto/images/ui/gearhead_drawer_generic.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_drawers_customized.png b/docs/html/auto/images/ui/gearhead_drawers_customized.png
index fe74a49..308e8cf 100644
--- a/docs/html/auto/images/ui/gearhead_drawers_customized.png
+++ b/docs/html/auto/images/ui/gearhead_drawers_customized.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_generic_UI.png b/docs/html/auto/images/ui/gearhead_generic_UI.png
index d7cd53d..cd51929 100644
--- a/docs/html/auto/images/ui/gearhead_generic_UI.png
+++ b/docs/html/auto/images/ui/gearhead_generic_UI.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_lens_switching.png b/docs/html/auto/images/ui/gearhead_lens_switching.png
index 9fb8b65..39e4bc6 100644
--- a/docs/html/auto/images/ui/gearhead_lens_switching.png
+++ b/docs/html/auto/images/ui/gearhead_lens_switching.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_night.png b/docs/html/auto/images/ui/gearhead_night.png
index 8f1ecdd..424df16 100644
--- a/docs/html/auto/images/ui/gearhead_night.png
+++ b/docs/html/auto/images/ui/gearhead_night.png
Binary files differ
diff --git a/docs/html/auto/images/ui/gearhead_overview.png b/docs/html/auto/images/ui/gearhead_overview.png
index 00b35ce..21948f7 100644
--- a/docs/html/auto/images/ui/gearhead_overview.png
+++ b/docs/html/auto/images/ui/gearhead_overview.png
Binary files differ
diff --git a/docs/html/auto/index.jd b/docs/html/auto/index.jd
index 2f0ffd5..cc5ed2e 100644
--- a/docs/html/auto/index.jd
+++ b/docs/html/auto/index.jd
@@ -619,25 +619,6 @@
         </div>
       </div>
   </div>
-  <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement"
-    style="border-top: none;">
-
-    <div class="layout-content-col col-16" style="padding-top:4px">
-      <style>#___plusone_0 {float:right !important;}</style>
-      <div class="g-plusone" data-size="medium"></div>
-    </div>
-  </div>
-
-  <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
-    <div id="copyright">
-        Except as noted, this content is
-        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-        Creative Commons Attribution 2.5</a>. For details and
-        restrictions, see the <a href="{@docRoot}license.html">Content
-        License</a>.
-    </div>
-  </div>
-</div> <!-- end .landing-hero-container -->
 
   <script>
   $("a.landing-down-arrow").on("click", function(e) {
diff --git a/docs/html/design/design_toc.cs b/docs/html/design/design_toc.cs
index 477eb23..a837a04 100644
--- a/docs/html/design/design_toc.cs
+++ b/docs/html/design/design_toc.cs
@@ -18,13 +18,11 @@
 
   <li class="nav-section">
     <div class="nav-section-header empty"><a href="<?cs var:toroot ?>design/material/index.html"
-       es-lang="Material Design"
        ja-lang="マテリアル デザイン"
        ko-lang="머티어리얼 디자인"
-       pt-br-lang="Material Design"
-       ru-lang="Material Design"
        zh-cn-lang="材料设计"
-       zh-tw-lang="材料設計">
+       zh-tw-lang="材料設計"
+       >
     Material for Android</a></div>
   </li>
 
@@ -59,10 +57,9 @@
   </li>
 
   <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/style/index.html">Pure Android</a></div>
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>design/patterns/index.html">Pure Android</a></div>
     <ul>
       <li><a href="<?cs var:toroot ?>design/style/devices-displays.html">Devices and Displays</a></li>
-      <li><a href="<?cs var:toroot ?>design/patterns/app-structure.html">App Structure</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/navigation.html"
        es-lang="Navegación con los botones Back y Up"
        ja-lang="Back と Up を使用したナビゲーション"
@@ -85,7 +82,6 @@
       <li><a href="<?cs var:toroot ?>design/patterns/widgets.html">Widgets</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/swipe-views.html">Swipe Views</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/fullscreen.html">Full Screen</a></li>
-
       <li><a href="<?cs var:toroot ?>design/patterns/confirming-acknowledging.html"
        es-lang="Confirmación y reconocimiento"
        ja-lang="確認と通知"
@@ -95,7 +91,6 @@
        zh-cn-lang="确认和确知"
        zh-tw-lang="確認及確認完成">
        Confirming &amp; Acknowledging</a></li>
-
       <li><a href="<?cs var:toroot ?>design/patterns/pure-android.html">Pure Android</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/compatibility.html">Compatibility</a></li>
       <li><a href="<?cs var:toroot ?>design/patterns/accessibility.html">Accessibility</a></li>
diff --git a/docs/html/design/devices.jd b/docs/html/design/devices.jd
index 3d23d07..4616836 100644
--- a/docs/html/design/devices.jd
+++ b/docs/html/design/devices.jd
@@ -1,7 +1,5 @@
 page.title=Android devices
-page.viewport_width=970
 section.landing=true
-header.hide=1
 footer.hide=1
 page.image=images/cards/android-devices_2x.jpg
 @jd:body
diff --git a/docs/html/design/downloads/index.jd b/docs/html/design/downloads/index.jd
index 089a4af..e37b305 100644
--- a/docs/html/design/downloads/index.jd
+++ b/docs/html/design/downloads/index.jd
@@ -1,8 +1,11 @@
 page.title=Downloads
-page.tags=Icons,stencils,color swatches
+page.tags="icons","stencils","colors,"swatches"
+meta.tags="downloads, design, tools"
+section.landing=true
+footer.hide=true
+nonavpage=true
+forcelocalnav=true
 @jd:body
-
-
 <p>For icons, sticker sheets, and other downloadable resources, visit the
 <a href="http://www.google.com/design">Design site</a> or use the links below. </p>
 
diff --git a/docs/html/design/get-started/creative-vision.jd b/docs/html/design/get-started/creative-vision.jd
index 974d5d0..26bc1b2 100644
--- a/docs/html/design/get-started/creative-vision.jd
+++ b/docs/html/design/get-started/creative-vision.jd
@@ -1,8 +1,11 @@
 page.title=Creative Vision
+section.landing=true
+footer.hide=1
 page.image=images/cards/design-creative-vision_2x.jpg
+
 @jd:body
 
-<img src="{@docRoot}design/media/creative_vision_main.png">
+<img src="{@docRoot}design/media/creative_vision_main.png" style="width:100%;margin-top:">
 
 <div class="vspace size-1">&nbsp;</div>
 
@@ -15,7 +18,7 @@
 <div class="vspace size-1">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-4">
+  <div class="col-1of3">
 
 <h4>Enchant me</h4>
 <p>Beauty is more than skin deep. Android apps are sleek and aesthetically pleasing on multiple levels.
@@ -24,7 +27,7 @@
 simplicity and purpose to create a magical experience that is effortless and powerful.</p>
 
   </div>
-  <div class="col-5">
+  <div class="col-1of3">
 
 <h4>Simplify my life</h4>
 <p>Android apps make life easier and are easy to understand. When people use your app for the first
@@ -35,7 +38,7 @@
 irrelevant flash.</p>
 
   </div>
-  <div class="col-4">
+  <div class="col-1of3">
 
 <h4>Make me amazing</h4>
 <p>It's not enough to make an app that is easy to use. Android apps empower people to try new things
diff --git a/docs/html/design/get-started/principles.jd b/docs/html/design/get-started/principles.jd
index 172a4e4..9e8a371 100644
--- a/docs/html/design/get-started/principles.jd
+++ b/docs/html/design/get-started/principles.jd
@@ -15,7 +15,7 @@
 <h2 id="enchant-me">Enchant Me</h2>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="delight-me">Delight me in surprising ways</h4>
 <p>A beautiful surface, a carefully-placed animation, or a well-timed sound effect is a joy to
@@ -23,7 +23,7 @@
 force is at hand.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_delight.png">
 
@@ -33,14 +33,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="real-objects-more-fun">Real objects are more fun than buttons and menus</h4>
 <p>Allow people to directly touch and manipulate objects in your app. It reduces the cognitive effort
 needed to perform a task while making it more emotionally satisfying.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_real_objects.png">
 
@@ -50,7 +50,7 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="make-it-mine">Let me make it mine</h4>
 <p>People love to add personal touches because it helps them feel at home and in control. Provide
@@ -58,7 +58,7 @@
 primary tasks.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_make_it_mine.png">
 
@@ -68,14 +68,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="get-to-know-me">Get to know me</h4>
 <p>Learn peoples' preferences over time. Rather than asking them to make the same choices over and
 over, place previous choices within easy reach.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_get_to_know_me.png">
 
@@ -85,13 +85,13 @@
 <h2 id="simplify-my-life">Simplify My Life</h2>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="keep-it-brief">Keep it brief</h4>
 <p>Use short phrases with simple words. People are likely to skip sentences if they're long.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_keep_it_brief.png">
 
@@ -101,14 +101,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="pictures-faster-than-words">Pictures are faster than words</h4>
 <p>Consider using pictures to explain ideas. They get people's attention and can be much more efficient
 than words.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_pictures.png">
 
@@ -118,14 +118,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="decide-for-me">Decide for me but let me have the final say</h4>
 <p>Take your best guess and act rather than asking first. Too many choices and decisions make people
 unhappy. Just in case you get it wrong, allow for 'undo'.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_decide_for_me.png">
 
@@ -135,14 +135,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="only-show-when-i-need-it">Only show what I need when I need it</h4>
 <p>People get overwhelmed when they see too much at once. Break tasks and information into small,
 digestible chunks. Hide options that aren't essential at the moment, and teach people as they go.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_information_when_need_it.png">
 
@@ -152,14 +152,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="always-know-where-i-am">I should always know where I am</h4>
 <p>Give people confidence that they know their way around. Make places in your app look distinct and
 use transitions to show relationships among screens. Provide feedback on tasks in progress.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_navigation.png">
 
@@ -169,7 +169,7 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="never-lose-my-stuff">Never lose my stuff</h4>
 <p>Save what people took time to create and let them access it from anywhere. Remember settings,
@@ -177,7 +177,7 @@
 easiest thing in the world.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_never_lose_stuff.png">
 
@@ -187,14 +187,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="looks-same-should-act-same">If it looks the same, it should act the same</h4>
 <p>Help people discern functional differences by making them visually distinct rather than subtle.
 Avoid modes, which are places that look similar but act differently on the same input.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_looks_same.png">
 
@@ -204,14 +204,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="interrupt-only-if-important">Only interrupt me if it's important</h4>
 <p>Like a good personal assistant, shield people from unimportant minutiae. People want to stay
 focused, and unless it's critical and time-sensitive, an interruption can be taxing and frustrating.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_important_interruption.png">
 
@@ -221,7 +221,7 @@
 <h2 id="make-me-amazing">Make Me Amazing</h2>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="give-me-tricks">Give me tricks that work everywhere</h4>
 <p>People feel great when they figure things out for themselves. Make your app easier to learn by
@@ -229,7 +229,7 @@
 may be a good navigational shortcut.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_tricks.png">
 
@@ -239,7 +239,7 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="its-not-my-fault">It's not my fault</h4>
 <p>Be gentle in how you prompt people to make corrections. They want to feel smart when they use your
@@ -247,7 +247,7 @@
 If you can fix it behind the scenes, even better.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_error.png">
 
@@ -257,14 +257,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="sprinkle-encouragement">Sprinkle encouragement</h4>
 <p>Break complex tasks into smaller steps that can be easily accomplished. Give feedback on actions,
 even if it's just a subtle glow.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png">
 
@@ -274,7 +274,7 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="do-heavy-lifting-for-me">Do the heavy lifting for me</h4>
 <p>Make novices feel like experts by enabling them to do things they never thought they could. For
@@ -282,7 +282,7 @@
 only a few steps.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_heavy_lifting.png">
 
@@ -292,14 +292,14 @@
 <div class="vspace size-2">&nbsp;</div>
 
 <div class="cols">
-  <div class="col-7">
+  <div class="col-7of12">
 
 <h4 id="make-important-things-fast">Make important things fast</h4>
 <p>Not all actions are equal. Decide what's most important in your app and make it easy to find and
 fast to use, like the shutter button in a camera, or the pause button in a music player.</p>
 
   </div>
-  <div class="col-6">
+  <div class="col-5of12">
 
     <img src="{@docRoot}design/media/principles_make_important_fast.png">
 
diff --git a/docs/html/design/index.jd b/docs/html/design/index.jd
index 799a64f..5ea1244 100644
--- a/docs/html/design/index.jd
+++ b/docs/html/design/index.jd
@@ -1,8 +1,8 @@
 fullpage=true
 page.title=Design
-page.viewport_width=970
 section.landing=true
 meta.tags="beautifulapps, design, ux, patterns, holo, appquality, landing"
+page.metaDescription=Create beautiful experiences in your apps.
 header.hide=1
 footer.hide=1
 @jd:body
@@ -46,7 +46,7 @@
     <i class="dac-sprite dac-arrow-down-gray"></i>
   </a>
 </div>
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
        data-query="collection:design/landing/latest"
diff --git a/docs/html/design/material/index.jd b/docs/html/design/material/index.jd
index c5893a7..701c951 100644
--- a/docs/html/design/material/index.jd
+++ b/docs/html/design/material/index.jd
@@ -1,8 +1,8 @@
 page.title=Material Design for Android
 page.tags=Material,design
-page.type=design
 page.image=images/cards/design-material-for-android_2x.jpg
-
+footer.hide=true
+forcelocalnav=true
 @jd:body
 
 <!-- developer docs box -->
diff --git a/docs/html/design/patterns/index.jd b/docs/html/design/patterns/index.jd
new file mode 100644
index 0000000..01e5c0d
--- /dev/null
+++ b/docs/html/design/patterns/index.jd
@@ -0,0 +1,29 @@
+page.title=Pure Android
+footer.hide=1
+@jd:body
+
+<style>
+#landing-graphic-container {
+  position: relative;
+}
+
+#text-overlay {
+  position: absolute;
+  left: 0;
+  top: 402px;
+  width: 220px;
+}
+</style>
+
+<div id="landing-graphic-container">
+  <div id="text-overlay">
+    <span itemprop="description">Build visually compelling apps that look great on any
+    device.</span>
+    <br><br>
+    <a href="{@docRoot}design/style/devices-displays.html" class="landing-page-link">Devices and Displays</a>
+  </div>
+
+  <a href="{@docRoot}design/style/devices-displays.html">
+    <img src="{@docRoot}design/media/design_elements_landing.png">
+  </a>
+</div>
diff --git a/docs/html/design/patterns/notifications.jd b/docs/html/design/patterns/notifications.jd
index fdd435c..844c3b6 100644
--- a/docs/html/design/patterns/notifications.jd
+++ b/docs/html/design/patterns/notifications.jd
@@ -1,22 +1,22 @@
 page.title=Notifications
-page.tags="notifications","design","L"
+page.tags="notifications","design"
 @jd:body
 
-  <a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
+  <a class="notice-developers right" href="{@docRoot}training/notify-user/index.html">
   <div>
     <h3>Developer Docs</h3>
     <p>Notifying the User</p>
   </div>
 </a>
 
-<a class="notice-designers" href="notifications_k.html">
+<a class="notice-designers right" href="notifications_k.html">
   <div>
     <h3>Notifications in Android 4.4 and Lower</h3>
   </div>
 </a>
 
 <!-- video box -->
-<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
+<a class="notice-developers-video right" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
 <div>
     <h3>Video</h3>
     <p>DevBytes: Notifications in the Android L Developer Preview</p>
diff --git a/docs/html/design/patterns/notifications_k.jd b/docs/html/design/patterns/notifications_k.jd
index 01a12a7..39ee269 100644
--- a/docs/html/design/patterns/notifications_k.jd
+++ b/docs/html/design/patterns/notifications_k.jd
@@ -1,14 +1,15 @@
-page.title=Notifications in Android 4.4 and Lower
+page.title=Notifications, Android 4.4 and Lower
+footer.hide=1
 @jd:body
 
-<a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
+<a class="notice-developers right" href="{@docRoot}training/notify-user/index.html">
   <div>
     <h3>Developer Docs</h3>
     <p>Notifying the User</p>
   </div>
 </a>
 
-<a class="notice-designers" href="notifications.html">
+<a class="notice-designers right" href="notifications.html">
   <div>
     <h3>Notifications in Android 5.0</h3>
   </div>
diff --git a/docs/html/design/patterns/swipe-views.jd b/docs/html/design/patterns/swipe-views.jd
index 9ee33db..789538d 100644
--- a/docs/html/design/patterns/swipe-views.jd
+++ b/docs/html/design/patterns/swipe-views.jd
@@ -2,7 +2,7 @@
 page.tags=viewpager,navigation,tabs
 @jd:body
 
-<a class="notice-developers" href="{@docRoot}training/implementing-navigation/lateral.html">
+<a class="notice-developers right" href="{@docRoot}training/implementing-navigation/lateral.html">
   <div>
     <h3>Developer Docs</h3>
     <p>Creating Swipe Views with Tabs</p>
@@ -20,7 +20,7 @@
 related data items, such as images, chats, or emails, and then pick one of the items to see the
 detail contents in a separate screen.</p>
 
-<img src="{@docRoot}design/media/swipe_views.png">
+<img itemprop="image" src="{@docRoot}design/media/swipe_views.png">
 <div class="figure-caption">
   Master (left) and detail (right) views.
 </div>
diff --git a/docs/html/design/patterns/widgets.jd b/docs/html/design/patterns/widgets.jd
index d84d289a..8d94a52 100644
--- a/docs/html/design/patterns/widgets.jd
+++ b/docs/html/design/patterns/widgets.jd
@@ -3,13 +3,6 @@
 page.metaDescription=Design guide to creating widgets that are easy to use and look great.
 @jd:body
 
-<a class="notice-developers" href="{@docRoot}guide/topics/appwidgets/index.html">
-  <div>
-    <h3>Developer Docs</h3>
-    <p>App Widgets</p>
-  </div>
-</a>
-
 <p itemprop="description">Widgets are an essential aspect of home screen customization. You can imagine them as "at-a-glance" views of an app's most important data and functionality that is accessible right from the user's home screen. Users can move widgets across their home screen panels, and, if supported, resize them to tailor the amount of information within a widget to their preference.</p>
 
 <h2>Widget types</h2>
diff --git a/docs/html/design/style/devices-displays.jd b/docs/html/design/style/devices-displays.jd
index caa77da..9edfadd 100644
--- a/docs/html/design/style/devices-displays.jd
+++ b/docs/html/design/style/devices-displays.jd
@@ -3,15 +3,7 @@
 
 @jd:body
 
-<a class="notice-designers-material"
-  href="http://www.google.com/design/spec/layout/principles.html">
-  <div>
-    <h3>Material Design</h3>
-    <p>Layout Principles<p>
-  </div>
-</a>
-
-<p>Android powers hundreds of millions of phones, tablets, and other devices in a wide variety of screen sizes and
+<p>Android powers more than a billion phones, tablets, and other devices in a wide variety of screen sizes and
 form factors. By taking advantage of Android's flexible layout system, you can create apps that
 gracefully scale from large tablets to smaller phones.</p>
 
diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd
index 4591e76..3b29318 100644
--- a/docs/html/develop/index.jd
+++ b/docs/html/develop/index.jd
@@ -13,15 +13,14 @@
   <div class="wrap">
     <div class="cols dac-hero-content">
       <div class="col-1of2 col-push-1of2 dac-hero-figure">
-
+        <!--
         <iframe width="448" height="252"
             src="//www.youtube.com/embed/Z98hXV9GmzY?autohide=1&amp;showinfo=0"
             frameborder="0" allowfullscreen=""
             style="float: right;"></iframe>
-        <!--
+        -->
         <img class="dac-hero-image" src="{@docRoot}images/develop/hero_image_studio5_2x.png"
           srcset="/images/develop/hero_image_studio5.png 1x, /images/develop/hero_image_studio5_2x.png 2x" />
-        -->
       </div>
       <div class="col-1of2 col-pull-1of2">
         <h1 class="dac-hero-title">Get Started with Android Studio</h1>
@@ -60,15 +59,16 @@
   </a>
 </div>
 
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="type:youtube+tag:develop+tag:featured, type:blog+tag:develop+tag:featured"
-       data-query="collection:develop/landing/latest"
-       data-sortOrder="-timestamp"
-       data-cardSizes="6x6"
-       data-maxResults="12"
-       data-initial-results="3"></div>
+    data-query="type:youtube+tag:develop+tag:featured, type:blog+tag:develop+tag:featured"
+    data-query="collection:develop/landing/latest"
+    data-sortOrder="-timestamp"
+    data-cardSizes="6x6"
+    data-items-per-page="6"
+    data-maxResults="15"
+    data-initial-results="3"></div>
 </div></section>
 
 <section class="dac-section dac-light"><div class="wrap">
@@ -81,6 +81,7 @@
        data-cardSizes="6x6"
        data-maxResults="15"
        data-initial-results="3"
+       data-items-per-page="6"
        data-sortOrder="random"></div>
 </div></section>
 
@@ -152,5 +153,6 @@
        data-sortOrder="random"
        data-cardSizes="6x6"
        data-initial-results="6"
+       data-items-per-page="24"
        data-maxResults="24"></div>
 </div></section>
diff --git a/docs/html/distribute/analyze/start.jd b/docs/html/distribute/analyze/start.jd
index c3a1f87..0221f72 100644
--- a/docs/html/distribute/analyze/start.jd
+++ b/docs/html/distribute/analyze/start.jd
@@ -1,5 +1,5 @@
 page.title=Get Started with Analytics
-page.metaDescription=Unlock the power of Analytics by choosing the implementation that works best for your app.
+page.metaDescription=Get advanced insight into how players discover and play your games.
 page.tags="analytics, user behavior"
 page.image=images/cards/card-analytics_2x.png
 
diff --git a/docs/html/distribute/engage/game-services.jd b/docs/html/distribute/engage/game-services.jd
index 9ca27b7..4a22035 100644
--- a/docs/html/distribute/engage/game-services.jd
+++ b/docs/html/distribute/engage/game-services.jd
@@ -186,7 +186,7 @@
 </div>
 
 <div class="resource-widget resource-flow-layout col-13"
-  data-query="collection:distribute/engage/gamesservices/related"
+  data-query="collection:distribute/engage/googleplaygames"
   data-sortOrder="-timestamp"
   data-cardSizes="9x3"
   data-maxResults="6"></div>
diff --git a/docs/html/distribute/essentials/index.jd b/docs/html/distribute/essentials/index.jd
index 6185e54..636c11d 100644
--- a/docs/html/distribute/essentials/index.jd
+++ b/docs/html/distribute/essentials/index.jd
@@ -1,5 +1,5 @@
 page.title=Essentials for a Successful App
-meta.tags="landing, quality"
+meta.tags="guidelines, quality"
 page.tags="guidelines", "tablet", "quality"
 section.landing=true
 nonavpage=true
@@ -12,21 +12,23 @@
   process of monitoring feedback and making improvement after launch.
 </p>
 
-<h2 id="guidelines">Quality Guidelines</h2>
+<section class="dac-section dac-small" id="latest-games"><div class="wrap">
+<h2 id="guidelines" class="norule">Quality Guidelines</h2>
 
 <div class="resource-widget resource-flow-layout landing col-16"
   data-query="collection:distribute/essentials/guidelines"
   data-cardSizes="6x6"
   data-maxResults="9">
-</div>
+</div></div></section>
 
-<h2 id="tools">Tools &amp; Resources</h2>
+<section class="dac-section dac-small" id="latest-games"><div class="wrap">
+<h2 id="tools" class="norule">Tools &amp; Resources</h2>
 
 <div class="resource-widget resource-flow-layout landing col-16"
   data-query="collection:distribute/essentials/tools"
   data-cardSizes="6x6"
   data-maxResults="9">
-</div>
+</div></div></section>
 
 <!-- <h2>Related resources</h2>
 
diff --git a/docs/html/distribute/essentials/quality/core.jd b/docs/html/distribute/essentials/quality/core.jd
index d7eedf3..860d880 100644
--- a/docs/html/distribute/essentials/quality/core.jd
+++ b/docs/html/distribute/essentials/quality/core.jd
@@ -238,7 +238,7 @@
 
 <div class="resource-widget resource-flow-layout col-13" data-query=
 "collection:distribute/essentials/corequalityguidelines/visualdesign"
-data-sortorder="-timestamp" data-cardsizes="9x3,9x3,6x3,6x3,6x3"
+data-sortorder="-timestamp" data-cardsizes="6x3"
 data-maxresults="6">
 </div>
 
@@ -746,11 +746,6 @@
     "http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=188189">
     Content Rating Guidelines</a>.
     </p>
-
-    <p style="margin-bottom:.25em;">
-    Especially, note that apps that request permission to use the device
-    location cannot be given the maturity level "Everyone".
-    </p>
   </td>
   <td>
     <a href="#gp">GP-1</a>
@@ -1140,7 +1135,7 @@
     Pay close attention to alarms, timers, notifications, syncs, and so on.
     See <a
     href="{@docRoot}training/monitoring-device-state/doze-standby.html#testing_doze_and_app_standby">Testing
-    with Doze and App Standby</a>.
+    with Doze and App Standby</a> for requirements and guidelines.
     </p>
   </td>
   </tr>
diff --git a/docs/html/distribute/googleplay/cardboard.jd b/docs/html/distribute/googleplay/cardboard.jd
index d5965d1..8d21c2f 100644
--- a/docs/html/distribute/googleplay/cardboard.jd
+++ b/docs/html/distribute/googleplay/cardboard.jd
@@ -1,6 +1,7 @@
 page.title=Build VR with Google Cardboard
 page.metaDescription=Build apps and games with VR, for a viewer anyone can buy.
-page.tags=vr, carboard, games
+page.tags=vr, cardboard, games
+page.image=images/cards/card-cardboard_2x.png
 @jd:body
 
 <p>
diff --git a/docs/html/distribute/googleplay/developer-console.jd b/docs/html/distribute/googleplay/developer-console.jd
index b957268..c826e82 100644
--- a/docs/html/distribute/googleplay/developer-console.jd
+++ b/docs/html/distribute/googleplay/developer-console.jd
@@ -80,7 +80,7 @@
     </div>
   </div>
 
-  <h3 id="cloud-test">Clout Test Lab</h3>
+  <h3 id="cloud-test">Cloud Test Lab</h3>
 
   <div class="cols" style="margin-top:2em;">
     <div class="col-3of12">
diff --git a/docs/html/distribute/googleplay/index.jd b/docs/html/distribute/googleplay/index.jd
index 3b5966f..c69ce23 100644
--- a/docs/html/distribute/googleplay/index.jd
+++ b/docs/html/distribute/googleplay/index.jd
@@ -11,22 +11,24 @@
   help you gain traction in the marketplace.</span>
 </p>
 
-  <h2>Overview</h2>
+  <section class="dac-section dac-small" id="latest-games"><div class="wrap">
+  <h2 class="norule">Overview</h2>
 
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/gp/gplanding"
     data-sortOrder="-timestamp"
     data-cardSizes="6x6"
     data-maxResults="3">
-  </div>
+    </div></div></section>
 
-  <h2 id="opportunities">Opportunities &amp; Programs</h2>
+  <section class="dac-section dac-small" id="latest-games"><div class="wrap">
+  <h2 id="opportunities" class="norule">Opportunities &amp; Programs</h2>
 
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/gp/gpfelanding"
     data-cardSizes="6x6"
     data-maxResults="10">
-  </div>
+  </div></div></section>
 
 <!--  <h2>Related resources</h2>
 
diff --git a/docs/html/distribute/index.jd b/docs/html/distribute/index.jd
index a6ece63..6384773 100644
--- a/docs/html/distribute/index.jd
+++ b/docs/html/distribute/index.jd
@@ -1,5 +1,6 @@
 fullpage=true
 page.title=Distribute Your Apps
+page.image=images/distribute/google-play-bg.jpg
 page.viewport_width=970
 section.landing=true
 header.hide=1
@@ -7,6 +8,17 @@
 page.metaDescription=The most visited store in the world for Android apps. Cloud-connected and always synced, it's never been easier for users to find and download your apps.
 
 @jd:body
+
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <div class="dac-hero-carousel" data-carousel-query="collection:distribute/landing/carousel">
 </div>
 
@@ -16,16 +28,64 @@
   </a>
 </div>
 
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section id="useOldTemplates" style="display:none" class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
       data-query="type:youtube+tag:googleplay+tag:developerstory+tag:featured, type:blog+tag:googleplay+tag:distribute+tag:featured"
       data-sortOrder="-timestamp"
       data-cardSizes="6x6"
-      data-maxResults="12"
+      data-maxResults="3"
+      data-items-per-page="6"
       data-initial-results="3"></div>
 </div></section>
 
+<section id="useUpdatedTemplates" style="display:none" class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
+  <h2 class="norule">Latest</h2>
+
+  <div class="dac-filter dac-filter-section" data-filter="#latest-resources">
+    <div data-tabs>
+      <span class="dac-filter-title">Showing:</span>
+      <ol class="dac-tab-bar">
+        <li class="dac-tab-item" data-tab-item="goal">
+          <p class="dac-tab-title">Goals <i class="dac-tab-arrow dac-sprite dac-expand-more-black"></i></p>
+          <span data-filter-count="goal" class="dac-filter-count dac-disabled">0</span>
+        </li>
+        <li class="dac-tab-item" data-tab-item="type">
+          <p class="dac-tab-title">Types <i class="dac-filter-item-arrow dac-sprite dac-expand-more-black"></i></p>
+          <span data-filter-count="type" class="dac-filter-count dac-disabled">0</span>
+        </li>
+      </ol>
+
+      <ol class="dac-tab-views" data-tab-views>
+        <li class="dac-tab-view" data-tab-view="goal">
+          <div class="dac-filter-item" data-filter-value="category:googleplay" data-filter-name="Get Started"></div>
+          <div class="dac-filter-item" data-filter-value="category:users" data-filter-name="Get Users"></div>
+          <div class="dac-filter-item" data-filter-value="category:engage" data-filter-name="Engage"></div>
+          <div class="dac-filter-item" data-filter-value="category:monetize" data-filter-name="Earn"></div>
+          <div class="dac-filter-item" data-filter-value="category:analyze" data-filter-name="Analyze"></div>
+          <div class="dac-filter-item" data-filter-value="category:stories" data-filter-name="Stories"></div>
+
+        </li>
+        <li class="dac-tab-view" data-tab-view="type">
+          <div class="dac-filter-item" data-filter-value="type:distribute" data-filter-name="Articles"></div>
+          <div class="dac-filter-item" data-filter-value="type:youtube" data-filter-name="Videos"></div>
+          <div class="dac-filter-item" data-filter-value="type:blog" data-filter-name="Blog posts"></div>
+        </li>
+      </ol>
+    </div>
+
+    <ul class="dac-filter-chips" data-filter-chips></ul>
+  </div>
+
+  <div class="resource-flow-layout col-16" id="latest-resources"
+      data-query="type:distribute, type:youtube+tag:googleplay, type:blog+tag:googleplay+tag:featured"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-items-per-page="6"
+      data-initial-results="6"></div>
+</div></section>
+
+
 <section class="dac-section dac-invert dac-darken-bg" style="background-image: url(/images/distribute/google-play-bg.jpg)"><div class="wrap">
   <div class="cols"><div class="col-10of12 col-push-1of12">
     <h1 class="dac-section-title">Reach the world with Google Play</h1>
diff --git a/docs/html/distribute/stories/games.jd b/docs/html/distribute/stories/games.jd
index 2351eed..22ab1dc 100644
--- a/docs/html/distribute/stories/games.jd
+++ b/docs/html/distribute/stories/games.jd
@@ -1,5 +1,6 @@
 page.title=Developer Stories: Google Play Game Services
-meta.tags="google play, story, stories, games, global"
+meta.tags="google play, games, global, developer story"
+page.timestamp=1381449601
 page.image=/images/distribute/glu-ew-gpgames.jpg
 page.metaDescription=How game studios are using Google Play game services to deliver new gaming experiences for their users.
 
diff --git a/docs/html/distribute/stories/index.jd b/docs/html/distribute/stories/index.jd
index ca7647d..eb94e31 100644
--- a/docs/html/distribute/stories/index.jd
+++ b/docs/html/distribute/stories/index.jd
@@ -1,13 +1,41 @@
 page.title=Developer Stories
 section.landing=true
+nonavpage=true
+excludeFromSuggestions=true
 page.metaDescription=Android developers, their apps, and their successes with Android and Google Play.
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <p>Android developers, their apps, and their successes with Android and Google Play.</p>
 
-<div class="resource-widget resource-flow-layout col-13"
-    data-query="type:youtube+tag:developerstory"
-    data-sortOrder="-timestamp"
-    data-cardSizes="18x12"
-    data-maxResults="32"></div>
+<section class="dac-section dac-small" id="latest-apps"><div class="wrap">
+  <h2 class="norule">Latest from apps</h2>
+
+  <div class="resource-widget resource-flow-layout col-16"
+      data-query="type:distribute+tag:developerstory+tag:apps, type:youtube+tag:developerstory+tag:apps"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-items-per-page="15"
+      data-initial-results="6"></div>
+</div></section>
+
+<section class="dac-section dac-small" id="latest-games"><div class="wrap">
+  <h2 class="norule">Latest from games</h2>
+
+  <div class="resource-widget resource-flow-layout col-16"
+      data-query="type:distribute+tag:developerstory+tag:games,type:youtube+tag:developerstory+tag:games"
+      data-sortOrder="-timestamp"
+      data-cardSizes="6x6"
+      data-items-per-page="15"
+      data-initial-results="6"></div>
+</div></section>
diff --git a/docs/html/distribute/stories/localization.jd b/docs/html/distribute/stories/localization.jd
index d6e6ccf..a6a17eb 100644
--- a/docs/html/distribute/stories/localization.jd
+++ b/docs/html/distribute/stories/localization.jd
@@ -1,6 +1,7 @@
 page.title=Developer Stories: Localization in Google Play
-meta.tags="google play, developer story, localization, global"
+meta.tags="google play, developer story, localization, global, games"
 page.tags="stories", "video", "case study"
+page.timestamp=1381449600
 page.image=/images/distribute/zombie-ragdoll-n5-land.jpg
 page.metaDescription=Hear from Android developers who have successfully used the Google Play App Translation Service.
 
diff --git a/docs/html/distribute/stories/tablets.jd b/docs/html/distribute/stories/tablets.jd
index 771fa52..085cd8f 100644
--- a/docs/html/distribute/stories/tablets.jd
+++ b/docs/html/distribute/stories/tablets.jd
@@ -1,7 +1,8 @@
 page.title=Developer Stories: The Opportunity of Android Tablets
-meta.tags="google play, developer story, journal, tablets, pure"
-pdage.metaDescription=Developers are investing in a full tablet experience for their apps and seeing those investments pay off big.
-page.image=/images/distribute/rememberthemilk.png
+meta.tags="google play, developer story, journal, tablets, apps"
+page.metaDescription=Developers are investing in a full tablet experience for their apps and seeing those investments pay off big.
+page.image=images/distribute/rememberthemilk.png
+page.timestamp=1381449600
 
 @jd:body
 
diff --git a/docs/html/distribute/tools/promote/brand.jd b/docs/html/distribute/tools/promote/brand.jd
index cf83a5e..409dfdd 100644
--- a/docs/html/distribute/tools/promote/brand.jd
+++ b/docs/html/distribute/tools/promote/brand.jd
@@ -14,6 +14,12 @@
 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>
 
+<p>
+  If you need Google Play badges or guidelines, please see the
+  <a href="https://play.google.com/intl/en_us/badges/">Google Play Badge</a> page.
+</p>
+
+
 <h2 id="brand-android">Android</h2>
 
  <p>The following are guidelines for the Android brand
@@ -101,103 +107,10 @@
 
 <p>The custom typeface may not be used.</p>
 
-<p>The following are guidelines for the Google Play brand.</p>
-
-<h4>Google Play&#8482; Badges</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>Use the "Get it on Google Play" and "Android App on Google Play" badges on your website and
-  promotional materials to point to your products on Google Play. These badges are both available
-  in over 40 languages. Additional Google Play badge formats and
-    badges for music, books, magazines, movies, and TV shows are also available.
-    Use the  <a
-    href="https://support.google.com/googleplay/contact/brand_developer">Android
-    and Google Play Brand Permissions Inquiry form</a> to request
-    those badges.</p>
-
-  <p>Google Play badge guidelines:</p>
-  <ul>
-    <li>Don't modify the color, proportions, spacing, or any other aspect of the badge.</li>
-    <li>When used alongside logos for other application marketplaces, the Google Play badge
-    should be of equal or greater size.</li>
-    <li>When used online, the badge should link to either:</li>
-      <ul>
-        <li>A list of products published by you, for example:<br />
-        <span style="margin-left:1em;">http://play.google.com/store/search?q=<em>publisherName</em></span>
-        </li>
-        <li>A specific app product details page within Google Play, for example:<br />
-        <span style="margin-left:1em;">http://play.google.com/store/apps/details?id=<em>packageName</em></span>
-        </li>
-      </ul>
-    <li>You do not need to include a legal attribution if you are only using a Google Play badge.
-    However, keep in mind that:</li>
-     <ul>
-     <li>If you make any mention of Google Play or Android outside of the badge a legal attribution
-     must be included. </li>
-     <li>If you are including another app store’s legal attribution then include this legal
-     attribution:</li>
-      <ul>
-      <li>Google Play is a trademark of Google Inc.</li>
-      </ul>
-    </li>
-    <li>Use of the Google Play badge does not need to be reviewed or approved by the Google Play
-    brand team unless the marketing campaign will have over 1 million impressions.</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>
-  (badges available in over 40 languages).</p>
-
-  <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">Google Play in Text</h2>
-
-<p>Any use of Google Play in text must be reviewed and approved by the Google Play brand team.
-Submit your marketing via the <a href="https://support.google.com/googleplay/contact/brand_developer">
-Android and Google Play Partner Brand Inquiry Form.</a></p>
-
-<p>Always include a ™ symbol on the first or most prominent instance of Google Play™ in text.</p>
-
-<p>When mentioning that a product is available on Google Play always say “on Google Play”</p>
-
-<ul>
-<li><span style="color:red">Incorrect</span>: Our app is now available from Google Play.</li>
-<li><span style="color:green">Correct</span>: Our app is now available on Google Play.</li>
-</ul>
-<br>
-<p>Only refer to Google Play as the Google Play™ store app in instructional text meant to inform a
-customer about how to find or download your product on Google Play.</p>
-
-<ul>
-<li><span style="color:red">Incorrect</span>:  Download our games using the Google Play™ store app.</li>
-<li><span style="color:green">Correct</span>: This is how you download our app using the Google
-Play™ store app.</li>
-</ul>
-<br>
-
-<p>Any use of the Google Play name in your marketing or communications needs to be accompanied by
-this legal attribution:</p>
-
-<p><em>Google Play is a trademark of Google Inc.</em></p>
 
 <h2 id="Marketing_Review">Marketing Reviews and Brand Inquiries</h2>
 
 <p>Use the <a
 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>
\ No newline at end of file
+reviews or brand inquires. Typical response time is at least one week.</p>
diff --git a/docs/html/distribute/users/banners.jd b/docs/html/distribute/users/banners.jd
index 8a7ccc0..d889ac7 100644
--- a/docs/html/distribute/users/banners.jd
+++ b/docs/html/distribute/users/banners.jd
@@ -1,6 +1,6 @@
 page.title=Add An App Install Banner On Your Mobile Website
 page.metaDescription=Add a native app install banner to your mobile website and allow visitors to install your app straight from your site.
-page.image=images/cards/distribute/users/banners.png
+page.image=images/cards/card-install-banners_16x9_2x.png
 page.tags="banner, chrome, web"
 Xnonavpage=true
 
diff --git a/docs/html/google/backup/signup.jd b/docs/html/google/backup/signup.jd
index f9ad600..598003d 100644
--- a/docs/html/google/backup/signup.jd
+++ b/docs/html/google/backup/signup.jd
@@ -208,7 +208,7 @@
 <input id="pname" type="text" name="pname" size="47" value="" onkeyup="onFormInput()"
 onfocus="boxFocusChanged(this,true)" onblur="boxFocusChanged(this,false)"/>
 </p>
-<p><a href="" class="button disabled" id="registerButton" 
+<p><a href="" class="dac-button dac-raised dac-primary disabled ndk" id="registerButton" 
 onclick="onRegister(); return false;" >Register with Android Backup Service</a></p>
 </div>
 
diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs
index f3e1f3c..8151b10 100644
--- a/docs/html/google/google_toc.cs
+++ b/docs/html/google/google_toc.cs
@@ -21,6 +21,9 @@
       <li><a href="<?cs var:toroot?>google/play/billing/billing_subscriptions.html">
               <span class="en">Subscriptions</span></a>
       </li>
+      <li><a href="<?cs var:toroot?>google/play/billing/billing_promotions.html">
+              <span class="en">Promotions</span></a>
+      </li>
       <li><a href="<?cs var:toroot?>google/play/billing/billing_best_practices.html" zh-cn-lang="安全性和设计">
               <span class="en">Security and Design</span></a>
       </li>
diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd
index a2a6c50..b3ceee3 100644
--- a/docs/html/google/index.jd
+++ b/docs/html/google/index.jd
@@ -39,12 +39,13 @@
   </a>
 </div>
 
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
        data-query="type:blog+tag:googleservices+tag:featured"
        data-cardSizes="6x6"
-       data-maxResults="12"
+       data-maxResults="15"
+       data-items-per-page="6"
        data-initial-results="3"></div>
   </div>
 </section>
@@ -68,7 +69,7 @@
   </div>
 </section>
 
-<section class="dac-section dac-gray dac-small dac-invert" id="videos"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="videos"><div class="wrap">
   <h2 class="norule">Videos</h2>
   <div class="resource-widget resource-flow-layout col-16"
        data-query="collection:google/landing/videos"
diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd
index 9476ffb..70084b8 100644
--- a/docs/html/google/play/billing/billing_best_practices.jd
+++ b/docs/html/google/play/billing/billing_best_practices.jd
@@ -100,6 +100,12 @@
 made the purchase, so that you can later verify that this is a legitimate purchase by
 that user. For consumable items, you can use a randomly generated string, but for non-
 consumable items you should use a string that uniquely identifies the user.</p>
+
+<p class="note">
+  <strong>Note:</strong> Do not use the user's
+  email address in the payload string, since that address may change.
+</p>
+
 <p>When you get back the response from Google Play, make sure to verify that the
 developer payload string matches the token that you sent previously with the purchase
 request. As a further security precaution, you should perform the verification on your
diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd
old mode 100644
new mode 100755
index 4249885..c658f70
--- a/docs/html/google/play/billing/billing_integrate.jd
+++ b/docs/html/google/play/billing/billing_integrate.jd
@@ -95,34 +95,38 @@
 <p>To add the AIDL to your project:</p>
 
 <ol>
-  <li>Copy the {@code IInAppBillingService.aidl} file to your Android project.
+  <li>First, download the Google Play Billing Library to your Android project:
+      <ol type="a">
+      <li>Select <strong>Tools > Android > SDK Manager</strong>.</li>
+      <li>Under <strong>Appearance & Behavior > System Settings > Android SDK</strong>,
+          select the <em>SDK Tools</em> tab to select and download <em>Google Play Billing
+          Library</em>.</li></ol>
+
+  <li>Next, copy the {@code IInAppBillingService.aidl} file to your project.
     <ul>
-      <li>If you are using Eclipse:
+      <li>If you are using Android Studio:
         <ol type="a">
-          <li>If you are starting from an existing Android project, open the
-          project in Eclipse. If you are creating a new Android project from
-          scratch, click <strong>File</strong> &gt; <strong>New</strong> &gt;
-          <strong>Android Application Project</strong>, then follow the
-          instructions in the <strong>New Android Application</strong> wizard
-          to create a new project in your workspace.
-          </li>
+          <li>Navigate to {@code src/main} in the Project tool window.</li>
 
-          <li>In the {@code /src} directory, click <strong>File</strong> &gt;
-          <strong>New</strong> &gt; <strong>Package</strong>, then create a
-          package named {@code com.android.vending.billing}.
-          </li>
+          <li>Select <strong>File > New > Directory</strong> and enter {@code aidl} in the
+          <em>New Directory</em> window, then select <strong>OK</strong>.
 
-          <li>Copy the {@code IInAppBillingService.aidl} file from {@code
-          &lt;sdk&gt;/extras/google/play_billing/} and paste it into the {@code
-          src/com.android.vending.billing/} folder in your workspace.
+          <li>Select <strong>File > New > Package</strong> and enter 
+          {@code com.android.vending.billing} in the <em>New Package</em> window, then select
+          <strong>OK</strong>.</li>
+
+          <li>Using your operating system file explorer, navigate to 
+          {@code &lt;sdk&gt;/extras/google/play_billing/}, copy the 
+          {@code IInAppBillingService.aidl} file, and paste it into the 
+          {@code com.android.vending.billing} package in your project.
           </li>
         </ol>
       </li>
 
-      <li>If you are developing in a non-Eclipse environment: Create the
+      <li>If you are developing in a non-Android Studio environment: Create the
       following directory {@code /src/com/android/vending/billing} and copy the
       {@code IInAppBillingService.aidl} file into this directory. Put the AIDL
-      file into your project and use the Ant tool to build your project so that
+      file into your project and use the Gradle tool to build your project so that
       the <code>IInAppBillingService.java</code> file gets generated.
       </li>
     </ul>
diff --git a/docs/html/google/play/billing/billing_promotions.jd b/docs/html/google/play/billing/billing_promotions.jd
new file mode 100644
index 0000000..ccf50fc
--- /dev/null
+++ b/docs/html/google/play/billing/billing_promotions.jd
@@ -0,0 +1,301 @@
+page.title=In-app Promotions
+parent.title=In-app Billing
+parent.link=index.html
+page.metaDescription=Support promo codes in your app, which let you give content or features away to a limited number of users free of charge.
+page.image=/images/play_dev.jpg
+page.tags="promotions, billing, promo codes"
+meta.tags="monetization, inappbilling, promotions"
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>Quickview</h2>
+  <h2>In this document</h2>
+  <ol>
+    <li><a href="#workflow">Creating and Redeeming Promo Codes</a></li>
+    <li><a href="#supporting">Supporting Promo Codes In Your App</a></li>
+    <li><a href="#testing">Testing In-app Promotions</a></li>
+  </ol>
+  <h2>See also</h2>
+  <ol>
+    <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing
+    In-app Billing</a></li>
+    <!-- TODO: link to blog post when available -->
+  </ol>
+</div>
+</div>
+
+<p>
+  Promo codes let you give content or features away to a limited number of
+  users free of charge. Once you create a promo code, you can distribute it
+  subject to the
+  <!--TODO: Link to TOS when/if they're available as a web page --> terms of
+  service. The user enters the promo code in your app or in the Play Store app,
+  and gets the item at no cost. You can use promo codes in many ways to
+  creatively engage with users. For example:
+</p>
+
+<ul>
+  <li>A game could have a special item, such as a character or decoration,
+  that's only available to players who attend an event. The developer could
+  distribute cards with promo codes at the event, and users would enter their
+  promo code to unlock the item.
+  </li>
+
+  <li>An app developer might distribute promo codes at local businesses, to
+  encourage potential users to try the app.
+  </li>
+
+  <li>An app developer might give out "friends and family" codes to its employees to
+  share with their friends.
+  </li>
+</ul>
+
+<p>
+  Every promo code is associated with a particular <em>product ID</em> (also
+  known as a <em>SKU</em>). You can create promo codes for your existing in-app
+  products. You can also keep a SKU off the Play Store, so the only way to get
+  that item is by entering that SKU's promo code. When a user enters the promo
+  code in the Play Store or in their app, the user gets the item, just as if
+  they paid full price for it. If your app already uses <a href=
+  "{@docRoot}google/play/billing/api.html">In-app Billing version 3</a> to
+  support in-app purchases, it's easy to add support for promo codes.
+</p>
+
+<h2 id="workflow">Creating and Redeeming Promo Codes</h2>
+
+<p>
+  You create promo codes through the <a href=
+  "https://play.google.com/apps/publish/" class="external-link">Google Play
+  Developer Console</a>. Each promo code is associated with a single product item
+  registered in the developer console.
+</p>
+
+<p>
+  When a user gets a promo code, they redeem it in one of two ways:
+</p>
+
+<ul>
+  <li>The user can enter the promo code as part of the app's ordinary purchase flow, as
+  described in <a href="{@docRoot}google/play/billing/billing_integrate.html">
+  Implementing In-app Billing</a>. As far as the app is concerned, this is
+  just like an ordinary purchase, except that the user makes payment with a
+  promo code instead of with money.
+  </li>
+
+  <li>The user can redeem the code in the Google Play Store app. Once the user
+  enters the code, the Play Store prompts the user to open the app (if they have
+  the latest version installed) or to download or update it. (We do not
+  currently support redeeming promo codes from the Google Play web store.)
+  </li>
+</ul>
+
+<p>
+  If the promo code is for a <a href=
+  "{@docRoot}google/play/billing/api.html#consumetypes">consumable product</a>,
+  the user can apply an additional code for the same product <em>after</em> the first
+  product is consumed. For example, a game might offer promo codes for a bundle
+  of extra lives. Betty has two different promo codes for that bundle. She
+  redeems a single promo code, then launches the game. When the game launches,
+  the her character receives the lives, consuming the item. She can now redeem
+  the second promo code for another bundle of lives. (She cannot redeem the
+  second promo code until after she consumes the item she purchased with the
+  first promo code.)
+</p>
+
+<h2 id="supporting">Supporting Promo Codes In Your App</h2>
+
+<p>
+  To support promotion codes, your app should call the <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  method whenever the app starts or resumes. This method returns a bundle of all
+  current, unconsumed purchases, including purchases the user made by redeeming
+  a promo code. This simplest approach is to call <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  in your activity's {@link android.app.Activity#onResume onResume()} method,
+  since that callback fires when the activity is created, as well as when the
+  activity is unpaused. Calling <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  on startup and resume guarantees that your app will find out about all
+  purchases and redemptions the user may have made while the app wasn't
+  running. Furthermore, if a user makes a purchase while the app is running and
+  your app misses it for any reason, your app will still find out about the
+  purchase the next time the activity resumes and calls <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>.
+</p>
+
+<p>
+  In addition, your app should allow users to redeem promo codes inside the app
+  itself. If your app supports the in-app purchase workflow (described in
+  <a href=
+  "{@docRoot}google/play/billing/billing_integrate.html#billing-requests">Making
+  In-app Billing Requests</a>), your app automatically supports in-app
+  redemption of promo codes. When you launch the in-app purchase UI,
+  the user has the option to pay for the purchase with
+  a promo code. Your activity's {@link android.app.Activity#onActivityResult
+  onActivityResult()} method receives a response intent telling the app whether the
+  purchase was completed. However, your app should still call <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  on startup and resume, just in case the purchase and consumption workflow
+  didn't complete. For example, if the user successfully redeems a promo code,
+  and then your app crashes before the item is consumed, your app still gets
+  information about the purchase when the app calls <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a> on its next startup.
+</p>
+
+<p>
+  Your app should also support the scenario where a user redeems a promo code
+  in the Play Store app while the app is running. Your app can find out right
+  away when the user redeems a code by registering a listener for the
+  <code>PURCHASES_UPDATED</code> intent. The Play Store fires this intent
+  whenever a user redeems a promo code.
+</p>
+
+<p>
+  To listen for the <code>PURCHASES_UPDATED</code> intent, dynamically create a
+  {@link android.content.BroadcastReceiver} object and register it to listen
+  for <code>"com.android.vending.billing.PURCHASES_UPDATED"</code>. Register
+  the receiver by putting code like this in your activity's {@link
+  android.app.Activity#onResume onResume()} method:
+</p>
+
+<pre>IntentFilter promoFilter =
+    new IntentFilter("com.android.vending.billing.PURCHASES_UPDATED");
+registerReceiver(myPromoReceiver, promoFilter);</pre>
+
+<p>
+  When the user makes a purchase, the system invokes your broadcast receiver's
+  {@link android.content.BroadcastReceiver#onReceive onReceive()} method. That
+  method should call <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  to see what purchases the user has made.
+</p>
+
+<p>
+  Your activity's {@link android.app.Activity#onPause onPause()} method should
+  unregister the broadcast receiver, to reduce system overhead when your app
+  isn't running:
+</p>
+
+<pre>unRegisterReceiver(myPromoReceiver);</pre>
+
+<p class="note">
+  <strong>Note:</strong> You should not register this broadcast receiver in the
+  app manifest. Declaring the receiver in the manifest can cause the system to
+  launch the app to handle the intent if the user makes a purchase while the app
+  isn't running. This behavior is not necessary, and may be annoying to the
+  user. Instead, your app should call <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  when the user launches it, to find out about any purchases the user made
+  while the app wasn't running.
+</p>
+
+<h2 id="testing">Testing In-app Promotions</h2>
+
+<p>
+  If your app supports in-app promotions, you should test the following use
+  cases.
+</p>
+
+<h3 id="test-inapp">User redeems promo code in the app</h3>
+
+<p>
+  If the user redeems a promo code within the app's purchase flow, as described
+  in <a href=
+  "{@docRoot}google/play/billing/billing_integrate.html#billing-requests">Making
+  In-app Billing Requests</a>, the system invokes your activity's {@link
+  android.app.Activity#onActivityResult onActivityResult()} method to handle
+  the purchase. Verify that {@link android.app.Activity#onActivityResult
+  onActivityResult()} handles the purchase properly, whether the user uses cash
+  or a promo code.
+</p>
+
+<h3 id="test-playstore">User redeems promo code in the Play Store</h3>
+
+<p>
+  If the user redeems a promo code in the Play Store, there are several
+  possible workflows. You should verify each one of these.
+</p>
+
+<h4 id="test-app-uninstalled">App is not installed</h4>
+
+<p>
+  If the user redeems a promo code for an app that is not installed on the
+  device, the Play Store prompts the user to install the app. (If the app is
+  installed but not up-to-date, the Play Store prompts the user to update the
+  app.) You should test the following sequence on a device that does not
+  have your app installed.
+</p>
+
+<ol>
+  <li>User redeems a promo code for the app in the Play Store. The Play Store
+  prompts the user to install your app.
+  </li>
+
+  <li>User installs and launches your app. Verify that on startup, the app
+  calls <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  and correctly detects the purchase the user made with the promo code.
+  </li>
+</ol>
+
+<h4 id="test-app-not-running">App is installed, but not running</h4>
+
+<p>
+  If the user redeems a promo code for an app that is installed on the device,
+  the Play Store prompts the user to switch to the app.  You should test the
+  following sequence on a device that has your app installed but not running:
+</p>
+
+<ol>
+  <li>User redeems a promo code for the app in the Play Store. The Play Store
+  prompts the user to switch to your app.
+  </li>
+
+  <li>User launches your app. Verify that on startup, the app calls <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>
+  and correctly detects the purchase the user made with the promo code.
+  </li>
+</ol>
+
+<h4 id="test-app-running">App is installed and running
+</h4>
+
+<p>
+  If the user redeems a promo code for an app that is currently running on the
+  device, the Play Store notifies the app via a <code>PURCHASES_UPDATED</code>
+  intent. You should test the following sequence:
+</p>
+
+<ol>
+  <li>User launches the app. Verify that the app has properly registered itself to
+  receive the <code>PURCHASES_UPDATED</code> intent.
+  </li>
+
+  <li>User launches the Play Store app and redeems a promo code for the app. The Play
+  Store fires a <code>PURCHASES_UPDATED</code> intent. Verify that your app's
+  {@link android.content.BroadcastReceiver#onReceive
+  BroadcastReceiver.onReceive()} callback fires to handle the intent.
+  </li>
+
+  <li>Your {@link android.content.BroadcastReceiver#onReceive onReceive()}
+  method should respond to the intent by calling <a href=
+  "{@docRoot}google/play/billing/billing_reference.html#getPurchases"
+  ><code>getPurchases()</code></a>. Verify that it calls this method, and that
+  it correctly detects the purchase the user made with the promo code.
+  </li>
+
+  <li>User switches back to your app. Verify that the user has the purchased
+  item.
+  </li>
+</ol>
diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd
index e9e04a3..45ec785 100644
--- a/docs/html/google/play/billing/billing_reference.jd
+++ b/docs/html/google/play/billing/billing_reference.jd
@@ -228,7 +228,9 @@
   <tr>
     <td>{@code orderId}</td>
     <td>A unique order identifier for the transaction. This identifier
-      corresponds to the Google payments order ID.</td>
+      corresponds to the Google payments order ID. If the order is a test
+      purchase made through the In-app Billing Sandbox, {@code orderId} is
+      blank.</td>
   </tr>
   <tr>
     <td>{@code packageName}</td>
@@ -326,7 +328,11 @@
 </p>
 
 <h3 id="getPurchases">The getPurchases() method</h3>
-<p>This method returns the current un-consumed products owned by the user. Table 5 lists the response data that is returned in the {@code Bundle}.</p>
+<p>This method returns the current un-consumed products owned by the user,
+  including both purchased items and items acquired by redeeming a promo code.
+  Table 5 lists the response data that is returned in the
+  {@link android.os.Bundle}.</p>
+
 <p class="table-caption" id="getpurchases-response-table">
 <strong>Table 6.</strong> Response data from a {@code getPurchases} request.</p>
 <table>
diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd
index da9eafd..069947d 100644
--- a/docs/html/google/play/billing/billing_subscriptions.jd
+++ b/docs/html/google/play/billing/billing_subscriptions.jd
@@ -313,8 +313,8 @@
 try your subscription content before buying it. The trial period runs for the
 period of time that you set and then automatically converts to a full
 subscription managed according to the subscription's billing interval and
-price. Free trials are supported for monthly and annual subscriptions only, and
-are not supported for seasonal subscriptions.</p>
+price. Google Play supports free trials for all subscription types, including
+seasonal subscriptions.</p>
 
 <p>To take advantage of a free trial, a user must "purchase" the full
 subscription through the standard In-app Billing flow, providing a valid form of
@@ -332,10 +332,10 @@
 the amount set
 for the full subscription, and continuing at the subscription interval. If
 necessary, the user can cancel the subscription at any time during the trial
-period. In this case, Google Play <em>marks the subscription as expired immediately</em>,
-rather than waiting until the end of the trial period. The user has not
-paid for the trial period and so is not entitled to continued access after
-cancellation.</p>
+period. In this case, the subscription remains active until the end of the
+trial period, but Google Play sets the subscription <em>not</em> to renew
+automatically; at the end of the trial period the subscription expires, and
+Google Play does not charge the user.</p>
 
 <p>You can set up a trial period for a subscription in the Developer Console,
 without needing to modify or update your APK. Just locate and edit the
@@ -371,6 +371,24 @@
 product from the product list offered in your app to prevent users from seeing
 or purchasing it.</p>
 
+<h3 id="prorate">Prorated Seasonal Subscription Prices</h3>
+
+<p>You can set up prorated prices for users who buy seasonal subscriptions
+after the season's start date. You specify the date on which the discounted
+price takes effect. The discounted price takes effect at 0:00 UTC on
+the specified date. You can set multiple prorated prices, dropping the
+subscription price lower and lower as the season goes on. If a user purchases
+a prorated seasonal subscription and remains subscribed until the start of the
+next season, Google Play charges them the full subscription price when the next
+season starts.</p>
+
+<p>For example, the professional checkers season runs from March 1 to August 31.
+The <em>Checkers Dilettante</em> app offers a seasonal subscription for €10. The
+app also offers two prorated prices: €7.50 for users who sign up on or after
+June 1, and €5 for users who sign up on or after
+August 15. Regardless of when the user signs up, the seasonal subscription ends
+on August 31.</p>
+
 <h2 id="cancellation">Subscription Cancellation</h2>
 
 <p>Users can view the status of all of their subscriptions and cancel them if
diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd
index 939f9a5..018276d 100644
--- a/docs/html/google/play/billing/billing_testing.jd
+++ b/docs/html/google/play/billing/billing_testing.jd
@@ -82,9 +82,11 @@
 <p>Once authorized for testing access, those users can make purchases without
 being charged.
 Test purchases are real orders and Google Play processes them in the same way as
-other orders. When purchases are complete, Google Play prevents the orders from
+other orders. However, the <code>orderId</code> field for test purchases is
+blank.
+When purchases are complete, Google Play prevents the orders from
 going to financial processing, ensuring that there are no actual charges to user
-accounts, and automatically canceling the completed orders after 14 days. </p>
+accounts, and automatically canceling the completed orders after 14 days.</p>
 
 <p class="note">
   <strong>Note:</strong> Test subscription purchases recur daily, regardless of
diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd
index a964449..b2e9fe4 100644
--- a/docs/html/google/play/billing/index.jd
+++ b/docs/html/google/play/billing/index.jd
@@ -14,6 +14,18 @@
 <div class="sidebox">
   <h2><strong>New in In-App Billing</strong></h2>
   <ul>
+  <li><strong>In-app Promotions</strong>&mdash;Developers can create promo codes
+    which users can redeem for content or features.</li>
+  <li><strong>Prorated Subscription Prices</strong>&mdash;Content providers can
+    lower the price of seasonal subscriptions for users who sign up late in the
+    season. For example, a sports-related service might lower the subscription
+    price halfway through the sport's season.</li>
+  <li><strong>Free Trials</strong>&mdash;Content providers can
+    offer free trial periods for all kinds of subscriptions, including
+    seasonal subscriptions. If a user cancels the subscription in the trial
+    period, they pay nothing. If they do not cancel by the end of the
+    trial period, the subscription automatically converts to a paid
+    subscription.</li>
   <li><strong>Subscription Upgrade/Downgrade</strong>&mdash;A user can
     subscribe to a higher or lower tier of subscription while their current
     subscription is active. The old subscription is canceled, and the unused
diff --git a/docs/html/google/play/expansion-files.jd b/docs/html/google/play/expansion-files.jd
old mode 100644
new mode 100755
index fcdb715..6d1de7e
--- a/docs/html/google/play/expansion-files.jd
+++ b/docs/html/google/play/expansion-files.jd
@@ -450,37 +450,36 @@
 download two packages from the SDK Manager and add the appropriate libraries to your
 application.</p>
 
-<p>First, open the <a href="{@docRoot}sdk/exploring.html">Android SDK Manager</a>, expand
-<em>Extras</em> and download:</p>
+<p>First, open the <a href="{@docRoot}sdk/exploring.html">Android SDK Manager</a>
+(<strong>Tools > Android > SDK Manager</strong>), and under
+<em>Appearance & Behavior > System Settings > Android SDK</em>, select
+the <em>SDK Tools</em> tab to select and download:</p>
 <ul>
   <li><em>Google Play Licensing Library package</em></li>
   <li><em>Google Play APK Expansion Library package</em></li>
 </ul>
 
-<p>If you're using Eclipse, create a project for each library and add it to your app:</p>
+<p>Create a new library module for the License Verification Library and Downloader
+Library. For each library:</p>
 <ol>
-  <li>Create a new Library Project for the License Verification Library and Downloader
-Library. For each library:
-    <ol>
-      <li>Begin a new Android project.</li>
-      <li>Select <strong>Create project from existing
-source</strong> and choose the library from the {@code &lt;sdk&gt;/extras/google/} directory
-({@code market_licensing/} for the License Verification Library or {@code
-market_apk_expansion/downloader_library/} for the Downloader Library).</li>
-      <li>Specify a <em>Project Name</em> such as "Google Play License Library" and "Google Play
-Downloader
-Library"</li>
-      <li>Click <strong>Finish</strong>.</li>
-    </ol>
+  <li>Select <strong>File > New > New Module</strong>.</li>
+  <li>In the <em>Create New Module</em> window, select <strong>Android Library</strong>,
+and then select <strong>Next</strong>.</li>
+  <li>Specify an <em>Application/Library name</em> such as "Google Play License Library"
+and "Google Play Downloader Library", choose <em>Minimum SDK level</em>, then select
+<strong>Finish</strong>.</li>
+  <li>Select <strong>File > Project Structure</strong>.</li>
+  <li>Select the <em>Properties</em> tab and in <em>Library
+Repository</em>, enter the library from the {@code &lt;sdk&gt;/extras/google/} directory
+({@code play_licensing/} for the License Verification Library or {@code
+play_apk_expansion/downloader_library/} for the Downloader Library).</li>
+  <li>Select <strong>OK</strong> to create the new module.</li>
+</ol>
+
 <p class="note"><strong>Note:</strong> The Downloader Library depends on the License
 Verification Library. Be sure to add the License
-Verification Library to the Downloader Library's project properties (same process as
-steps 2 and 3 below).</p>
+Verification Library to the Downloader Library's project properties.</p>
   </li>
-  <li>Right-click the Android project in which you want to use APK expansion files and
-select <strong>Properties</strong>.</li>
-  <li>In the <em>Library</em> panel, click <strong>Add</strong> to select and add each of the
-libraries to your application.</li>
 </ol>
 
 <p>Or, from a command line, update your project to include the libraries:</p>
diff --git a/docs/html/google/play/licensing/setting-up.jd b/docs/html/google/play/licensing/setting-up.jd
old mode 100644
new mode 100755
index f43e4aba..ef9de43
--- a/docs/html/google/play/licensing/setting-up.jd
+++ b/docs/html/google/play/licensing/setting-up.jd
@@ -6,7 +6,7 @@
 
 <div id="qv-wrapper">
 <div id="qv">
-  
+
   <h2>In this document</h2>
   <ol>
   <li><a href="#account">Setting Up a Publisher Account</a></li>
@@ -179,21 +179,24 @@
 these steps: </p>
 
 <ol>
-  <li>Launch the Android SDK Manager (available under the Eclipse <strong>Window</strong>
-menu or by executing {@code &lt;sdk>/tools/android sdk}).</li>
+  <li>Launch the Android SDK Manager, available under the Android Studio Tools menu
+(<strong>Tools > Android > SDK Manager</strong>) or by executing
+{@code &lt;sdk>/tools/android sdk}.</li>
   <li>Select and download <strong>Google APIs</strong> for the Android version you'd like to target
 (must be Android 2.2 or higher).</li>
-  <li>When the download is complete, open the AVD Manager (available under the Eclipse
-<strong>Window</strong>
-menu or by executing {@code &lt;sdk>/tools/android avd}).</li>
-  <li>Click
-<strong>New</strong> and set the configuration details for the new AVD. </li>
-  <li>In the dialog that appears, assign a descriptive name to the AVD and then
-use the Target menu to choose the <strong>Google APIs</strong> as
-the system image to run on the new AVD. Set the other configuration details as
-needed and then click <strong>Create AVD</strong> to finish. The SDK tools
-create the new AVD configuration, which then appears in the list of available
-Android Virtual Devices.</li>
+  <li>When the download is complete, open the AVD Manager, available under the Android Studio
+Tools menu (<strong>Tools > Android > AVD Manager</strong>) or by executing
+{@code &lt;sdk>/tools/android avd}.</li>
+  <li>In the <em>Android Virtual Device Manager</em> window, select
+<strong>+ Create Virtual Device</strong> to set the configuration details for the new AVD. </li>
+  <li>In the <em>Virtual Device Configuration</em> window, select device hardware, then
+select <strong>Next</strong>.</li>
+<li>Select a <strong>Google API</strong> as the system image to run on the new AVD, then
+select <strong>Next</strong>.</li>
+<li>Assign a descriptive name to the AVD and then set the other configuration details as
+needed.</li>
+<li>Select <strong>Finish</strong> to create the new AVD configuration, which will appear in the
+list of available Android Virtual Devices.</li>
 </ol>
 
 <p>If you are not familiar with AVDs or how to use them, see <a
@@ -205,7 +208,7 @@
 above &mdash; either on an actual device or on an emulator &mdash; make sure to
 update your application project or build scripts as needed, so that your compiled
 <code>.apk</code> files that use licensing are deployed into that environment.
-In particular, if you are developing in Eclipse, make sure that you set up a
+In particular, if you are developing in Android Studio, make sure that you set up a
 Run/Debug Configuration that targets the appropriate device or AVD. </p>
 
 <p>You do not need to make any changes to your application's
@@ -323,28 +326,22 @@
 <p>The LVL is provided as a configured library project &mdash; once you have
 downloaded it, you can start using it right away. </p>
 
-<p>If you are working in Eclipse with ADT, you need to add the LVL to your
-workspace as a new development project, in the same way as you would a new
-application project. </p>
+<p>If you are working in Android Studio, you need to add the LVL to your
+project as a new module.</p>
 
 <ol>
-<li>Use the New Project Wizard to create a new
-project from existing sources. Select the LVL's <code>library</code> directory
-(the directory containing the library's AndroidManifest.xml file) as the project
-root.</li>
-<li>When you are creating the library project, you can select any application
-name, package, and set other fields as needed. </li>
-<li>For the library's build target, select Android 1.5 (API level 3) or higher.</li>
+<li>Use the New Module Wizard to import a library module by selecting
+<strong>File > New > Import Module</strong>.</li>
+<li>In the <em>New Module</em> window, in <em>Source directory</em>, enter the LVL's
+<code>library</code> directory (the directory containing the library's AndroidManifest.xml file)
+as the project root ({@code &lt;sdk>/extras/google/play_licensing/library/AndroidManifest.xml}),
+then select <strong>Next</strong>.</li>
+<li>Select <strong>Finish</strong> to import the library module.</li>
 </ol>
 
-<p> When created, the project is
-predefined as a library project in its <code>project.properties</code> file, so
-no further configuration is needed. </p>
-
-<p>For more information about how to create an application project or work with
-library projects in Eclipse, see <a
-href="{@docRoot}tools/projects/projects-eclipse.html">Managing Projects from
-Eclipse with ADT</a>.</p>
+<p>For more information about how to work with library modules in Android Studio, see
+<a href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">Managing Projects from
+Android Studio</a>.</p>
 
 
 <h4>Copying the LVL sources to your application</h4>
@@ -369,24 +366,10 @@
 compile time. The process for adding a reference to a library project depends
 on your development environment, as described below.</p>
 
-<p> If you are developing in Eclipse with ADT, you should already have added the
-library project to your workspace, as described in the previous section. If you
+<p> If you are developing in Android Studio, you should already have added the
+library module to your project, as described in the previous section. If you
 haven't done that already, do it now before continuing. </p>
 
-<p>Next, open the application's project properties window, as shown below.
-Select the "Android" properties group and click <strong>Add</strong>, then
-choose the LVL library project (com_android_vending_licensing) and click
-<strong>OK</strong>. For more information, see
-<a href="{@docRoot}tools/projects/projects-eclipse.html#SettingUpLibraryProject">
-Managing Projects from Eclipse with ADT</a></p>.
-
-
-<img src="{@docRoot}images/licensing_add_library.png" alt=""/>
-<p class="img-caption"><strong>Figure 3.</strong> If you are
-working in Eclipse with ADT, you can add the LVL library project to your
-application from the application's project properties.</p>
-
-
 <p>If you are developing using the SDK command-line tools, navigate to the
 directory containing your application project and open the
 <code>project.properties</code> file. Add a line to the file that specifies the
diff --git a/docs/html/guide/appendix/glossary.jd b/docs/html/guide/appendix/glossary.jd
old mode 100644
new mode 100755
index db518f9..a200a6c
--- a/docs/html/guide/appendix/glossary.jd
+++ b/docs/html/guide/appendix/glossary.jd
@@ -41,8 +41,8 @@
     <dt id="adb">adb</dt>
     <dd>Android Debug Bridge, a command-line debugging application included with the
         SDK. It provides tools to browse the device, copy tools on the device, and
-        forward ports for debugging. If you are developing in Eclipse using the
-		ADT Plugin, adb is integrated into your development environment. See 
+        forward ports for debugging. If you are developing in Android Studio, 
+        adb is integrated into your development environment. See 
 		<a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a>
 		for more information. </dd>
 
@@ -90,8 +90,8 @@
     <dt id="ddms">DDMS</dt>
     <dd>Dalvik Debug Monitor Service, a GUI debugging application included
     with the SDK. It provides screen capture, log dump, and process
-    examination capabilities. If you are developing in Eclipse using the ADT
-    Plugin, DDMS is integrated into your development environment. See <a
+    examination capabilities. If you are developing in Android Studio, 
+    DDMS is integrated into your development environment. See <a
     href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a> to learn more about the program.</dd>
 
     <dt id="dialog">Dialog</dt> <dd> A floating window that acts as a lightweight
@@ -290,4 +290,4 @@
     in your application. </dd>
 
 
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html/guide/components/activities.jd b/docs/html/guide/components/activities.jd
index 5e6917b..b5f7c98 100644
--- a/docs/html/guide/components/activities.jd
+++ b/docs/html/guide/components/activities.jd
@@ -115,7 +115,7 @@
 button that initiates an action when the user touches it.</p>
 
 <p>Android provides a number of ready-made views that you can use to design and organize your
-layout. "Widgets" are views that provide a visual (and interactive) elements for the screen, such
+layout. "Widgets" are views that provide visual (and interactive) elements for the screen, such
 as a button, text field, checkbox, or just an image. "Layouts" are views derived from {@link
 android.view.ViewGroup} that provide a unique layout model for its child views, such as a linear
 layout, a grid layout, or relative layout. You can also subclass the {@link android.view.View} and
@@ -661,7 +661,7 @@
 appropriate, such that any visible changes to the UI are automatically saved and restored when your
 activity is recreated. For example, the {@link android.widget.EditText} widget saves any text
 entered by the user and the {@link android.widget.CheckBox} widget saves whether it's checked or
-not. The only work required by you is to provide a unique ID (with the <a
+not. The only work required of you is to provide a unique ID (with the <a
 href="{@docRoot}guide/topics/resources/layout-resource.html#idvalue">{@code android:id}</a>
 attribute) for each widget you want to save its state. If a widget does not have an ID, then the
 system cannot save its state.</p>
diff --git a/docs/html/guide/components/aidl.jd b/docs/html/guide/components/aidl.jd
old mode 100644
new mode 100755
index 0be6e6f..78fa996
--- a/docs/html/guide/components/aidl.jd
+++ b/docs/html/guide/components/aidl.jd
@@ -190,11 +190,11 @@
 with a {@code .java} extension (for example, {@code IRemoteService.aidl} results in {@code
 IRemoteService.java}).</p>
 
-<p>If you use Eclipse, the incremental build generates the binder class almost immediately. If you
-do not use Eclipse, then the Ant tool generates the binder class next time you build your
-application&mdash;you should build your project with <code>ant debug</code> (or <code>ant
-release</code>) as soon as you're finished writing the {@code .aidl} file, so that your code can
-link against the generated class.</p>
+<p>If you use Android Studio, the incremental build generates the binder class almost immediately.
+If you do not use Android Studio, then the Gradle tool generates the binder class next time you
+build your application&mdash;you should build your project with <code>gradle assembleDebug</code>
+(or <code>gradle assembleRelease</code>) as soon as you're finished writing the {@code .aidl} file,
+so that your code can link against the generated class.</p>
 
 
 <h3 id="Implement">2. Implement the interface</h3>
@@ -217,7 +217,7 @@
 
 <p>Here is an example implementation of an interface called {@code IRemoteService} (defined by the
 {@code IRemoteService.aidl} example, above) using an anonymous instance:</p>
-  
+
 <pre>
 private final IRemoteService.Stub mBinder = new IRemoteService.Stub() {
     public int getPid(){
@@ -324,7 +324,7 @@
 
 
 
-  
+
 
 <h2 id="PassingObjects">Passing Objects over IPC</h2>
 
diff --git a/docs/html/guide/components/fundamentals.jd b/docs/html/guide/components/fundamentals.jd
index fd1a7a8..80125ba 100644
--- a/docs/html/guide/components/fundamentals.jd
+++ b/docs/html/guide/components/fundamentals.jd
@@ -59,8 +59,9 @@
 same user ID can also arrange to run in the same Linux process and share the same VM (the
 apps must also be signed with the same certificate).</li>
   <li>An app can request permission to access device data such as the user's
-contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All
-app permissions must be granted by the user at install time.</li>
+contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. The user has
+to explicitly grant these permissions. For more information, see
+<a href="{@docRoot}training/permissions/index.html">Working with System Permissions</a>.</li>
 </ul>
 
 <p>That covers the basics regarding how an Android app exists within the system. The rest of
@@ -368,7 +369,7 @@
 </pre>
 
 <p>Then, if another app creates an intent with the {@link
-android.content.Intent#ACTION_SEND} action and pass it to {@link android.app.Activity#startActivity
+android.content.Intent#ACTION_SEND} action and passes it to {@link android.app.Activity#startActivity
 startActivity()}, the system may start your activity so the user can draft and send an
 email.</p>
 
@@ -390,7 +391,7 @@
 
 <p>For example, if your app requires a camera and uses APIs introduced in Android 2.1 (<a
 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Level</a> 7),
-you should declare these as requirements in your manifest file like this:</p> 
+you should declare these as requirements in your manifest file like this:</p>
 
 <pre>
 &lt;manifest ... >
diff --git a/docs/html/guide/practices/app-design/seamlessness.jd b/docs/html/guide/practices/app-design/seamlessness.jd
old mode 100644
new mode 100755
index ec6b7fd..1687962
--- a/docs/html/guide/practices/app-design/seamlessness.jd
+++ b/docs/html/guide/practices/app-design/seamlessness.jd
@@ -41,10 +41,10 @@
 phone call, for example). That behavior would not work for your application or
 for the user. </p>
 
-<p>To avoid these problems, your application should use the proper system 
-facility for notifying the user &mdash; the 
+<p>To avoid these problems, your application should use the proper system
+facility for notifying the user &mdash; the
 {@link android.app.Notification Notification} classes. Using
-notifications, your application can signal the user that an event has 
+notifications, your application can signal the user that an event has
 taken place, by displaying an icon in the status bar rather than taking
 focus and interrupting the user.</p>
 
@@ -140,7 +140,7 @@
 on the event handler thread, effectively blocking the event handler. This will
 delay input processing, and result in the ANR dialogs. To avoid this, move
 your computations to a thread. This <a
-href="responsiveness.html">Design for Responsiveness</a> document 
+href="responsiveness.html">Design for Responsiveness</a> document
 discusses how to do that..</p>
 
 <h2 id="multiple-activities">Don't Overload a Single Activity Screen</h2>
@@ -175,16 +175,16 @@
 
 <h2 id="flexui">Design Your UI to Work with Multiple Screen Resolutions</h2>
 
-<p>Different Android-powered devices will support different screen resolutions. 
-Some will even be able to change resolutions on the fly, such as by switching 
-to landscape mode. It's important to make sure your layouts and drawables 
+<p>Different Android-powered devices will support different screen resolutions.
+Some will even be able to change resolutions on the fly, such as by switching
+to landscape mode. It's important to make sure your layouts and drawables
 are flexible enough to display properly on a variety of device screens.</p>
 
-<p>Fortunately, this is very easy to do. In brief, what you must do is 
-provide different versions of your artwork (if you use any) for the key 
-resolutions, and then design your layout to accommodate various dimensions. 
-(For example, avoid using hard-coded positions and instead use relative 
-layouts.) If you do that much, the system handles the rest, and your 
+<p>Fortunately, this is very easy to do. In brief, what you must do is
+provide different versions of your artwork (if you use any) for the key
+resolutions, and then design your layout to accommodate various dimensions.
+(For example, avoid using hard-coded positions and instead use relative
+layouts.) If you do that much, the system handles the rest, and your
 application looks great on any device.</p>
 
 <h2 id="network">Assume the Network is Slow</h2>
@@ -208,9 +208,9 @@
 you're using the emulator, since the emulator uses your desktop computer's
 network connection. That's almost guaranteed to be much faster than a cell
 network, so you'll want to change the settings on the emulator that simulate
-slower network speeds. You can do this in Eclipse, in the "Emulator Settings"
-tab of your launch configuration or via a <a
-href="{@docRoot}tools/help/emulator.html#netspeed">command-line 
+slower network speeds. You can do this in Android Studio via the AVD Manager or
+via a <a
+href="{@docRoot}tools/help/emulator.html#netspeed">command-line
 option</a> when starting the emulator.</p>
 
 <h2 id="keyboard">Don't Assume Touchscreen or Keyboard</h2>
diff --git a/docs/html/guide/practices/compatibility.jd b/docs/html/guide/practices/compatibility.jd
index db1642e..83e841c 100644
--- a/docs/html/guide/practices/compatibility.jd
+++ b/docs/html/guide/practices/compatibility.jd
@@ -74,15 +74,12 @@
 
 
 <p>However, you do need to consider whether your <b>app is compatible</b> with each potential
-device configuration. Because Android runs on a wide range of device configurations, some features are not
-available on all devices. For example, some devices may not include a
+device configuration. Because Android runs on a wide range of device configurations, some features
+are not available on all devices. For example, some devices may not include a
 compass sensor. If your app's core functionality requires the use
 of a compass sensor, then your app is compatible only with devices that
 include a compass sensor.</p>
 
-
-
-
 <h2 id="how">Controlling Your App's Availability to Devices</h2>
 
 <p>Android supports a variety of features your app can leverage through platform APIs. Some
@@ -91,7 +88,6 @@
 so you may need to control your app's availability to devices based on your app's required
 features.</p>
 
-
 <p>To achieve the largest user-base possible for your app, you should strive to support as many
 device configurations as possible using a single APK. In most situations, you can do so by
 disabling optional features at runtime and <a
@@ -107,7 +103,6 @@
   <li><a href="#Screens">Screen configuration</a>
 </ul>
 
-
 <h3 id="Features">Device features</h3>
 
 <p>In order for you to manage your app’s availability based on device features,
@@ -127,11 +122,11 @@
 you can declare the compass sensor as required with the following manifest tag:</p>
 
 <pre>
-&lt;manifest ... >
+&lt;manifest ... &gt;
     &lt;uses-feature android:name="android.hardware.sensor.compass"
-                  android:required="true" />
+                  android:required="true" /&gt;
     ...
-&lt;/manifest>
+&lt;/manifest&gt;
 </pre>
 
 <p>Google Play Store compares the features your app requires to the features available on
@@ -157,7 +152,7 @@
 </pre>
 
 <p>For information about all the filters you can
-use to control the availability of your app to users through Google Play Store, see the 
+use to control the availability of your app to users through Google Play Store, see the
 <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a>
 document.</p>
 
@@ -174,12 +169,6 @@
 "{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions">Permissions that Imply
 Feature Requirements</a>.</p>
 
-
-
-
-
-
-
 <h3 id="Versions">Platform version</h3>
 
 <p>Different devices may run different versions of the Android platform,
@@ -191,7 +180,9 @@
 
 <p>The API level allows you to declare the minimum version with which your app is
 compatible, using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code
-&lt;uses-sdk>}</a> manifest tag and its <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> attribute.</p>
+&lt;uses-sdk>}</a> manifest tag and its
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a>
+attribute.</p>
 
 <p>For example, the <a href="{@docRoot}guide/topics/providers/calendar-provider.html">Calendar
 Provider</a> APIs were added in Android 4.0 (API level 14). If your app cannot function without
@@ -199,10 +190,10 @@
 version like this:</p>
 
 <pre>
-&lt;manifest ... >
-    &lt;uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+&lt;manifest ... &gt;
+    &lt;uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /&gt;
     ...
-&lt;/manifest>
+&lt;/manifest&gt;
 </pre>
 
 <p>The <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
@@ -212,7 +203,7 @@
 your app.</p>
 
 <p>Each successive version of Android provides compatibility for apps that were built using
-the APIs from previous platform versions, so your app should always be compitible with future
+the APIs from previous platform versions, so your app should always be compatible with future
 versions of Android while using the documented Android APIs.</p>
 
 <p class="note"><strong>Note:</strong>
@@ -241,18 +232,13 @@
 API level you want to check. For example:</p>
 
 <pre>
-if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
+if (Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.HONEYCOMB) {
     // Running on something older than API level 11, so disable
     // the drag/drop features that use {@link android.content.ClipboardManager} APIs
     disableDragAndDrop();
 }
 </pre>
 
-
-
-
-
-
 <h3 id="Screens">Screen configuration</h3>
 
 <p>Android runs on devices of various sizes, from phones to tablets and TVs.
@@ -279,13 +265,6 @@
 href="{@docRoot}training/basics/supporting-devices/screens.html">Supporting Different Screens</a>.
 </p>
 
-
-
-
-
-
-
-
 <h2 id="filtering">Controlling Your App's Availability for Business Reasons</h2>
 
 <p>In addition to restricting your app's availability based on device characteristics,
@@ -301,11 +280,6 @@
 filtering for non-technical reasons (such as geographic locale) is always
 handled in the Google Play developer console.</p>
 
-
-
-
-
-
 <div class="next-docs">
 <div class="col-6">
   <h2 class="norule">Continue reading about:</h2>
diff --git a/docs/html/guide/practices/seamlessness.jd b/docs/html/guide/practices/seamlessness.jd
old mode 100644
new mode 100755
index 9679e2a..db12ad2
--- a/docs/html/guide/practices/seamlessness.jd
+++ b/docs/html/guide/practices/seamlessness.jd
@@ -42,10 +42,10 @@
 phone call, for example). That behavior would not work for your application or
 for the user. </p>
 
-<p>To avoid these problems, your application should use the proper system 
-facility for notifying the user &mdash; the 
+<p>To avoid these problems, your application should use the proper system
+facility for notifying the user &mdash; the
 {@link android.app.Notification Notification} classes. Using
-notifications, your application can signal the user that an event has 
+notifications, your application can signal the user that an event has
 taken place, by displaying an icon in the status bar rather than taking
 focus and interrupting the user.</p>
 
@@ -141,7 +141,7 @@
 on the event handler thread, effectively blocking the event handler. This will
 delay input processing, and result in the ANR dialogs. To avoid this, move
 your computations to a thread. This <a
-href="responsiveness.html">Design for Responsiveness</a> document 
+href="responsiveness.html">Design for Responsiveness</a> document
 discusses how to do that..</p>
 
 <h2 id="multiple-activities">Don't Overload a Single Activity Screen</h2>
@@ -176,16 +176,16 @@
 
 <h2 id="flexui">Design Your UI to Work with Multiple Screen Resolutions</h2>
 
-<p>Different Android-powered devices will support different screen resolutions. 
-Some will even be able to change resolutions on the fly, such as by switching 
-to landscape mode. It's important to make sure your layouts and drawables 
+<p>Different Android-powered devices will support different screen resolutions.
+Some will even be able to change resolutions on the fly, such as by switching
+to landscape mode. It's important to make sure your layouts and drawables
 are flexible enough to display properly on a variety of device screens.</p>
 
-<p>Fortunately, this is very easy to do. In brief, what you must do is 
-provide different versions of your artwork (if you use any) for the key 
-resolutions, and then design your layout to accommodate various dimensions. 
-(For example, avoid using hard-coded positions and instead use relative 
-layouts.) If you do that much, the system handles the rest, and your 
+<p>Fortunately, this is very easy to do. In brief, what you must do is
+provide different versions of your artwork (if you use any) for the key
+resolutions, and then design your layout to accommodate various dimensions.
+(For example, avoid using hard-coded positions and instead use relative
+layouts.) If you do that much, the system handles the rest, and your
 application looks great on any device.</p>
 
 <h2 id="network">Assume the Network is Slow</h2>
@@ -209,9 +209,9 @@
 you're using the emulator, since the emulator uses your desktop computer's
 network connection. That's almost guaranteed to be much faster than a cell
 network, so you'll want to change the settings on the emulator that simulate
-slower network speeds. You can do this in Eclipse, in the "Emulator Settings"
-tab of your launch configuration or via a <a
-href="{@docRoot}tools/help/emulator.html#netspeed">command-line 
+slower network speeds. You can do this in Android Studio via the AVD Manager,
+or via a <a
+href="{@docRoot}tools/help/emulator.html#netspeed">command-line
 option</a> when starting the emulator.</p>
 
 <h2 id="keyboard">Don't Assume Touchscreen or Keyboard</h2>
diff --git a/docs/html/guide/topics/connectivity/sip.jd b/docs/html/guide/topics/connectivity/sip.jd
old mode 100644
new mode 100755
index 5154767..d754894
--- a/docs/html/guide/topics/connectivity/sip.jd
+++ b/docs/html/guide/topics/connectivity/sip.jd
@@ -478,14 +478,19 @@
 <ol>
 
 <li>On your device, connect to wireless (<strong>Settings > Wireless & networks
-> Wi-Fi > Wi-Fi settings</strong>)</li>
+> Wi-Fi > Wi-Fi settings</strong>).</li>
 <li>Set up your mobile device for testing, as described in <a
 href="{@docRoot}tools/device.html">Developing on a Device</a>.</li>
 <li>Run your application on your mobile device, as described in <a
 href="{@docRoot}tools/device.html">Developing on a Device</a>.</li>
 
-<li>If you are using Eclipse, you can view the application log output in Eclipse
-using LogCat (<strong>Window > Show View > Other > Android >
-LogCat</strong>).</li>
+<li>If you are using Android Studio, you can view the application log output by
+opening the Event Log console (<strong>View > Tool Windows > Event Log</strong>). 
+<li>Ensure your application is configured to launch Logcat automatically when it runs: 
+<ol TYPE=a>
+<li>Select <strong>Run > Edit Configurations</strong>.
+<li>Select the <strong>Miscellaneous</strong> tab in the <strong>Run/Debug Configurations</strong> window.
+<li>Under <strong>Logcat</strong>, select <strong>Show logcat automatically</strong> then
+select <strong>OK</strong>.</li></ol>
 </ol>
 
diff --git a/docs/html/guide/topics/graphics/prop-animation.jd b/docs/html/guide/topics/graphics/prop-animation.jd
old mode 100644
new mode 100755
index e455496..aed533d
--- a/docs/html/guide/topics/graphics/prop-animation.jd
+++ b/docs/html/guide/topics/graphics/prop-animation.jd
@@ -920,10 +920,7 @@
 <p>To distinguish animation files that use the new property animation APIs from those that use the
 legacy <a href="{@docRoot}guide/topics/graphics/view-animation.html">view animation</a> framework,
 starting with Android 3.1, you should save the XML files for property animations in the {@code
-res/animator/} directory (instead of {@code res/anim/}). Using the {@code animator} directory name
-is optional, but necessary if you want to use the layout editor tools in the Eclipse ADT plugin (ADT
-11.0.0+), because ADT only searches the {@code res/animator/} directory for property animation
-resources.</p>
+res/animator/} directory.</p>
 
 <p>The following property animation classes have XML declaration support with the
   following XML tags:</p>
diff --git a/docs/html/guide/topics/location/strategies.jd b/docs/html/guide/topics/location/strategies.jd
old mode 100644
new mode 100755
index f1eb66e..32be463
--- a/docs/html/guide/topics/location/strategies.jd
+++ b/docs/html/guide/topics/location/strategies.jd
@@ -402,20 +402,23 @@
 user location works. This is most easily done using a real Android-powered device. If, however, you
 don't have a device, you can still test your location-based features by mocking location data in
 the Android emulator. There are three different ways to send your application mock location
-data: using Eclipse, DDMS, or the "geo" command in the emulator console.</p>
+data: using Android Studio, DDMS, or the "geo" command in the emulator console.</p>
 
 <p class="note"><strong>Note:</strong> Providing mock location data is injected as GPS location
 data, so you must request location updates from <code>GPS_PROVIDER</code> in order for mock location
 data to work.</p>
 
-<h3 id="MockEclipse">Using Eclipse</h3>
+<h3 id="MockAVD">Using Android Studio</h3>
 
-<p>Select <b>Window</b> &gt; <b>Show View</b> &gt; <b>Other</b> &gt; <b>Emulator Control</b>.</p>
+<p>Select <b>Tools</b> &gt; <b>Android</b> &gt; <b>AVD Manager</b>. In the Android Virtual
+Device Manager window, choose your AVD and launch it in the emulator by selecting the green 
+play arrow in the Actions column.</p>
 
-<p>In the Emulator Control panel, enter GPS coordinates under Location Controls as individual
-lat/long coordinates, with a GPX file for route playback, or a KML file for multiple place marks.
-(Be sure that you have a device selected in the Devices panel&mdash;available from <b>Window</b>
-&gt; <b>Show View</b> &gt; <b>Other</b> &gt; <b>Devices</b>.)</p>
+<p>Then, select <b>Tools</b> &gt; <b>Android</b> &gt; <b>Android Device Monitor</b>.
+Select the Emulator Control tab in the Android Device Monitor window, and enter GPS coordinates 
+under Location Controls as individual lat/long coordinates, with a GPX file for route playback, 
+or a KML file for multiple place marks.
+</p>
 
 
 <h3 id="MockDdms">Using DDMS</h3>
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
old mode 100644
new mode 100755
index 9ac514c..1ab1041
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -486,10 +486,22 @@
 
 <ol>
 <li>First, build and export your application as an unsigned <code>.apk</code>.
-If you are developing in Eclipse with ADT, right-click the project and select
-<strong>Android Tools</strong> &gt; <strong>Export Unsigned Application
-Package</strong>. Select a destination filename and path and click
-<strong>OK</strong>. </li>
+If you are developing in Android Studio, build your application with Gradle:
+<ol TYPE=a>
+<li>Open the project and select <strong>Run > Edit Configurations</strong>.
+<li>Select the plus sign near the top-left corner of the <strong>Run/Debug
+Configurations</strong> window.
+<li>Select <strong>Gradle.</strong>
+<li>Enter <code>Unsigned APK</code> in <strong>Name</strong>.
+<li>Choose your module from the <strong>Gradle project</strong> section.
+<li>Enter <code>assemble</code> in <strong>Tasks</strong>.
+<li>Select <strong>OK</strong> to complete the new configuration.
+<li>Make sure the <strong>Unsigned APK</strong> run configuration is selected
+in the toolbar and select <strong>Run > Run 'Unsigned APK'</strong>.</li>
+</ol>
+You can find your unsigned <code>.apk</code> in the
+<code>&lt;<em>ProjectName</em>&gt;/app/build/outputs/apk/</code> directory.
+
 <li>Next, locate the <code>aapt</code> tool, if it is not already in your PATH.
 If you are using SDK Tools r8 or higher, you can find <code>aapt</code> in the
 <code>&lt;<em>SDK</em>&gt;/platform-tools/</code> directory.
@@ -563,9 +575,9 @@
        <td rowspan="6">Camera</td>
        <td><code>android.hardware.camera</code></td>
        <td>The application uses the device's back-facing (main) camera.</td>
-       <td>Devices with only a front-facing camera do not list this feature, so the 
-           <code>android.hardware.camera.any</code> feature should be
-           used instead if a camera facing any direction is acceptable for the
+       <td>Devices with only a front-facing camera do not list this feature, so
+           the <code>android.hardware.camera.any</code> feature should be used
+           instead if a camera facing any direction is acceptable for the
            application.</td>
     </tr>
 <tr>
diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd
old mode 100644
new mode 100755
index 642b820..a20fde0
--- a/docs/html/guide/topics/manifest/uses-sdk-element.jd
+++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd
@@ -543,10 +543,7 @@
 <p>To access the updater, use the <code>android</code> command-line tool,
 located in the &lt;sdk&gt;/tools directory. You can launch the SDK updater by
 executing <code>android sdk</code>. You can
-also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
-In ADT, you can also access the updater by selecting
-<strong>Window</strong>&nbsp;>&nbsp;<strong>Android SDK
-Manager</strong>.</p>
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.</p>
 
 <p>To run your application against different platform versions in the emulator,
 create an AVD for each platform version that you want to test. For more
diff --git a/docs/html/guide/topics/providers/content-provider-basics.jd b/docs/html/guide/topics/providers/content-provider-basics.jd
index 16e68d1..b7ae3d2 100644
--- a/docs/html/guide/topics/providers/content-provider-basics.jd
+++ b/docs/html/guide/topics/providers/content-provider-basics.jd
@@ -328,7 +328,7 @@
 </pre>
 <p>
     where the <code>user_dictionary</code> string is the provider's authority, and
-    <code>words</code> string is the table's path. The string
+    the <code>words</code> string is the table's path. The string
     <code>content://</code> (the <strong>scheme</strong>) is always present,
     and identifies this as a content URI.
 </p>
@@ -346,8 +346,8 @@
 </p>
 <p class="note">
     <strong>Note:</strong> The {@link android.net.Uri} and {@link android.net.Uri.Builder} classes
-    contain convenience methods for constructing well-formed Uri objects from strings. The
-    {@link android.content.ContentUris} contains convenience methods for appending id values to
+    contain convenience methods for constructing well-formed URI objects from strings. The
+    {@link android.content.ContentUris} class contains convenience methods for appending id values to
     a URI. The previous snippet uses {@link android.content.ContentUris#withAppendedId
     withAppendedId()} to append an id to the UserDictionary content URI.
 </p>
@@ -407,7 +407,7 @@
 <!-- Constructing the query -->
 <h3 id="Query">Constructing the query</h3>
 <p>
-    The next step in retrieving data a provider is to construct a query. This first snippet
+    The next step in retrieving data from a provider is to construct a query. This first snippet
     defines some variables for accessing the User Dictionary Provider:
 </p>
 <pre class="prettyprint">
diff --git a/docs/html/guide/topics/providers/content-provider-creating.jd b/docs/html/guide/topics/providers/content-provider-creating.jd
old mode 100644
new mode 100755
index 6ec1e1b..7cd3d69
--- a/docs/html/guide/topics/providers/content-provider-creating.jd
+++ b/docs/html/guide/topics/providers/content-provider-creating.jd
@@ -879,8 +879,8 @@
     A contract class also helps developers because it usually has mnemonic names for its constants,
     so developers are less likely to use incorrect values for column names or URIs. Since it's a
     class, it can contain Javadoc documentation. Integrated development environments such as
-    Eclipse can auto-complete constant names from the contract class and display Javadoc for the
-    constants.
+    Android Studio can auto-complete constant names from the contract class and display Javadoc for 
+    the constants.
 </p>
 <p>
     Developers can't access the contract class's class file from your application, but they can
diff --git a/docs/html/guide/topics/renderscript/compute.jd b/docs/html/guide/topics/renderscript/compute.jd
old mode 100644
new mode 100755
index eef8cda..7477b43
--- a/docs/html/guide/topics/renderscript/compute.jd
+++ b/docs/html/guide/topics/renderscript/compute.jd
@@ -192,7 +192,6 @@
   <li>Make sure you have the required Android SDK version and Build Tools version installed.</li>
   <li> Update the settings for the Android build process to include the RenderScript settings:
 
-    <p><strong>For Android Studio or Gradle-based builds</strong></p>
     <ul>
       <li>Open the {@code build.gradle} file in the app folder of your application module. </li>
       <li>Add the following RenderScript settings to the file:
@@ -233,42 +232,8 @@
       installed build tools version is used. You should always set this value to ensure the
       consistency of builds across development machines with different configurations.</li>
     </ul>
-
     </li>
-
-    <p><strong>For Eclipse</strong></p>
-    <ul>
-      <li>Open the {@code project.properties} file in the root folder of your application project.</li>
-      <li>Add the following lines to the file:
-
-<pre>
-renderscript.target=18
-renderscript.support.mode=true
-sdk.buildtools=18.1.0
-</pre>
-
-      <p>The settings listed above control specific behavior in the Android build process:</p>
-
-      <ul>
-        <li>{@code renderscript.target} - Specifies the bytecode version to be generated. We
-        recommend you set this value to the highest available API level and set
-        {@code renderscript.support.mode} to {@code true}. Valid values for this setting are any
-        integer value from 11 to the most recently released API level. If your minimum SDK version
-        specified in your application manifest is set to a higher value, this value is ignored and
-        the target value is set to the minimum SDK version.</li>
-        <li>{@code renderscript.support.mode} - Specifies that the generated bytecode should fall
-        back to a compatible version if the device it is running on does not support the target version.
-        </li>
-        <li>{@code sdk.buildtools} - The version of the Android SDK build tools to use. This value
-        should be set to {@code 18.1.0} or higher. If this option is not specified, the highest
-        installed build tools version is used. You should always set this value to ensure the
-        consistency of builds across development machines with different configurations.</li>
-      </ul>
-     </li>
-
-    </ul>
-
-  </ul>
+   </ul>
 
   <li>In your application classes that use RenderScript, add an import for the Support Library
     classes:
@@ -279,7 +244,7 @@
 
   </li>
 
- </0l>
+</ol>
 
 <h2 id="using-rs-from-java">Using RenderScript from Java Code</h2>
 
diff --git a/docs/html/guide/topics/resources/localization.jd b/docs/html/guide/topics/resources/localization.jd
old mode 100644
new mode 100755
index 0a96a15..afe4611
--- a/docs/html/guide/topics/resources/localization.jd
+++ b/docs/html/guide/topics/resources/localization.jd
@@ -1,484 +1,484 @@
-page.title=Localizing with Resources

-parent.title=Application Resources

-page.tags="localizing","localization","resources", "formats", "l10n"

-parent.link=index.html

-@jd:body

-

-<div id="qv-wrapper">

-    <div id="qv">

-

-<h2>Quickview</h2>

-

-<ul>

-  <li>Use resource sets to create a localized app.</li>

-  <li>Android loads the correct resource set for the user's language and locale.</li>

-  <li>If localized resources are not available, Android loads your default resources.</li>

-</ul>

-

-<h2>In this document</h2>

-<ol>

-  <li><a href="#resource-switching">Overview: Resource-Switching in Android</a></li>

-<li><a href="#using-framework">Using Resources for Localization</a></li>

-<li><a href="#strategies">Localization Tips</a></li>

-<li><a href="#testing">Testing Localized Applications</a></li>

-</ol>

-

-<h2>See also</h2>

-  <ol>

-    <li><a href="{@docRoot}distribute/tools/localization-checklist.html">Localization Checklist</a></li>

-    <li><a href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a></li>

-    <li><a href="{@docRoot}guide/topics/ui/declaring-layout.html">Layouts</a></li>

-    <li><a href="{@docRoot}reference/android/app/Activity.html#ActivityLifecycle">Activity Lifecycle</a></li>

-</ol>

-</div>

-</div>

-

-<p>Android will run on many  devices in many  regions. To reach the most users,

-your application should handle text, audio files, numbers, currency, and

-graphics in ways appropriate to the locales where your application will be used.

-</p>

-

-<p>This document describes best practices for localizing Android

-applications. The principles apply whether you are developing your application  

-using ADT with Eclipse, Ant-based tools, or any other IDE. </p>

-

-<p>You should already have a working knowledge of Java and be  familiar with

-Android resource loading, the declaration of user interface elements in XML,

-development considerations such as Activity lifecycle, and general principles of

-internationalization and localization. </p>

-

-<p>It is good practice to use the Android resource framework to separate the

-localized aspects of your application as much as possible from the core Java

-functionality:</p>

-

-<ul>

-  <li>You can put most or all of the <em>contents</em> of your application's

-user interface into resource files, as described in this document and in <a

-href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a>.</li>

-  <li>The <em>behavior</em> of the user interface, on the other hand, is driven

-by your Java code. 

-    For example, if users input data that needs to be formatted or sorted

-differently depending on locale, then you would use Java to handle the data

-programmatically. This document does not cover how to  localize your Java code.

-</li>

-</ul>

-

-<p>For a short guide to localizing strings in your app, see the training lesson, <a

-href="{@docRoot}training/basics/supporting-devices/languages.html">Supporting Different Languages</a>. </p>

-

-

-<h2 id="resource-switching">Overview: Resource-Switching in Android</h2>

-

-<p>Resources are text strings, layouts, sounds, graphics, and any other static

-data that your  Android application  needs. An application can include multiple

-sets of resources, each customized for a different device configuration. When a

-user runs the application,  Android    automatically selects and loads the 

-resources that best match the device.</p>

-

-<p>(This document focuses on localization and locale. For a complete description

-of resource-switching and all the types of configurations that you can

-specify &#8212; screen orientation, touchscreen type, and so on &#8212; see <a

-href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">Providing

-Alternative Resources</a>.)</p>

-

-<table border="0" cellspacing="0" cellpadding="0">

-  <tr border="0">

-    <td width="180" style="border: 0pt none ;"><p class="special-note">

-    <strong>When you write your application:</strong>

-    <br><br>

-    You create a set of default resources, plus alternatives to be used in

-    different locales.</p></td>

-    <td style="border: 0pt none; padding:0">

-    <p style="border:0; padding:0"><img src="../../../images/resources/right-arrow.png" alt="right-arrow" 

-    width="51" height="17"></p></td>

-    <td width="180" style="border: 0pt none ;"><p class="special-note">

-    <strong>When a user runs your application:</strong>

-    <br><br>The Android system selects which resources to load, based on the

-    device's locale.</p></td>

-  </tr>

-</table>

-

-<p>When you write your application, you create default and alternative resources

-for your application to use. To create  resources, you place files within

-specially named subdirectories of the project's <code>res/</code> directory.

-</p>

-

-

-

-<h3 id="defaults-r-important">Why Default Resources Are Important</h3>

-

-<p>Whenever the application runs in a locale for which you have not provided

-locale-specific text,  Android will load the default strings from

-<code>res/values/strings.xml</code>. If this default  file is absent, or if it 

-is missing a string that your application needs, then your application will not run 

-and will show an error. 

-The example below illustrates what can happen when the default text file is incomplete. </p>

-

-<p><em>Example:</em>

-<p>An application's Java code refers to just two strings, <code>text_a</code> and 

-	<code>text_b</code>. This application includes a localized resource file 

-	(<code>res/values-en/strings.xml</code>) that defines <code>text_a</code> and 

-	<code>text_b</code> in English. This application also includes a default 

-	resource file (<code>res/values/strings.xml</code>) that includes a

-definition for <code>text_a</code>, but not for <code>text_b</code>:

-<ul>

-  <li>This application might compile without a problem. An IDE such as Eclipse 

-  	will not highlight any errors if a resource is missing.</li>

-  <li>When this application is launched on a device with locale set to English, 

-  	the application  might run without a problem, because 

-  	<code>res/values-en/strings.xml</code> contains both of the needed text 

-  	strings.</li>

-  <li>However, <strong>the user  will see an error message and a Force Close 

-  	button</strong> when this application is launched on a device set to a 

-  	language other than English. The application will not load.</li>

-</ul>

-

-

-<p>To prevent this situation, make sure that a <code>res/values/strings.xml</code> 

-	file exists and that it defines every needed string. The situation applies to 

-	all types of resources, not just strings: You 

-	need to create a  set of default resource files containing all 

-	the resources that your application calls upon &#8212; layouts, drawables, 

-	animations, etc. For information about testing, see <a href="#test-for-default">

-	Testing for Default Resources</a>.</p>

-

-<h2 id="using-framework">Using Resources for Localization</h2>

-

-<h3 id="creating-defaults">How to Create Default Resources</h3>

-

-<p>Put the application's default text in

-a file with the following location and name:</p>

-<p><code>&nbsp;&nbsp;&nbsp;&nbsp;res/values/strings.xml</code> (required directory)</p>

-

-<p>The text strings in <code>res/values/strings.xml</code> should  use the

-default language, which is the language that you expect most of your application's users to

-speak.  </p>

-

-<p>The default resource set must also include any default drawables and layouts, 

-	and can include other types of resources such as animations. 

-<br>

-  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/drawable/</code>(required directory holding at least

-  one graphic file, for the application's icon on Google Play)<br>

-  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/layout/</code> (required directory holding an XML

-  file that defines the default layout)<br>

-  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/anim/</code> (required if you have any 

-  <code>res/anim-<em>&lt;qualifiers&gt;</em></code> folders)<br>

-  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/xml/</code> (required if you have any 

-  <code>res/xml-<em>&lt;qualifiers&gt;</em></code> folders)<br>

-  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/raw/</code> (required if you have any 

-  <code>res/raw-<em>&lt;qualifiers&gt;</em></code> folders)

-</p>

-

-<p class="note"><strong>Tip:</strong> In your code, examine each reference to 

-	an Android resource. Make sure that a default resource is defined for each

-	one. Also make sure that the default string file is complete: A <em>

-	localized</em> string file can contain a subset of the strings, but the 

-	<em>default</em> string file must contain them all. 

-</p>

-

-<h3 id="creating-alternatives">How to Create Alternative Resources</h3>

-

-<p>A large part of localizing an application is providing alternative text for

-different languages. In some cases you will also provide alternative graphics,

-sounds, layouts, and other locale-specific resources. </p>

-

-<p>An application can specify many <code>res/<em>&lt;qualifiers&gt;</em>/</code>

-directories, each with different qualifiers. To create an alternative resource for

-a different locale, you use a qualifier that specifies a language or a 

-language-region combination. (The name of a resource directory must conform 

-to the naming scheme described in 

-<a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">Providing

-Alternative Resources</a>,

-or else it will not compile.)</p>

-

-<p><em>Example:</em></p>

-

-<p>Suppose that your application's default language is English. Suppose also

-that you want to localize all the text in your application to French, and most

-of the text in your application (everything except the application's title) to

-Japanese. In this case, you could create three alternative <code>strings.xml</code>

-files, each stored in a locale-specific resource directory:</p>

-

-<ol>

-  <li><code>res/values/strings.xml</code><br>

-    Contains  English text for all  the strings that the application uses,

-including text for a string named <code>title</code>.</li>

-  <li><code>res/values-fr/strings.xml</code><br>

-    Contain French text for all  the strings, including <code>title</code>.</li>

-  <li><code>res/values-ja/strings.xml</code><br>

-    Contain Japanese text for all  the strings <em>except</em>

-<code>title</code>.<br>

-  <code></code></li>

-</ol>

-

-<p>If your Java code refers to <code>R.string.title</code>,  here is what will

-happen at runtime:</p>

-

-<ul>

-  <li>If the device is set to any language other than French, Android will load

-<code>title</code> from the <code>res/values/strings.xml</code> file.</li>

-  <li>If the device is set to French, Android will load <code>title</code> from

-the <code>res/values-fr/strings.xml</code> file.</li>

-</ul>

-

-<p>Notice that if the device is set to Japanese, Android will look for

-<code>title</code> in the <code>res/values-ja/strings.xml</code> file. But

-because no such string is included in that file, Android will fall back to the

-default, and will load  <code>title</code> in English from the

-<code>res/values/strings.xml</code> file.  </p>

-

-<h3 id="resource-precedence">Which Resources Take Precedence?</h3>

-

-<p> If multiple resource files match a device's configuration, Android follows a

-set of rules in deciding which file to use. Among the qualifiers that can be

-specified in a resource directory name, <strong>locale almost always takes

-precedence</strong>. </p>

-<p><em>Example:</em></p>

-

-<p>Assume that an application  includes a default set of graphics and two other

-sets of graphics, each optimized for a different device setup:</p>

-

-<ul>

-  <li><code>res/drawable/</code><br>

-    Contains

-  default graphics.</li>

-  <li><code>res/drawable-small-land-stylus/</code><br>

-  Contains  graphics optimized for use with a device that expects input from a 

-  stylus and has a QVGA low-density screen in landscape orientation.</li>

-  <li><code>res/drawable-ja/</code> <br>

-  Contains  graphics optimized for use with Japanese.</li>

-</ul>

-

-<p>If the application runs on a device that is configured to use Japanese,

-Android will load graphics from  <code>res/drawable-ja/</code>, even if the

-device happens to be one that expects input from a stylus and has a QVGA 

-low-density screen in landscape orientation.</p>

-

-<p class="note"><strong>Exception:</strong> The only qualifiers that take

-precedence over locale in the selection process are MCC and MNC (mobile country

-code and mobile network code). </p>

-

-<p><em>Example:</em></p>

-

-<p>Assume that you have the following situation:</p>

-

-<ul>

-  <li>The application code calls for <code>R.string.text_a</code></li>

-  <li>Two relevant resource files are available:

-    <ul>

-      <li><code>res/values-mcc404/strings.xml</code>, which includes

-<code>text_a</code> in the application's default language, in this case

-English.</li>

-      <li><code>res/values-hi/strings.xml</code>, which includes

-<code>text_a</code> in Hindi.</li>

-    </ul>

-  </li>

-  <li>The application is running on a device that has the following

-configuration:

-    <ul>

-      <li>The SIM card is connected to a mobile network in India (MCC 404).</li>

-      <li>The language is set to Hindi (<code>hi</code>).</li>

-    </ul>

-  </li>

-</ul>

-

-<p>Android will load <code>text_a</code> from

-<code>res/values-mcc404/strings.xml</code> (in English), even if the device is

-configured for Hindi. That is because in the resource-selection process, Android

-will prefer an MCC match over a language match. </p>

-

-<p>The selection process is not always as straightforward as these examples

-suggest. Please read  <a

-href="{@docRoot}guide/topics/resources/providing-resources.html#BestMatch">How Android Finds

-the Best-matching Resource</a> for a more nuanced description of the

-process. All the qualifiers are described and listed in order of

-precedence in <a

-href="{@docRoot}guide/topics/resources/providing-resources.html#table2">Table 2 of Providing

-Alternative Resources</a>.</p>

-

-<h3 id="referring-to-resources">Referring to Resources in Java</h3>

-

-<p>In your application's Java code, you refer to  resources using the syntax

-<code>R.<em>resource_type</em>.<em>resource_name</em></code> or

-<code>android.R.<em>resource_type</em>.<em>resource_name</em></code><em>.</em>

-For more about this, see <a

-href="{@docRoot}guide/topics/resources/accessing-resources.html">Accessing Resources</a>.</p>

-

-<h2 id="checklist">Localization Checklist</h2>

-

-<p>For a complete overview of the process of localizing and distributing an Android application,

-see the <a href="{@docRoot}distribute/tools/localization-checklist.html">Localization

-Checklist</a> document.</p>

-

-<h2 id="strategies">Localization Tips</h2>

-

-<h4 id="failing2">Design your application  to work in any locale</h4>

-

-<p>You cannot assume anything about the device on which a user will

-run your application. The device might have hardware that you were not

-anticipating, or it might be set to a locale that you did not plan for or that 

-you cannot test. Design your application so that it will function normally or fail gracefully no 

-matter what device it runs on.</p>

-

-<p class="note"><strong>Important:</strong> Make sure that your application

-includes a full set of default resources.</p> <p>Make sure to include

-<code>res/drawable/</code> and a <code>res/values/</code> folders (without any

-additional modifiers in the folder names) that contain all the images and text

-that your application will need. </p>

-

-<p>If an application is missing even one default resource, it will not run on a 

-	device that is set to an unsupported locale. For example, the 

-	<code>res/values/strings.xml</code> default file might lack one string that 

-	the application needs: When the application runs in an unsupported locale and 

-	attempts to load <code>res/values/strings.xml</code>, the user will see an 

-	error message and a Force Close button. An IDE such as Eclipse will not 

-	highlight this kind of error, and you will not see the problem when you 

-	test the application on a device or emulator that is set to a supported locale.</p>

-

-<p>For more information, see <a href="#test-for-default">Testing for Default Resources</a>.</p>

-

-<h4>Design a flexible layout</h4>

-

-<p> If you need to rearrange your layout to fit a certain language (for example

-German with its long words), you can create an alternative layout for that

-language (for example <code>res/layout-de/main.xml</code>). However, doing this

-can make your application harder to maintain.  It is better to create a single

-layout that is more flexible.</p>

-

-<p>Another typical situation is a language that requires something different in

-its layout. For example, you might have a contact form that should include  two

-name fields when the application runs in Japanese, but three name fields when

-the application  runs in some other language. You could handle this in either of

-two ways:</p>

-

-<ul>

-  <li>Create  one  layout with a field that you can programmatically enable or

-disable, based on the language, or</li>

-  <li>Have the main layout include another layout that  includes the changeable

-field. The second layout can have different configurations for different

-languages.</li>

-</ul>

-

-<h4>Avoid creating more resource files and text strings than you need</h4>

-

-<p>You probably do not need to create a locale-specific

-alternative for every resource in your application. For example, the layout

-defined in the <code>res/layout/main.xml</code> file might work in any locale,

-in which case there would be no need to create any alternative layout files.

-</p>

-

-<p>Also, you might not need to create alternative text for every

-string. For example, assume the following:</p>

-

-<ul>

-  <li>Your application's default language is American

-English. Every string that the application uses is defined, using American

-English spellings, in <code>res/values/strings.xml</code>. </li>

-

-  <li>For  a few important phrases, you want to provide

-British English spelling. You want these alternative strings to be used when your

-application runs on a device in the United Kingdom. </li>

-</ul>

-

-<p>To do this, you could create a small file called

-<code>res/values-en-rGB/strings.xml</code> that includes only the strings that

-should be different when the application  runs in the U.K. For all the rest of

-the strings, the application will fall back to the defaults and use what is

-defined in <code>res/values/strings.xml</code>.</p>

-

-<h4>Use the Android Context object for manual locale lookup</h4>

-

-<p>You can look up the locale using the {@link android.content.Context} object

-that Android makes available:</p>

-

-<pre>String locale = context.getResources().getConfiguration().locale.getDisplayName();</pre>

-

-<h2 id="testing">Testing Localized Applications</h2>

-

-<h3 id="device">Testing on a Device</h3>

-<p>Keep in mind that the device you are testing may be significantly different from 

-	the devices available to consumers in other geographies. The locales available 

-	on your device may differ from those available on other devices. Also, the 

-	resolution and density of the device screen may differ, which could affect 

-	the display of strings and drawables in your UI.</p>

-

-<p>To change the locale or language on a device, use the Settings application.</p>

-

-<h3 id="emulator">Testing on an Emulator</h3>

-

-<p>For details about using the emulator, see See <a

-href="{@docRoot}tools/help/emulator.html">Android Emulator</a>.</p>

-<h4>Creating and using a custom locale</h4>

-

-<p>A &quot;custom&quot; locale is a language/region combination that the Android

-system image does not explicitly support. (For a list of supported locales in

-Android platforms see the Version Notes in the <a

-href="{@docRoot}sdk/index.html">SDK</a> tab). You can test

-how your application will run in a custom locale by creating a custom locale in

-the emulator. There are two ways to do this:</p>

-

-<ul>

-  <li>Use the Custom Locale application, which is accessible from the

-Application tab. (After you create a custom locale, switch to it by 

-pressing and holding the locale name.)</li>

-  <li>Change to a custom locale from the adb shell, as described below.</li>

-</ul>

-

-<p>When you set the emulator to a locale that is not available in the Android

-system image, the system itself will display in its default language. Your

-application, however, should localize properly.</p>

-

-<h4>Changing the emulator locale from the adb shell</h4>

-

-<p>To change the locale in the emulator by using the adb shell. </p>

-

-<ol>

-  <li>Pick the locale you want to test and determine its BCP-47 language tag, for

-example, Canadian French would be <code>fr-CA</code>.<br>

-  </li>

-  <li>Launch an emulator.</li>

-  <li>From a command-line shell on the host computer, run the following

-command:<br>

-    <code>adb shell</code><br>

-  or if you have a device attached, specify that you want the emulator by adding

-the <code>-e</code> option:<br>

-  <code>adb -e shell</code></li>

-  <li>At  the  adb shell prompt (<code>#</code>), run this command: <br>

-    <code>setprop persist.sys.locale [<em>BCP-47 language tag</em>];stop;sleep 5;start <br>

-    </code>Replace bracketed sections with the  appropriate codes from Step

-1.</li>

-</ol>

-

-<p>For instance, to test in Canadian French:</p>

-

-<p><code>setprop persist.sys.locale fr-CA;stop;sleep 5;start </code></p>

-

-<p>This will cause the emulator  to restart. (It will look like a full reboot,

-but it is not.) Once the Home screen appears again, re-launch your application (for

-example, click the Run icon in Eclipse), and the application will launch with

-the new locale. </p>

-

-<h3 id="test-for-default">Testing for Default Resources</h3>

-<p>Here's how to test whether an application includes every string resource that it needs:  </p>

-<ol><li>Set the emulator or device to a language that your application does not 

-	support. For example, if the application has French strings in 

-	<code>res/values-fr/</code> but does not have any Spanish strings in 

-	<code>res/values-es/</code>, then set the emulator's locale to Spanish. 

-	(You can use the Custom Locale application to set the emulator to an 

-	unsupported locale.)</li>

-	<li>Run the application.</li>  

-<li>If the application shows an error message and a Force Close button, it might 

-	be looking for a string that is not available. Make sure that your 

-	<code>res/values/strings.xml</code> file includes a definition for 

-	every string that the application uses.</li>

-</ol> 

-</p> 

-

-<p>If the test is successful, repeat it for other types of 

-	configurations. For example, if the application has a layout file called 

-	<code>res/layout-land/main.xml</code> but does not contain a file called 

-	<code>res/layout-port/main.xml</code>, then set the emulator or device to 

-	portrait orientation and see if the application will run. 

-

-

-

+page.title=Localizing with Resources
+parent.title=Application Resources
+page.tags="localizing","localization","resources", "formats", "l10n"
+parent.link=index.html
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+
+<h2>Quickview</h2>
+
+<ul>
+<li>Use resource sets to create a localized app.</li>
+<li>Android loads the correct resource set for the user's language and locale.</li>
+<li>If localized resources are not available, Android loads your default resources.</li>
+</ul>
+
+<h2>In this document</h2>
+<ol>
+<li><a href="#resource-switching">Overview: Resource-Switching in Android</a></li>
+<li><a href="#using-framework">Using Resources for Localization</a></li>
+<li><a href="#strategies">Localization Tips</a></li>
+<li><a href="#testing">Testing Localized Applications</a></li>
+</ol>
+
+<h2>See also</h2>
+<ol>
+<li><a href="{@docRoot}distribute/tools/localization-checklist.html">
+Localization Checklist</a></li>
+<li><a href="{@docRoot}guide/topics/resources/providing-resources.html">
+Providing Resources</a></li>
+<li><a href="{@docRoot}guide/topics/ui/declaring-layout.html">
+Layouts</a></li>
+<li><a href="{@docRoot}reference/android/app/Activity.html#ActivityLifecycle">
+Activity Lifecycle</a></li>
+</ol>
+</div>
+</div>
+
+<p>Android will run on many  devices in many  regions. To reach the most users,
+your application should handle text, audio files, numbers, currency, and
+graphics in ways appropriate to the locales where your application will be used.
+</p>
+
+<p>This document describes best practices for localizing Android
+applications.</p>
+
+<p>You should already have a working knowledge of Java and be  familiar with
+Android resource loading, the declaration of user interface elements in XML,
+development considerations such as Activity lifecycle, and general principles of
+internationalization and localization. </p>
+
+<p>It is good practice to use the Android resource framework to separate the
+localized aspects of your application as much as possible from the core Java
+functionality:</p>
+
+<ul>
+<li>You can put most or all of the <em>contents</em> of your application's
+user interface into resource files, as described in this document and in <a
+href="{@docRoot}guide/topics/resources/providing-resources.html">
+Providing Resources</a>.</li>
+<li>The <em>behavior</em> of the user interface, on the other hand, is driven
+by your Java code.
+    For example, if users input data that needs to be formatted or sorted
+differently depending on locale, then you would use Java to handle the data
+programmatically. This document does not cover how to  localize your Java code.
+</li>
+</ul>
+
+<p>For a short guide to localizing strings in your app, see the training lesson,
+<a href="{@docRoot}training/basics/supporting-devices/languages.html">
+Supporting Different Languages</a>. </p>
+
+
+<h2 id="resource-switching">Overview: Resource-Switching in Android</h2>
+
+<p>Resources are text strings, layouts, sounds, graphics, and any other static
+data that your  Android application  needs. An application can include multiple
+sets of resources, each customized for a different device configuration. When a
+user runs the application,  Android    automatically selects and loads the
+resources that best match the device.</p>
+
+<p>(This document focuses on localization and locale. For a complete description
+of resource-switching and all the types of configurations that you can
+specify &#8212; screen orientation, touchscreen type, and so on &#8212;
+see <a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">
+Providing Alternative Resources</a>.)</p>
+
+<table border="0" cellspacing="0" cellpadding="0">
+<tr border="0">
+<td width="180" style="border: 0pt none ;"><p class="special-note">
+<strong>When you write your application:</strong>
+<br><br>
+You create a set of default resources, plus alternatives to be used in
+different locales.</p></td>
+<td style="border: 0pt none; padding:0">
+<p style="border:0; padding:0">
+<img src="../../../images/resources/right-arrow.png" alt="right-arrow"
+    width="51" height="17"></p></td>
+    <td width="180" style="border: 0pt none ;"><p class="special-note">
+    <strong>When a user runs your application:</strong>
+    <br><br>The Android system selects which resources to load, based on the
+    device's locale.</p></td>
+  </tr>
+</table>
+
+<p>When you write your application, you create default and alternative resources
+for your application to use. To create  resources, you place files within
+specially named subdirectories of the project's <code>res/</code> directory.
+</p>
+
+
+
+<h3 id="defaults-r-important">Why Default Resources Are Important</h3>
+
+<p>Whenever the application runs in a locale for which you have not provided
+locale-specific text,  Android will load the default strings from
+<code>res/values/strings.xml</code>. If this default  file is absent, or if it
+is missing a string that your application needs, then your application will not run
+and will show an error.
+The example below illustrates what can happen when the default text file is
+incomplete. </p>
+
+<p><em>Example:</em>
+<p>An application's Java code refers to just two strings, <code>text_a</code> and
+	<code>text_b</code>. This application includes a localized resource file
+	(<code>res/values-en/strings.xml</code>) that defines <code>text_a</code> and
+	<code>text_b</code> in English. This application also includes a default
+	resource file (<code>res/values/strings.xml</code>) that includes a
+definition for <code>text_a</code>, but not for <code>text_b</code>:
+<ul>
+  <li>When this application is launched on a device with locale set to English,
+  	the application  might run without a problem, because
+  	<code>res/values-en/strings.xml</code> contains both of the needed text
+  	strings.</li>
+  <li>However, <strong>the user  will see an error message and a Force Close
+  	button</strong> when this application is launched on a device set to a
+  	language other than English. The application will not load.</li>
+</ul>
+
+
+<p>To prevent this situation, make sure that a <code>res/values/strings.xml</code>
+	file exists and that it defines every needed string. The situation applies to
+	all types of resources, not just strings: You
+	need to create a  set of default resource files containing all
+	the resources that your application calls upon &#8212; layouts, drawables,
+	animations, etc. For information about testing, see <a href="#test-for-default">
+	Testing for Default Resources</a>.</p>
+
+<h2 id="using-framework">Using Resources for Localization</h2>
+
+<h3 id="creating-defaults">How to Create Default Resources</h3>
+
+<p>Put the application's default text in
+a file with the following location and name:</p>
+<p><code>&nbsp;&nbsp;&nbsp;&nbsp;res/values/strings.xml</code> (required directory)</p>
+
+<p>The text strings in <code>res/values/strings.xml</code> should  use the
+default language, which is the language that you expect most of your application's users to
+speak.  </p>
+
+<p>The default resource set must also include any default drawables and layouts,
+	and can include other types of resources such as animations.
+<br>
+  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/drawable/</code>(required directory holding at least
+  one graphic file, for the application's icon on Google Play)<br>
+  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/layout/</code> (required directory holding an XML
+  file that defines the default layout)<br>
+  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/anim/</code> (required if you have any
+  <code>res/anim-<em>&lt;qualifiers&gt;</em></code> folders)<br>
+  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/xml/</code> (required if you have any
+  <code>res/xml-<em>&lt;qualifiers&gt;</em></code> folders)<br>
+  <code>&nbsp;&nbsp;&nbsp;&nbsp;res/raw/</code> (required if you have any
+  <code>res/raw-<em>&lt;qualifiers&gt;</em></code> folders)
+</p>
+
+<p class="note"><strong>Tip:</strong> In your code, examine each reference to
+	an Android resource. Make sure that a default resource is defined for each
+	one. Also make sure that the default string file is complete: A <em>
+	localized</em> string file can contain a subset of the strings, but the
+	<em>default</em> string file must contain them all.
+</p>
+
+<h3 id="creating-alternatives">How to Create Alternative Resources</h3>
+
+<p>A large part of localizing an application is providing alternative text for
+different languages. In some cases you will also provide alternative graphics,
+sounds, layouts, and other locale-specific resources. </p>
+
+<p>An application can specify many <code>res/<em>&lt;qualifiers&gt;</em>/</code>
+directories, each with different qualifiers. To create an alternative resource for
+a different locale, you use a qualifier that specifies a language or a
+language-region combination. (The name of a resource directory must conform
+to the naming scheme described in
+<a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">Providing
+Alternative Resources</a>,
+or else it will not compile.)</p>
+
+<p><em>Example:</em></p>
+
+<p>Suppose that your application's default language is English. Suppose also
+that you want to localize all the text in your application to French, and most
+of the text in your application (everything except the application's title) to
+Japanese. In this case, you could create three alternative <code>strings.xml</code>
+files, each stored in a locale-specific resource directory:</p>
+
+<ol>
+  <li><code>res/values/strings.xml</code><br>
+    Contains  English text for all  the strings that the application uses,
+including text for a string named <code>title</code>.</li>
+  <li><code>res/values-fr/strings.xml</code><br>
+    Contain French text for all  the strings, including <code>title</code>.</li>
+  <li><code>res/values-ja/strings.xml</code><br>
+    Contain Japanese text for all  the strings <em>except</em>
+<code>title</code>.<br>
+  <code></code></li>
+</ol>
+
+<p>If your Java code refers to <code>R.string.title</code>,  here is what will
+happen at runtime:</p>
+
+<ul>
+  <li>If the device is set to any language other than French, Android will load
+<code>title</code> from the <code>res/values/strings.xml</code> file.</li>
+  <li>If the device is set to French, Android will load <code>title</code> from
+the <code>res/values-fr/strings.xml</code> file.</li>
+</ul>
+
+<p>Notice that if the device is set to Japanese, Android will look for
+<code>title</code> in the <code>res/values-ja/strings.xml</code> file. But
+because no such string is included in that file, Android will fall back to the
+default, and will load  <code>title</code> in English from the
+<code>res/values/strings.xml</code> file.  </p>
+
+<h3 id="resource-precedence">Which Resources Take Precedence?</h3>
+
+<p> If multiple resource files match a device's configuration, Android follows a
+set of rules in deciding which file to use. Among the qualifiers that can be
+specified in a resource directory name, <strong>locale almost always takes
+precedence</strong>. </p>
+<p><em>Example:</em></p>
+
+<p>Assume that an application  includes a default set of graphics and two other
+sets of graphics, each optimized for a different device setup:</p>
+
+<ul>
+  <li><code>res/drawable/</code><br>
+    Contains
+  default graphics.</li>
+  <li><code>res/drawable-small-land-stylus/</code><br>
+  Contains  graphics optimized for use with a device that expects input from a
+  stylus and has a QVGA low-density screen in landscape orientation.</li>
+  <li><code>res/drawable-ja/</code> <br>
+  Contains  graphics optimized for use with Japanese.</li>
+</ul>
+
+<p>If the application runs on a device that is configured to use Japanese,
+Android will load graphics from  <code>res/drawable-ja/</code>, even if the
+device happens to be one that expects input from a stylus and has a QVGA
+low-density screen in landscape orientation.</p>
+
+<p class="note"><strong>Exception:</strong> The only qualifiers that take
+precedence over locale in the selection process are MCC and MNC (mobile country
+code and mobile network code). </p>
+
+<p><em>Example:</em></p>
+
+<p>Assume that you have the following situation:</p>
+
+<ul>
+  <li>The application code calls for <code>R.string.text_a</code></li>
+  <li>Two relevant resource files are available:
+    <ul>
+      <li><code>res/values-mcc404/strings.xml</code>, which includes
+<code>text_a</code> in the application's default language, in this case
+English.</li>
+      <li><code>res/values-hi/strings.xml</code>, which includes
+<code>text_a</code> in Hindi.</li>
+    </ul>
+  </li>
+  <li>The application is running on a device that has the following
+configuration:
+    <ul>
+      <li>The SIM card is connected to a mobile network in India (MCC 404).</li>
+      <li>The language is set to Hindi (<code>hi</code>).</li>
+    </ul>
+  </li>
+</ul>
+
+<p>Android will load <code>text_a</code> from
+<code>res/values-mcc404/strings.xml</code> (in English), even if the device is
+configured for Hindi. That is because in the resource-selection process, Android
+will prefer an MCC match over a language match. </p>
+
+<p>The selection process is not always as straightforward as these examples
+suggest. Please read  <a
+href="{@docRoot}guide/topics/resources/providing-resources.html#BestMatch">How Android Finds
+the Best-matching Resource</a> for a more nuanced description of the
+process. All the qualifiers are described and listed in order of
+precedence in <a
+href="{@docRoot}guide/topics/resources/providing-resources.html#table2">Table 2 of Providing
+Alternative Resources</a>.</p>
+
+<h3 id="referring-to-resources">Referring to Resources in Java</h3>
+
+<p>In your application's Java code, you refer to  resources using the syntax
+<code>R.<em>resource_type</em>.<em>resource_name</em></code> or
+<code>android.R.<em>resource_type</em>.<em>resource_name</em></code><em>.</em>
+For more about this, see <a
+href="{@docRoot}guide/topics/resources/accessing-resources.html">Accessing Resources</a>.</p>
+
+<h2 id="checklist">Localization Checklist</h2>
+
+<p>For a complete overview of the process of localizing and distributing an Android application,
+see the <a href="{@docRoot}distribute/tools/localization-checklist.html">Localization
+Checklist</a> document.</p>
+
+<h2 id="strategies">Localization Tips</h2>
+
+<h4 id="failing2">Design your application  to work in any locale</h4>
+
+<p>You cannot assume anything about the device on which a user will
+run your application. The device might have hardware that you were not
+anticipating, or it might be set to a locale that you did not plan for or that
+you cannot test. Design your application so that it will function normally or fail gracefully no
+matter what device it runs on.</p>
+
+<p class="note"><strong>Important:</strong> Make sure that your application
+includes a full set of default resources.</p> <p>Make sure to include
+<code>res/drawable/</code> and a <code>res/values/</code> folders (without any
+additional modifiers in the folder names) that contain all the images and text
+that your application will need. </p>
+
+<p>If an application is missing even one default resource, it will not run on a
+device that is set to an unsupported locale. For example, the
+<code>res/values/strings.xml</code> default file might lack one string that
+the application needs: When the application runs in an unsupported locale and
+attempts to load <code>res/values/strings.xml</code>, the user will see an
+error message and a Force Close button.</p>
+
+<p>For more information, see <a href="#test-for-default">Testing for Default Resources</a>.</p>
+
+<h4>Design a flexible layout</h4>
+
+<p> If you need to rearrange your layout to fit a certain language (for example
+German with its long words), you can create an alternative layout for that
+language (for example <code>res/layout-de/main.xml</code>). However, doing this
+can make your application harder to maintain.  It is better to create a single
+layout that is more flexible.</p>
+
+<p>Another typical situation is a language that requires something different in
+its layout. For example, you might have a contact form that should include  two
+name fields when the application runs in Japanese, but three name fields when
+the application  runs in some other language. You could handle this in either of
+two ways:</p>
+
+<ul>
+  <li>Create  one  layout with a field that you can programmatically enable or
+disable, based on the language, or</li>
+  <li>Have the main layout include another layout that  includes the changeable
+field. The second layout can have different configurations for different
+languages.</li>
+</ul>
+
+<h4>Avoid creating more resource files and text strings than you need</h4>
+
+<p>You probably do not need to create a locale-specific
+alternative for every resource in your application. For example, the layout
+defined in the <code>res/layout/main.xml</code> file might work in any locale,
+in which case there would be no need to create any alternative layout files.
+</p>
+
+<p>Also, you might not need to create alternative text for every
+string. For example, assume the following:</p>
+
+<ul>
+  <li>Your application's default language is American
+English. Every string that the application uses is defined, using American
+English spellings, in <code>res/values/strings.xml</code>. </li>
+
+  <li>For  a few important phrases, you want to provide
+British English spelling. You want these alternative strings to be used when your
+application runs on a device in the United Kingdom. </li>
+</ul>
+
+<p>To do this, you could create a small file called
+<code>res/values-en-rGB/strings.xml</code> that includes only the strings that
+should be different when the application  runs in the U.K. For all the rest of
+the strings, the application will fall back to the defaults and use what is
+defined in <code>res/values/strings.xml</code>.</p>
+
+<h4>Use the Android Context object for manual locale lookup</h4>
+
+<p>You can look up the locale using the {@link android.content.Context} object
+that Android makes available:</p>
+
+<pre>String locale = context.getResources().getConfiguration().locale.getDisplayName();</pre>
+
+<h2 id="testing">Testing Localized Applications</h2>
+
+<h3 id="device">Testing on a Device</h3>
+<p>Keep in mind that the device you are testing may be significantly different from
+	the devices available to consumers in other geographies. The locales available
+	on your device may differ from those available on other devices. Also, the
+	resolution and density of the device screen may differ, which could affect
+	the display of strings and drawables in your UI.</p>
+
+<p>To change the locale or language on a device, use the Settings application.</p>
+
+<h3 id="emulator">Testing on an Emulator</h3>
+
+<p>For details about using the emulator, see See <a
+href="{@docRoot}tools/help/emulator.html">Android Emulator</a>.</p>
+<h4>Creating and using a custom locale</h4>
+
+<p>A &quot;custom&quot; locale is a language/region combination that the Android
+system image does not explicitly support. (For a list of supported locales in
+Android platforms see the Version Notes in the <a
+href="{@docRoot}sdk/index.html">SDK</a> tab). You can test
+how your application will run in a custom locale by creating a custom locale in
+the emulator. There are two ways to do this:</p>
+
+<ul>
+  <li>Use the Custom Locale application, which is accessible from the
+Application tab. (After you create a custom locale, switch to it by
+pressing and holding the locale name.)</li>
+  <li>Change to a custom locale from the adb shell, as described below.</li>
+</ul>
+
+<p>When you set the emulator to a locale that is not available in the Android
+system image, the system itself will display in its default language. Your
+application, however, should localize properly.</p>
+
+<h4>Changing the emulator locale from the adb shell</h4>
+
+<p>To change the locale in the emulator by using the adb shell. </p>
+
+<ol>
+  <li>Pick the locale you want to test and determine its BCP-47 language tag, for
+example, Canadian French would be <code>fr-CA</code>.<br>
+  </li>
+  <li>Launch an emulator.</li>
+  <li>From a command-line shell on the host computer, run the following
+command:<br>
+    <code>adb shell</code><br>
+  or if you have a device attached, specify that you want the emulator by adding
+the <code>-e</code> option:<br>
+  <code>adb -e shell</code></li>
+<li>At  the  adb shell prompt (<code>#</code>), run this command: <br>
+    <code>setprop persist.sys.locale [<em>BCP-47 language tag</em>];stop;sleep 5;start <br>
+    </code>Replace bracketed sections with the  appropriate codes from Step
+1.</li>
+</ol>
+
+<p>For instance, to test in Canadian French:</p>
+
+<p><code>setprop persist.sys.locale fr-CA;stop;sleep 5;start </code></p>
+
+<p>This will cause the emulator  to restart. (It will look like a full reboot,
+but it is not.) Once the Home screen appears again, re-launch your application,
+ and the application launches with the new locale. </p>
+
+<h3 id="test-for-default">Testing for Default Resources</h3>
+<p>Here's how to test whether an application includes every string
+resource that it needs:  </p>
+<ol><li>Set the emulator or device to a language that your application does not
+support. For example, if the application has French strings in
+<code>res/values-fr/</code> but does not have any Spanish strings in
+<code>res/values-es/</code>, then set the emulator's locale to Spanish.
+(You can use the Custom Locale application to set the emulator to an
+unsupported locale.)</li>
+<li>Run the application.</li>
+<li>If the application shows an error message and a Force Close button, it might
+be looking for a string that is not available. Make sure that your
+<code>res/values/strings.xml</code> file includes a definition for
+every string that the application uses.</li>
+</ol>
+</p>
+
+<p>If the test is successful, repeat it for other types of
+configurations. For example, if the application has a layout file called
+<code>res/layout-land/main.xml</code> but does not contain a file called
+<code>res/layout-port/main.xml</code>, then set the emulator or device to
+portrait orientation and see if the application will run.
diff --git a/docs/html/guide/topics/resources/string-resource.jd b/docs/html/guide/topics/resources/string-resource.jd
index 743e692..6e874d0 100644
--- a/docs/html/guide/topics/resources/string-resource.jd
+++ b/docs/html/guide/topics/resources/string-resource.jd
@@ -1,6 +1,7 @@
 page.title=String Resources
 parent.title=Resource Types
 parent.link=available-resources.html
+page.metaDescription=Explains how to use string resources in your UI.
 @jd:body
 
 <p>A string resource provides text strings for your application
diff --git a/docs/html/guide/topics/security/normal-permissions.jd b/docs/html/guide/topics/security/normal-permissions.jd
index 9f7a3c6..afdddf2 100644
--- a/docs/html/guide/topics/security/normal-permissions.jd
+++ b/docs/html/guide/topics/security/normal-permissions.jd
@@ -99,9 +99,6 @@
   <li>{@link android.Manifest.permission#EXPAND_STATUS_BAR EXPAND_STATUS_BAR}
   </li>
 
-  <li>{@link android.Manifest.permission#FLASHLIGHT FLASHLIGHT}
-  </li>
-
   <li>{@link android.Manifest.permission#GET_PACKAGE_SIZE GET_PACKAGE_SIZE}
   </li>
 
diff --git a/docs/html/guide/topics/security/permissions.jd b/docs/html/guide/topics/security/permissions.jd
index ea54d08..ecbe33a 100644
--- a/docs/html/guide/topics/security/permissions.jd
+++ b/docs/html/guide/topics/security/permissions.jd
@@ -245,8 +245,6 @@
 <li>Binding to or starting a service.</li>
 </ul>
 
-
-
 <h3 id="auto-adjustments">Automatic permission adjustments</h3>
 
 <p> Over time,
@@ -290,7 +288,7 @@
     <em>Normal</em> permissions cover areas where your app needs to access data
     or resources outside the app's sandbox, but where there's very little risk
     to the user's privacy or the operation of other apps. For example,
-    permission to turn on the flashlight is a normal permission. If an app
+    permission to set the time zone is a normal permission. If an app
     declares that it needs a normal permission, the system automatically grants
     the permission to the app. For a full listing of the current normal
     permissions, see <a href="normal-permissions.html">Normal permissions</a>.
@@ -336,7 +334,7 @@
   If the device is running Android 6.0 (API level 23) and the app's <a href=
   "{@docRoot}guide/topics/manifest/uses-sdk-element.html#target"
   ><code>targetSdkVersion</code></a> is 23 or higher, the following system
-  behavior applies when you app requests a dangerous permission:
+  behavior applies when your app requests a dangerous permission:
 </p>
 
 <ul>
@@ -365,7 +363,7 @@
   Any permission can belong to a permission group, including normal permissions
   and permissions defined by your app.
   However, a permission's group only affects the user experience if the
-  perimission is dangerous. You can ignore the permission group for normal
+  permission is dangerous. You can ignore the permission group for normal
   permissions.
 </p>
 
@@ -375,7 +373,7 @@
   ><code>targetSdkVersion</code></a> is 22 or lower, the system asks the user
   to grant the permissions at install time. Once again, the system just tells
   the user what permission <em>groups</em> the app needs, not the individual
-  permissions
+  permissions.
 </p>
 
 <p class="table-caption" id="permission-groups">
@@ -779,10 +777,6 @@
 {@link android.content.Context#checkUriPermission Context.checkUriPermission()}
 methods.</p>
 
-
-
-
-
 <div class="next-docs">
 <div class="col-6">
   <h2 class="norule">Continue reading about:</h2>
diff --git a/docs/html/guide/topics/ui/custom-components.jd b/docs/html/guide/topics/ui/custom-components.jd
old mode 100644
new mode 100755
index b146098..b7249c5
--- a/docs/html/guide/topics/ui/custom-components.jd
+++ b/docs/html/guide/topics/ui/custom-components.jd
@@ -451,7 +451,7 @@
 perfect example, and the APIs for doing this might change from this early
 preview, but it does demonstrate the principles.</p>
 <p>If you haven't done so already, import the 
-NotePad sample into Eclipse (or
+NotePad sample into Android Studio (or
 just look at the source using the link provided). In particular look at the definition of
 <code>MyEditText</code> in the <a
 href="{@docRoot}resources/samples/NotePad/src/com/example/android/notepad/NoteEditor.html">NoteEditor.java</a>
diff --git a/docs/html/guide/topics/ui/declaring-layout.jd b/docs/html/guide/topics/ui/declaring-layout.jd
old mode 100644
new mode 100755
index d557e7f..2d4134d
--- a/docs/html/guide/topics/ui/declaring-layout.jd
+++ b/docs/html/guide/topics/ui/declaring-layout.jd
@@ -54,9 +54,6 @@
 <div class="sidebox-wrapper">
 <div class="sidebox">
   <ul>
-  <li>The <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT
-  Plugin for Eclipse</a> offers a layout preview of your XML &mdash;
-  with the XML file opened, select the <strong>Layout</strong> tab.</li>
   <li>You should also try the
   <a href="{@docRoot}tools/debugging/debugging-ui.html#hierarchyViewer">Hierarchy Viewer</a> tool,
   for debugging layouts &mdash; it reveals layout property values,
diff --git a/docs/html/guide/topics/ui/index.jd b/docs/html/guide/topics/ui/index.jd
index f342b06..0725eb7 100644
--- a/docs/html/guide/topics/ui/index.jd
+++ b/docs/html/guide/topics/ui/index.jd
@@ -1,6 +1,6 @@
 page.title=User Interface
 page.landing=true
-page.landing.intro=Your app's user interface is everything that the user can see and interact with. Android provides a variety of pre-build UI components such as structured layout objects and UI controls that allow you to build the graphical user interface for your app. Android also provides other UI modules for special interfaces such as dialogs, notifications, and menus.  
+page.landing.intro=Your app's user interface is everything that the user can see and interact with. Android provides a variety of pre-built UI components such as structured layout objects and UI controls that allow you to build the graphical user interface for your app. Android also provides other UI modules for special interfaces such as dialogs, notifications, and menus.  
 page.landing.image=images/ui/ui_index.png
 page.landing.next=overview.html
 
@@ -10,7 +10,7 @@
 
   <div class="col-6">
     <h3>Blog Articles</h3>
-    
+
     <a href="http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html">
       <h4>Say Goodbye to the Menu Button</h4>
       <p>As Ice Cream Sandwich rolls out to more devices, it’s important that you begin to migrate
@@ -35,7 +35,7 @@
 
   <div class="col-6">
     <h3>Training</h3>
-    
+
     <a href="http://developer.android.com/training/implementing-navigation/index.html">
       <h4>Implementing Effective Navigation</h4>
       <p>This class shows you how to plan out the high-level screen hierarchy for your application
diff --git a/docs/html/guide/webapps/debugging.jd b/docs/html/guide/webapps/debugging.jd
old mode 100644
new mode 100755
index 3c95fc2..a74797d
--- a/docs/html/guide/webapps/debugging.jd
+++ b/docs/html/guide/webapps/debugging.jd
@@ -53,9 +53,7 @@
 those written using JavaScript {@code console} APIs.</p>
   <p>To run logcat and view messages, execute
 {@code adb logcat} from your Android SDK {@code tools/} directory, or, from DDMS, select
-<strong>Device > Run logcat</strong>. When using the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT
-plugin for Eclipse</a>, you can also view logcat messages by opening the Logcat view, available from
-<strong>Window > Show View > Other > Android > Logcat</strong>.</p>
+<strong>Device > Run logcat</strong>.</p>
   <p>See <a href="{@docRoot}tools/debugging/debugging-log.html">Debugging</a>
   for more information about <codelogcat</code>.</p>
 </div>
diff --git a/docs/html/images/brand/Google_Play_Store_48.png b/docs/html/images/brand/Google_Play_Store_48.png
deleted file mode 100644
index 2f0cfe0..0000000
--- a/docs/html/images/brand/Google_Play_Store_48.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/Google_Play_Store_600.png b/docs/html/images/brand/Google_Play_Store_600.png
deleted file mode 100644
index f748652..0000000
--- a/docs/html/images/brand/Google_Play_Store_600.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/Google_Play_Store_96.png b/docs/html/images/brand/Google_Play_Store_96.png
deleted file mode 100644
index 6e2c835..0000000
--- a/docs/html/images/brand/Google_Play_Store_96.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/af_generic_rgb_wo_45.png b/docs/html/images/brand/af_generic_rgb_wo_45.png
deleted file mode 100644
index bf774ab..0000000
--- a/docs/html/images/brand/af_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/af_generic_rgb_wo_60.png b/docs/html/images/brand/af_generic_rgb_wo_60.png
deleted file mode 100644
index 0487c7f..0000000
--- a/docs/html/images/brand/af_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ar_generic_rgb_wo_45.png b/docs/html/images/brand/ar_generic_rgb_wo_45.png
deleted file mode 100644
index c403608..0000000
--- a/docs/html/images/brand/ar_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ar_generic_rgb_wo_60.png b/docs/html/images/brand/ar_generic_rgb_wo_60.png
deleted file mode 100644
index 95e31eb..0000000
--- a/docs/html/images/brand/ar_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/be_generic_rgb_wo_45.png b/docs/html/images/brand/be_generic_rgb_wo_45.png
deleted file mode 100644
index bec6c7a..0000000
--- a/docs/html/images/brand/be_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/be_generic_rgb_wo_60.png b/docs/html/images/brand/be_generic_rgb_wo_60.png
deleted file mode 100644
index 53ad2a11..0000000
--- a/docs/html/images/brand/be_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/bg_generic_rgb_wo_45.png b/docs/html/images/brand/bg_generic_rgb_wo_45.png
deleted file mode 100644
index 9a27471..0000000
--- a/docs/html/images/brand/bg_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/bg_generic_rgb_wo_60.png b/docs/html/images/brand/bg_generic_rgb_wo_60.png
deleted file mode 100644
index 5143a66..0000000
--- a/docs/html/images/brand/bg_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ca_generic_rgb_wo_45.png b/docs/html/images/brand/ca_generic_rgb_wo_45.png
deleted file mode 100644
index 698a4cd..0000000
--- a/docs/html/images/brand/ca_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ca_generic_rgb_wo_60.png b/docs/html/images/brand/ca_generic_rgb_wo_60.png
deleted file mode 100644
index e943de1..0000000
--- a/docs/html/images/brand/ca_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/cs_generic_rgb_wo_45.png b/docs/html/images/brand/cs_generic_rgb_wo_45.png
deleted file mode 100644
index b97b805..0000000
--- a/docs/html/images/brand/cs_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/cs_generic_rgb_wo_60.png b/docs/html/images/brand/cs_generic_rgb_wo_60.png
deleted file mode 100644
index 9656c2e..0000000
--- a/docs/html/images/brand/cs_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/da_generic_rgb_wo_45.png b/docs/html/images/brand/da_generic_rgb_wo_45.png
deleted file mode 100644
index 541ba29..0000000
--- a/docs/html/images/brand/da_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/da_generic_rgb_wo_60.png b/docs/html/images/brand/da_generic_rgb_wo_60.png
deleted file mode 100644
index d974154..0000000
--- a/docs/html/images/brand/da_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/de_app_rgb_wo_45.png b/docs/html/images/brand/de_app_rgb_wo_45.png
deleted file mode 100644
index db48df2..0000000
--- a/docs/html/images/brand/de_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/de_app_rgb_wo_60.png b/docs/html/images/brand/de_app_rgb_wo_60.png
deleted file mode 100644
index 9e0f757..0000000
--- a/docs/html/images/brand/de_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/de_generic_rgb_wo_45.png b/docs/html/images/brand/de_generic_rgb_wo_45.png
deleted file mode 100644
index 1396f79..0000000
--- a/docs/html/images/brand/de_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/de_generic_rgb_wo_60.png b/docs/html/images/brand/de_generic_rgb_wo_60.png
deleted file mode 100644
index f2df4a4..0000000
--- a/docs/html/images/brand/de_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/el_generic_rgb_wo_45.png b/docs/html/images/brand/el_generic_rgb_wo_45.png
deleted file mode 100644
index adaea5f..0000000
--- a/docs/html/images/brand/el_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/el_generic_rgb_wo_60.png b/docs/html/images/brand/el_generic_rgb_wo_60.png
deleted file mode 100644
index 37ae3bc..0000000
--- a/docs/html/images/brand/el_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/en_app_rgb_wo_45.png b/docs/html/images/brand/en_app_rgb_wo_45.png
deleted file mode 100644
index 9891cbb..0000000
--- a/docs/html/images/brand/en_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/en_app_rgb_wo_60.png b/docs/html/images/brand/en_app_rgb_wo_60.png
deleted file mode 100644
index 649e782..0000000
--- a/docs/html/images/brand/en_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/en_generic_rgb_wo_45.png b/docs/html/images/brand/en_generic_rgb_wo_45.png
deleted file mode 100644
index 73dd393..0000000
--- a/docs/html/images/brand/en_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/en_generic_rgb_wo_60.png b/docs/html/images/brand/en_generic_rgb_wo_60.png
deleted file mode 100644
index 9a50aff..0000000
--- a/docs/html/images/brand/en_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es-419_app_rgb_wo_45.png b/docs/html/images/brand/es-419_app_rgb_wo_45.png
deleted file mode 100644
index 3fb9a3f..0000000
--- a/docs/html/images/brand/es-419_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es-419_app_rgb_wo_60.png b/docs/html/images/brand/es-419_app_rgb_wo_60.png
deleted file mode 100644
index 1dfb8200..0000000
--- a/docs/html/images/brand/es-419_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es-419_generic_rgb_wo_45.png b/docs/html/images/brand/es-419_generic_rgb_wo_45.png
deleted file mode 100644
index b89274d..0000000
--- a/docs/html/images/brand/es-419_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es-419_generic_rgb_wo_60.png b/docs/html/images/brand/es-419_generic_rgb_wo_60.png
deleted file mode 100644
index 23d7705..0000000
--- a/docs/html/images/brand/es-419_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es_app_rgb_wo_45.png b/docs/html/images/brand/es_app_rgb_wo_45.png
deleted file mode 100644
index ad5e61a..0000000
--- a/docs/html/images/brand/es_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es_app_rgb_wo_60.png b/docs/html/images/brand/es_app_rgb_wo_60.png
deleted file mode 100644
index 6796ad3..0000000
--- a/docs/html/images/brand/es_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es_generic_rgb_wo_45.png b/docs/html/images/brand/es_generic_rgb_wo_45.png
deleted file mode 100644
index b89274d..0000000
--- a/docs/html/images/brand/es_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/es_generic_rgb_wo_60.png b/docs/html/images/brand/es_generic_rgb_wo_60.png
deleted file mode 100644
index 23d7705..0000000
--- a/docs/html/images/brand/es_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/et_generic_rgb_wo_45.png b/docs/html/images/brand/et_generic_rgb_wo_45.png
deleted file mode 100644
index 0e267381..0000000
--- a/docs/html/images/brand/et_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/et_generic_rgb_wo_60.png b/docs/html/images/brand/et_generic_rgb_wo_60.png
deleted file mode 100644
index a99dee1..0000000
--- a/docs/html/images/brand/et_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fa_generic_rgb_wo_45.png b/docs/html/images/brand/fa_generic_rgb_wo_45.png
deleted file mode 100644
index 25827f6..0000000
--- a/docs/html/images/brand/fa_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fa_generic_rgb_wo_60.png b/docs/html/images/brand/fa_generic_rgb_wo_60.png
deleted file mode 100644
index 5118909..0000000
--- a/docs/html/images/brand/fa_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fi_generic_rgb_wo_45.png b/docs/html/images/brand/fi_generic_rgb_wo_45.png
deleted file mode 100644
index 93dc4fc..0000000
--- a/docs/html/images/brand/fi_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fi_generic_rgb_wo_60.png b/docs/html/images/brand/fi_generic_rgb_wo_60.png
deleted file mode 100644
index 95eff07..0000000
--- a/docs/html/images/brand/fi_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fil_generic_rgb_wo_45.png b/docs/html/images/brand/fil_generic_rgb_wo_45.png
deleted file mode 100644
index 7e74e62..0000000
--- a/docs/html/images/brand/fil_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fil_generic_rgb_wo_60.png b/docs/html/images/brand/fil_generic_rgb_wo_60.png
deleted file mode 100644
index 8f02743..0000000
--- a/docs/html/images/brand/fil_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fr_app_rgb_wo_45.png b/docs/html/images/brand/fr_app_rgb_wo_45.png
deleted file mode 100644
index 14219e3..0000000
--- a/docs/html/images/brand/fr_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fr_app_rgb_wo_60.png b/docs/html/images/brand/fr_app_rgb_wo_60.png
deleted file mode 100644
index af58843..0000000
--- a/docs/html/images/brand/fr_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fr_generic_rgb_wo_45.png b/docs/html/images/brand/fr_generic_rgb_wo_45.png
deleted file mode 100644
index 3e1768f..0000000
--- a/docs/html/images/brand/fr_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/fr_generic_rgb_wo_60.png b/docs/html/images/brand/fr_generic_rgb_wo_60.png
deleted file mode 100644
index 5c307f5..0000000
--- a/docs/html/images/brand/fr_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/hr_generic_rgb_wo_45.png b/docs/html/images/brand/hr_generic_rgb_wo_45.png
deleted file mode 100644
index b8acaac..0000000
--- a/docs/html/images/brand/hr_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/hr_generic_rgb_wo_60.png b/docs/html/images/brand/hr_generic_rgb_wo_60.png
deleted file mode 100644
index 4fe6c7b..0000000
--- a/docs/html/images/brand/hr_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/hu_generic_rgb_wo_45.png b/docs/html/images/brand/hu_generic_rgb_wo_45.png
deleted file mode 100644
index 3b2184d..0000000
--- a/docs/html/images/brand/hu_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/hu_generic_rgb_wo_60.png b/docs/html/images/brand/hu_generic_rgb_wo_60.png
deleted file mode 100644
index d6572be..0000000
--- a/docs/html/images/brand/hu_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/id-in_generic_rgb_wo_45.png b/docs/html/images/brand/id-in_generic_rgb_wo_45.png
deleted file mode 100644
index 17ce069..0000000
--- a/docs/html/images/brand/id-in_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/id-in_generic_rgb_wo_60.png b/docs/html/images/brand/id-in_generic_rgb_wo_60.png
deleted file mode 100644
index ad067ce..0000000
--- a/docs/html/images/brand/id-in_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/it_app_rgb_wo_45.png b/docs/html/images/brand/it_app_rgb_wo_45.png
deleted file mode 100644
index 16a137e..0000000
--- a/docs/html/images/brand/it_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/it_app_rgb_wo_60.png b/docs/html/images/brand/it_app_rgb_wo_60.png
deleted file mode 100644
index 27123dc..0000000
--- a/docs/html/images/brand/it_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/it_generic_rgb_wo_45.png b/docs/html/images/brand/it_generic_rgb_wo_45.png
deleted file mode 100644
index ee5f85e..0000000
--- a/docs/html/images/brand/it_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/it_generic_rgb_wo_60.png b/docs/html/images/brand/it_generic_rgb_wo_60.png
deleted file mode 100644
index 03ea5ba..0000000
--- a/docs/html/images/brand/it_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/iw-he_generic_rgb_wo_45.png b/docs/html/images/brand/iw-he_generic_rgb_wo_45.png
deleted file mode 100644
index 1d03c77..0000000
--- a/docs/html/images/brand/iw-he_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/iw-he_generic_rgb_wo_60.png b/docs/html/images/brand/iw-he_generic_rgb_wo_60.png
deleted file mode 100644
index decfdae..0000000
--- a/docs/html/images/brand/iw-he_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ja_app_rgb_wo_45.png b/docs/html/images/brand/ja_app_rgb_wo_45.png
deleted file mode 100644
index 6af7582..0000000
--- a/docs/html/images/brand/ja_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ja_app_rgb_wo_60.png b/docs/html/images/brand/ja_app_rgb_wo_60.png
deleted file mode 100644
index e197e12..0000000
--- a/docs/html/images/brand/ja_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ja_generic_rgb_wo_45.png b/docs/html/images/brand/ja_generic_rgb_wo_45.png
deleted file mode 100644
index 5f5281a..0000000
--- a/docs/html/images/brand/ja_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ja_generic_rgb_wo_60.png b/docs/html/images/brand/ja_generic_rgb_wo_60.png
deleted file mode 100644
index fcb4c9c..0000000
--- a/docs/html/images/brand/ja_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ko_app_rgb_wo_45.png b/docs/html/images/brand/ko_app_rgb_wo_45.png
deleted file mode 100644
index f0b427e..0000000
--- a/docs/html/images/brand/ko_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ko_app_rgb_wo_60.png b/docs/html/images/brand/ko_app_rgb_wo_60.png
deleted file mode 100644
index 6ccb673..0000000
--- a/docs/html/images/brand/ko_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ko_generic_rgb_wo_45.png b/docs/html/images/brand/ko_generic_rgb_wo_45.png
deleted file mode 100644
index 61ae04a..0000000
--- a/docs/html/images/brand/ko_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ko_generic_rgb_wo_60.png b/docs/html/images/brand/ko_generic_rgb_wo_60.png
deleted file mode 100644
index 9c14e36..0000000
--- a/docs/html/images/brand/ko_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/lt_generic_rgb_wo_45.png b/docs/html/images/brand/lt_generic_rgb_wo_45.png
deleted file mode 100644
index 96564d5..0000000
--- a/docs/html/images/brand/lt_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/lt_generic_rgb_wo_60.png b/docs/html/images/brand/lt_generic_rgb_wo_60.png
deleted file mode 100644
index 2c6c1bf..0000000
--- a/docs/html/images/brand/lt_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/lv_generic_rgb_wo_45.png b/docs/html/images/brand/lv_generic_rgb_wo_45.png
deleted file mode 100644
index 8182ca5..0000000
--- a/docs/html/images/brand/lv_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/lv_generic_rgb_wo_60.png b/docs/html/images/brand/lv_generic_rgb_wo_60.png
deleted file mode 100644
index 5c0b3d2..0000000
--- a/docs/html/images/brand/lv_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ms_generic_rgb_wo_45.png b/docs/html/images/brand/ms_generic_rgb_wo_45.png
deleted file mode 100644
index d6ccc6b..0000000
--- a/docs/html/images/brand/ms_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ms_generic_rgb_wo_60.png b/docs/html/images/brand/ms_generic_rgb_wo_60.png
deleted file mode 100644
index 6e1c34d..0000000
--- a/docs/html/images/brand/ms_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/nl_app_rgb_wo_45.png b/docs/html/images/brand/nl_app_rgb_wo_45.png
deleted file mode 100644
index f06ed04..0000000
--- a/docs/html/images/brand/nl_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/nl_app_rgb_wo_60.png b/docs/html/images/brand/nl_app_rgb_wo_60.png
deleted file mode 100644
index f2c797d..0000000
--- a/docs/html/images/brand/nl_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/nl_generic_rgb_wo_45.png b/docs/html/images/brand/nl_generic_rgb_wo_45.png
deleted file mode 100644
index 6b5826d..0000000
--- a/docs/html/images/brand/nl_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/nl_generic_rgb_wo_60.png b/docs/html/images/brand/nl_generic_rgb_wo_60.png
deleted file mode 100644
index cb11afda..0000000
--- a/docs/html/images/brand/nl_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/no_generic_rgb_wo_45.png b/docs/html/images/brand/no_generic_rgb_wo_45.png
deleted file mode 100644
index fb390d8..0000000
--- a/docs/html/images/brand/no_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/no_generic_rgb_wo_60.png b/docs/html/images/brand/no_generic_rgb_wo_60.png
deleted file mode 100644
index e83dce7..0000000
--- a/docs/html/images/brand/no_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pl_generic_rgb_wo_45.png b/docs/html/images/brand/pl_generic_rgb_wo_45.png
deleted file mode 100644
index 78caded..0000000
--- a/docs/html/images/brand/pl_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pl_generic_rgb_wo_60.png b/docs/html/images/brand/pl_generic_rgb_wo_60.png
deleted file mode 100644
index 2d956fb..0000000
--- a/docs/html/images/brand/pl_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-br_app_rgb_wo_45.png b/docs/html/images/brand/pt-br_app_rgb_wo_45.png
deleted file mode 100644
index 065998b..0000000
--- a/docs/html/images/brand/pt-br_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-br_app_rgb_wo_60.png b/docs/html/images/brand/pt-br_app_rgb_wo_60.png
deleted file mode 100644
index 1ce0a6c..0000000
--- a/docs/html/images/brand/pt-br_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-br_generic_rgb_wo_45.png b/docs/html/images/brand/pt-br_generic_rgb_wo_45.png
deleted file mode 100644
index a661d44..0000000
--- a/docs/html/images/brand/pt-br_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-br_generic_rgb_wo_60.png b/docs/html/images/brand/pt-br_generic_rgb_wo_60.png
deleted file mode 100644
index 402af71..0000000
--- a/docs/html/images/brand/pt-br_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-pt_app_rgb_wo_45.png b/docs/html/images/brand/pt-pt_app_rgb_wo_45.png
deleted file mode 100644
index 0b50959..0000000
--- a/docs/html/images/brand/pt-pt_app_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-pt_app_rgb_wo_60.png b/docs/html/images/brand/pt-pt_app_rgb_wo_60.png
deleted file mode 100644
index 65dd887..0000000
--- a/docs/html/images/brand/pt-pt_app_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-pt_generic_rgb_wo_45.png b/docs/html/images/brand/pt-pt_generic_rgb_wo_45.png
deleted file mode 100644
index a616cf1..0000000
--- a/docs/html/images/brand/pt-pt_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/pt-pt_generic_rgb_wo_60.png b/docs/html/images/brand/pt-pt_generic_rgb_wo_60.png
deleted file mode 100644
index 36a7b83..0000000
--- a/docs/html/images/brand/pt-pt_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ro_generic_rgb_wo_45.png b/docs/html/images/brand/ro_generic_rgb_wo_45.png
deleted file mode 100644
index c18a548..0000000
--- a/docs/html/images/brand/ro_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ro_generic_rgb_wo_60.png b/docs/html/images/brand/ro_generic_rgb_wo_60.png
deleted file mode 100644
index b8f3433..0000000
--- a/docs/html/images/brand/ro_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ru_generic_rgb_wo_45.png b/docs/html/images/brand/ru_generic_rgb_wo_45.png
deleted file mode 100644
index c049ddb..0000000
--- a/docs/html/images/brand/ru_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/ru_generic_rgb_wo_60.png b/docs/html/images/brand/ru_generic_rgb_wo_60.png
deleted file mode 100644
index e00c276..0000000
--- a/docs/html/images/brand/ru_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sk_generic_rgb_wo_45.png b/docs/html/images/brand/sk_generic_rgb_wo_45.png
deleted file mode 100644
index 27ce06a..0000000
--- a/docs/html/images/brand/sk_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sk_generic_rgb_wo_60.png b/docs/html/images/brand/sk_generic_rgb_wo_60.png
deleted file mode 100644
index 8591f2c..0000000
--- a/docs/html/images/brand/sk_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sl_generic_rgb_wo_45.png b/docs/html/images/brand/sl_generic_rgb_wo_45.png
deleted file mode 100644
index 115a99d..0000000
--- a/docs/html/images/brand/sl_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sl_generic_rgb_wo_60.png b/docs/html/images/brand/sl_generic_rgb_wo_60.png
deleted file mode 100644
index 37c2e52..0000000
--- a/docs/html/images/brand/sl_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sr_generic_rgb_wo_45.png b/docs/html/images/brand/sr_generic_rgb_wo_45.png
deleted file mode 100644
index 86dba47..0000000
--- a/docs/html/images/brand/sr_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sr_generic_rgb_wo_60.png b/docs/html/images/brand/sr_generic_rgb_wo_60.png
deleted file mode 100644
index 67806da..0000000
--- a/docs/html/images/brand/sr_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sv_generic_rgb_wo_45.png b/docs/html/images/brand/sv_generic_rgb_wo_45.png
deleted file mode 100644
index fb390d8..0000000
--- a/docs/html/images/brand/sv_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sv_generic_rgb_wo_60.png b/docs/html/images/brand/sv_generic_rgb_wo_60.png
deleted file mode 100644
index e83dce7..0000000
--- a/docs/html/images/brand/sv_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sw_generic_rgb_wo_45.png b/docs/html/images/brand/sw_generic_rgb_wo_45.png
deleted file mode 100644
index c7deecc..0000000
--- a/docs/html/images/brand/sw_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/sw_generic_rgb_wo_60.png b/docs/html/images/brand/sw_generic_rgb_wo_60.png
deleted file mode 100644
index 9c0d057..0000000
--- a/docs/html/images/brand/sw_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/th_generic_rgb_wo_45.png b/docs/html/images/brand/th_generic_rgb_wo_45.png
deleted file mode 100644
index 803b6c5..0000000
--- a/docs/html/images/brand/th_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/th_generic_rgb_wo_60.png b/docs/html/images/brand/th_generic_rgb_wo_60.png
deleted file mode 100644
index 6e36e02..0000000
--- a/docs/html/images/brand/th_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/tr_generic_rgb_wo_45.png b/docs/html/images/brand/tr_generic_rgb_wo_45.png
deleted file mode 100644
index baa8394..0000000
--- a/docs/html/images/brand/tr_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/tr_generic_rgb_wo_60.png b/docs/html/images/brand/tr_generic_rgb_wo_60.png
deleted file mode 100644
index 63fa31f..0000000
--- a/docs/html/images/brand/tr_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/uk_generic_rgb_wo_45.png b/docs/html/images/brand/uk_generic_rgb_wo_45.png
deleted file mode 100644
index 68c111f..0000000
--- a/docs/html/images/brand/uk_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/uk_generic_rgb_wo_60.png b/docs/html/images/brand/uk_generic_rgb_wo_60.png
deleted file mode 100644
index 918d70a..0000000
--- a/docs/html/images/brand/uk_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/vi_generic_rgb_wo_45.png b/docs/html/images/brand/vi_generic_rgb_wo_45.png
deleted file mode 100644
index e39d00a..0000000
--- a/docs/html/images/brand/vi_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/vi_generic_rgb_wo_60.png b/docs/html/images/brand/vi_generic_rgb_wo_60.png
deleted file mode 100644
index ba1e9a0..0000000
--- a/docs/html/images/brand/vi_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-cn_generic_rgb_wo_45.png b/docs/html/images/brand/zh-cn_generic_rgb_wo_45.png
deleted file mode 100644
index c7748de..0000000
--- a/docs/html/images/brand/zh-cn_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-cn_generic_rgb_wo_60.png b/docs/html/images/brand/zh-cn_generic_rgb_wo_60.png
deleted file mode 100644
index 0a0f91a..0000000
--- a/docs/html/images/brand/zh-cn_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-hk_generic_rgb_wo_45.png b/docs/html/images/brand/zh-hk_generic_rgb_wo_45.png
deleted file mode 100644
index c3d064c..0000000
--- a/docs/html/images/brand/zh-hk_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-hk_generic_rgb_wo_60.png b/docs/html/images/brand/zh-hk_generic_rgb_wo_60.png
deleted file mode 100644
index 2b072de..0000000
--- a/docs/html/images/brand/zh-hk_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-tw_generic_rgb_wo_45.png b/docs/html/images/brand/zh-tw_generic_rgb_wo_45.png
deleted file mode 100644
index 7bb2b09..0000000
--- a/docs/html/images/brand/zh-tw_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zh-tw_generic_rgb_wo_60.png b/docs/html/images/brand/zh-tw_generic_rgb_wo_60.png
deleted file mode 100644
index 0797c84b..0000000
--- a/docs/html/images/brand/zh-tw_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zu_generic_rgb_wo_45.png b/docs/html/images/brand/zu_generic_rgb_wo_45.png
deleted file mode 100644
index 1e9f7c7..0000000
--- a/docs/html/images/brand/zu_generic_rgb_wo_45.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/brand/zu_generic_rgb_wo_60.png b/docs/html/images/brand/zu_generic_rgb_wo_60.png
deleted file mode 100644
index 09f521b..0000000
--- a/docs/html/images/brand/zu_generic_rgb_wo_60.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/cards/card-install-banners_16x9_2x.png b/docs/html/images/cards/card-install-banners_16x9_2x.png
new file mode 100644
index 0000000..09ebc30
--- /dev/null
+++ b/docs/html/images/cards/card-install-banners_16x9_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-studio-modules_crop_2x.png b/docs/html/images/cards/card-studio-modules_crop_2x.png
new file mode 100644
index 0000000..98ddf1f
--- /dev/null
+++ b/docs/html/images/cards/card-studio-modules_crop_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-user-ids_2x.png b/docs/html/images/cards/card-user-ids_2x.png
new file mode 100644
index 0000000..d27098d
--- /dev/null
+++ b/docs/html/images/cards/card-user-ids_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-user-permissions_2x.png b/docs/html/images/cards/card-user-permissions_2x.png
new file mode 100644
index 0000000..899dc3d3
--- /dev/null
+++ b/docs/html/images/cards/card-user-permissions_2x.png
Binary files differ
diff --git a/docs/html/images/cards/card-user_2x.png b/docs/html/images/cards/card-user_2x.png
new file mode 100644
index 0000000..2888356
--- /dev/null
+++ b/docs/html/images/cards/card-user_2x.png
Binary files differ
diff --git a/docs/html/images/editorschoice_ann.png b/docs/html/images/editorschoice_ann.png
new file mode 100644
index 0000000..c4f2c06
--- /dev/null
+++ b/docs/html/images/editorschoice_ann.png
Binary files differ
diff --git a/docs/html/images/gp-about-0.jpg b/docs/html/images/gp-about-0.jpg
new file mode 100644
index 0000000..2dd6a8c
--- /dev/null
+++ b/docs/html/images/gp-about-0.jpg
Binary files differ
diff --git a/docs/html/images/gp-about-listing.jpg b/docs/html/images/gp-about-listing.jpg
new file mode 100644
index 0000000..256c051
--- /dev/null
+++ b/docs/html/images/gp-about-listing.jpg
Binary files differ
diff --git a/docs/html/images/gp-about-picks1.jpg b/docs/html/images/gp-about-picks1.jpg
new file mode 100644
index 0000000..555bd7b
--- /dev/null
+++ b/docs/html/images/gp-about-picks1.jpg
Binary files differ
diff --git a/docs/html/images/gp-about-picks2.jpg b/docs/html/images/gp-about-picks2.jpg
new file mode 100644
index 0000000..ec25e74
--- /dev/null
+++ b/docs/html/images/gp-about-picks2.jpg
Binary files differ
diff --git a/docs/html/images/gp-about-picks3.jpg b/docs/html/images/gp-about-picks3.jpg
new file mode 100644
index 0000000..eb57da9
--- /dev/null
+++ b/docs/html/images/gp-about-picks3.jpg
Binary files differ
diff --git a/docs/html/images/gp-about-top.jpg b/docs/html/images/gp-about-top.jpg
new file mode 100644
index 0000000..01a2744
--- /dev/null
+++ b/docs/html/images/gp-about-top.jpg
Binary files differ
diff --git a/docs/html/images/gp-devconsole-home.png b/docs/html/images/gp-devconsole-home.png
new file mode 100644
index 0000000..b29dc25
--- /dev/null
+++ b/docs/html/images/gp-devconsole-home.png
Binary files differ
diff --git a/docs/html/images/gp-rating-web.png b/docs/html/images/gp-rating-web.png
new file mode 100644
index 0000000..14582af
--- /dev/null
+++ b/docs/html/images/gp-rating-web.png
Binary files differ
diff --git a/docs/html/images/testing/testing-icon.png b/docs/html/images/testing/testing-icon.png
new file mode 100644
index 0000000..41a783b
--- /dev/null
+++ b/docs/html/images/testing/testing-icon.png
Binary files differ
diff --git a/docs/html/images/tools/am-alloctracker.png b/docs/html/images/tools/am-alloctracker.png
new file mode 100644
index 0000000..b94713d
--- /dev/null
+++ b/docs/html/images/tools/am-alloctracker.png
Binary files differ
diff --git a/docs/html/images/tools/am-androidmon.png b/docs/html/images/tools/am-androidmon.png
new file mode 100644
index 0000000..fc832b5
--- /dev/null
+++ b/docs/html/images/tools/am-androidmon.png
Binary files differ
diff --git a/docs/html/images/tools/am-cpumon.png b/docs/html/images/tools/am-cpumon.png
new file mode 100644
index 0000000..487c010
--- /dev/null
+++ b/docs/html/images/tools/am-cpumon.png
Binary files differ
diff --git a/docs/html/images/tools/am-domtree.png b/docs/html/images/tools/am-domtree.png
new file mode 100644
index 0000000..8a995af
--- /dev/null
+++ b/docs/html/images/tools/am-domtree.png
Binary files differ
diff --git a/docs/html/images/tools/am-dumpalloc.png b/docs/html/images/tools/am-dumpalloc.png
new file mode 100644
index 0000000..d0d18e7
--- /dev/null
+++ b/docs/html/images/tools/am-dumpalloc.png
Binary files differ
diff --git a/docs/html/images/tools/am-gc.png b/docs/html/images/tools/am-gc.png
new file mode 100644
index 0000000..2ae4858
--- /dev/null
+++ b/docs/html/images/tools/am-gc.png
Binary files differ
diff --git a/docs/html/images/tools/am-gpumon.png b/docs/html/images/tools/am-gpumon.png
new file mode 100644
index 0000000..ed1e3df
--- /dev/null
+++ b/docs/html/images/tools/am-gpumon.png
Binary files differ
diff --git a/docs/html/images/tools/am-hprofanalyzer.png b/docs/html/images/tools/am-hprofanalyzer.png
new file mode 100644
index 0000000..9c2cb43
--- /dev/null
+++ b/docs/html/images/tools/am-hprofanalyzer.png
Binary files differ
diff --git a/docs/html/images/tools/am-hprofviewer.png b/docs/html/images/tools/am-hprofviewer.png
new file mode 100644
index 0000000..342590f
--- /dev/null
+++ b/docs/html/images/tools/am-hprofviewer.png
Binary files differ
diff --git a/docs/html/images/tools/am-ialloctracking.png b/docs/html/images/tools/am-ialloctracking.png
new file mode 100644
index 0000000..dc7ac37
--- /dev/null
+++ b/docs/html/images/tools/am-ialloctracking.png
Binary files differ
diff --git a/docs/html/images/tools/am-iclear.png b/docs/html/images/tools/am-iclear.png
new file mode 100644
index 0000000..aefb365
--- /dev/null
+++ b/docs/html/images/tools/am-iclear.png
Binary files differ
diff --git a/docs/html/images/tools/am-icon.png b/docs/html/images/tools/am-icon.png
new file mode 100644
index 0000000..cd67a6a
--- /dev/null
+++ b/docs/html/images/tools/am-icon.png
Binary files differ
diff --git a/docs/html/images/tools/am-idom.png b/docs/html/images/tools/am-idom.png
new file mode 100644
index 0000000..d15d674
--- /dev/null
+++ b/docs/html/images/tools/am-idom.png
Binary files differ
diff --git a/docs/html/images/tools/am-idownstack.png b/docs/html/images/tools/am-idownstack.png
new file mode 100644
index 0000000..14e1a31
--- /dev/null
+++ b/docs/html/images/tools/am-idownstack.png
Binary files differ
diff --git a/docs/html/images/tools/am-idump.png b/docs/html/images/tools/am-idump.png
new file mode 100644
index 0000000..d364c03
--- /dev/null
+++ b/docs/html/images/tools/am-idump.png
Binary files differ
diff --git a/docs/html/images/tools/am-idumpend.png b/docs/html/images/tools/am-idumpend.png
new file mode 100644
index 0000000..e3261a5
--- /dev/null
+++ b/docs/html/images/tools/am-idumpend.png
Binary files differ
diff --git a/docs/html/images/tools/am-idumpstart.png b/docs/html/images/tools/am-idumpstart.png
new file mode 100644
index 0000000..b6fa667
--- /dev/null
+++ b/docs/html/images/tools/am-idumpstart.png
Binary files differ
diff --git a/docs/html/images/tools/am-igc.png b/docs/html/images/tools/am-igc.png
new file mode 100644
index 0000000..742d27d
--- /dev/null
+++ b/docs/html/images/tools/am-igc.png
Binary files differ
diff --git a/docs/html/images/tools/am-igcroot.png b/docs/html/images/tools/am-igcroot.png
new file mode 100644
index 0000000..6af7355
--- /dev/null
+++ b/docs/html/images/tools/am-igcroot.png
Binary files differ
diff --git a/docs/html/images/tools/am-igear.png b/docs/html/images/tools/am-igear.png
new file mode 100644
index 0000000..e7f8a2b
--- /dev/null
+++ b/docs/html/images/tools/am-igear.png
Binary files differ
diff --git a/docs/html/images/tools/am-ihide.png b/docs/html/images/tools/am-ihide.png
new file mode 100644
index 0000000..d8f5f01
--- /dev/null
+++ b/docs/html/images/tools/am-ihide.png
Binary files differ
diff --git a/docs/html/images/tools/am-ijumptosource.png b/docs/html/images/tools/am-ijumptosource.png
new file mode 100644
index 0000000..5f37477
--- /dev/null
+++ b/docs/html/images/tools/am-ijumptosource.png
Binary files differ
diff --git a/docs/html/images/tools/am-imethodtrace.png b/docs/html/images/tools/am-imethodtrace.png
new file mode 100644
index 0000000..96fe34a
--- /dev/null
+++ b/docs/html/images/tools/am-imethodtrace.png
Binary files differ
diff --git a/docs/html/images/tools/am-ipause.png b/docs/html/images/tools/am-ipause.png
new file mode 100644
index 0000000..258eca8
--- /dev/null
+++ b/docs/html/images/tools/am-ipause.png
Binary files differ
diff --git a/docs/html/images/tools/am-iperformanalysis.png b/docs/html/images/tools/am-iperformanalysis.png
new file mode 100644
index 0000000..58ebcbb
--- /dev/null
+++ b/docs/html/images/tools/am-iperformanalysis.png
Binary files differ
diff --git a/docs/html/images/tools/am-iprint.png b/docs/html/images/tools/am-iprint.png
new file mode 100644
index 0000000..65525a8
--- /dev/null
+++ b/docs/html/images/tools/am-iprint.png
Binary files differ
diff --git a/docs/html/images/tools/am-irestart.png b/docs/html/images/tools/am-irestart.png
new file mode 100644
index 0000000..916402c
--- /dev/null
+++ b/docs/html/images/tools/am-irestart.png
Binary files differ
diff --git a/docs/html/images/tools/am-iscreencapture.png b/docs/html/images/tools/am-iscreencapture.png
new file mode 100644
index 0000000..68135a7
--- /dev/null
+++ b/docs/html/images/tools/am-iscreencapture.png
Binary files differ
diff --git a/docs/html/images/tools/am-iscrollend.png b/docs/html/images/tools/am-iscrollend.png
new file mode 100644
index 0000000..4db6e23
--- /dev/null
+++ b/docs/html/images/tools/am-iscrollend.png
Binary files differ
diff --git a/docs/html/images/tools/am-isearch.png b/docs/html/images/tools/am-isearch.png
new file mode 100644
index 0000000..b792fc3
--- /dev/null
+++ b/docs/html/images/tools/am-isearch.png
Binary files differ
diff --git a/docs/html/images/tools/am-isoftwraps.png b/docs/html/images/tools/am-isoftwraps.png
new file mode 100644
index 0000000..ce0b24f
--- /dev/null
+++ b/docs/html/images/tools/am-isoftwraps.png
Binary files differ
diff --git a/docs/html/images/tools/am-isysteminfo.png b/docs/html/images/tools/am-isysteminfo.png
new file mode 100644
index 0000000..37d77db
--- /dev/null
+++ b/docs/html/images/tools/am-isysteminfo.png
Binary files differ
diff --git a/docs/html/images/tools/am-iterminate.png b/docs/html/images/tools/am-iterminate.png
new file mode 100644
index 0000000..238ba86
--- /dev/null
+++ b/docs/html/images/tools/am-iterminate.png
Binary files differ
diff --git a/docs/html/images/tools/am-iupstack.png b/docs/html/images/tools/am-iupstack.png
new file mode 100644
index 0000000..ca362e9
--- /dev/null
+++ b/docs/html/images/tools/am-iupstack.png
Binary files differ
diff --git a/docs/html/images/tools/am-ivideo.png b/docs/html/images/tools/am-ivideo.png
new file mode 100644
index 0000000..901eaf1
--- /dev/null
+++ b/docs/html/images/tools/am-ivideo.png
Binary files differ
diff --git a/docs/html/images/tools/am-logcatmon.png b/docs/html/images/tools/am-logcatmon.png
new file mode 100644
index 0000000..b0de41a
--- /dev/null
+++ b/docs/html/images/tools/am-logcatmon.png
Binary files differ
diff --git a/docs/html/images/tools/am-methodtrace.png b/docs/html/images/tools/am-methodtrace.png
new file mode 100644
index 0000000..8d5ca4e
--- /dev/null
+++ b/docs/html/images/tools/am-methodtrace.png
Binary files differ
diff --git a/docs/html/images/tools/am-networkmon.png b/docs/html/images/tools/am-networkmon.png
new file mode 100644
index 0000000..95b3a5b
--- /dev/null
+++ b/docs/html/images/tools/am-networkmon.png
Binary files differ
diff --git a/docs/html/images/tools/and-studio_feat-gradle_2x.png b/docs/html/images/tools/and-studio_feat-gradle_2x.png
new file mode 100644
index 0000000..b4821b6
--- /dev/null
+++ b/docs/html/images/tools/and-studio_feat-gradle_2x.png
Binary files differ
diff --git a/docs/html/images/tools/and-studio_shortcuts-included_2x.png b/docs/html/images/tools/and-studio_shortcuts-included_2x.png
new file mode 100644
index 0000000..8d4e30b
--- /dev/null
+++ b/docs/html/images/tools/and-studio_shortcuts-included_2x.png
Binary files differ
diff --git a/docs/html/images/tools/as-api-level-preview.png b/docs/html/images/tools/as-api-level-preview.png
new file mode 100644
index 0000000..602a6ad
--- /dev/null
+++ b/docs/html/images/tools/as-api-level-preview.png
Binary files differ
diff --git a/docs/html/images/tools/codeeditor-low.gif b/docs/html/images/tools/codeeditor-low.gif
new file mode 100644
index 0000000..50d840c
--- /dev/null
+++ b/docs/html/images/tools/codeeditor-low.gif
Binary files differ
diff --git a/docs/html/images/tools/image-out.png b/docs/html/images/tools/image-out.png
new file mode 100644
index 0000000..0373b16
--- /dev/null
+++ b/docs/html/images/tools/image-out.png
Binary files differ
diff --git a/docs/html/images/tools/studio-translations-editor.png b/docs/html/images/tools/studio-translations-editor.png
new file mode 100644
index 0000000..22722d2
--- /dev/null
+++ b/docs/html/images/tools/studio-translations-editor.png
Binary files differ
diff --git a/docs/html/images/tools/trim.png b/docs/html/images/tools/trim.png
new file mode 100644
index 0000000..8420dd4
--- /dev/null
+++ b/docs/html/images/tools/trim.png
Binary files differ
diff --git a/docs/html/images/topdev_ann.png b/docs/html/images/topdev_ann.png
new file mode 100644
index 0000000..9564387e
--- /dev/null
+++ b/docs/html/images/topdev_ann.png
Binary files differ
diff --git a/docs/html/images/training/articles/user-data-overview-permissions-flow01.jpg b/docs/html/images/training/articles/user-data-overview-permissions-flow01.jpg
new file mode 100644
index 0000000..e3b192b
--- /dev/null
+++ b/docs/html/images/training/articles/user-data-overview-permissions-flow01.jpg
Binary files differ
diff --git a/docs/html/images/training/articles/user-data-overview-permissions-flow02.png b/docs/html/images/training/articles/user-data-overview-permissions-flow02.png
new file mode 100644
index 0000000..f572a44
--- /dev/null
+++ b/docs/html/images/training/articles/user-data-overview-permissions-flow02.png
Binary files differ
diff --git a/docs/html/images/training/articles/user-data-overview-permissions-groups.png b/docs/html/images/training/articles/user-data-overview-permissions-groups.png
new file mode 100644
index 0000000..5996489
--- /dev/null
+++ b/docs/html/images/training/articles/user-data-overview-permissions-groups.png
Binary files differ
diff --git a/docs/html/images/training/articles/user-data-overview-permissions-usage.jpg b/docs/html/images/training/articles/user-data-overview-permissions-usage.jpg
new file mode 100644
index 0000000..0732369
--- /dev/null
+++ b/docs/html/images/training/articles/user-data-overview-permissions-usage.jpg
Binary files differ
diff --git a/docs/html/images/training/firstapp/edittext_gravity.png b/docs/html/images/training/firstapp/edittext_gravity.png
index bc4f7ee..fcf0504 100644
--- a/docs/html/images/training/firstapp/edittext_gravity.png
+++ b/docs/html/images/training/firstapp/edittext_gravity.png
Binary files differ
diff --git a/docs/html/images/training/firstapp/edittext_wrap.png b/docs/html/images/training/firstapp/edittext_wrap.png
index fe56731..51f34f4 100644
--- a/docs/html/images/training/firstapp/edittext_wrap.png
+++ b/docs/html/images/training/firstapp/edittext_wrap.png
Binary files differ
diff --git a/docs/html/images/training/tv/playback/guided-step-screen-2x.png b/docs/html/images/training/tv/playback/guided-step-screen-2x.png
new file mode 100644
index 0000000..e13d97a
--- /dev/null
+++ b/docs/html/images/training/tv/playback/guided-step-screen-2x.png
Binary files differ
diff --git a/docs/html/images/training/tv/playback/guided-step-screen.png b/docs/html/images/training/tv/playback/guided-step-screen.png
new file mode 100644
index 0000000..3025fe1
--- /dev/null
+++ b/docs/html/images/training/tv/playback/guided-step-screen.png
Binary files differ
diff --git a/docs/html/images/training/tv/playback/now-playing-screen.png b/docs/html/images/training/tv/playback/now-playing-screen.png
new file mode 100644
index 0000000..3f6e252
--- /dev/null
+++ b/docs/html/images/training/tv/playback/now-playing-screen.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 6c1b30a..df81589 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -5,6 +5,16 @@
 
 @jd:body
 
+<script>
+  $(document).ready(function() {
+    if (useUpdatedTemplates) {
+      $("#useUpdatedTemplates").css("display","block");
+    } else {
+      $("#useOldTemplates").css("display","block");
+    }
+  })
+</script>
+
 <!-- <div class="dac-hero-carousel" data-carousel-query="collection:index/carousel">
 </div> -->
 <section class="dac-hero-carousel">
@@ -39,11 +49,39 @@
 </a>
 </article></section>
 
-<div class="actions-bar dac-expand dac-invert">
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
   <div class="wrap dac-offset-parent">
     <a class="dac-fab dac-scroll-button" data-scroll-button href="#build-apps">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
+    <ul class="dac-actions">
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}sdk/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Get the SDK
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}samples/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Browse sample code
+        </a>
+      </li>
+      <li class="dac-action">
+        <a class="dac-action-link" href="{@docRoot}distribute/stories/index.html">
+          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+          Watch stories
+        </a>
+      </li>
+    </ul>
+  </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none" class="actions-bar dac-expand dac-invert">
+  <div class="wrap dac-offset-parent">
+    <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+      <i class="dac-sprite dac-arrow-down-gray"></i>
+    </a>
     <div class="actions">
       <div><a href="{@docRoot}sdk/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
@@ -53,17 +91,15 @@
         <span class="dac-sprite dac-auto-chevron-large"></span>
         Browse Samples
       </a></div>
-      <div><a href="https://www.youtube.com/user/androiddevelopers">
+      <div><a href="{@docRoot}distribute/stories/index.html">
         <span class="dac-sprite dac-auto-chevron-large"></span>
-        Watch Videos
+        Watch Stories
       </a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
-</div><!-- end .actions-bar -->
+</div>
 
-
-
-<section class="dac-section dac-section-light" id="build-apps"><div class="wrap">
+<section class="dac-section dac-light" id="build-apps"><div class="wrap">
   <h1 class="dac-section-title">Build Beautiful Apps</h1>
   <div class="dac-section-subtitle">
     Resources to get you started with designing and developing for Android.
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 0f2ba3e..739b648 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -16,7 +16,7 @@
   "index/secondary/carousel": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=yJisuP94lHU",
+      "https://www.youtube.com/watch?v=yJisuP94lHU",
       "http://www.youtube.com/watch?v=rcU7VEs1hiE",
       "http://www.youtube.com/watch?v=JFlX9rW7Epc",
       "http://www.youtube.com/watch?v=4CqXCkcN_d4"
@@ -41,9 +41,9 @@
   "design/landing/latest": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=p4gmvHyuZzw",
-      "http://www.youtube.com/watch?v=YaG_ljfzeUw",
-      "http://www.youtube.com/watch?v=XOcCOBe8PTc"
+      "https://www.youtube.com/watch?v=p4gmvHyuZzw",
+      "https://www.youtube.com/watch?v=YaG_ljfzeUw",
+      "https://www.youtube.com/watch?v=XOcCOBe8PTc"
     ]
   },
   "design/landing/materialdesign": {
@@ -90,9 +90,9 @@
   "develop/landing/latest": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/2015/04/new-android-code-samples.html",
-      "http://android-developers.blogspot.com/2015/04/android-support-library-221.html",
-      "http://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html"
+      "https://android-developers.blogspot.com/2015/04/new-android-code-samples.html",
+      "https://android-developers.blogspot.com/2015/04/android-support-library-221.html",
+      "https://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html"
     ]
   },
   "develop/landing/devpatterns": {
@@ -106,9 +106,9 @@
   "develop/landing/performance": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=fEEulSk1kNY",
-      "http://www.youtube.com/watch?v=-3ry8PxcJJA",
-      "http://www.youtube.com/watch?v=_kKTGK-Cb_4"
+      "https://www.youtube.com/watch?v=fEEulSk1kNY",
+      "https://www.youtube.com/watch?v=-3ry8PxcJJA",
+      "https://www.youtube.com/watch?v=_kKTGK-Cb_4"
     ]
   },
   "develop/landing/buildwithgoogle": {
@@ -188,9 +188,9 @@
     "title": "",
     "resources": [
     "distribute/googleplay/guide.html",
-    "http://www.youtube.com/watch?v=JrR6o5tYMWQ",
+    "https://www.youtube.com/watch?v=JrR6o5tYMWQ",
     "https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "http://www.youtube.com/watch?v=yJisuP94lHU",
+    "https://www.youtube.com/watch?v=yJisuP94lHU",
     ]
   },
   "distribute/landing/googleplay": {
@@ -204,12 +204,12 @@
   "distribute/landing/more": {
     "title": "",
     "resources": [
-    "distribute/users/promote-with-ads.html",
-    "distribute/monetize/ads.html",
-    "distribute/analyze/index.html",
-    "distribute/engage/deep-linking.html",
-    "distribute/engage/easy-signin.html",
-    "https://cloud.google.com/docs/"
+      "distribute/users/promote-with-ads.html",
+      "distribute/monetize/ads.html",
+      "distribute/analyze/index.html",
+      "distribute/engage/deep-linking.html",
+      "distribute/engage/easy-signin.html",
+      "https://cloud.google.com/docs/"
     ]
   },
   "distribute/edu/videos/stories": {
@@ -231,17 +231,17 @@
   "distribute/edu/videos/experience": {
     "title": "",
     "resources": [
-      "http://youtu.be/vzvpcEffvaE"
+      "https://youtu.be/vzvpcEffvaE"
     ]
   },
 /*  "launch/static": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=1RIz-cmTQB4",
-      "http://www.youtube.com/watch?v=MVBMWDzyHAI",
-      "http://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html",
-      "http://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
-      "http://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
+      "https://www.youtube.com/watch?v=1RIz-cmTQB4",
+      "https://www.youtube.com/watch?v=MVBMWDzyHAI",
+      "https://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html",
+      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "https://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
       "distribute/essentials/quality/tablets.html",
       "distribute/users/build-buzz.html",
       "distribute/monetize/premium.html",
@@ -258,17 +258,17 @@
     "resources": [
       "https://www.youtube.com/watch?v=xelYnWcYkuE",
       "https://www.youtube.com/playlist?list=PLCOC_kP3nqGIHEgwm9mybvA04Vn4Cg9nn",
-      "http://googledevjp.blogspot.jp/2014/12/android-wear.html",
-      "http://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
-      "http://googledevjp.blogspot.jp/2014/12/google-play-65.html",
+      "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
+      "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
+      "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
       "intl/ja/distribute/googleplay/developer-console.html#alpha-beta",
       "intl/ja/distribute/googleplay/guide.html",
       "intl/ja/distribute/essentials/quality/core.html",
-      "http://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
+      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
       "intl/ja/support.html",
       "intl/ja/distribute/essentials/quality/wear.html",
       "intl/ja/training/tv/start/index.html",
-      "http://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
+      "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
       "intl/ja/distribute/monetize/ads.html"
     ]
   },
@@ -277,9 +277,9 @@
     "resources": [
       "https://www.youtube.com/watch?v=7X9Ue0Nfdh4&index=2&list=PL_WJkTbDHdBksDBRoqfeyLchEQqBAOlNl",
       "https://www.youtube.com/watch?v=83FpwuschCQ",
-      "http://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
-      "http://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
-      "http://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
+      "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
+      "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
+      "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
       "intl/ko/distribute/googleplay/developer-console.html#alpha-beta",
       "intl/ko/distribute/googleplay/guide.html",
       "intl/ko/distribute/essentials/quality/core.html",
@@ -313,7 +313,7 @@
   },
   "distribute/googleplay/gpfw": {
     "resources": [
-      "http://www.android.com/work/",
+      "https://www.android.com/work/",
       "https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
       "training/enterprise/index.html"
     ]
@@ -371,7 +371,6 @@
       "distribute/analyze/build-better-apps.html",
       "distribute/engage/gcm.html",
       "distribute/engage/beta.html"
-
     ]
   },
   "distribute/monetize": {
@@ -401,7 +400,7 @@
       "google/play-services/index.html",
       "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
       "https://developers.google.com/analytics/devguides/collection/android/",
-      "http://www.google.com/tagmanager/",
+      "https://www.google.com/tagmanager/",
       "https://github.com/googleanalytics/google-analytics-plugin-for-unity"
     ]
   },
@@ -493,14 +492,14 @@
   "distribute/tools/promote": {
     "resources": [
       "distribute/tools/promote/device-art.html",
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/linking.html"
     ]
   },
   "distribute/tools/promote/zhcn": {
     "resources": [
       "intl/zh-cn/distribute/tools/promote/device-art.html",
-      "intl/zh-cn/distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "intl/zh-cn/distribute/tools/promote/linking.html"
     ]
   },
@@ -523,7 +522,7 @@
   "distribute/tools/news": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/",
+      "https://android-developers.blogspot.com/",
       "https://plus.google.com/+AndroidDevelopers/"
     ]
   },
@@ -606,7 +605,7 @@
     "resources": [
       "https://developers.google.com/cast/docs/ux_guidelines",
       "https://developers.google.com/cast/docs/android_sender",
-      "http://www.github.com/googlecast"
+      "https://www.github.com/googlecast"
     ]
   },
   "distribute/googleplay/cardboard": {
@@ -614,13 +613,13 @@
     "resources": [
       "https://www.google.com/get/cardboard/get-cardboard/",
       "https://developers.google.com/cardboard/android/download",
-      "http://www.google.com/design/spec-vr"
+      "https://www.google.com/design/spec-vr"
     ]
   },
   "distribute/googleplay/gpfe/highlight": {
     "title": "About Google Play for Education",
     "resources": [
-      "http://youtu.be/vzvpcEffvaE"
+      "https://youtu.be/vzvpcEffvaE"
     ]
   },
   "distribute/googleplay/gpfe/dev/about": {
@@ -641,28 +640,28 @@
       "https://developers.google.com/edu/guidelines",
       "distribute/essentials/quality/tablets.html",
       "distribute/googleplay/developer-console.html",
-      "http://play.google.com/about/developer-distribution-agreement-addendum.html",
+      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
     ]
   },
   "distribute/googleplay/aboutgpfe/educators/about": {
     "title": "About Google Play for Education / Educators",
     "resources": [
-      "http://www.google.com/edu/tablets/",
-      "http://www.youtube.com/watch?v=haEmsMo0f3w"
+      "https://www.google.com/edu/tablets/",
+      "https://www.youtube.com/watch?v=haEmsMo0f3w"
     ]
   },
   "distribute/googleplay/aboutgpfe/educators": {
     "title": "About Google Play for Education / Educators",
     "resources": [
-      "http://www.google.com/edu/tablets/",
-      "http://youtu.be/vzvpcEffvaE"
+      "https://www.google.com/edu/tablets/",
+      "https://youtu.be/vzvpcEffvaE"
     ]
   },
   "distribute/googleplay/gettingstartedgpfe/educators": {
     "title": "About Google Play for Education / Educators",
     "resources": [
-      "http://www.google.com/edu/tablets/",
-      "http://youtu.be/vzvpcEffvaE"
+      "https://www.google.com/edu/tablets/",
+      "https://youtu.be/vzvpcEffvaE"
     ]
   },
   "distribute/essentials/eduessentials/developers": {
@@ -676,7 +675,7 @@
   "distribute/essentials/eduessentials/educators": {
     "title": "",
     "resources": [
-      "http://www.google.com/edu/tablets/",
+      "https://www.google.com/edu/tablets/",
       "distribute/essentials/quality/tablets.html",
     ]
   },
@@ -685,7 +684,7 @@
     "resources": [
       "design/index.html",
       "training/articles/perf-anr.html",
-      "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html"
+      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html"
      ]
   },
   "distribute/users/appinvites": {
@@ -708,21 +707,21 @@
   "distribute/users/buildbuzz": {
     "title": "",
     "resources": [
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/linking.html",
       "distribute/tools/promote/device-art.html",
-      "http://plus.google.com/+GooglePlay"
+      "https://plus.google.com/+GooglePlay"
     ]
   },
   "distribute/users/createagreatlisting": {
     "title": "",
     "resources": [
       "https://support.google.com/googleplay/android-developer/answer/1078870",
-      "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
       "distribute/tools/launch-checklist.html",
-      "http://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
-      "http://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
-      "http://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html"
+      "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
+      "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
+      "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html"
     ]
   },
   "distribute/users/buildcommunity": {
@@ -731,7 +730,7 @@
       "distribute/googleplay/developer-console.html",
       "https://support.google.com/groups/answer/46601",
       "https://support.google.com/plus/topic/2888488",
-      "http://www.youtube.com/yt/dev/"
+      "https://www.youtube.com/yt/dev/"
     ]
   },
   "distribute/users/appindexing": {
@@ -756,8 +755,8 @@
     "resources": [
       "https://support.google.com/admob/topic/2784623",
       "https://developers.google.com/mobile-ads-sdk/download",
-      "http://support.google.com/googleplay/android-developer/topic/2985714",
-      "http://analyticsacademy.withgoogle.com/mobile-app",
+      "https://support.google.com/googleplay/android-developer/topic/2985714",
+      "https://analyticsacademy.withgoogle.com/mobile-app",
       "https://support.google.com/analytics/answer/2611404",
       "https://support.google.com/admob/answer/3111064"
     ]
@@ -773,16 +772,16 @@
     "title": "",
     "resources": [
       "distribute/googleplay/developer-console.html",
-      "http://android-developers.blogspot.com/"
+      "https://android-developers.blogspot.com/"
     ]
   },
   "distribute/toolsreference/bestpractices/games": {
     "title": "",
     "resources": [
       "google/play-services/games.html",
-      "http://android-developers.blogspot.com/",
+      "https://android-developers.blogspot.com/",
       "distribute/googleplay/developer-console.html",
-      "http://www.youtube.com/watch?v=1RIz-cmTQB4"
+      "https://www.youtube.com/watch?v=1RIz-cmTQB4"
     ]
   },
   "distribute/essentials/corequalityguidelines/visualdesign": {
@@ -798,7 +797,7 @@
   "distribute/essentials/corequalityguidelines/functionality": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
+      "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
       "guide/components/tasks-and-back-stack.html",
       "training/basics/activity-lifecycle/recreating.html"
     ]
@@ -843,19 +842,19 @@
   "distribute/essentials/core/performance": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html",
+      "https://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html",
       "training/articles/perf-anr.html",
-      "http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html"
+      "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html"
     ]
   },
   "distribute/essentials/core/play": {
     "title": "",
     "resources": [
       "distribute/tools/launch-checklist.html",
-      "http://play.google.com/about/developer-content-policy.html?hl=zh-Hans",
+      "https://play.google.com/about/developer-content-policy.html?hl=zh-Hans",
       "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
       "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
       "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans"
     ]
   },
@@ -863,10 +862,10 @@
     "title": "",
     "resources": [
       "intl/zh-cn/distribute/tools/launch-checklist.html",
-      "http://play.google.com/about/developer-content-policy.html",
+      "https://play.google.com/about/developer-content-policy.html",
       "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
       "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
       "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans"
     ]
   },
@@ -940,7 +939,7 @@
     "resources": [
       "distribute/tools/launch-checklist.html",
       "https://play.google.com/apps/publish/",
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/device-art.html"
     ]
   },
@@ -949,14 +948,14 @@
     "resources": [
       "intl/zh-cn/distribute/tools/launch-checklist.html",
       "https://play.google.com/apps/publish/?hl=zh-Hans",
-      "intl/zh-cn/distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "intl/zh-cn/distribute/tools/promote/device-art.html"
     ]
   },
   "distribute/essentials/tabletguidelines/googleplay": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
       "google/play/filters.html"
     ]
   },
@@ -964,7 +963,7 @@
     "title": "",
     "resources": [
       "distribute/essentials/quality/core.html",
-      "http://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
       "distribute/tools/launch-checklist.html",
       "distribute/tools/promote/device-art.html"
     ]
@@ -974,14 +973,14 @@
     "resources": [
       "design/patterns/notifications.html",
       "distribute/engage/gcm.html",
-      "http://play.google.com/about/developer-content-policy.html"
+      "https://play.google.com/about/developer-content-policy.html"
     ]
   },
   "distribute/engage/analytics": {
     "title": "",
     "resources": [
-      "http://www.google.com/analytics/mobile/",
-      "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html",
+      "https://www.google.com/analytics/mobile/",
+      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html",
       "https://developers.google.com/analytics/devguides/collection/android/"
     ]
   },
@@ -1024,9 +1023,9 @@
       "distribute/tools/localization-checklist.html",
       "https://support.google.com/googleplay/android-developer/table/3541286",
       "distribute/stories/localization.html",
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/device-art.html",
-      "http://www.youtube.com/watch?v=SkHHPf3EdzE"
+      "https://www.youtube.com/watch?v=SkHHPf3EdzE"
     ]
   },
   "distribute/engage/gcm": {
@@ -1042,7 +1041,7 @@
       "https://developers.google.com/games/services/",
       "distribute/analyze/start.html",
       "distribute/googleplay/cardboard.html",
-      "http://www.google.com/admob/"
+      "https://www.google.com/admob/"
     ]
   },
   "distribute/engage/gplus": {
@@ -1080,9 +1079,9 @@
   "distribute/engage/video/more": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/yt/dev/",
+      "https://www.youtube.com/yt/dev/",
       "distribute/essentials/best-practices/games.html",
-      "http://www.youtube.com/watch?v=RRelFvc6Czo"
+      "https://www.youtube.com/watch?v=RRelFvc6Czo"
     ]
   },
   "distribute/engage/community": {
@@ -1095,15 +1094,15 @@
   "distribute/engage/kiwi": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=WWArLD6nqrk"
+      "https://www.youtube.com/watch?v=WWArLD6nqrk"
     ]
   },
   "distribute/toolsreference/gpfefaq": {
     "title": "",
     "resources": [
-      "http://www.google.com/edu/tablets/",
+      "https://www.google.com/edu/tablets/",
       "distribute/googleplay/edu/start.html",
-      "http://play.google.com/about/developer-distribution-agreement-addendum.html",
+      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
       "distribute/essentials/quality/core.html",
       "distribute/essentials/quality/tablets.html"
     ]
@@ -1123,7 +1122,7 @@
   "distribute/tools/loc/designforloc": {
     "title": "",
     "resources": [
-      "http://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
+      "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
       "guide/topics/resources/string-resource.html#Plurals",
       "guide/topics/resources/string-resource.html",
       "reference/java/util/Locale.html"
@@ -1134,7 +1133,7 @@
     "resources": [
       "guide/topics/resources/string-resource.html",
       "design/style/writing.html",
-      "http://en.wikipedia.org/wiki/XLIFF"
+      "https://en.wikipedia.org/wiki/XLIFF"
     ]
   },
   "distribute/toolsreference/localizationchecklist/managestrings/zhcn": {
@@ -1142,7 +1141,7 @@
     "resources": [
       "guide/topics/resources/string-resource.html",
       "intl/zh-cn/design/style/writing.html",
-      "http://en.wikipedia.org/wiki/XLIFF"
+      "https://en.wikipedia.org/wiki/XLIFF"
     ]
   },
   "distribute/toolsreference/localizationchecklist/translatestrings": {
@@ -1154,14 +1153,14 @@
   "distribute/toolsreference/localizationchecklist/preplaunch": {
     "title": "",
     "resources": [
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/device-art.html"
     ]
   },
   "distribute/toolsreference/localizationchecklist/preplaunch/zhcn": {
     "title": "",
     "resources": [
-      "intl/zh-cn/distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "intl/zh-cn/distribute/tools/promote/device-art.html"
     ]
   },
@@ -1260,7 +1259,7 @@
     "title": "",
     "resources": [
       "https://support.google.com/googleplay/android-developer/answer/1078870",
-      "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
     ]
   },
   "distribute/toolsreference/launchchecklist/productdetails": {
@@ -1273,14 +1272,14 @@
   "distribute/toolsreference/launchchecklist/badges": {
     "title": "",
     "resources": [
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/linking.html"
     ]
   },
   "distribute/toolsreference/launchchecklist/finalchecks": {
     "title": "",
     "resources": [
-      "http://play.google.com/about/developer-content-policy.html",
+      "https://play.google.com/about/developer-content-policy.html",
       "https://support.google.com/googleplay/android-developer/answer/113476",
       "support.html"
     ]
@@ -1294,9 +1293,6 @@
       "distribute/essentials/optimizing-your-app.html"
     ]
   },
-
-
-
   "distribute/toolsreference/launchchecklist/understanding/zhcn": {
     "title": "",
     "resources": [
@@ -1373,7 +1369,7 @@
     "title": "",
     "resources": [
       "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
-      "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
     ]
   },
   "distribute/toolsreference/launchchecklist/productdetails/zhcn": {
@@ -1386,14 +1382,14 @@
   "distribute/toolsreference/launchchecklist/badges/zhcn": {
     "title": "",
     "resources": [
-      "intl/zh-cn/distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "intl/zh-cn/distribute/tools/promote/linking.html"
     ]
   },
   "distribute/toolsreference/launchchecklist/finalchecks/zhcn": {
     "title": "",
     "resources": [
-      "http://play.google.com/about/developer-content-policy.html",
+      "https://play.google.com/about/developer-content-policy.html",
       "https://support.google.com/googleplay/android-developer/answer/113476?hl=zh-Hans",
       "support.html"
     ]
@@ -1438,9 +1434,9 @@
   "distribute/monetize/advertising": {
     "title": "",
     "resources": [
-      "http://www.google.com/ads/admob/#subid=us-en-et-dac",
-      "http://www.google.com/doubleclick/publishers/small-business/index.html",
-      "http://support.google.com/googleplay/android-developer/topic/2985714",
+      "https://www.google.com/ads/admob/#subid=us-en-et-dac",
+      "https://www.google.com/doubleclick/publishers/small-business/index.html",
+      "https://support.google.com/googleplay/android-developer/topic/2985714",
       "training/monetization/ads-and-ux.html"
     ]
   },
@@ -1448,8 +1444,8 @@
     "title": "",
     "resources": [
       "https://support.google.com/admob/topic/2784623",
-      "http://admob.blogspot.com/",
-      "http://analyticsacademy.withgoogle.com/mobile-app",
+      "https://admob.blogspot.com/",
+      "https://analyticsacademy.withgoogle.com/mobile-app",
     ]
   },
   "distribute/monetize/paymentmethods": {
@@ -1522,19 +1518,55 @@
       "distribute/googleplay/auto.html"
     ]
   },
+  "training/testing/overview": {
+    "title": "",
+    "resources": [
+      "training/testing/start/index.html",
+      "tools/testing/testing_android.html",
+      "https://www.youtube.com/watch?v=vdasFFfXKOY"
+    ]
+  },
+  "training/testing/tools": {
+    "title": "",
+    "resources": [
+      "tools/testing-support-library/index.html",
+      "tools/help/monkey.html",
+      "tools/help/monkeyrunner_concepts.html",
+      "tools/testing/testing_otheride.html",
+      "https://source.android.com/devices/tech/debug/dumpsys.html"
+    ]
+  },
+  "training/testing/techniques": {
+    "title": "",
+    "resources": [
+      "training/testing/ui-testing/index.html",
+      "training/testing/unit-testing/index.html",
+      "training/testing/performance.html"
+    ]
+  },
+  "training/testing/resources": {
+    "title": "",
+    "resources": [
+      "https://github.com/googlesamples/android-testing",
+      "https://www.youtube.com/watch?v=2I6fuD20qlY",
+      "https://codelabs.developers.google.com/codelabs/android-testing/index.html",
+      "https://github.com/googlesamples/android-testing-templates",
+      "https://google.github.io/android-testing-support-library"
+    ]
+  },
   "distribute/stories/games": {
     "title": "",
     "resources": [
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
-      "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf"
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf"
     ]
   },
   "overview/zhcn/1": {
@@ -1560,7 +1592,7 @@
   "overview/zhcn/3": {
     "title": "",
     "resources": [
-      "intl/zh-cn/distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
 
       "intl/zh-cn/distribute/tools/promote/device-art.html",
       "intl/zh-cn/distribute/tools/promote/linking.html",
@@ -1580,9 +1612,9 @@
   "overview/carousel/zhcn": {
     "title": "",
     "resources": [
-      "http://www.youtube.com/watch?v=vGV7FHGzpFU",
-      "http://www.youtube.com/watch?v=aqc3ZOTzpdk",
-      "http://www.youtube.com/watch?v=jaNrJ8uyLSc"
+      "https://www.youtube.com/watch?v=vGV7FHGzpFU",
+      "https://www.youtube.com/watch?v=aqc3ZOTzpdk",
+      "https://www.youtube.com/watch?v=jaNrJ8uyLSc"
     ]
   },
   "overview/1": {
@@ -1608,7 +1640,7 @@
   "overview/3": {
     "title": "",
     "resources": [
-      "distribute/tools/promote/badges.html",
+      "https://play.google.com/intl/en_us/badges/",
       "distribute/tools/promote/device-art.html",
       "distribute/tools/promote/linking.html",
       "distribute/tools/promote/brand.html",
@@ -1703,9 +1735,8 @@
     ]
   },
   "marshmallow/landing/more": {
-  "title": "",
-  "resources": [
-      "about/versions/marshmallow/android-6.0-changes.html",
+    "title": "",
+    "resources": [
       "training/permissions/requesting.html",
       "training/backup/autosyncapi.html",
       "training/monitoring-device-state/doze-standby.html",
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index 8e2f040..6c4423e 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -68,7 +68,7 @@
     "group":"",
     "keywords": [],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -93,7 +93,7 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/Idu7VcTTXfk/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/Idu7VcTTXfk/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -107,7 +107,7 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/IKhU180eJMo/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/IKhU180eJMo/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -136,7 +136,7 @@
     "title":"Cast sample apps",
     "titleFriendly":"",
     "summary":"Get example Google Cast applications for both senders and receivers.",
-    "url":"http://www.github.com/googlecast",
+    "url":"https://www.github.com/googlecast",
     "group":"",
     "keywords": ["cast", "samples"],
     "tags": [],
@@ -169,7 +169,7 @@
     "title":"Cardboard design guidelines",
     "titleFriendly":"",
     "summary":"Focus on overall usability and avoiding common VR pitfalls while creating an immersive experience of your own.",
-    "url":"http://www.google.com/design/spec-vr",
+    "url":"https://www.google.com/design/spec-vr",
     "group":"",
     "keywords": ["carboard","vr"],
     "tags": [],
@@ -231,7 +231,7 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/iokH4SAIfRw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/iokH4SAIfRw/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -245,7 +245,7 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/Eh2adsAyTKc/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/Eh2adsAyTKc/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -259,7 +259,7 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/_AZ6UcPz-_g/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/_AZ6UcPz-_g/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -273,43 +273,43 @@
       "#gpfe",
       "#googleplay"
     ],
-    "image":"http://i1.ytimg.com/vi/iulXz8QTD1g/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/iulXz8QTD1g/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"DesignBytes: Intro To Material Design",
     "titleFriendly":"",
     "summary":"These days, UI designers need to be thinking about phones, tablets, laptops, TVs, smartwatches, and beyond. In this DesignByte we talk about how Google designers have been working on making cross-platform and multi-screen design easier. We wanted to build a design system that felt at home on every screen, from the smallest watch to the largest TV.",
-    "url":"http://www.youtube.com/watch?v=p4gmvHyuZzw",
+    "url":"https://www.youtube.com/watch?v=p4gmvHyuZzw",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/p4gmvHyuZzw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/p4gmvHyuZzw/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"DesignBytes: Paper and Ink: The Materials that Matter",
     "titleFriendly":"",
     "summary":"Join Rich Fulcher to learn about the materials of material design. See how virtual paper and ink form the foundation of your tactile user interface and master the rules that govern their behaviour.",
-    "url":"http://www.youtube.com/watch?v=YaG_ljfzeUw",
+    "url":"https://www.youtube.com/watch?v=YaG_ljfzeUw",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/YaG_ljfzeUw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/YaG_ljfzeUw/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"DesignBytes: Material Design in the Google I/O App",
     "titleFriendly":"",
     "summary":"Roman Nurik shares details on the design process for the Google I/O 2014 app. To check out the app's source code, visit github.com/google/iosched.",
-    "url":"http://www.youtube.com/watch?v=XOcCOBe8PTc",
+    "url":"https://www.youtube.com/watch?v=XOcCOBe8PTc",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/XOcCOBe8PTc/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/XOcCOBe8PTc/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -321,7 +321,7 @@
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/kmUGLURRPkI/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/kmUGLURRPkI/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -333,7 +333,7 @@
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/HGElAW224dE/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/HGElAW224dE/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -345,43 +345,43 @@
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/zQekzaAgIlQ/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/zQekzaAgIlQ/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"Battery Drain and Networking",
     "titleFriendly":"",
     "summary":"Let’s take a moment to make something insanely clear: As far as battery is concerned, NETWORKING is the biggest, baddest, dirtiest offender there is. And optimizing performance here isn’t easy. Since the chip isn’t always awake and draining power, means you can optimize how it wakes up, sends traffic, and saves battery.",
-    "url":"http://www.youtube.com/watch?v=fEEulSk1kNY",
+    "url":"https://www.youtube.com/watch?v=fEEulSk1kNY",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/fEEulSk1kNY/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/fEEulSk1kNY/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"Batching Background Work Until Later",
     "titleFriendly":"",
     "summary":"Yes, your app is special. But when it comes to battery use, sometimes it’s better to be part of the crowd. Why not spread the battery blame around a bit? Ian Ni-Lewis shows you how ridiculously easy it is to go from battery hog to team player in this video.",
-    "url":"http://www.youtube.com/watch?v=-3ry8PxcJJA",
+    "url":"https://www.youtube.com/watch?v=-3ry8PxcJJA",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/-3ry8PxcJJA/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/-3ry8PxcJJA/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"The Performance Lifecycle",
     "titleFriendly":"",
     "summary":"Performance problems surface in your application at the least-wanted times (like right before you’re about to ship your first build). But don’t freak out: There’s a simple process that you can follow to help get your performance back under control.",
-    "url":"http://www.youtube.com/watch?v=_kKTGK-Cb_4",
+    "url":"https://www.youtube.com/watch?v=_kKTGK-Cb_4",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/_kKTGK-Cb_4/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/_kKTGK-Cb_4/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -393,7 +393,7 @@
     "keywords": ["studio", "tools"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/K2dodTXARqc/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/K2dodTXARqc/maxresdefault.jpg",
     "type":"video"
   },
 
@@ -406,7 +406,7 @@
     "keywords": ["google play services"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/M3Udfu6qidk/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/M3Udfu6qidk/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -418,7 +418,7 @@
     "keywords": ["google play services"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/FOn64iqlphk/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/FOn64iqlphk/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -430,7 +430,7 @@
     "keywords": ["google play services"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/fvtMtfCuEpw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/fvtMtfCuEpw/maxresdefault.jpg",
     "type":"video"
   },
     {
@@ -442,19 +442,19 @@
     "keywords": ["google play services"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/F0Kh_RnSM0w/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/F0Kh_RnSM0w/maxresdefault.jpg",
     "type":"video"
   },
   {
     "title":"Running a Successful Games Business with Google",
     "titleFriendly":"",
     "summary":"Sure, we all want to make the next great gaming masterpiece. But we also want to feed our families and/or dogs. Join Bob Meese from the Google Play team as he gives you some key pointers on how to make sure you're best taking advantage of Google Play and running a successful games business.",
-    "url":"http://www.youtube.com/watch?v=tDmnGNkTtlE",
+    "url":"https://www.youtube.com/watch?v=tDmnGNkTtlE",
     "group":"",
     "keywords": [],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/tDmnGNkTtlE/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/tDmnGNkTtlE/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -466,7 +466,7 @@
     "keywords": ["tv"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/6K_jxccHv5M/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/6K_jxccHv5M/maxresdefault.jpg",
     "type":"video"
   },
   {
@@ -478,10 +478,94 @@
     "keywords": ["auto"],
     "tags": [
     ],
-    "image":"http://i1.ytimg.com/vi/ctiaVxgclsg/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/ctiaVxgclsg/maxresdefault.jpg",
     "type":"video"
   },
   {
+    "title":"Debugging and testing in Android Studio",
+    "titleFriendly":"",
+    "summary":"This video introduces the state of unit testing support in Studio and Google’s new Android Testing Support Library for functional UI testing and running instrumented tests on a device.",
+    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Android Testing (Android Dev Summit 2015)",
+    "titleFriendly":"",
+    "summary":"Overview of the testing tools and frameworks provided by Google and how they can help you to iterate more quickly and maintain a more healthy codebase.",
+    "url":"https://www.youtube.com/watch?v=vdasFFfXKOY",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/vdasFFfXKOY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"dumpsys",
+    "titleFriendly":"",
+    "summary":"A tool that runs on the device and provides information about the status of system services.",
+    "url":"https://source.android.com/devices/tech/debug/dumpsys.html",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"",
+    "type":"google"
+  },
+  {
+    "title":"Android Testing Samples",
+    "titleFriendly":"",
+    "summary":"A collection of samples demonstrating different frameworks and techniques for automated testing.",
+    "url":"https://github.com/googlesamples/android-testing",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+  {
+    "title":"Android Testing Templates",
+    "titleFriendly":"",
+    "summary":"A collection of Google's Android testing tools and frameworks, all integrated in a single application project.",
+    "url":"https://github.com/googlesamples/android-testing-templates",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+   {
+    "title":"Android Testing Support Library (GitHub)",
+    "titleFriendly":"",
+    "summary":"A resource page on GitHub for the Android Testing Support Library.",
+    "url":"https://google.github.io/android-testing-support-library",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+  {
+    "title":"Android Testing Codelab",
+    "titleFriendly":"",
+    "summary":"This codelab shows how to build an Android app from the ground up in Android Studio, using a Model View Presenter architecture, Unit Tests and Instrumentation Tests.",
+    "url":"https://codelabs.developers.google.com/codelabs/android-testing/index.html",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"google"
+  },
+  {
     "title":"Developer Registration",
     "titleFriendly":"",
     "summary":"Additional information about the registration process.",
@@ -558,7 +642,7 @@
     "group":"",
     "keywords": [],
     "tags": [],
-    "image":"http://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
+    "image":"https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
     "type":"google"
   },
   {
@@ -569,7 +653,7 @@
     "group":"",
     "keywords": [],
     "tags": [],
-    "image":"http://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
+    "image":"https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
     "type":"google"
   },
   {
@@ -598,7 +682,7 @@
     "title":"Google for Education",
     "titleFriendly":"",
     "summary":"Find out more about how Google can support your work with apps and tablets.",
-    "url":"http://www.google.com/edu/tablets/",
+    "url":"https://www.google.com/edu/tablets/",
     "group":"",
     "keywords": [],
     "tags": [],
@@ -653,7 +737,7 @@
     "title":"Monetize your apps intelligently",
     "titleFriendly":"",
     "summary":"Generate revenue from your free games with ads tailored to match your game's look and feel.",
-    "url":"http://www.google.com/admob/",
+    "url":"https://www.google.com/admob/",
     "group":"",
     "keywords": ["AdMob"],
     "tags": [],
@@ -666,7 +750,7 @@
     "tags": [
       "versions", "blog", "googleplay"
     ],
-    "url": "http://android-developers.blogspot.com/",
+    "url": "https://android-developers.blogspot.com/",
     "timestamp": 1004884220000,
     "image": "images/blog.jpg",
     "title": "Android Developers Blog",
@@ -679,7 +763,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
+    "url": "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
     "timestamp": 1194884220000,
     "image": null,
     "title": "Making Android Apps that Play Nice",
@@ -692,7 +776,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html",
+    "url": "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html",
     "timestamp": 1194884220000,
     "image": null,
     "title": "Multithreading for Performance",
@@ -705,7 +789,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://play.google.com/about/developer-content-policy.html",
+    "url": "https://play.google.com/about/developer-content-policy.html",
     "timestamp": 1194884220000,
     "image": "images/play_dev.jpg",
     "title": "Developer Program Policies",
@@ -757,7 +841,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+    "url": "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
     "timestamp": 1194884220000,
     "image": "images/play_dev.jpg",
     "title": "Google Play Featured Image Guidelines",
@@ -939,9 +1023,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://youtu.be/SkHHPf3EdzE",
+    "url": "https://youtu.be/SkHHPf3EdzE",
     "timestamp": 1194884220000,
-    "image": "http://i1.ytimg.com/vi/SkHHPf3EdzE/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/SkHHPf3EdzE/maxresdefault.jpg",
     "title": "Level Up Your Android Game",
     "summary": "Learn how to take your game to the next level on Google Play.",
     "keywords": [],
@@ -965,7 +1049,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://play.google.com/about/developer-distribution-agreement.html",
+    "url": "https://play.google.com/about/developer-distribution-agreement.html",
     "timestamp": 1194884220000,
     "image": "images/play_dev.jpg",
     "title": "Developer Distribution Agreement",
@@ -1004,7 +1088,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://play.google.com/about/developer-distribution-agreement-addendum.html",
+    "url": "https://play.google.com/about/developer-distribution-agreement-addendum.html",
     "timestamp": 1194884220000,
     "image": "images/play_dev.jpg",
     "title": "Google Play for Education Addendum",
@@ -1017,7 +1101,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
+    "url": "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
     "timestamp": null,
     "image": null,
     "title": "Native RTL Support in Android 4.2",
@@ -1177,7 +1261,7 @@
     "group":"",
     "keywords": ["android","dashboard","platforms","versions"],
     "tags": ["#ecosystem","#versions","#whatsnew"],
-    "image":"http://chart.googleapis.com/chart?chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A0.1%2C93.5%2C6.4&chco=c4df9b%2C6fad0c&chs=400x250&cht=p",
+    "image":"https://chart.googleapis.com/chart?chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A0.1%2C93.5%2C6.4&chco=c4df9b%2C6fad0c&chs=400x250&cht=p",
     "lang":"en",
     "type":"about"
   },
@@ -1396,9 +1480,9 @@
       "#gpfe",
       "#googleplay"
     ],
-    "url": "http://youtu.be/vzvpcEffvaE",
+    "url": "https://youtu.be/vzvpcEffvaE",
     "timestamp": 1383243492000,
-    "image": "http://i1.ytimg.com/vi/vzvpcEffvaE/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/vzvpcEffvaE/maxresdefault.jpg",
     "title": "Introducing Tablets with Google Play for Education",
     "summary": "Schools in Hillsborough, New Jersey were among the first to try out Nexus 7 tablets with Google Play for Education. See the difference it made for students, teachers, and administrators.",
     "keywords": [],
@@ -1411,9 +1495,9 @@
     "tags": [
       "#engagement",
     ],
-    "url": "http://www.youtube.com/yt/dev/",
+    "url": "https://www.youtube.com/yt/dev/",
     "timestamp": 1383243492000,
-    "image": "http://www.youtube.com/yt/dev/media/images/yt-dev-home-hero.jpg",
+    "image": "https://www.youtube.com/yt/dev/media/images/yt-dev-home-hero.jpg",
     "title": "YouTube for Developers",
     "summary": "The YouTube APIs and Tools enable you to integrate YouTube's video content and functionality into your website, app, or device.",
     "keywords": [],
@@ -1426,7 +1510,7 @@
     "tags": [
       "#engagement",
     ],
-    "url": "http://www.google.com/analytics/mobile/",
+    "url": "https://www.google.com/analytics/mobile/",
     "timestamp": 1383243492000,
     "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Mobile App Analytics",
@@ -1443,9 +1527,9 @@
     "tags": [
       "#gcm",
     ],
-    "url": "http://www.youtube.com/watch?v=y76rjidm8cU",
+    "url": "https://www.youtube.com/watch?v=y76rjidm8cU",
     "timestamp": 1383243492000,
-    "image": "http://1.bp.blogspot.com/-IF-1-1kA0sg/UYwTidxdi3I/AAAAAAAAAEU/ellLeQ-E1vs/s800/google-io-lockup-2.png",
+    "image": "https://1.bp.blogspot.com/-IF-1-1kA0sg/UYwTidxdi3I/AAAAAAAAAEU/ellLeQ-E1vs/s800/google-io-lockup-2.png",
     "title": "Google Cloud Messaging at I/O 2013",
     "summary": "Google Cloud Messaging allows your services to efficiently send data to applications on Android devices. See what's new, and learn how to use GCM to make your apps more efficient.",
     "keywords": ["gcm"],
@@ -1458,7 +1542,7 @@
     "tags": [
       "#gcm",
     ],
-    "url": "http://developer.chrome.com/apps/cloudMessagingV2",
+    "url": "https://developer.chrome.com/apps/cloudMessagingV2",
     "timestamp": 1383243492000,
     "image": "images/kk-chromium-icon.png",
     "title": "Google Cloud Messaging for Chrome",
@@ -1474,7 +1558,7 @@
     "tags": [
       "#sdkupdates"
     ],
-    "url": "http://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
+    "url": "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
     "timestamp": 1194884220000,
     "image": null,
     "title": "Make Beautiful Android App Icons",
@@ -1489,7 +1573,7 @@
     "tags": [
       "#sdkupdates"
     ],
-    "url": "http://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
+    "url": "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
     "timestamp": 1194884220000,
     "image": null,
     "title": "Localize Your Promotional Graphics",
@@ -1504,7 +1588,7 @@
     "tags": [
       "#sdkupdates"
     ],
-    "url": "http://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html",
+    "url": "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html",
     "timestamp": 1194884220000,
     "image": null,
     "title": "Make your App Content more Accessible with App Linking",
@@ -1595,7 +1679,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://en.wikipedia.org/wiki/XLIFF",
+    "url": "https://en.wikipedia.org/wiki/XLIFF",
     "timestamp": 1194884220000,
     "image": null,
     "title": "XML Localisation Interchange File Format (XLIFF)",
@@ -1660,7 +1744,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
+    "url": "https://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
     "timestamp": null,
     "image": "distribute/images/gp-edu-apps-image.jpg",
     "title": "Google play for education",
@@ -1699,7 +1783,7 @@
     "lang": "en",
     "group": "",
     "tags": ["games", "localization", "quality"],
-    "url": "http://www.youtube.com/watch?v=SkHHPf3EdzE",
+    "url": "https://www.youtube.com/watch?v=SkHHPf3EdzE",
     "timestamp": null,
     "image": "https://developers.google.com/apps/images/io_2013/google-io-logo.png",
     "title": "Level Up Your Android Game",
@@ -1738,9 +1822,9 @@
     "lang": "en",
     "group": "",
     "tags": ["monetize", "ads"],
-    "url": "http://www.google.com/doubleclick/publishers/small-business/index.html",
+    "url": "https://www.google.com/doubleclick/publishers/small-business/index.html",
     "timestamp": null,
-    "image": "http://www.google.com/doubleclick/publishers/small-business/images/define_ad.png",
+    "image": "https://www.google.com/doubleclick/publishers/small-business/images/define_ad.png",
     "title": "DoubleClick for Publishers",
     "summary": "A free ad management solution that helps growing publishers sell, schedule, deliver, and measure all of their digital ad inventory.",
     "keywords": ["ads"],
@@ -1751,7 +1835,7 @@
     "lang": "en",
     "group": "",
     "tags": ["monetize", "ads"],
-    "url": "http://support.google.com/googleplay/android-developer/topic/2985714",
+    "url": "https://support.google.com/googleplay/android-developer/topic/2985714",
     "timestamp": null,
     "image":"images/play_dev.jpg",
     "title": "Policy Center: Ads",
@@ -1777,7 +1861,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://admob.blogspot.com/",
+    "url": "https://admob.blogspot.com/",
     "timestamp": null,
     "image": "images/cards/analytics-mobile_2x.jpg",
     "title": "Inside Admob",
@@ -1842,7 +1926,7 @@
     "lang": "en",
     "group": "",
     "tags": ["plus", "social"],
-    "url": "http://plus.google.com/+GooglePlay",
+    "url": "https://plus.google.com/+GooglePlay",
     "timestamp": null,
     "image": "https://lh4.googleusercontent.com/-IKezweZlcXI/AAAAAAAAAAI/AAAAAAABOvg/uK8Z0jekVE4/s120-c/photo.jpg",
     "title": "+Google Play",
@@ -1883,7 +1967,7 @@
     "tags": [],
     "url": "https://developers.google.com/edu/guidelines",
     "timestamp": null,
-    "image": "http://developer.android.com/distribute/images/edu-guidelines.jpg",
+    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
     "title": "Education Guidelines",
     "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
     "keywords": [],
@@ -1896,7 +1980,7 @@
     "tags": [],
     "url": "https://developers.google.com/edu/guidelines?hl=zh-Hans",
     "timestamp": null,
-    "image": "http://developer.android.com/distribute/images/edu-guidelines.jpg",
+    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
     "title": "Education Guidelines",
     "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
     "keywords": [],
@@ -1909,7 +1993,7 @@
     "tags": [],
     "url": "https://developers.google.com/edu/faq",
     "timestamp": null,
-    "image": "http://developer.android.com/distribute/images/gpfe-faq.jpg",
+    "image": "https://developer.android.com/distribute/images/gpfe-faq.jpg",
     "title": "Education FAQ",
     "summary": "Answers to common questions you might have about Google Play for Education.",
     "keywords": [],
@@ -1946,9 +2030,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.png",
     "title": "Deer Hunter 2014 by Glu &mdash; Sign-in",
     "summary": "Glu finds that Google Play Game Services helps improve the user experience which leads to increased player happiness. They also find that Play Games Services signed in users tend to play longer and have a higher lifetime value.",
     "keywords": ["stories"],
@@ -1959,9 +2043,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.png",
     "title": "PBA® Bowling Challenge by Concrete Software &mdash; Quests",
     "summary": "Concrete Software finds that Google Play Game Services' quests are a great way to create new content for users that leads to higher engagement.",
     "keywords": ["stories"],
@@ -1972,9 +2056,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.png",
     "title": "Dragonplay Slots by Dragonplay &mdash; Sign-in",
     "summary": "Dragonplay finds that players who sign in with Google Play Games services tend to be high quality users who were highly engaged. They also tend to be easier to convert to paying users.",
     "keywords": ["stories"],
@@ -1985,9 +2069,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.png",
     "title": "Asphalt 8 by Gameloft &mdash; Friends invitations",
     "summary": "Gameloft finds that Google Play Game Services users are more engaged than the average Android user and more likely to convert to paying players.",
     "keywords": ["stories"],
@@ -1998,9 +2082,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.png",
     "title": "Eternity Warriors 3 by Glu &mdash; Gifting",
     "summary": "Glu finds that Google Play Game Services gifting outperforms other implementations (including those with incentives) because of its seamless flow and consistent performance.",
     "keywords": ["stories"],
@@ -2011,9 +2095,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.jpg",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.jpg",
     "title": "Rivals at War: Firefight by Hothead Games &mdash; Leaderboards",
     "summary": "Hothead Games is planning to include Google Play Game Services features in all their games going forwards after seeing that players that signed in with Play Games Services tend to show higher retention and a higher average revenue.",
     "keywords": ["stories"],
@@ -2024,9 +2108,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.png",
     "title": "Compulsive by TMSOFT &mdash; Cross-platform",
     "summary": "TMSOFT finds that users who authenticate with Play Games Services on Android and iOS play Compulsive twice as much and purchase in-app products over four times as much.",
     "keywords": ["stories"],
@@ -2037,9 +2121,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.png",
     "title": "Super Stickman Golf 2 by Noodlecake Studios &mdash; Multiplayer",
     "summary": "Noodlecake Studios finds that Google Play Game Services’ multiplayer feature helps reduce attrition.",
     "keywords": ["stories"],
@@ -2050,9 +2134,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebelGames_DrWhoLegacy_pgps.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebelGames_DrWhoLegacy_pgps.png",
     "title": "Dr. Doctor Who: Legacy by Tiny Rebel Games &mdash; Achievements",
     "summary": "After integrating achievements and cloud services from Google Play Game Services, Tiny Rebel Games saw a dramatic increase in daily revenues as a result of an increase in daily installs and an increase in the average revenue per install.",
     "keywords": ["stories"],
@@ -2063,9 +2147,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf",
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf",
     "timestamp": null,
-    "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.png",
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.png",
     "title": "Leo’s Fortune by 1337 &amp; Senri &mdash; Saved games",
     "summary": "1337 + Senri finds that Google Play Game Services is easy to integrate and provides essential game functions like cloud saved games, achievements and leaderboards which have a very large adoption rate amongst players.",
     "keywords": ["stories"],
@@ -2141,9 +2225,9 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://www.google.com/tagmanager/",
+    "url": "https://www.google.com/tagmanager/",
     "timestamp": null,
-    "image": "http://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
+    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
     "title": "Google Tag Manager",
     "summary": "Google Tag Manager enables you to change configuration values in your mobile apps using the Google Tag Manager interface, without having to rebuild and resubmit application binaries to app marketplaces.",
     "keywords": ["analytics", "tagmanager"],
@@ -2338,7 +2422,7 @@
     "tags": [],
     "url": "https://support.google.com/tagmanager/answer/6003007",
     "timestamp": null,
-    "image": "http://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
+    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
     "title": "In-App A/B Testing",
     "summary": "With content experiments in Google Tag Manager you can test multiple variations of your app to find which works best.",
     "keywords": ["tagmanager"],
@@ -2664,7 +2748,7 @@
     "lang": "en",
     "group": "",
     "tags": [],
-    "url": "http://analyticsacademy.withgoogle.com/mobile-app",
+    "url": "https://analyticsacademy.withgoogle.com/mobile-app",
     "timestamp": null,
     "image": "distribute/images/advertising.jpg",
     "title": "Analytics Academy for Mobile Apps",
@@ -3024,7 +3108,7 @@
     "group":"",
     "keywords": ["wear", "wearable", "watch face"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/AK38PJZmIW8/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/AK38PJZmIW8/maxresdefault.jpg",
     "lang":"en",
     "type":"video"
   },
@@ -3036,7 +3120,7 @@
     "group":"",
     "keywords": ["support", "compatibility"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/3PIc-DuEU2s/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/3PIc-DuEU2s/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3048,7 +3132,7 @@
     "group":"",
     "keywords": ["support", "compatibility","design-code"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/5Be2mJzP-Uw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/5Be2mJzP-Uw/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3060,7 +3144,7 @@
     "group":"",
     "keywords": ["tools", "studio","gradle"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/cD7NPxuuXYY/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/cD7NPxuuXYY/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3072,7 +3156,7 @@
     "group":"",
     "keywords": ["tools", "studio","layout"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/JLLnhwtDoHw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/JLLnhwtDoHw/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3084,22 +3168,11 @@
     "group":"",
     "keywords": ["tools", "studio","debugging","profiling","performance"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
   {
-    "tags": [
-      "android",
-      "developerstory",
-      "googleplay",
-      "featured"
-    ],
-    "title": "Android Developer Story: Jelly Button Games — Growing globally through data driven development",
-    "type": "youtube",
-    "url": "http://www.youtube.com/watch?v=Pd49vTkvu0U"
-  },
-  {
     "title":"Scale with Google Cloud Platform",
     "titleFriendly":"",
     "summary":"Build, test, and deploy applications on Google's highly-scalable and reliable infrastructure for your web, mobile and backend solutions.",
@@ -3127,7 +3200,7 @@
     "title":"Android for Work",
     "titleFriendly":"",
     "summary":"Learn more about how Android for Work makes your favorite phones and tablets the perfect business tools.",
-    "url":"http://www.android.com/work/",
+    "url":"https://www.android.com/work/",
     "group":"",
     "keywords": ["work", "enterprise", "emm"],
     "tags": [],
@@ -3143,7 +3216,7 @@
     "group":"",
     "keywords": ["work", "enterprise", "emm"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/jQWB_-o1kz4/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/jQWB_-o1kz4/maxresdefault.jpg",
     "lang":"en",
     "type":"youtube"
   },
@@ -3155,7 +3228,7 @@
     "group":"",
     "keywords": ["work", "enterprise", "emm"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/39NkpWkaH8M/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/39NkpWkaH8M/maxresdefault.jpg",
     "lang":"en",
     "type":"youtube"
   },
@@ -3167,7 +3240,7 @@
     "group":"",
     "keywords": ["work", "enterprise", "emm"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/dH41OutAMNM/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/dH41OutAMNM/maxresdefault.jpg",
     "lang":"en",
     "type":"youtube"
   },
@@ -3179,7 +3252,7 @@
     "group":"",
     "keywords": ["work", "enterprise", "emm"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
     "lang":"en",
     "type":"youtube"
   },
@@ -3215,7 +3288,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/yYU4DHLwoRk/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/yYU4DHLwoRk/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3227,7 +3300,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/ndBdf1_oOGA/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/ndBdf1_oOGA/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3239,7 +3312,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/VOn7VrTRlA4/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/VOn7VrTRlA4/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3251,7 +3324,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/OW1A4XFRuyc/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/OW1A4XFRuyc/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3263,7 +3336,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/HXacyy0HSW0/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/HXacyy0HSW0/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3275,7 +3348,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/vcSj8ln-BlE/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/vcSj8ln-BlE/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3287,7 +3360,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3299,7 +3372,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/C8lUdPVSzDk/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/C8lUdPVSzDk/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3311,7 +3384,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/N72ksDKrX6c/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/N72ksDKrX6c/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3323,7 +3396,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/U9tw5ypqEN0/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/U9tw5ypqEN0/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3335,7 +3408,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/iZqDdvhTZj0/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/iZqDdvhTZj0/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3347,7 +3420,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/5sCQjeGoE7M/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/5sCQjeGoE7M/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3359,7 +3432,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/LQoohRwojmw/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/LQoohRwojmw/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3371,7 +3444,7 @@
     "group":"",
     "keywords": ["Marshmallow"],
     "tags": [],
-    "image":"http://i1.ytimg.com/vi/f17qe9vZ8RM/maxresdefault.jpg",
+    "image":"https://i1.ytimg.com/vi/f17qe9vZ8RM/maxresdefault.jpg",
     "lang":"en",
     "type":"Video"
   },
@@ -3384,7 +3457,7 @@
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://img.youtube.com/vi/xelYnWcYkuE/hqdefault.jpg",
+    "image": "https://img.youtube.com/vi/xelYnWcYkuE/hqdefault.jpg",
     "type": "youtube"
   },
   {
@@ -3396,7 +3469,7 @@
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://img.youtube.com/vi/lJdjY3z6-LY/hqdefault.jpg",
+    "image": "https://img.youtube.com/vi/lJdjY3z6-LY/hqdefault.jpg",
     "type": "youtube"
   },
   {
@@ -3404,11 +3477,11 @@
     "title": "Android Wear 関連の動画に日本語字幕が付きました",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevjp.blogspot.jp/2014/12/android-wear.html",
+    "url": "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://i1.ytimg.com/vi/4JcDYkgqksY/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/4JcDYkgqksY/maxresdefault.jpg",
     "type": "blog"
   },
   {
@@ -3416,11 +3489,11 @@
     "title": "Android Studio 1.0 をリリースしました",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
+    "url": "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://3.bp.blogspot.com/-1hV3sD1At74/VIaQSWBasUI/AAAAAAAABAU/9vYLJMsmMuQ/s1600/studio-logo.png",
+    "image": "https://3.bp.blogspot.com/-1hV3sD1At74/VIaQSWBasUI/AAAAAAAABAU/9vYLJMsmMuQ/s1600/studio-logo.png",
     "type": "blog"
   },
   {
@@ -3428,11 +3501,11 @@
     "title": "Google Play 開発者サービス 6.5 のご紹介",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevjp.blogspot.jp/2014/12/google-play-65.html",
+    "url": "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://1.bp.blogspot.com/-4BNREC0Jojo/VGo7ahW35wI/AAAAAAAABAc/9thZl94F6fY/s1600/GMS%2B-%2BRelease%2BBlog%2BNacho%2B-%2BMap%2BToolbar.png",
+    "image": "https://1.bp.blogspot.com/-4BNREC0Jojo/VGo7ahW35wI/AAAAAAAABAc/9thZl94F6fY/s1600/GMS%2B-%2BRelease%2BBlog%2BNacho%2B-%2BMap%2BToolbar.png",
     "type": "blog"
   },
   {
@@ -3476,7 +3549,7 @@
     "title": "Google Play アプリ ポリシー センター",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
+    "url": "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
     "group": "",
     "keywords": [],
     "tags": [],
@@ -3512,11 +3585,11 @@
     "title": "Google Cloud Platform が支える、新感覚リアルタイム RPG ユニゾンリーグ - 株式会社エイチームの GCP 導入事例",
     "titleFriendly": "",
     "summary": "スケーラブルなバックエンドを実現する Google Cloud Platform の最新導入事例。",
-    "url": "http://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
+    "url": "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://3.bp.blogspot.com/-xp7KoPkbne4/VI_PfoFil3I/AAAAAAAAA3U/-k1UZ0zjCBc/s1600/unison-league.jpeg",
+    "image": "https://3.bp.blogspot.com/-xp7KoPkbne4/VI_PfoFil3I/AAAAAAAAA3U/-k1UZ0zjCBc/s1600/unison-league.jpeg",
     "type": "distribute"
   },
   {
@@ -3540,7 +3613,7 @@
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://img.youtube.com/vi/7X9Ue0Nfdh4/hqdefault.jpg",
+    "image": "https://img.youtube.com/vi/7X9Ue0Nfdh4/hqdefault.jpg",
     "type": "youtube"
   },
   {
@@ -3552,7 +3625,7 @@
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://img.youtube.com/vi/83FpwuschCQ/hqdefault.jpg",
+    "image": "https://img.youtube.com/vi/83FpwuschCQ/hqdefault.jpg",
     "type": "youtube"
   },
   {
@@ -3560,7 +3633,7 @@
     "title": "안드로이드 5.0 롤리팝을 맞이하는 개발자를 위한 안내서",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
+    "url": "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
     "group": "",
     "keywords": [],
     "tags": [],
@@ -3572,7 +3645,7 @@
     "title": "안드로이드 앱을 위한 머티리얼 디자인 체크 리스트",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
+    "url": "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
     "group": "",
     "keywords": [],
     "tags": [],
@@ -3584,11 +3657,11 @@
     "title": "App Compat 라이브러리",
     "titleFriendly": "",
     "summary": "",
-    "url": "http://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
+    "url": "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
     "group": "",
     "keywords": [],
     "tags": [],
-    "image": "http://2.bp.blogspot.com/-7fF9ayZ6PgI/U9iFpk5FNEI/AAAAAAAAAs0/4P4SCvdB_4M/s640/image00.png",
+    "image": "https://2.bp.blogspot.com/-7fF9ayZ6PgI/U9iFpk5FNEI/AAAAAAAAAs0/4P4SCvdB_4M/s640/image00.png",
     "type": "blog"
   },
   {
@@ -3709,7 +3782,7 @@
   },
   {
     "url":"https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "http://i1.ytimg.com/vi/wcjqBSei3a0/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/wcjqBSei3a0/maxresdefault.jpg",
     "title": "Developers connecting the world through Google Play",
     "summary": "The mobile ecosystem is empowering developers to make good on the dream of connecting the world through technology to improve people's lives.",
     "tags":["io15","googleplay"],
@@ -3718,7 +3791,7 @@
   },
   {
     "url":"https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "http://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
     "title": "Store Listing Experiments for Google Play",
     "summary": "Learn how to use Google Play’s new store listing optimization feature to get more installs of your app, and how to test different graphics and text to find out which options perform the best. ",
     "tags":["io15","googleplay","store listing"],
@@ -3727,7 +3800,7 @@
   },
   {
     "url":"https://www.youtube.com/watch?v=jyO3-rF4Mu0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
-    "image": "http://i1.ytimg.com/vi/jyO3-rF4Mu0/maxresdefault.jpg",
+    "image": "https://i1.ytimg.com/vi/jyO3-rF4Mu0/maxresdefault.jpg",
     "title": "Growing games with Google",
     "summary": "The games industry has never been more promising and full of opportunities. This talk covers how Google is helping developers across a broad range of existing and emerging platforms.",
     "tags":["io15","android", "googleplay","games"],
@@ -3735,7 +3808,7 @@
     "type":"youtube"
   },
   {
-    "url":"http://www.youtube.com/watch?v=yJisuP94lHU",
+    "url":"https://www.youtube.com/watch?v=yJisuP94lHU",
     "image": "images/distribute/hero-playtime-opener.jpg",
     "title": "Playtime 2015: Innovation happens everywhere",
     "type":"Video",
@@ -3743,7 +3816,7 @@
     "summary": "Watch the opening video from Google Play's annual event series, Playtime, which celebrates inspirational developers who are changing the world around them.",
   },
 {
-    "url":"http://www.youtube.com/watch?v=JrR6o5tYMWQ",
+    "url":"https://www.youtube.com/watch?v=JrR6o5tYMWQ",
     "image": "images/distribute/hero-acquisition-devbyte.jpg",
     "title": "User acquisition and tracking on Google Play",
     "type" : "Video",
@@ -3765,7 +3838,7 @@
     "title": "Android 5.0 Lollipop",
     "summary": "The Android 5.0 update adds a variety of new features for your apps, such as notifications on the lock screen, an all-new camera API, OpenGL ES 3.1, the new naterial design interface, and much more.",
   },
-  "http://www.youtube.com/watch?v=yJisuP94lHU": {
+  "https://www.youtube.com/watch?v=yJisuP94lHU": {
     "url":"https://www.youtube.com/watch?v=yJisuP94lHU&index=1&list=PLWz5rJ2EKKc_QRBk7Zkl5uGjR1He7vG-w",
     "image": "images/distribute/hero-playtime-opener.jpg",
     "title": "Playtime 2015: Innovation happens everywhere",
@@ -3773,76 +3846,76 @@
     "summary": "Watch the opening video from Google Play's annual event series, Playtime, which celebrates inspirational developers who are changing the world around them.",
   },
   "http://www.youtube.com/watch?v=rcU7VEs1hiE": {
-    "url":"http://www.youtube.com/watch?v=rcU7VEs1hiE&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "url":"https://www.youtube.com/watch?v=rcU7VEs1hiE&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-rogervoice-story.jpg",
     "title": "RogerVoice uses beta testing to launch on Android first",
     "type" : "youtube",
     "summary": "RogerVoice helps people who are hearing impaired make phone calls through voice recognition and text captions. Hear how they used material design and beta testing to create a UI that's accessible and intuitive to navigate.",
   },
   "http://www.youtube.com/watch?v=JFlX9rW7Epc": {
-    "url":"http://www.youtube.com/watch?v=JFlX9rW7Epc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "url":"https://www.youtube.com/watch?v=JFlX9rW7Epc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-domain-story.jpg",
     "title": "Domain increases installs by 44% with Material Design",
     "type" : "youtube",
     "summary": "Learn how Domain, a premier real-estate portal in Australia, drastically improved their Google Play app reviews, ratings and downloads by investing in their Android app experience.",
   },
   "http://www.youtube.com/watch?v=4CqXCkcN_d4": {
-    "url":"http://www.youtube.com/watch?v=4CqXCkcN_d4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "url":"https://www.youtube.com/watch?v=4CqXCkcN_d4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-dots-story.jpg",
     "title": "Dots increases installs with Store Listing Experiments",
     "type" : "youtube",
     "summary": "Hear how US-founded game developer, Dots, used the Store Listing Experiments feature in the Google Play Developer Console to test what icon, graphics, and text worked the best at converting visitors to installs.",
   },
-  "http://www.youtube.com/watch?v=JrR6o5tYMWQ": {
-    "url":"http://www.youtube.com/watch?v=JrR6o5tYMWQ",
+  "https://www.youtube.com/watch?v=JrR6o5tYMWQ": {
+    "url":"https://www.youtube.com/watch?v=JrR6o5tYMWQ",
     "image": "images/distribute/hero-acquisition-devbyte.jpg",
     "title": "User acquisition and tracking on Google Play",
     "type" : "youtube",
     "summary": "Learn how to get new users, using Universal app campaigns directly within the Google Play Developer Console to increase your installs from ads, and find out how your acquisition channels perform.",
   },
-  "http://www.youtube.com/watch?v=Pd49vTkvu0U": {
-    "url":"http://www.youtube.com/watch?v=Pd49vTkvu0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=Pd49vTkvu0U": {
+    "url":"https://www.youtube.com/watch?v=Pd49vTkvu0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-jelly-button.jpg",
     "title": "How Jelly Button Games are growing globally through data",
     "summary": "To really understand their users, Jelly Button Games analyzes over 3 billion events each month using Google Analytics and Google BigQuery.",
   },
-  "http://www.youtube.com/watch?v=700gYRkhkLM": {
-    "url":"http://www.youtube.com/watch?v=700gYRkhkLM&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=700gYRkhkLM": {
+    "url":"https://www.youtube.com/watch?v=700gYRkhkLM&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-outfit7.jpg",
     "title": "Outfit7 — Building an entertainment company with Google",
     "summary": "Outfit7, creators of My Talking Tom and My Talking Angela, offer a complete entertainment experience to users spanning mobile apps, user generated and original YouTube content, and a range of toys, clothing, and accessories....",
   },
-  "http://www.youtube.com/watch?v=MPnH7h12h0U": {
-    "url":"http://www.youtube.com/watch?v=MPnH7h12h0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=MPnH7h12h0U": {
+    "url":"https://www.youtube.com/watch?v=MPnH7h12h0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-haystack.jpg",
     "summary": "Haystack TV built a scalable business with six employees and Android TV. Two weeks was all it took for them to bring their mobile app to the big screen.",
   },
-  "http://www.youtube.com/watch?v=ekxABqJeRBc": {
-    "url":"http://www.youtube.com/watch?v=ekxABqJeRBc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=ekxABqJeRBc": {
+    "url":"https://www.youtube.com/watch?v=ekxABqJeRBc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-ginlemon.jpg",
     "title": "How GinLemon is breaking through with Google Play",
     "summary": "Meet Vincenzo Colucci, developer and founder of GinLemon, which started as a summer holiday joke and has now become a successful global app business on Google Play based in Manfredonia, southern Italy.",
   },
-  "http://www.youtube.com/watch?v=0r36OJaeMo4": {
-    "url":"http://www.youtube.com/watch?v=0r36OJaeMo4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=0r36OJaeMo4": {
+    "url":"https://www.youtube.com/watch?v=0r36OJaeMo4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-shifty-jelly.jpg",
     "title": "Shifty Jelly — building a number 1 podcast app",
     "summary": "Shifty Jelly is an Adelaide based mobile development company that has seen great success building Pocket Casts, a premium podcast manager app.",
   },
-  "http://www.youtube.com/watch?v=1Iw7Tg_afKk": {
+  "https://www.youtube.com/watch?v=1Iw7Tg_afKk": {
     "image": "images/distribute/hero-wooga.jpg",
-    "url":"http://www.youtube.com/watch?v=1Iw7Tg_afKk&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "url":"https://www.youtube.com/watch?v=1Iw7Tg_afKk&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "title": "Wooga’s fast iterations on Google Play",
     "summary": "The speed at which Wooga is able to iterate its live and under development games with the Android and Google Play tools has been key to delivering hits such as Diamond Dash, Jelly Splash, and Agent Alice.",
   },
-  "http://www.youtube.com/watch?v=TieksFvD-7o": {
-    "url":"http://www.youtube.com/watch?v=TieksFvD-7o&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=TieksFvD-7o": {
+    "url":"https://www.youtube.com/watch?v=TieksFvD-7o&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-trello.jpg",
     "title": "Trello lifts engagement by double digits with material design",
     "summary": "Trello recently redesigned their collaborative planning app using the material design guidelines, and their efforts paid off.",
   },
-  "http://www.youtube.com/watch?v=MCoh4Pxs_ok": {
-    "url":"http://www.youtube.com/watch?v=MCoh4Pxs_ok&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+  "https://www.youtube.com/watch?v=MCoh4Pxs_ok": {
+    "url":"https://www.youtube.com/watch?v=MCoh4Pxs_ok&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
     "image": "images/distribute/hero-the-hunt.jpg",
     "title": "The Hunt — growing engagement with material design and Google Play",
     "summary": "Material design has helped The Hunt to enhance engagement in their style advice and product discovery app. ",
diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js
new file mode 100644
index 0000000..34a779b
--- /dev/null
+++ b/docs/html/jd_extras_en.js
@@ -0,0 +1,4793 @@
+/* Metadata represendations of resources that are outside of the autogenerated
+   local resource lists, or that override local resource representations.
+
+   Resources listed here are referenced from queries and collections,
+   matched by url string.
+
+   Currently, these articles can override only the generated resources
+   in DISTRIBUTE_RESOURCES. A representation defined here will not be applied
+   when a collection or section specifies a url that's not in DISTRIBUTE_RESOURCEs.
+   Also
+   So if a section url refers to a static doc that's
+   not in a distribute section, you need to create an item for
+   it in this file. Fix is to compare across
+   ALL_RESOURCES_BY_URL.  */
+
+METADATA['en'].extras = METADATA['en'].extras.concat([
+ /* TODO Remove standard resources from here, such as below
+ */
+  {
+    "title":"Measure your app’s user acquisition channels",
+    "category":"google",
+    "summary":"Get details on how to use the Developer Console User Acquisitions reports to discover where your users come from.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/6263332",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Set up native app install banners in Chrome",
+    "category":"google",
+    "summary":"Get the details you need to add your native app or game to your site’s web app manifest file.",
+    "url":"https://developers.google.com/web/updates/2015/03/increasing-engagement-with-app-install-banners-in-chrome-for-android#native",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Optimize your store listing pages with experiments",
+    "category":"google",
+    "summary":"You can run experiments to find the most effective graphics and localized text for your app.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/6227309",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Content Experiments for Mobile Apps",
+    "category":"google",
+    "summary":"Google Analytics Content Experiments allows you to test multiple variations of a given web page.",
+    "url":"https://support.google.com/tagmanager/answer/6003007",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Use alpha/beta testing & staged rollouts",
+    "category":"google play",
+    "summary":"Using the Google Play Developer Console, you can choose groups of users to test different versions of your app.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/3131213",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Quizlet Developer Story",
+    "category":"google play",
+    "summary":"Quizlet is an extremely popular online learning tool for students. See how they optimized for the classroom with Android and the power of Google Play for Education.",
+    "url":"https://www.youtube.com/watch?v=Idu7VcTTXfk",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/Idu7VcTTXfk/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"What's New in GPFE",
+    "category":"google play",
+    "summary":"Learn about the vision and philosophy behind Google Play for Education",
+    "url":"https://www.youtube.com/watch?v=IKhU180eJMo",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/IKhU180eJMo/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Get started with Google Cast",
+    "category":"google",
+    "summary":"Build multi-screen experiences, let the user send video and audio content to TVs and speakers.",
+    "url":"https://developers.google.com/cast/docs/ux_guidelines",
+    "group":"",
+    "keywords": ["cast", "chromecast", "video", "audio"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"develop"
+  },
+  {
+    "title":"Android Sender Applications",
+    "category":"google",
+    "summary":"Get an overview of how your Android app can act as a Google Cast sender app.",
+    "url":"https://developers.google.com/cast/docs/android_sender",
+    "group":"",
+    "keywords": ["cast", "sender"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"develop"
+  },
+  {
+    "title":"Cast sample apps",
+    "category":"google",
+    "summary":"Get example Google Cast applications for both senders and receivers.",
+    "url":"https://www.github.com/googlecast",
+    "group":"",
+    "keywords": ["cast", "samples"],
+    "tags": [],
+    "image":"images/cards/card-cast_2x.jpg",
+    "type":"Samples"
+  },
+  {
+    "title":"Get Cardboard",
+    "category":"Google",
+    "summary":"Get your own Cardboard, today. Buy one from a manufacturer or build your own, and start developing.",
+    "url":"https://www.google.com/get/cardboard/get-cardboard/",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"develop"
+  },
+    {
+    "title":"Download the Cardboard SDK",
+    "category":"google",
+    "summary":"Grab the Cardboard libraries from GitHub and start creating VR apps in your favorite development environment.",
+    "url":"https://developers.google.com/cardboard/android/download",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"develop"
+  },
+  {
+    "title":"Cardboard design guidelines",
+    "category":"design",
+    "summary":"Focus on overall usability and avoiding common VR pitfalls while creating an immersive experience of your own.",
+    "url":"https://www.google.com/design/spec-vr",
+    "group":"",
+    "keywords": ["carboard","vr"],
+    "tags": [],
+    "image":"images/cards/card-cardboard_2x.png",
+    "type":"Design"
+  },
+  {
+    "title":"Maps",
+    "category":"google",
+    "summary":"Give users the map that more than a billion people use every month.",
+    "url":"https://developers.google.com/maps/documentation/android/",
+    "group":"",
+    "keywords": ["maps"],
+    "tags": [],
+    "image":"images/google/gps-maps.png",
+    "type":"develop"
+  },
+    {
+    "title":"Places API",
+    "category":"google",
+    "summary":"give your users contextual information about where they are, when they’re there.",
+    "url":"https://developers.google.com/places/android/",
+    "group":"",
+    "keywords": ["places","location", "context"],
+    "tags": [],
+    "image":"images/cards/card-places_2x.png",
+    "type":"develop"
+  },
+  {
+    "title":"GCM Client for Android",
+    "category":"google",
+    "summary":"Send push notifications and pubsub from your server to Android devices around the world.",
+    "url":"https://developers.google.com/cloud-messaging/android/client",
+    "group":"",
+    "keywords": ["push","gcm"],
+    "tags": [],
+    "image":"images/cards/card-google-cloud-messaging_16-9_2x.png",
+    "type":"develop"
+  },
+  {
+    "title":"Google Cloud Messaging",
+    "category":"google",
+    "summary":"Learn about GCM and the kinds of services you can offer to users through push notifications",
+    "url":"https://developers.google.com/cloud-messaging/gcm",
+    "group":"",
+    "keywords": ["push","gcm"],
+    "tags": [],
+    "image":"images/cards/card-google-cloud-messaging_16-9_2x.png",
+    "type":"develop"
+  },
+  {
+    "title":"ClassDojo Developer Story",
+    "category":"developer story",
+    "summary":"ClassDojo is a classroom tool that helps teachers improve behavior in their classrooms quickly and easily. See how they optimized for the classroom with Android and the power of Google Play for Education.",
+    "url":"https://www.youtube.com/watch?v=iokH4SAIfRw",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/iokH4SAIfRw/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Plan for Success",
+    "category":"google play",
+    "summary":"5 tips from developers on creating great EDU apps.",
+    "url":"https://www.youtube.com/watch?v=Eh2adsAyTKc",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/Eh2adsAyTKc/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Optimizing Apps for Education",
+    "category":"google play",
+    "summary":"Learn how to optimize your app for teachers and students.",
+    "url":"https://www.youtube.com/watch?v=_AZ6UcPz-_g",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/_AZ6UcPz-_g/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Ideas and Tools for Building Innovative Education Apps",
+    "category":"google play",
+    "summary":"Are you hungry to build an awesome app for education but don't quite know where to start? Come hear about apps that teachers want, and the APIs you're going to need to build them! In particular, we'll talk about app ideas that combine APIs for Google Drive, Google Login, Android Single Task Mode and more to build transformative Educational apps that will delight educators and kids in and out of the classroom.",
+    "url":"https://www.youtube.com/watch?v=iulXz8QTD1g",
+    "group":"",
+    "keywords": [],
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "image":"https://i1.ytimg.com/vi/iulXz8QTD1g/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"DesignBytes: Intro To Material Design",
+    "category":"material design",
+    "summary":"These days, UI designers need to be thinking about phones, tablets, laptops, TVs, smartwatches, and beyond. In this DesignByte we talk about how Google designers have been working on making cross-platform and multi-screen design easier. We wanted to build a design system that felt at home on every screen, from the smallest watch to the largest TV.",
+    "url":"https://www.youtube.com/watch?v=p4gmvHyuZzw",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/p4gmvHyuZzw/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"DesignBytes: Paper and Ink: The Materials that Matter",
+    "category":"material design",
+    "summary":"Join Rich Fulcher to learn about the materials of material design. See how virtual paper and ink form the foundation of your tactile user interface and master the rules that govern their behaviour.",
+    "url":"https://www.youtube.com/watch?v=YaG_ljfzeUw",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/YaG_ljfzeUw/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"DesignBytes: Material Design in the Google I/O App",
+    "category":"",
+    "summary":"Roman Nurik shares details on the design process for the Google I/O 2014 app. To check out the app's source code, visit github.com/google/iosched.",
+    "url":"https://www.youtube.com/watch?v=XOcCOBe8PTc",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/XOcCOBe8PTc/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Toolbars for a flexible Action Bar & more",
+    "category":"",
+    "summary":"Toolbars are a flexible View you can add to your Android app which provides many of the same APIs as the system provided Action Bar, but can also do so much more such as reacting to scrolling or being integrated directly into your layouts.",
+    "url":"https://www.youtube.com/watch?v=kmUGLURRPkI",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/kmUGLURRPkI/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Protecting Implicit Intents with Runtime Checks",
+    "category":"",
+    "summary":"Make sure you protect your implicit intents with a simple runtime check.",
+    "url":"https://www.youtube.com/watch?v=HGElAW224dE",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/HGElAW224dE/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Tabs and ViewPager",
+    "category":"",
+    "summary":"Showing multiple screens or pages of content is easy with the help of ViewPager and a PagerAdapter. Combining that with tabs make for an effective top level navigation strategy for your app or for moving between content at the same level of hierarchy within your app.",
+    "url":"https://www.youtube.com/watch?v=zQekzaAgIlQ",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/zQekzaAgIlQ/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Battery Drain and Networking",
+    "category":"",
+    "summary":"Let’s take a moment to make something insanely clear: As far as battery is concerned, NETWORKING is the biggest, baddest, dirtiest offender there is. And optimizing performance here isn’t easy. Since the chip isn’t always awake and draining power, means you can optimize how it wakes up, sends traffic, and saves battery.",
+    "url":"https://www.youtube.com/watch?v=fEEulSk1kNY",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/fEEulSk1kNY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Batching Background Work Until Later",
+    "category":"",
+    "summary":"Yes, your app is special. But when it comes to battery use, sometimes it’s better to be part of the crowd. Why not spread the battery blame around a bit? Ian Ni-Lewis shows you how ridiculously easy it is to go from battery hog to team player in this video.",
+    "url":"https://www.youtube.com/watch?v=-3ry8PxcJJA",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/-3ry8PxcJJA/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"The Performance Lifecycle",
+    "category":"",
+    "summary":"Performance problems surface in your application at the least-wanted times (like right before you’re about to ship your first build). But don’t freak out: There’s a simple process that you can follow to help get your performance back under control.",
+    "url":"https://www.youtube.com/watch?v=_kKTGK-Cb_4",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/_kKTGK-Cb_4/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android Studio",
+    "category":"",
+    "summary":"Learn why you should migrate your projects to Android Studio now and how it can help you be more productive as a developer. Rich layout editor, handy suggestions and fixes, new Android project view - these are just some of the things you can expect from the IDE, which is built on the successful IntelliJ IDEA.",
+    "url":"https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["studio", "tools"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/K2dodTXARqc/maxresdefault.jpg",
+    "type":"video"
+  },
+
+  {
+    "title":"Google Play Services 7.5",
+    "category":"",
+    "summary":"This update brings App Invites, topics to GCM, GCMNetworkManager, Cast Remote Display API, Smart Lock for Passwords, Maps API for Android Wear, Google Fit extensions and more.",
+    "url":"https://www.youtube.com/watch?v=M3Udfu6qidk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/M3Udfu6qidk/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Google Play Services 7.3",
+    "category":"",
+    "summary":"This update brings the ability to connect multiple wearables simultaneously to a single phone. There are also some great new updates to Google Fit, including nutrition types, and to Location.",
+    "url":"https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/FOn64iqlphk/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Google Play Services 6.5",
+    "category":"",
+    "summary":"Google Play services 6.5 includes new features in Google Maps, Google Drive and Google Wallet as well as the recently launched Google Fit API. ",
+    "url":"https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/fvtMtfCuEpw/maxresdefault.jpg",
+    "type":"video"
+  },
+    {
+    "title":"Google Play Services 7.0",
+    "category":"",
+    "summary":"Google Play services 7.0 is here! we've added the Places API, made enhancements to Location and Google Fit, and you can also remote control your Android TV through the new Nearby Connections API.",
+    "url":"https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+    "group":"",
+    "keywords": ["google play services"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/F0Kh_RnSM0w/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Running a Successful Games Business with Google",
+    "category":"",
+    "summary":"Sure, we all want to make the next great gaming masterpiece. But we also want to feed our families and/or dogs. Join Bob Meese from the Google Play team as he gives you some key pointers on how to make sure you're best taking advantage of Google Play and running a successful games business.",
+    "url":"https://www.youtube.com/watch?v=tDmnGNkTtlE",
+    "group":"",
+    "keywords": [],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/tDmnGNkTtlE/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android TV",
+    "category":"",
+    "summary":"Android TV brings the Android platform to the living room with rich content and entertaining app experiences. In this video, Timothy introduces the design philosophy and developer components that make building TV experiences easier than ever before.",
+    "url":"https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
+    "group":"",
+    "keywords": ["tv"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/6K_jxccHv5M/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Android Auto",
+    "category":"",
+    "summary":"Android Auto brings the Android platform to the car in a way that's optimized for the driving experience. It's the same platform you already use for phones, tablets, televisions, wearables, and more. ",
+    "url":"https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM",
+    "group":"",
+    "keywords": ["auto"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/ctiaVxgclsg/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Debugging and testing in Android Studio",
+    "titleFriendly":"",
+    "summary":"This video introduces the state of unit testing support in Studio and Google’s new Android Testing Support Library for functional UI testing and running instrumented tests on a device.",
+    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"Android Testing (Android Dev Summit 2015)",
+    "titleFriendly":"",
+    "summary":"Overview of the testing tools and frameworks provided by Google and how they can help you to iterate more quickly and maintain a more healthy codebase.",
+    "url":"https://www.youtube.com/watch?v=vdasFFfXKOY",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"https://i1.ytimg.com/vi/vdasFFfXKOY/maxresdefault.jpg",
+    "type":"video"
+  },
+  {
+    "title":"dumpsys",
+    "titleFriendly":"",
+    "summary":"A tool that runs on the device and provides information about the status of system services.",
+    "url":"https://source.android.com/devices/tech/debug/dumpsys.html",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"",
+    "type":"google"
+  },
+  {
+    "title":"Android Testing Samples",
+    "titleFriendly":"",
+    "summary":"A collection of samples demonstrating different frameworks and techniques for automated testing.",
+    "url":"https://github.com/googlesamples/android-testing",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+  {
+    "title":"Android Testing Templates",
+    "titleFriendly":"",
+    "summary":"A collection of Google's Android testing tools and frameworks, all integrated in a single application project.",
+    "url":"https://github.com/googlesamples/android-testing-templates",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+   {
+    "title":"Android Testing Support Library (GitHub)",
+    "titleFriendly":"",
+    "summary":"A resource page on GitHub for the Android Testing Support Library.",
+    "url":"https://google.github.io/android-testing-support-library",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"Samples"
+  },
+  {
+    "title":"Android Testing Codelab",
+    "titleFriendly":"",
+    "summary":"This codelab shows how to build an Android app from the ground up in Android Studio, using a Model View Presenter architecture, Unit Tests and Instrumentation Tests.",
+    "url":"https://codelabs.developers.google.com/codelabs/android-testing/index.html",
+    "group":"",
+    "keywords": ["testing"],
+    "tags": [
+    ],
+    "image":"images/testing/testing-icon.png",
+    "type":"google"
+  },
+  {
+    "title":"Developer Registration",
+    "category":"google play",
+    "summary":"Additional information about the registration process.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/113468",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title": "Google Play Distribution and Seller Countries",
+    "category":"google play",
+    "summary": "List of countries and territories where you can distribute your apps in Google Play.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/138294",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Google Play Content Policies",
+    "category":"google play",
+    "summary":"Details on policies relating to your developer account and app distribution is governed.",
+    "url":"https://support.google.com/googleplay/android-developer/topic/3453577",
+    "group":"",
+    "keywords": [],
+    "tags": ["#developersupport"],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Google Play Badge Generator",
+    "category":"google play",
+    "summary":"Build badges for your app in just a few clicks, or download hi-res badge assets localized for a variety of languages.",
+    "url":"https://play.google.com/intl/en_us/badges/",
+    "group":"",
+    "keywords": [],
+    "tags": ["#developersupport"],
+    "image":"images/gp-badges-set.png",
+    "type":"distribute"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["#developersupport #termsandpolicies"],
+    "url": "https://support.google.com/googleplay/android-developer/answer/4407611",
+    "timestamp": 1194884220000,
+    "image": 'images/play_dev.jpg',
+    "title": "Google Play Terms and Policies",
+    "summary": "Developer terms and policies that apply when you distribute apps in Google Play.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "title":"Google Play Policy Center",
+    "category":"google play",
+    "summary":"A central resource for you to learn about Google Play policies and guidelines.",
+    "url":"https://support.google.com/googleplay/android-developer/answer/4430948",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
+    "type":"distribute"
+  },
+  {
+    "title":"Developer Help Center",
+    "category":"Support",
+    "summary":"Complete details on getting started, publishing, troubleshooting, and more.",
+    "url":"https://support.google.com/googleplay/android-developer",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/google-play_2x.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Google for Education",
+    "category":"google play",
+    "summary":"Find out more about how Google can support your work with apps and tablets.",
+    "url":"https://www.google.com/edu/tablets/",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"distribute/images/gp-edu-apps-image.jpg",
+    "type":"distribute"
+  },
+  {
+    "title":"Google Play Game Services",
+    "category":"google",
+    "summary":"Make your games social with Google Play game services. Add achievements, leaderboards, real-time multiplayer, and other popular features using the Google Play game services SDK.",
+    "url":"https://developers.google.com/games/services/",
+    "group":"",
+    "keywords": ["games","play games"],
+    "tags": [],
+    "image":"images/google/gps-play_games_logo.png",
+    "type":"distribute"
+  },
+  {
+    "title":"Get Started with Analytics",
+    "category":"google",
+    "summary":"Get advanced insight into how players discover and play your games.",
+    "url":"distribute/analyze/start.html",
+    "group":"",
+    "keywords": ["analytics"],
+    "tags": [],
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "type": "distribute"
+  },
+  {
+    "title":"Monetize your apps intelligently",
+    "category":"google",
+    "summary":"Generate revenue from your free games with ads tailored to match your game's look and feel.",
+    "url":"https://www.google.com/admob/",
+    "group":"",
+    "keywords": ["AdMob"],
+    "tags": [],
+    "image":"images/cards/admob-analytics_2x.png",
+    "type": "distribute"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "versions", "blog", "googleplay"
+    ],
+    "url": "https://android-developers.blogspot.com/",
+    "timestamp": 1004884220000,
+    "image": "images/blog.jpg",
+    "title": "Android Developers Blog",
+    "summary": "Follow the latest news on Android design, development, and distribution.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Making Android Apps that Play Nice",
+    "summary": "Audio lifecycle and expected audio behaviors for Android apps.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Multithreading for Performance",
+    "summary": "Ways to improve performance through multi-threading.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://play.google.com/about/developer-content-policy.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Developer Program Policies",
+    "summary": "Guidelines acceptable content in Google Play. Please read and understand the policies before publishing.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/188189",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Rating your application content for Google Play",
+    "summary": "How to choose the appropriate content ratings level for your apps.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "Support"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["devices", "nexus", "testing"],
+    "url": "https://developers.google.com/android/nexus/images",
+    "timestamp": 1194884220000,
+    "image": "images/cards/card-download_16-9_2x.png",
+    "title": "Factory Images for Nexus Devices",
+    "summary": "System image files for Android 6.0 and other Android releases.",
+    "keywords": ["nexus, downloads"],
+    "type": "develop",
+    "category": "Tools"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Google Play Featured Image Guidelines",
+    "summary": "How to create attractive, effective Featured Images for your apps.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+{
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113477",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Supporting your users",
+    "summary": "Options for supporting users.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "Support"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/practices/screens_support.html#ConfigurationExamples",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Configuration examples",
+    "summary": "How to declare layouts and other resources for specific screen sizes.",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "training/design-navigation/multiple-sizes.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Planning for Multiple Touchscreen Sizes",
+    "summary": "",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "training/multiscreen/index.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Designing for Multiple Screens",
+    "summary": "Designing an intuitive, effective navigation for tablets and other devices.",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/resources/providing-resources.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Providing Resources",
+    "summary": "Layouts and drawable resources for specific ranges of device screens.",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "training/basics/supporting-devices/screens.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Supporting Different Screens",
+    "summary": "Optimizing the user experience for different screen sizes and densities.",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/appwidgets/index.html#MetaData",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Adding the AppWidgetProviderInfo Metadata",
+    "summary": "How to set the height and width dimensions of a widget.",
+    "keywords": [],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/manifest/uses-sdk-element.html#ApiLevels",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Android API Levels",
+    "summary": "Introduction to API levels and how they relate to compatibility.",
+    "keywords": [],
+    "type": "develop",
+    "category": "compatibility"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/practices/screens_support.html#DeclaringScreenSizeSupport",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Declaring screen size support",
+    "summary": "How to declare support for screen sizes in your app\'s manifest.",
+    "keywords": [],
+    "type": "develop",
+    "category": "compatibility"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/manifest/uses-feature-element.html#testing",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Checking for hardware feature requirements",
+    "summary": "Determining an app’s hardware and software requirements.",
+    "keywords": [],
+    "type": "develop",
+    "category": "compatibility"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://play.google.com/apps/publish/",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Google Play Developer Console",
+    "summary": "The tools console for publishing your app.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "Google Play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://youtu.be/SkHHPf3EdzE",
+    "timestamp": 1194884220000,
+    "image": "https://i1.ytimg.com/vi/SkHHPf3EdzE/maxresdefault.jpg",
+    "title": "Level Up Your Android Game",
+    "summary": "Learn how to take your game to the next level on Google Play.",
+    "keywords": [],
+    "type": "video",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/mobile/android/share/interactive-post",
+    "timestamp": 1194884220000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Sharing interactive posts to Google+ from your Android app",
+    "summary": "Interactive posts provide an easy and prominent way to allow users to share your site or app with their friends and invite them to take a specific action.",
+    "keywords": ["Interactive", "Google+"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://play.google.com/about/developer-distribution-agreement.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Developer Distribution Agreement",
+    "summary": "Terms for distributing and selling apps and in-app products in Google Play.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113417",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Inappropriate content in comments and applications",
+    "summary": "More details on what content is appropriate.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/legal/troubleshooter/1114905",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Removing content from Google",
+    "summary": "Find how how to request the removal of content that infringes on your trademark.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://play.google.com/about/developer-distribution-agreement-addendum.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Google Play for Education Addendum",
+    "summary": "Review the education-specific requirements.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
+    "timestamp": null,
+    "image": null,
+    "title": "Native RTL Support in Android 4.2",
+    "summary": "Blog post that explains how to support RTL in your UI.",
+    "keywords": [],
+    "type": "blog",
+    "category": "Localization"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/resources/string-resource.html#Plurals",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Quantity Strings (Plurals)",
+    "summary": "How to work with string plurals according to rules of grammar in a given locale.",
+    "keywords": [],
+    "type": "develop",
+    "category": "Localization"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "reference/java/util/Locale.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Locale",
+    "summary": "Determine what CLDR data or version of the Unicode spec a particular Android platform version uses.",
+    "keywords": [],
+    "type": "develop",
+    "category": "Localization"
+  },
+    {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/resources/string-resource.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "String Resources",
+    "summary": "Explains how to use string resources in your UI.",
+    "keywords": ["localization"],
+    "type": "develop",
+    "category": "guide"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "distribute/tools/localization-checklist.html#strings",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Manage strings for localization",
+    "summary": "Guidance on having your strings translation ready.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "localization"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "distribute/googleplay/policies/index.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Google Play Policies and Guidelines",
+    "summary": "An overview of Google Play policies for spam, intellectual property, and ads, with examples of common problems.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play "
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/topic/2364761",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Policy and Best Practices",
+    "summary": "Help Center document describing various content policies and processes.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/wallet/instant-buy/",
+    "timestamp": 1194884220000,
+    "image": "",
+    "title": "Android Pay APIs",
+    "summary": "Developer documentation describing Instant Buy and how to support it in your apps.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1169947",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Selling Apps in Multiple Currencies",
+    "summary": "Help Center document describing how pricing works in Google Play.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/138412",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Prices and supported currencies",
+    "summary": "Help Center document listing supported currencies for pricing your apps.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/112622",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Transaction Fees",
+    "summary": "Help Center document describing transaction fees for priced apps and in-app products.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/138000",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Specifying tax rates",
+    "summary": "Help Center document describing how to set tax rates for different countries.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "guide/topics/resources/localization.html",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Localizing with Resources",
+    "summary": "Developer guide to localizing resources in your app.",
+    "keywords": [],
+    "type": "develop",
+    "category": "localization"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113475",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Category types",
+    "summary": "Help Center document listing available categories for apps.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113476",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Updates",
+    "summary": "Requirements for app updates in Google Play.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1153479",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "In-app Billing",
+    "summary": "Help Center document describing how to correctly set up In-app Billing.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#gpfe",
+      "#googleplay"
+    ],
+    "url": "https://youtu.be/vzvpcEffvaE",
+    "timestamp": 1383243492000,
+    "image": "https://i1.ytimg.com/vi/vzvpcEffvaE/maxresdefault.jpg",
+    "title": "Introducing Tablets with Google Play for Education",
+    "summary": "Schools in Hillsborough, New Jersey were among the first to try out Nexus 7 tablets with Google Play for Education. See the difference it made for students, teachers, and administrators.",
+    "keywords": [],
+    "type": "video",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#engagement",
+    ],
+    "url": "https://www.youtube.com/yt/dev/",
+    "timestamp": 1383243492000,
+    "image": "https://www.youtube.com/yt/dev/media/images/yt-dev-home-hero.jpg",
+    "title": "YouTube for Developers",
+    "summary": "The YouTube APIs and Tools enable you to integrate YouTube's video content and functionality into your website, app, or device.",
+    "keywords": [],
+    "type": "video",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#engagement",
+    ],
+    "url": "https://www.google.com/analytics/mobile/",
+    "timestamp": 1383243492000,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile App Analytics",
+    "summary": "Mobile App Analytics measures what matters most at all key stages: from first discovery and download to in-app purchases. ",
+    "keywords": ["analytics,user behavior"],
+    "type": "distribute",
+    "category": "google"
+  },
+
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#gcm",
+    ],
+    "url": "https://www.youtube.com/watch?v=y76rjidm8cU",
+    "timestamp": 1383243492000,
+    "image": "https://1.bp.blogspot.com/-IF-1-1kA0sg/UYwTidxdi3I/AAAAAAAAAEU/ellLeQ-E1vs/s800/google-io-lockup-2.png",
+    "title": "Google Cloud Messaging at I/O 2013",
+    "summary": "Google Cloud Messaging allows your services to efficiently send data to applications on Android devices. See what's new, and learn how to use GCM to make your apps more efficient.",
+    "keywords": ["gcm"],
+    "type": "youtube",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#gcm",
+    ],
+    "url": "https://developer.chrome.com/apps/cloudMessagingV2",
+    "timestamp": 1383243492000,
+    "image": "images/kk-chromium-icon.png",
+    "title": "Google Cloud Messaging for Chrome",
+    "summary": "Google Cloud Messaging for Chrome (GCM) is a service for signed-in Chrome users that helps developers send message data from servers to their Chrome apps and extensions.",
+    "keywords": ["gcm"],
+    "type": "distribute",
+    "category": "google"
+  },
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#sdkupdates"
+    ],
+    "url": "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Make Beautiful Android App Icons",
+    "summary": "Follow these in-depth launcher icon tips on the Android Developers blog.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+     {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#sdkupdates"
+    ],
+    "url": "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Localize Your Promotional Graphics",
+    "summary": "Learn how to capitalise on international audiences.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+   {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "#sdkupdates"
+    ],
+    "url": "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Make your App Content more Accessible with App Linking",
+    "summary": "About using search and deep linking to get more users.",
+    "keywords": [],
+    "type": "blog",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/mobile/android/share/interactive-post",
+    "timestamp": 1194884220000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Sharing interactive posts to Google+ from your Android app",
+    "summary": "Interactive posts provide an easy and prominent way to allow users to share your site or app with their friends and invite them to take a specific action.",
+    "keywords": ["Interactive", "Google+"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/mobile/android/",
+    "timestamp": 1194884220000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Google+ Platform",
+    "summary": "Find out about features such as interactive posts, Hangouts, accessing basic user details and their social graphs to make your app more personal.",
+    "keywords": ["Google+"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/2528691",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "How to add multiple user accounts to your Developer Console for testing and more.",
+    "summary": "",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "google/play/licensing/index.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Application Licensing",
+    "summary": "Information on the features of Google Play to protect your apps’ licences.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "design/style/writing.html",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Writing Style",
+    "summary": "Design guidelines for voice and style in your UI.",
+    "keywords": [],
+    "type": "design",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://en.wikipedia.org/wiki/XLIFF",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "XML Localisation Interchange File Format (XLIFF)",
+    "summary": "Background information on XLIFF.",
+    "keywords": [],
+    "type": "develop",
+    "category": "localization"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1078870",
+    "timestamp": 1194884220000,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Graphic Assets for your Application",
+    "summary": "Details about the graphics you can add to your product listing.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/payments/answer/2741495",
+    "timestamp": null,
+    "image": null,
+    "title": "Issuing Refunds",
+    "summary": "Help Center document describing how to issue refunds.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://android-developers.blogspot.com/2013/11/bring-your-apps-into-classroom-with.html",
+    "timestamp": null,
+    "image": "distribute/images/gp-edu-apps-image.jpg",
+    "title": "Google play for education",
+    "summary": " ",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["localization", "pricing", "developer support"],
+    "url": "https://support.google.com/googleplay/android-developer/table/3541286",
+    "timestamp": null,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Supported locations for distributing your apps in Google Play",
+    "summary": "Countries and regions where you can distribute your app in Google Play.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["games", "localization", "quality"],
+    "url": "https://www.youtube.com/watch?v=SkHHPf3EdzE",
+    "timestamp": null,
+    "image": "https://developers.google.com/apps/images/io_2013/google-io-logo.png",
+    "title": "Level Up Your Android Game",
+    "summary": "Learn how to take your game to the next level in this Google I/O session.",
+    "keywords": [],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["support"],
+    "url": "https://support.google.com/plus/topic/2888488",
+    "timestamp": null,
+    "image": null,
+    "title": "Google+ Communities",
+    "summary": "Host a Google+ community for testers or users.",
+    "keywords": [],
+    "type": "distribute",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["monetize", "ads"],
+    "url": "https://www.google.com/doubleclick/publishers/small-business/index.html",
+    "timestamp": null,
+    "image": "https://www.google.com/doubleclick/publishers/small-business/images/define_ad.png",
+    "title": "DoubleClick for Publishers",
+    "summary": "A free ad management solution that helps growing publishers sell, schedule, deliver, and measure all of their digital ad inventory.",
+    "keywords": ["ads"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["monetize", "ads"],
+    "url": "https://support.google.com/googleplay/android-developer/topic/2985714",
+    "timestamp": null,
+    "image":"images/cards/google-play_2x.png",
+    "title": "Policy Center: Ads",
+    "summary": "Introduction to ads and system interference policies in Google Play.",
+    "keywords": ["ads"],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2611404",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Create Audience lists in Google Analytics",
+    "summary": "Find out how to use your analytics data to discover high value users and create remarketing audiences to use in AdMob.",
+    "keywords": ["ads, analytics, monetize"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://admob.blogspot.com/",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Inside Admob",
+    "summary": "Google’s official blog for news, tips, and information on the AdMob developer platform.",
+    "keywords": ["ads, analytics, monetize"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/3111064",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob in-app conversion tracking",
+    "summary": "Use in-app conversion tracking to attribute revenue back to your IAP promotion campaigns and determine which ones earn you the most.",
+    "keywords": ["ads, analytics, conversions"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["monetize", "giftcards"],
+    "url": "https://play.google.com/about/giftcards/",
+    "timestamp": null,
+    "image": "images/gp-balance.png",
+    "title": "Google Play Gift Cards",
+    "summary": "Buy Google Play gift cards online or at a variety of retail stores.",
+    "keywords": ["gift card"],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["monetize", "paymentmethods"],
+    "url": "https://support.google.com/googleplay/answer/2651410",
+    "timestamp": null,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Google Play Accepted Payment Methods",
+    "summary": "Support details on the payment methods supported in Google Play.",
+    "keywords": ["gift card"],
+    "type": "distribute",
+    "category": "google play"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["plus", "social"],
+    "url": "https://plus.google.com/+AndroidDevelopers/",
+    "timestamp": null,
+    "image": "images/plus.jpg",
+    "title": "+Android Developers",
+    "summary": "Sharing news, ideas, and techniques for success.",
+    "keywords": ["+AndroidDevelopers"],
+    "type": "develop",
+    "category": "Social"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": ["plus", "social"],
+    "url": "https://plus.google.com/+GooglePlay",
+    "timestamp": null,
+    "image": "images/cards/google-play_2x.png",
+    "title": "+Google Play",
+    "summary": "News and discussion about Google Play, apps, and other content in Google+.",
+    "keywords": ["+GooglePlay"],
+    "type": "distribute",
+    "category": "Social"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile App Analytics SDK",
+    "summary": "Measure everything about your app. Get started with the Google Analytics SDK for Android.",
+    "keywords": ["analytics, user behavior"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/edu/guidelines",
+    "timestamp": null,
+    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
+    "title": "Education Guidelines",
+    "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
+    "keywords": [],
+    "type": "",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/edu/faq",
+    "timestamp": null,
+    "image": "https://developer.android.com/distribute/images/gpfe-faq.jpg",
+    "title": "Education FAQ",
+    "summary": "Answers to common questions you might have about Google Play for Education.",
+    "keywords": [],
+    "type": "",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/edu/",
+    "timestamp": null,
+    "image": "https://developers.google.com/edu/images/home-android.png",
+    "title": "Chrome Apps in Google Play for Education",
+    "summary": "Find out more about Chrome apps in Google Play for Education.",
+    "keywords": [],
+    "type": "",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/edu/tablets/#tablets-family",
+    "timestamp": null,
+    "image": "https://www.google.com/edu/images/tablets/big-tablet.png",
+    "title": "Google Play for Education Tablets",
+    "summary": "Google Play for Education leverages a diverse set up tablets approved for the classroom which may help inform you how to build educational apps.",
+    "keywords": [],
+    "type": "",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.png",
+    "title": "Deer Hunter 2014 by Glu &mdash; Sign-in",
+    "summary": "Glu finds that Google Play Game Services helps improve the user experience which leads to increased player happiness. They also find that Play Games Services signed in users tend to play longer and have a higher lifetime value.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.png",
+    "title": "PBA® Bowling Challenge by Concrete Software &mdash; Quests",
+    "summary": "Concrete Software finds that Google Play Game Services' quests are a great way to create new content for users that leads to higher engagement.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.png",
+    "title": "Dragonplay Slots by Dragonplay &mdash; Sign-in",
+    "summary": "Dragonplay finds that players who sign in with Google Play Games services tend to be high quality users who were highly engaged. They also tend to be easier to convert to paying users.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.png",
+    "title": "Asphalt 8 by Gameloft &mdash; Friends invitations",
+    "summary": "Gameloft finds that Google Play Game Services users are more engaged than the average Android user and more likely to convert to paying players.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.png",
+    "title": "Eternity Warriors 3 by Glu &mdash; Gifting",
+    "summary": "Glu finds that Google Play Game Services gifting outperforms other implementations (including those with incentives) because of its seamless flow and consistent performance.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.jpg",
+    "title": "Rivals at War: Firefight by Hothead Games &mdash; Leaderboards",
+    "summary": "Hothead Games is planning to include Google Play Game Services features in all their games going forwards after seeing that players that signed in with Play Games Services tend to show higher retention and a higher average revenue.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.png",
+    "title": "Compulsive by TMSOFT &mdash; Cross-platform",
+    "summary": "TMSOFT finds that users who authenticate with Play Games Services on Android and iOS play Compulsive twice as much and purchase in-app products over four times as much.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.png",
+    "title": "Super Stickman Golf 2 by Noodlecake Studios &mdash; Multiplayer",
+    "summary": "Noodlecake Studios finds that Google Play Game Services’ multiplayer feature helps reduce attrition.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebelGames_DrWhoLegacy_pgps.png",
+    "title": "Dr. Doctor Who: Legacy by Tiny Rebel Games &mdash; Achievements",
+    "summary": "After integrating achievements and cloud services from Google Play Game Services, Tiny Rebel Games saw a dramatic increase in daily revenues as a result of an increase in daily installs and an increase in the average revenue per install.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf",
+    "timestamp": null,
+    "image": "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.png",
+    "title": "Leo’s Fortune by 1337 &amp; Senri &mdash; Saved games",
+    "summary": "1337 + Senri finds that Google Play Game Services is easy to integrate and provides essential game functions like cloud saved games, achievements and leaderboards which have a very large adoption rate amongst players.",
+    "keywords": ["stories"],
+    "type": "Case Study Deck",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "shareables/auto/AndroidAuto-audio-apps.pdf",
+    "timestamp": null,
+    "image": "auto/images/assets/icons/media_app_playback.png",
+    "title": "Android Auto Audio Apps UI Guidelines",
+    "summary": "Guidelines for designing audio apps that work with Auto. ",
+    "keywords": ["design", "Auto", "Automotive"],
+    "type": "Design",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "shareables/auto/AndroidAuto-messaging-apps.pdf",
+    "timestamp": null,
+    "image": "auto/images/assets/icons/messaging_app_notifications.png",
+    "title": "Android Auto Messaging Apps UI Guidelines",
+    "summary": "Guidelines for designing messaging apps that work with Auto. ",
+    "keywords": ["design", "Auto", "Automotive"],
+    "type": "Design",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "shareables/auto/AndroidAuto-custom-colors.pdf",
+    "timestamp": null,
+    "image": "auto/images/ui/gearhead_generic_UI.png",
+    "title": "Android Auto Color Customization UI Guidelines",
+    "summary": "Guidelines for color-customizing apps that work with Auto. ",
+    "keywords": ["design", "Auto", "Automotive"],
+    "type": "Design",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile Analytics Implementation Guide",
+    "summary": "Learn how you can implement additional Google Analytics features to better understand your users and their behavior.",
+    "keywords": ["analytics", "Play", "users"],
+    "type": "distribute",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/tagmanager/",
+    "timestamp": null,
+    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
+    "title": "Google Tag Manager",
+    "summary": "Google Tag Manager enables you to change configuration values in your mobile apps using the Google Tag Manager interface, without having to rebuild and resubmit application binaries to app marketplaces.",
+    "keywords": ["analytics", "tagmanager"],
+    "type": "distribute",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://analyticsacademy.withgoogle.com/course04",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Mobile App Analytics Fundamentals",
+    "summary": "This self-paced online course on mobile app measurement shows you how Google Analytics data can help you make your app more discoverable and profitable.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://github.com/googleanalytics/google-analytics-plugin-for-unity",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Analytics Plugin for Unity",
+    "summary": "If you're building games with Unity, you can now implement Analytics once and ship it on multiple platforms automatically.",
+    "keywords": ["analytics", "unity"],
+    "type": "Open Source Project",
+    "category": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "In-App Purchases & Ecommerce",
+    "summary": "If your app sells virtual or real goods, ecommerce tracking can help you understand what behaviors lead to purchases.",
+    "keywords": ["analytics, ecommerce"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/1032415",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Goals",
+    "summary": "Track important actions in your app as goals and measure performance against your objectives.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2568874?ref_topic=6012392",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Active Users",
+    "summary": "The active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you analyze performance over time.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/events",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Events",
+    "summary": "Events let you measure granular in-app activities and understand user journeys.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/customdimsmets",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Custom Dimensions",
+    "summary": "Custom dimensions enable the association of metadata with hits, users, and sessions in Google Analytics.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/user-id",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "User ID",
+    "summary": "The User ID feature enables Google Analytics to measure user activities that span across devices.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/display-features",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Demographic Reporting",
+    "summary": "By enabling display features, you can see just how different user segments engage and monetize.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/3123906",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "User Segmentation",
+    "summary": "Segments let you compare metrics for different subsets of users to identify trends and opportunities for your apps.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Campaign Tracking",
+    "summary": "Measuring campaigns in Google Analytics enables the attribution of campaigns and traffic sources to user activity within your app.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2956981",
+    "timestamp": null,
+    "image": "images/cards/google-play_2x.png",
+    "title": "Google Play Integration",
+    "summary": "By linking Analytics and the Play Developer Console, you can gain additional insights into the acquisition flow.",
+    "keywords": ["play, analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/1033961",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "AdWords Integration",
+    "summary": "Link Analytics and AdWords to see the entire picture of customer behavior, from ad click or impression through your site to conversion. ",
+    "keywords": ["adwords, analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Campaign URL builder for Google Play",
+    "summary": "Easily create your URLs to track install campaigns.",
+    "keywords": ["play, analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/tagmanager/answer/6003007",
+    "timestamp": null,
+    "image": "https://www.google.com/tagmanager/images/gtm-hero-illustration-small.png",
+    "title": "In-App A/B Testing",
+    "summary": "With content experiments in Google Tag Manager you can test multiple variations of your app to find which works best.",
+    "keywords": ["tagmanager"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2785577",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Behavior Flow",
+    "summary": "The Behavior Flow report visualizes the path users traveled from one Screen or Event to the next. This report can help you discover what content keeps users engaged with your app.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/1151300",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Custom Reports",
+    "summary": "Custom Reports let you create your own reports in your Google Analytics account.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2611268",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Audience Lists &amp; Remarketing",
+    "summary": "Remarketing with Google Analytics lets you deliver targeted ads to users who've already been to your site or app. You can even base those ads on the behavior those users displayed during their sessions.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/3508177",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "AdMob Integration",
+    "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/analytics/solutions/mobile-campaign-deep-link",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Deep-Linking",
+    "summary": "Google Analytics gives you a full view of how returning users are interacting with your app, for a holistic view beyond the install.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/3508177",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "AdMob Integration",
+    "summary": "With Google Analytics in AdMob, you can view Google Analytics data for your linked apps from within your AdMob account.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/analytics/answer/2568874",
+    "timestamp": null,
+    "image": "images/cards/analytics-mobile_2x.jpg",
+    "title": "Active User Report",
+    "summary": "Active user report displays your 1-day, 7-day, 14-day and 30-day trailing active users next to each other, to help you run benchmark analyses of their performance over time.",
+    "keywords": ["analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/animation/",
+    "timestamp": null,
+    "image": "images/cards/material-animation_2x.png",
+    "title": "Animation",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/style/",
+    "timestamp": null,
+    "image": "images/cards/material-style_2x.jpg",
+    "title": "Style",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/layout/",
+    "timestamp": null,
+    "image": "images/cards/material-layout_2x.png",
+    "title": "Layout",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/components/",
+    "timestamp": null,
+    "image": "images/cards/material-components_2x.jpg",
+    "title": "Components",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/patterns/",
+    "timestamp": null,
+    "image": "images/cards/material-patterns_2x.png",
+    "title": "Patterns",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/usability/",
+    "timestamp": null,
+    "image": "images/cards/material-usability_2x.png",
+    "title": "Usability",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/color-palettes.html",
+    "timestamp": null,
+    "image": "images/cards/material-color-palette_2x.jpg",
+    "title": "Color Palettes",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/layout-templates.html",
+    "timestamp": null,
+    "image": "images/cards/material-layout-template_2x.jpg",
+    "title": "Layout Templates",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
+    "timestamp": null,
+    "image": "images/cards/material-sticker-sheet_2x.jpg",
+    "title": "Sticker Sheets & Icons",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
+    "timestamp": null,
+    "image": "images/cards/material-typography_2x.jpg",
+    "title": "Typography: Roboto and Noto Sans fonts",
+    "summary": "",
+    "keywords": [],
+    "type": "design",
+    "category": "material design"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "icons",
+      "material",
+      "iconography"
+    ],
+    "url": "https://www.google.com/design/icons/index.html",
+    "timestamp": null,
+    "image": "images/cards/card-material-icons-16x9_2x.jpg",
+    "title": "Material icon collection",
+    "summary": "",
+    "keywords": ["icons"],
+    "type": "design",
+    "category": "material design"
+  },
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/adwords/answer/6032059",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Setting up Mobile App Install Ads",
+    "summary": "With Mobile app installs campaigns on the Search and Display Networks, and TrueView for mobile app promotion on YouTube, you can create custom app install ads that run exclusively on phones and tablets.",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/adwords/answer/6167164",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Best practices for Mobile App Engagement",
+    "summary": "Learn how to market to your user base to drive re-engagement with your app. ",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "marketing",
+      "engagement",
+      "adwords1"
+    ],
+    "url": "https://support.google.com/adwords/answer/6032073",
+    "timestamp": null,
+    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
+    "title": "Setting up Mobile App Engagement Ads",
+    "summary": "Mobile app engagement campaigns are a great choice for advertisers focused on connecting with people who already have their app.",
+    "keywords": [
+      "marketing",
+      "engagement",
+      "adwords"
+    ],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [
+      "marketing",
+      "engagement"
+    ],
+    "url": "https://support.google.com/adwords/answer/6167162",
+    "timestamp": null,
+    "image": "https://www.gstatic.com/images/icons/material/product/2x/adwords_64dp.png",
+    "title": "Best Practices for Mobile App Installs",
+    "summary": "Getting your mobile app discovered can be challenging. Learn how to drive downloads of your app and grow a valuable user base.",
+    "keywords": ["marketing", "adwords"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/topic/2784623",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Set up your AdMob account",
+    "summary": "Setting up your AdMob account in the right way will help you get the most value, check out the Setup and Basics guide.",
+    "keywords": ["marketing", "admob"],
+    "type": "distribute",
+    "category": "google"
+    },
+    {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://analyticsacademy.withgoogle.com/mobile-app",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Analytics Academy for Mobile Apps",
+    "summary": "Learn how to use Google Analytics to make your app more discoverable and profitable.",
+    "keywords": ["marketing", "analytics"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/mobile-ads-sdk/download",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "Admob Ads",
+    "summary": "Use the Mobile Ads SDK to start showing AdMob ads in your apps.",
+    "keywords": ["marketing", "adwords"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob Help Center",
+    "summary": "For setup assistance, general info, and fixes for specific problems check out the AdMob Help Center.",
+    "keywords": ["admob"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/admob/answer/2753860",
+    "timestamp": null,
+    "image": "distribute/images/advertising.jpg",
+    "title": "AdMob Policy Guidelines",
+    "summary": "Learn about best practices for displaying AdMob ads in your apps to maximize revenue.",
+    "keywords": ["admob"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/app-invites/",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-search_2x.png",
+    "title": "Set up App Invites",
+    "summary": "Bring new users to your apps with personal recommendations, incentives, and offers.",
+    "keywords": ["invites", "appinvites", "engagement", "getusers"],
+    "type": "distribute",
+    "category": "google"
+  },
+
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/app-indexing/",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-search_2x.png",
+    "title": "Set Up App Indexing",
+    "summary": "Surface your app content in Google seaerch. Deep link direct to your apps.",
+    "keywords": ["search", "appindexing", "engagement", "getusers"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/app-indexing/webmasters/details",
+    "timestamp": null,
+    "image": "images/cards/google-search_2x.png",
+    "title": "Index your app",
+    "summary": "Index your app today by adding deep links and verifying its official web site to ensure it starts appearing in Google Search results. ",
+    "keywords": ["appindexing","search","getusers"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/identity/sign-in/android/people",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Get user profile details",
+    "summary": "After users sign-in with Google, you can access their age range, language, and public profile information.",
+    "keywords": ["signin", "identity", "google"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/identity/sign-in/android/",
+    "timestamp": "",
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Google Sign-In",
+    "summary": "Discover how you can enhance user experiences on your website or in your app using information provided by their Google identity.",
+    "keywords": ["signin", "identity", "google"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/features/play-installs",
+    "timestamp": 1383243492000,
+    "image": "images/cards/google-sign-in_2x.png",
+    "title": "Over-the-air installs",
+    "summary": "Follow this step-by-step guide to quickly add Google Sign-in and over-the-air app installs to your website.",
+    "keywords": ["signin", "google", "installs"],
+    "type": "distribute",
+    "category": "google"
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/+/features/analytics",
+    "timestamp": 1383243492000,
+    "image": 'images/google/gps-googleplus.png',
+    "title": "Google+ Insights",
+    "summary": "Measure impressions of the over-the-air install prompt, resulting installs, and success rate by day, week, and month.",
+    "keywords": ["signin", "identity"],
+    "type": "distribute",
+    "category": "google"
+  },
+
+ // Online courses
+
+ {
+    "title":"UX Design for Mobile Developers",
+    "category":"online course",
+    "summary":"Learn how to design a 5-star app.",
+    "url":"https://www.udacity.com/course/ud849",
+    "group":"",
+    "keywords": ["mobile","ux","design"],
+    "tags": ["courses, start"],
+    "image":"images/cards/courses/mobile_ux_course.jpg",
+    "lang":"en",
+    "type":"design"
+  },
+  {
+    "title":"Developing Android Apps",
+    "category":"online course",
+    "summary":"Learn Android and build an app!",
+    "url":"https://www.udacity.com/course/ud853",
+    "group":"",
+    "keywords": ["android", "start","firstapp","sdk"],
+    "tags": ["courses, start"],
+    "image":"images/cards/courses/android_fundamentals_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Android Performance",
+    "category":"online course",
+    "summary":"Optimize your apps for speed and usability.",
+    "url":"https://www.udacity.com/course/ud825",
+    "group":"",
+    "keywords": ["android, performance","battery"],
+    "tags": ["courses, performance"],
+    "image":"images/cards/courses/android_performance_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Enroll in the Android Nanodegree",
+    "category":"online course",
+    "summary":"Enroll in the Android Nanodegree to build the skills to work as an Android developer.",
+    "url":"https://www.udacity.com/android",
+    "group":"",
+    "keywords": ["android, nanodegree"],
+    "tags": ["courses"],
+    "image":"images/cards/courses/android_nanodegree.png",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Advanced Android App Development",
+    "category":"online course",
+    "summary":"Productionize and publish your apps.",
+    "url":"https://www.udacity.com/course/ud855",
+    "group":"",
+    "keywords": ["android, experts"],
+    "tags": ["courses, expert"],
+    "image":"images/cards/courses/advanced_android_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Material Design for Android Developers",
+    "category":"online course",
+    "summary":"Learn how to make your apps material.",
+    "url":"https://www.udacity.com/course/ud862",
+    "group":"",
+    "keywords": ["android, design, pure, material"],
+    "tags": ["courses, start, material"],
+    "image":"images/cards/courses/android_design_course.jpg",
+    "lang":"en",
+    "type":"design"
+  },
+  {
+    "title":"Android for Beginners",
+    "category":"online course",
+    "summary":"Make your first Android app, even if you don't write code.",
+    "url":"https://www.udacity.com/course/ud837",
+    "group":"",
+    "keywords": ["android, sdk, firstapp"],
+    "tags": ["courses, start"],
+    "image":"images/cards/courses/beginning_android_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Gradle for Android and Java",
+    "category":"online course",
+    "summary":"Build better apps through automation",
+    "url":"https://www.udacity.com/course/ud867",
+    "group":"",
+    "keywords": ["gradle","studio", "sdk"],
+    "tags": ["courses, gradle, sdk"],
+    "image":"images/cards/courses/gradle_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Add Location and Context to your app",
+    "category":"online course",
+    "summary":"Make Your Android App Location Aware.",
+    "url":"https://www.udacity.com/course/ud876-1",
+    "group":"",
+    "keywords": ["google services, context, location"],
+    "tags": ["courses, google, location, context"],
+    "image":"images/cards/courses/android_location_course.png",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Analytics and Tag Manager for Android",
+    "category":"online course",
+    "summary":"Use Analytics and Tag Manager in Your Apps.",
+    "url":"https://www.udacity.com/course/ud876-2",
+    "group":"",
+    "keywords": ["google services, analytics, tag manager"],
+    "tags": ["courses, google, analytics"],
+    "image":"images/cards/courses/android_analytics_course.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"AdMob for Android",
+    "category":"online course",
+    "summary":"Monetize Your App by Displaying Ads.",
+    "url":"https://www.udacity.com/course/ud876-3",
+    "group":"",
+    "keywords": ["monetize, google services, ads, admob"],
+    "tags": ["courses, google, ads, admob"],
+    "image":"images/cards/courses/admob_course.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Add Maps to your Android app",
+    "category":"online course",
+    "summary":"Use maps, cameras, markers and more in your app.",
+    "url":"https://www.udacity.com/course/ud876-4",
+    "group":"",
+    "keywords": ["google, maps, marker, camera"],
+    "tags": ["courses, google, maps"],
+    "image":"images/cards/courses/android_maps_course.png",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Add Sign-in to your Android app",
+    "category":"online course",
+    "summary":"Build a Seamless Sign-In Experience.",
+    "url":"https://www.udacity.com/course/ud876-5",
+    "group":"",
+    "keywords": ["google services, signin, authorization"],
+    "tags": ["courses, google, auth"],
+    "image":"images/cards/courses/android_identity_course.png",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Android Wear Development",
+    "category":"online course",
+    "summary":"Extend your Apps to Android Smartwatches.",
+    "url":"https://www.udacity.com/course/ud875A",
+    "group":"",
+    "keywords": ["wear, wearables, smartwatch"],
+    "tags": ["courses, wear, wearable"],
+    "image":"images/cards/courses/android_wear_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Android TV and Google Cast Development",
+    "category":"online course",
+    "summary":"Extend your Apps to the Big Screen.",
+    "url":"https://www.udacity.com/course/ud875B",
+    "group":"",
+    "keywords": ["cast, living room"],
+    "tags": ["courses, cast, tv"],
+    "image":"images/cards/courses/android_tv_cast_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+  {
+    "title":"Android Auto Development",
+    "category":"online course",
+    "summary":"Put your apps in the driver's seat.",
+    "url":"https://www.udacity.com/course/ud875C",
+    "group":"",
+    "keywords": ["auto"],
+    "tags": ["courses, auto"],
+    "image":"images/cards/courses/android_auto_course.jpg",
+    "lang":"en",
+    "type":"develop"
+  },
+
+
+ // TODO remove this?
+  {
+    "title":"Android Wear Materials",
+    "category":"design",
+    "summary":"Drag and drop your way to beautifully designed Android Wear apps.",
+    "url":"design/downloads/index.html#Wear",
+    "group":"",
+    "keywords": ["icons","stencils","color swatches"],
+    "tags": ["icons","stencils","colorswatches"],
+    "image":"images/cards/android-wear-materials_2x.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Watch Faces for Android Wear",
+    "category":"design",
+    "summary":"Watch faces let you customize the most prominent UI feature of Android wearables. The API is simple enough for rapid development and flexible enough to build something awesome.",
+    "url":"https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
+    "group":"",
+    "keywords": ["wear", "wearable", "watch face"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/AK38PJZmIW8/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Android Support Library",
+    "category":"Tools",
+    "summary":"These essential components help you build a great app that works on the huge variety of Android devices, faster.",
+    "url":"https://www.youtube.com/watch?v=3PIc-DuEU2s&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+    "group":"",
+    "keywords": ["support", "compatibility"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/3PIc-DuEU2s/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Consistent Design with the AppCompat Support Library",
+    "category":"design",
+    "summary":"Getting a great looking app doesn't have to be hard: AppCompat, part of the Android Support Library, gives you a consistent design baseline that works on all Android 2.1 or higher devices.",
+    "url":"https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+    "group":"",
+    "keywords": ["support", "compatibility","design-code"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/5Be2mJzP-Uw/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Introducing Gradle",
+    "category":"tools",
+    "summary":"Android Studio uses an entirely new and flexible Gradle-based build system. You will be able to create multiple build variants for a single project, manage library dependencies and always be sure that your application builds correctly across different environments.",
+    "url":"https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","gradle"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/cD7NPxuuXYY/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Android Studio Layout Editor",
+    "category":"tools",
+    "summary":"Android Studio includes a rich, visual layout editor that helps developers create better user interfaces. It eliminates the need to deploy the APK on a real device with each change, making iterations faster and helping eliminate common errors earlier in the development process.",
+    "url":"https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","layout"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/JLLnhwtDoHw/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Debugging and testing in Android Studio",
+    "category":"tools",
+    "summary":"Learn about new debugger features in Android Studio 1.2: value inlining, quick access to referring objects and a Java .class decompiler, just to name a few. See some new tools and views that let you monitor the CPU and memory performance of your app from within the IDE. ",
+    "url":"https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+    "group":"",
+    "keywords": ["tools", "studio","debugging","profiling","performance"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/2I6fuD20qlY/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Scale with Google Cloud Platform",
+    "category":"google",
+    "summary":"Build, test, and deploy applications on Google's highly-scalable and reliable infrastructure for your web, mobile and backend solutions.",
+    "url":"https://cloud.google.com/docs/",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/cloud-platform_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Opportunities & Programs",
+    "category":"Google Play",
+    "summary":"Take advantage of the many ways you can distribute your app to consumers, students, and businesses through Google Play.",
+    "url":"distribute/googleplay/index.html#opportunities",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/cards/program-edu_2x.jpg",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Android for Work",
+    "category":"Enterprise",
+    "summary":"Learn more about how Android for Work makes your favorite phones and tablets the perfect business tools.",
+    "url":"https://www.android.com/work/",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"images/cards/card-android-work_2x.png",
+    "lang":"en",
+    "type":"about"
+  },
+  {
+    "title":"Android for Work DevBytes",
+    "category":"Enterprise",
+    "summary":"Watch the videos in this playlist to understand more about Android for Work and get tips on developing enterprise apps.",
+    "url":"https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/jQWB_-o1kz4/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"App Configurations, Testing and Launchers",
+    "category":"Enterprise",
+    "summary":"With Android for Work you can make your apps remotely configurable. We also cover how to test your app in a managed environment.",
+    "url":"https://www.youtube.com/watch?v=39NkpWkaH8M&index=2&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/39NkpWkaH8M/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Building an enterprise ready app",
+    "category":"Enterprise",
+    "summary":"A holistic view of Android for Work for developers.",
+    "url":"https://www.youtube.com/watch?v=dH41OutAMNM",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/dH41OutAMNM/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Android for Work: Single Use Devices",
+    "category":"Enterprise",
+    "summary":"Single-purpose computers are everywhere, and Android can meet that need.",
+    "url":"https://www.youtube.com/watch?v=j3QC6hcpy90",
+    "group":"",
+    "keywords": ["work", "enterprise", "emm"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Discover YouTube cards",
+    "category":"google",
+    "summary":"Find out more about YouTube cards, the options available, and how to use them to get the most from your YouTube content.",
+    "url":"https://support.google.com/youtube/answer/6140493",
+    "group":"",
+    "keywords": ["youtube", "video", "users", "installs"],
+    "tags": [],
+    "image":"images/cards/card-youtube_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+    {
+    "title":"What is YouTube account good standing?",
+    "category":"Google",
+    "summary":"Learn what it means for an account to be in good standing from the YouTube Help Center.",
+    "url":"https://support.google.com/youtube/answer/2797387",
+    "group":"",
+    "keywords": ["youtube", "video", "users", "installs"],
+    "tags": [],
+    "image":"images/cards/card-youtube_2x.png",
+    "lang":"en",
+    "type":"distribute"
+  },
+  {
+    "title":"Developing for Android 6.0 (Marshmallow)",
+    "category":"",
+    "summary":"This video covers how to get started with the preview, important APIs to test and how to provide feedback on the preview.",
+    "url":"https://www.youtube.com/watch?v=yYU4DHLwoRk",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/yYU4DHLwoRk/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Google I/O 2015 - What's new in Android",
+    "category":"",
+    "summary":"This session will highlight the most exciting new developer features of the Android platform.",
+    "url":"https://www.youtube.com/watch?v=ndBdf1_oOGA",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/ndBdf1_oOGA/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Fingerprint and payments APIs",
+    "category":"",
+    "summary":"New fingerprint and payments APIs are introduced in M, to enable enhanced UX and security for online purchasing, banking, and retail payments.",
+    "url":"https://www.youtube.com/watch?v=VOn7VrTRlA4",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/VOn7VrTRlA4/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Introduction to Voice Interaction API",
+    "category":"",
+    "summary":"This video covers how to use the Voice Interaction API to support system or custom voice actions.",
+    "url":"https://www.youtube.com/watch?v=OW1A4XFRuyc",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/OW1A4XFRuyc/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"Android Auto Backup for Apps",
+    "category":"",
+    "summary":"Android Backup is the automatic, cloud-based backup and restore of users’ apps when they set up a new device.",
+    "url":"https://www.youtube.com/watch?v=HXacyy0HSW0",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/HXacyy0HSW0/maxresdefault.jpg",
+    "lang":"en",
+    "type":"video"
+  },
+  {
+    "title":"New APIs in M for Android for Work",
+    "category":"",
+    "summary":"Android M extends Android for Work functionality with a new set of APIs for Enterprise Mobility Management providers to offer new features and policy controls to IT Departments.",
+    "url":"https://www.youtube.com/watch?v=vcSj8ln-BlE",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/vcSj8ln-BlE/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Android for Work: Single Use Devices",
+    "category":"",
+    "summary":"Android M is bringing the power of Android to all kinds of workplaces.",
+    "url":"https://www.youtube.com/watch?v=j3QC6hcpy90",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/j3QC6hcpy90/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Runtime Permissions in Android 6.0 Marshmallow",
+    "category":"",
+    "summary":"Learn how to integrate runtime permissions into your Android app.",
+    "url":"https://www.youtube.com/watch?v=C8lUdPVSzDk",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/C8lUdPVSzDk/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Introduction to Doze",
+    "category":"",
+    "summary":"An overview of Doze and how to make sure that your app behaves as expected both in and out of Doze mode. ",
+    "url":"https://youtu.be/N72ksDKrX6c",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/N72ksDKrX6c/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"The Nexus 5X, Nexus 6P and Android Marshmallow",
+    "category":"",
+    "summary":"The new Nexus 5X and Nexus 6P along with some of the most significant developer features in the latest Android release,.",
+    "url":"https://youtu.be/U9tw5ypqEN0",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/U9tw5ypqEN0/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Asking For Permission",
+    "category":"",
+    "summary":"Picking the right way and time to ask for a permission is critical to it being granted. ",
+    "url":"https://youtu.be/iZqDdvhTZj0",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/iZqDdvhTZj0/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Data Binding Library",
+    "category":"",
+    "summary":"Data Binding Library is a way to write declarative layouts and minimize the glue code necessary to bind your application logic and layouts. ",
+    "url":"https://youtu.be/5sCQjeGoE7M",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/5sCQjeGoE7M/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"App Links",
+    "category":"",
+    "summary":"App Links is a new feature of Android Marshmallow that brings a faster way of opening website links for domains that you own.",
+    "url":"https://youtu.be/LQoohRwojmw",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/LQoohRwojmw/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "title":"Android M Permissions",
+    "category":"",
+    "summary":"An introduction to Android M runtime permissions in Android M from Google I/O 2015. ",
+    "url":"https://www.youtube.com/watch?v=f17qe9vZ8RM",
+    "group":"",
+    "keywords": ["Marshmallow"],
+    "tags": [],
+    "image":"https://i1.ytimg.com/vi/f17qe9vZ8RM/maxresdefault.jpg",
+    "lang":"en",
+    "type":"Video"
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=QDM52bblwlg",
+    "image": "images/distribute/hero-family-discovery.jpg",
+    "title": "Introducing the new family discovery experience on Google Play",
+    "summary": "Help families create little moments on Google Play. Opt-in your apps now.",
+    "tags":["families","googleplay"],
+    "type":"video"
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
+    "image": "https://i1.ytimg.com/vi/wcjqBSei3a0/maxresdefault.jpg",
+    "title": "Developers connecting the world through Google Play",
+    "summary": "The mobile ecosystem is empowering developers to make good on the dream of connecting the world through technology to improve people's lives.",
+    "tags":["io15","googleplay"],
+    "keywords":["Google I/O 2015","io"],
+    "type":"video"
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
+    "image": "https://i1.ytimg.com/vi/B6ydLpkhq04/maxresdefault.jpg",
+    "title": "Store Listing Experiments for Google Play",
+    "summary": "Learn how to use Google Play’s new store listing optimization feature to get more installs of your app, and how to test different graphics and text to find out which options perform the best. ",
+    "tags":["io15","googleplay","store listing"],
+    "tags":["google i/o","google play","store listing"],
+    "type":"video"
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=jyO3-rF4Mu0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
+    "image": "https://i1.ytimg.com/vi/jyO3-rF4Mu0/maxresdefault.jpg",
+    "title": "Growing games with Google",
+    "summary": "The games industry has never been more promising and full of opportunities. This talk covers how Google is helping developers across a broad range of existing and emerging platforms.",
+    "tags":["io15","android", "googleplay","games"],
+    "keywords":["Google I/O","google play","games"],
+    "type":"video"
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=yJisuP94lHU",
+    "image": "images/distribute/hero-playtime-opener.jpg",
+    "title": "Playtime 2015: Innovation happens everywhere",
+    "type":"Video",
+    "tags":["googleplay"],
+    "summary": "Watch the opening video from Google Play's annual event series, Playtime, which celebrates inspirational developers who are changing the world around them.",
+  },
+  {
+    "url":"https://www.youtube.com/watch?v=JrR6o5tYMWQ",
+    "image": "images/distribute/hero-acquisition-devbyte.jpg",
+    "title": "User acquisition and tracking on Google Play",
+    "type" : "Video",
+    "tags" : "users,googleplay,googleio",
+    "summary": "Learn how to get new users, using Universal app campaigns directly within the Google Play Developer Console to increase your installs from ads, and find out how your acquisition channels perform.",
+  },
+  {
+    "url":"panel1",
+    "image": "",
+    "title": "",
+    "type" : "",
+    "tags" : "",
+    "summary": "",
+  },
+  {
+    "url":"panel2",
+    "image": "",
+    "title": "",
+    "type" : "",
+    "tags" : "",
+    "summary": "",
+  },
+  {
+    "url":"panel3",
+    "image": "",
+    "title": "",
+    "type" : "",
+    "tags" : "",
+    "summary": "",
+  },
+  {
+    "url":"panel4",
+    "image": "",
+    "title": "",
+    "type" : "",
+    "tags" : "",
+    "summary": "",
+  }
+]);
+
+/**
+ * Metadata overrides for carousels/heros.
+ */
+METADATA['en'].carousel = {
+  "panel2": {
+    "image": "images/tools/and-studio_shortcuts-included_2x.png",
+    "title": "Shortcuts included",
+    "type":"Android Studio",
+    "heroColor": "#fff",
+    "url":"",
+    "summary": "No need to start from scratch, Android Studio includes prebuilt template patterns &nbsp; from navigation drawers to view pagers and GitHub integration to help guide you along quickly.",
+  },
+  "panel4": {
+    "image": "images/tools/and-studio_feat-gradle_2x.png",
+    "title": "Evolved Android builds, with Gradle",
+    "type":"Android Studio",
+    "heroColor": "#fff",
+    "summary": "Create multiple APKs for your Android app with different features using the same project. Manage app dependencies with Maven. Build APKs from Android Studio or the command line.",
+  },
+  "panel1": {
+    "image": "images/tools/codeeditor-low.gif",
+    "title": "Fast, intelligent coding",
+    "type":"Android Studio",
+    "heroColor": "#fff",
+    "summary": "Advanced code completion, refactoring and code analysis in an environment that’s purpose-built for Android, the powerful code editor helps you be a more productive Android app developer.",
+  },
+  "panel3": {
+    "image": "images/tools/studio-hero-screens_2x.png",
+    "title": " All shapes, sizes and scenarios",
+    "type":"Android Studio",
+    "heroColor": "#fff",
+    "summary": "Create multiple APKs for your Android app with different features using the same project. Manage app dependencies with Maven. Build APKs from Android Studio or the command line.",
+  },
+  "distribute/googleplay/guide.html": {
+    "image": "images/distribute/hero-secrets-to-app-success.jpg",
+    "title": "Secrets to App Success on Google Play",
+    "summary": "Get the updated guide full of useful features, tips, and best practices that will help you grow a successful app or game business on Google Play.",
+  },
+  "about/versions/lollipop.html": {
+    "image": "images/home/hero-lollipop_2x.png",
+    "heroColor": "#263238",
+    "heroInvert": true,
+    "title": "Android 5.0 Lollipop",
+    "summary": "The Android 5.0 update adds a variety of new features for your apps, such as notifications on the lock screen, an all-new camera API, OpenGL ES 3.1, the new naterial design interface, and much more.",
+  },
+  "https://www.youtube.com/watch?v=yJisuP94lHU": {
+    "url":"https://www.youtube.com/watch?v=yJisuP94lHU&index=1&list=PLWz5rJ2EKKc_QRBk7Zkl5uGjR1He7vG-w",
+    "image": "images/distribute/hero-playtime-opener.jpg",
+    "title": "Playtime 2015: Innovation happens everywhere",
+    "type":"video",
+    "summary": "Watch the opening video from Google Play's annual event series, Playtime, which celebrates inspirational developers who are changing the world around them.",
+  },
+  "http://www.youtube.com/watch?v=rcU7VEs1hiE": {
+    "url":"https://www.youtube.com/watch?v=rcU7VEs1hiE&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-rogervoice-story.jpg",
+    "title": "RogerVoice uses beta testing to launch on Android first",
+    "type" : "youtube",
+    "summary": "RogerVoice helps people who are hearing impaired make phone calls through voice recognition and text captions. Hear how they used material design and beta testing to create a UI that's accessible and intuitive to navigate.",
+  },
+  "http://www.youtube.com/watch?v=JFlX9rW7Epc": {
+    "url":"https://www.youtube.com/watch?v=JFlX9rW7Epc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-domain-story.jpg",
+    "title": "Domain increases installs by 44% with Material Design",
+    "type" : "youtube",
+    "summary": "Learn how Domain, a premier real-estate portal in Australia, drastically improved their Google Play app reviews, ratings and downloads by investing in their Android app experience.",
+  },
+  "http://www.youtube.com/watch?v=4CqXCkcN_d4": {
+    "url":"https://www.youtube.com/watch?v=4CqXCkcN_d4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-dots-story.jpg",
+    "title": "Dots increases installs with Store Listing Experiments",
+    "type" : "youtube",
+    "summary": "Hear how US-founded game developer, Dots, used the Store Listing Experiments feature in the Google Play Developer Console to test what icon, graphics, and text worked the best at converting visitors to installs.",
+  },
+  "https://www.youtube.com/watch?v=JrR6o5tYMWQ": {
+    "url":"https://www.youtube.com/watch?v=JrR6o5tYMWQ",
+    "image": "images/distribute/hero-acquisition-devbyte.jpg",
+    "title": "User acquisition and tracking on Google Play",
+    "type" : "youtube",
+    "summary": "Learn how to get new users, using Universal app campaigns directly within the Google Play Developer Console to increase your installs from ads, and find out how your acquisition channels perform.",
+  },
+  "https://www.youtube.com/watch?v=Pd49vTkvu0U": {
+    "url":"https://www.youtube.com/watch?v=Pd49vTkvu0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-jelly-button.jpg",
+    "title": "How Jelly Button Games are growing globally through data",
+    "summary": "To really understand their users, Jelly Button Games analyzes over 3 billion events each month using Google Analytics and Google BigQuery.",
+  },
+  "https://www.youtube.com/watch?v=700gYRkhkLM": {
+    "url":"https://www.youtube.com/watch?v=700gYRkhkLM&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-outfit7.jpg",
+    "title": "Outfit7 — Building an entertainment company with Google",
+    "summary": "Outfit7, creators of My Talking Tom and My Talking Angela, offer a complete entertainment experience to users spanning mobile apps, user generated and original YouTube content, and a range of toys, clothing, and accessories....",
+  },
+  "https://www.youtube.com/watch?v=MPnH7h12h0U": {
+    "url":"https://www.youtube.com/watch?v=MPnH7h12h0U&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-haystack.jpg",
+    "summary": "Haystack TV built a scalable business with six employees and Android TV. Two weeks was all it took for them to bring their mobile app to the big screen.",
+  },
+  "https://www.youtube.com/watch?v=ekxABqJeRBc": {
+    "url":"https://www.youtube.com/watch?v=ekxABqJeRBc&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-ginlemon.jpg",
+    "title": "How GinLemon is breaking through with Google Play",
+    "summary": "Meet Vincenzo Colucci, developer and founder of GinLemon, which started as a summer holiday joke and has now become a successful global app business on Google Play based in Manfredonia, southern Italy.",
+  },
+  "https://www.youtube.com/watch?v=0r36OJaeMo4": {
+    "url":"https://www.youtube.com/watch?v=0r36OJaeMo4&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-shifty-jelly.jpg",
+    "title": "Shifty Jelly — building a number 1 podcast app",
+    "summary": "Shifty Jelly is an Adelaide based mobile development company that has seen great success building Pocket Casts, a premium podcast manager app.",
+  },
+  "https://www.youtube.com/watch?v=1Iw7Tg_afKk": {
+    "image": "images/distribute/hero-wooga.jpg",
+    "url":"https://www.youtube.com/watch?v=1Iw7Tg_afKk&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "title": "Wooga’s fast iterations on Google Play",
+    "summary": "The speed at which Wooga is able to iterate its live and under development games with the Android and Google Play tools has been key to delivering hits such as Diamond Dash, Jelly Splash, and Agent Alice.",
+  },
+  "https://www.youtube.com/watch?v=TieksFvD-7o": {
+    "url":"https://www.youtube.com/watch?v=TieksFvD-7o&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-trello.jpg",
+    "title": "Trello lifts engagement by double digits with material design",
+    "summary": "Trello recently redesigned their collaborative planning app using the material design guidelines, and their efforts paid off.",
+  },
+  "https://www.youtube.com/watch?v=MCoh4Pxs_ok": {
+    "url":"https://www.youtube.com/watch?v=MCoh4Pxs_ok&list=PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c",
+    "image": "images/distribute/hero-the-hunt.jpg",
+    "title": "The Hunt — growing engagement with material design and Google Play",
+    "summary": "Material design has helped The Hunt to enhance engagement in their style advice and product discovery app. ",
+  },
+  "https://www.youtube.com/watch?v=QDM52bblwlg": {
+    "url":"distribute/googleplay/families/about.html",
+    "image": "images/distribute/hero-family-discovery.jpg",
+    "title": "Designed for families",
+    "summary": "Introducing the new family discovery experience in Google Play. Your apps can benefit from enhanced discoverability and maintain their existing categories, rankings, and reviews elsewhere in the store. Opt-in your apps today.",
+    "type":"distribute",
+  },
+  "https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
+    "url":"https://www.youtube.com/watch?v=wcjqBSei3a0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
+    "image": "images/distribute/hero-IO15-google-play.jpg",
+    "title": "Connecting the world through Google Play",
+    "tags":["io15"],
+    "summary": "In this this Google I/O talk, hear how the mobile ecosystem is empowering developers to connect the world through technology and improve people's lives.",
+  },
+  "https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
+    "image": "images/distribute/hero-store-listing-experience.jpg",
+    "title": "Using Google Play store listing experiments",
+    "tags":["io15"],
+    "summary": "Learn how to use Google Play store listing experiments to get more installs in this Google I/O talk. Test different graphics and text to find out which options perform the best. ",
+  },
+  "https://www.youtube.com/watch?v=jyO3-rF4Mu0&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS": {
+    "image": "images/distribute/hero-IO15-growing-games.jpg",
+    "title": "Growing games with Google",
+    "tags":["io15"],
+    "summary": "The games industry has never been more promising and full of opportunities. This talk from Google I/O 2015 covers how Google is helping developers across a broad range of existing and emerging platforms.",
+  },
+};
+
+/**
+ * Static metadata collections.
+ */
+METADATA['en'].collections = {
+  "index/carousel": {
+    "title": "",
+    "resources": [
+      "about/versions/lollipop.html"
+    ]
+  },
+  "index/primary": {
+    "title": "",
+    "resources": [
+      "training/building-wearables.html",
+      "training/material/index.html",
+      "sdk/index.html"
+    ]
+  },
+  "index/secondary/carousel": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=yJisuP94lHU",
+      "http://www.youtube.com/watch?v=rcU7VEs1hiE",
+      "http://www.youtube.com/watch?v=JFlX9rW7Epc",
+      "http://www.youtube.com/watch?v=4CqXCkcN_d4"
+    ]
+  },
+  "index/multiscreen": {
+    "title": "",
+    "resources": [
+      "wear/index.html",
+      "tv/index.html",
+      "auto/index.html"
+    ]
+  },
+  "design/landing/latest": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=p4gmvHyuZzw",
+      "https://www.youtube.com/watch?v=YaG_ljfzeUw",
+      "https://www.youtube.com/watch?v=XOcCOBe8PTc"
+    ]
+  },
+  "design/landing/materialdesign": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/design/spec/animation/",
+      "https://www.google.com/design/spec/style/",
+      "https://www.google.com/design/spec/layout/",
+      "https://www.google.com/design/spec/components/",
+      "https://www.google.com/design/spec/patterns/",
+      "https://www.google.com/design/spec/usability/"
+    ]
+  },
+  "design/landing/pureandroid": {
+    "title": "",
+    "resources": [
+      "design/get-started/creative-vision.html",
+      "design/material/index.html",
+      "training/material/index.html",
+      "design/patterns/pure-android.html",
+      "design/patterns/new.html",
+      "design/devices.html"
+    ]
+  },
+  "design/landing/resources": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/design/spec/resources/color-palettes.html",
+      "https://www.google.com/design/spec/resources/layout-templates.html",
+      "https://www.google.com/design/spec/resources/sticker-sheets-icons.html",
+      "https://www.google.com/design/spec/resources/roboto-noto-fonts.html",
+      "https://www.google.com/design/icons/index.html",
+      "design/downloads/index.html#Wear"
+    ]
+  },
+  "develop/landing/mainlinks": {
+    "title": "",
+    "resources": [
+      "tools/studio/index.html",
+      "samples/new/index.html",
+      "tools/projects/templates.html"
+    ]
+  },
+  "develop/landing/latest": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/2015/04/new-android-code-samples.html",
+      "https://android-developers.blogspot.com/2015/04/android-support-library-221.html",
+      "https://android-developers.blogspot.com/2015/03/a-new-reference-app-for-multi-device.html"
+    ]
+  },
+  "develop/landing/devpatterns": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=kmUGLURRPkI",
+      "https://www.youtube.com/watch?v=HGElAW224dE",
+      "https://www.youtube.com/watch?v=zQekzaAgIlQ"
+    ]
+  },
+  "develop/landing/performance": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=fEEulSk1kNY",
+      "https://www.youtube.com/watch?v=-3ry8PxcJJA",
+      "https://www.youtube.com/watch?v=_kKTGK-Cb_4"
+    ]
+  },
+  "develop/landing/buildwithgoogle": {
+    "title": "",
+    "resources": [
+    ]
+  },
+  "develop/landing/ubicomp": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=AK38PJZmIW8&list=PLWz5rJ2EKKc-kIrPiq098QH9dOle-fLef",
+      "https://www.youtube.com/watch?v=6K_jxccHv5M&index=1&list=PLOU2XLYxmsILFBfx66ens76VMLMEPJAB0",
+      "https://www.youtube.com/watch?v=ctiaVxgclsg&list=PLWz5rJ2EKKc9BdE_PSLNIGjXXr3h_orXM"
+    ]
+  },
+  "develop/landing/tools": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=K2dodTXARqc&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=3PIc-DuEU2s&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX",
+      "https://www.youtube.com/watch?v=cD7NPxuuXYY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=JLLnhwtDoHw&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=2I6fuD20qlY&list=PLWz5rJ2EKKc8I9gHTMh5yKkwRRGE8BjbQ",
+      "https://www.youtube.com/watch?v=5Be2mJzP-Uw&list=PLWz5rJ2EKKc9e0d55YHgJFHXNZbGHEXJX"
+    ]
+  },
+  "google/landing/services": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/analytics/devguides/collection/android/",
+      "https://developers.google.com/maps/documentation/android/",
+      "https://developers.google.com/identity/sign-in/android/",
+      "https://developers.google.com/mobile-ads-sdk/download",
+      "https://developers.google.com/cloud-messaging/gcm",
+      "https://developers.google.com/app-indexing/"
+    ]
+  },
+  "google/landing/videos": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=M3Udfu6qidk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+      "https://www.youtube.com/watch?v=FOn64iqlphk&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+      "https://www.youtube.com/watch?v=F0Kh_RnSM0w&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf",
+      "https://www.youtube.com/watch?v=fvtMtfCuEpw&list=PLWz5rJ2EKKc9Qk1_iCZNbBp6adYnJf9Vf"
+    ]
+  },
+  "google/landing/googleplay": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "google/play/billing/billing_subscriptions.html",
+      "google/play/developer-api.html"
+    ]
+  },
+  "develop/landing/courses": {
+    "title": "",
+    "resources": [
+      "https://www.udacity.com/course/ud849",
+      "https://www.udacity.com/course/ud853",
+      "https://www.udacity.com/course/ud825",
+      "https://www.udacity.com/android",
+      "https://www.udacity.com/course/ud855",
+      "https://www.udacity.com/course/ud875A",
+      "https://www.udacity.com/course/ud875B",
+      "https://www.udacity.com/course/ud875C",
+      "https://www.udacity.com/course/ud876--1",
+      "https://www.udacity.com/course/ud876--2",
+      "https://www.udacity.com/course/ud876--3",
+      "https://www.udacity.com/course/ud876--4",
+      "https://www.udacity.com/course/ud876--5",
+      "https://www.udacity.com/course/ud862",
+      "https://www.udacity.com/course/ud837",
+      "https://www.udacity.com/course/ud867"
+    ]
+  },
+  "distribute/landing/carousel": {
+    "title": "",
+    "resources": [
+    "distribute/googleplay/guide.html",
+    "https://www.youtube.com/watch?v=JrR6o5tYMWQ",
+    "https://www.youtube.com/watch?v=B6ydLpkhq04&list=PLOU2XLYxmsIKLNUPiFCWVtcO7mZRZ9MmS",
+    "https://www.youtube.com/watch?v=yJisuP94lHU",
+    ]
+  },
+  "distribute/landing/googleplay": {
+    "title": "",
+    "resources": [
+      "distribute/googleplay/about.html",
+      "distribute/googleplay/developer-console.html",
+      "distribute/googleplay/index.html#opportunities"
+    ]
+  },
+  "distribute/landing/more": {
+    "title": "",
+    "resources": [
+      "distribute/users/promote-with-ads.html",
+      "distribute/monetize/ads.html",
+      "distribute/analyze/index.html",
+      "distribute/engage/deep-linking.html",
+      "distribute/engage/easy-signin.html",
+      "https://cloud.google.com/docs/"
+    ]
+  },
+  "distribute/edu/videos/stories": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=Idu7VcTTXfk",
+      "https://www.youtube.com/watch?v=iokH4SAIfRw"
+    ]
+  },
+  "distribute/edu/videos/bestpractices": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=iulXz8QTD1g",
+      "https://www.youtube.com/watch?v=IKhU180eJMo",
+      "https://www.youtube.com/watch?v=_AZ6UcPz-_g",
+      "https://www.youtube.com/watch?v=Eh2adsAyTKc"
+    ]
+  },
+  "distribute/edu/videos/experience": {
+    "title": "",
+    "resources": [
+      "https://youtu.be/vzvpcEffvaE"
+    ]
+  },
+  "distribute/gp/gplanding": {
+    "resources": [
+      "distribute/googleplay/about.html",
+      "distribute/googleplay/start.html",
+      "distribute/googleplay/developer-console.html"
+    ]
+  },
+  "distribute/gp/gpfelanding": {
+    "resources": [
+      "distribute/googleplay/wear.html",
+      "distribute/googleplay/tv.html",
+      "distribute/googleplay/auto.html",
+      "distribute/googleplay/families/about.html",
+      "distribute/googleplay/work/about.html",
+      "distribute/googleplay/edu/about.html",
+      "distribute/googleplay/cast.html",
+      "distribute/googleplay/cardboard.html",
+      "distribute/googleplay/guide.html"
+    ]
+  },
+  "distribute/googleplay/gpfw": {
+    "resources": [
+      "https://www.android.com/work/",
+      "https://www.youtube.com/watch?v=jQWB_-o1kz4&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+      "training/enterprise/index.html"
+    ]
+  },
+  "distribute/essentials": {
+    "resources": [
+      "distribute/essentials/quality/core.html",
+      "distribute/essentials/quality/tablets.html",
+      "distribute/essentials/quality/tv.html",
+      "distribute/essentials/quality/wear.html",
+      "distribute/essentials/quality/auto.html",
+      "https://developers.google.com/edu/guidelines"
+    ]
+  },
+  "distribute/users": {
+    "title": "",
+    "resources": [
+      "distribute/users/your-listing.html",
+      "distribute/users/promote-with-ads.html",
+      "distribute/users/appindexing.html",
+      "distribute/googleplay/index.html#opportunities",
+      "distribute/analyze/improve-roi.html",
+      "distribute/users/expand-to-new-markets.html",
+      "distribute/users/promote-with-ads.html",
+      "distribute/analyze/index.html",
+      "distribute/users/app-invites.html",
+      "distribute/users/ota-installs.html",
+      "distribute/users/youtube.html",
+      "distribute/users/house-ads.html",
+      "distribute/users/experiments.html",
+      "distribute/users/user-acquisition.html",
+      "distribute/users/banners.html",
+      "distribute/users/beta.html"
+    ]
+  },
+  "distribute/engagelanding": {
+    "resources": [
+      "distribute/engage/intents.html",
+      "distribute/engage/widgets.html",
+      "distribute/engage/notifications.html",
+      "distribute/engage/deep-linking.html",
+      "distribute/engage/ads.html",
+      "distribute/engage/game-services.html",
+      "distribute/engage/easy-signin.html",
+      "distribute/analyze/build-better-apps.html",
+      "distribute/engage/gcm.html",
+      "distribute/engage/beta.html"
+    ]
+  },
+  "distribute/monetize": {
+    "resources": [
+      "distribute/monetize/premium.html",
+      "distribute/monetize/freemium.html",
+      "distribute/monetize/subscriptions.html",
+      "distribute/monetize/ads.html",
+      "distribute/monetize/ecommerce.html",
+      "distribute/monetize/payments.html",
+      "distribute/analyze/understand-user-value.html",
+    ]
+  },
+  "distribute/analyzelanding": {
+    "resources": [
+      "distribute/analyze/start.html",
+      "distribute/analyze/measure.html",
+      "distribute/analyze/understand-user-value.html",
+      "distribute/analyze/improve-roi.html",
+      "distribute/analyze/build-better-apps.html",
+      "distribute/analyze/google-services.html"
+    ]
+  },
+  "distribute/analyzestart": {
+    "resources": [
+      "https://analyticsacademy.withgoogle.com/course04",
+      "google/play-services/index.html",
+      "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
+      "https://developers.google.com/analytics/devguides/collection/android/",
+      "https://www.google.com/tagmanager/",
+      "https://github.com/googleanalytics/google-analytics-plugin-for-unity"
+    ]
+  },
+  "distribute/analyzemeasure": {
+    "resources": [
+
+      "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
+      "https://support.google.com/analytics/answer/1032415",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/events",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/customdimsmets",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/user-id"
+    ]
+  },
+  "distribute/analyzeunderstand": {
+    "resources": [
+      "https://developers.google.com/analytics/devguides/collection/android/v4/display-features",
+      "https://support.google.com/analytics/answer/3123906",
+      "https://support.google.com/analytics/answer/2568874?ref_topic=6012392",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce",
+      "https://support.google.com/analytics/answer/1032415",
+    ]
+  },
+  "distribute/analyzeimprove": {
+    "resources": [
+
+      "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns",
+      "https://support.google.com/analytics/answer/2956981",
+      "https://support.google.com/analytics/answer/1033961",
+      "https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#google-play-url-builder",
+      "https://developers.google.com/analytics/solutions/mobile-campaign-deep-link"
+    ]
+  },
+  "distribute/analyzebuild": {
+    "resources": [
+      "https://support.google.com/tagmanager/answer/6003007",
+      "https://support.google.com/analytics/answer/2785577",
+      "https://support.google.com/analytics/answer/1151300"
+    ]
+  },
+  "distribute/analyzeact": {
+    "resources": [
+      "https://support.google.com/analytics/answer/2611268",
+      "https://support.google.com/analytics/answer/1033961",
+      "https://support.google.com/admob/answer/3508177",
+      "https://support.google.com/analytics/answer/2956981",
+      "https://support.google.com/tagmanager/answer/6003007"
+    ]
+  },
+  "distribute/essentials/guidelines": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/quality/core.html",
+      "distribute/essentials/quality/tablets.html",
+      "distribute/essentials/quality/wear.html",
+      "distribute/essentials/quality/tv.html",
+      "distribute/essentials/quality/auto.html",
+      "https://developers.google.com/edu/guidelines"
+    ]
+  },
+  "distribute/essentials/tools": {
+    "title": "",
+    "resources": [
+      "distribute/tools/launch-checklist.html",
+      "distribute/tools/localization-checklist.html",
+      "https://support.google.com/googleplay/android-developer",
+      "distribute/tools/promote/brand.html",
+      "distribute/tools/promote/device-art.html",
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/linking.html",
+      "distribute/tools/open-distribution.html",
+      "about/dashboards/index.html"
+    ]
+  },
+  "distribute/tools/checklists": {
+    "title": "",
+    "resources": [
+      "distribute/tools/launch-checklist.html",
+      "distribute/tools/localization-checklist.html"
+    ]
+  },
+  "distribute/tools/promote": {
+    "resources": [
+      "distribute/tools/promote/device-art.html",
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/linking.html"
+    ]
+  },
+  "distribute/tools/support": {
+    "title": "Google Play",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer",
+      "https://support.google.com/googleplay/android-developer/answer/4430948",
+      "support.html"
+    ]
+  },
+  "distribute/tools/news": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/",
+      "https://plus.google.com/+AndroidDevelopers/"
+    ]
+  },
+  "distribute/tools/more": {
+    "title": "Google Play",
+    "resources": [
+      "distribute/tools/promote/brand.html",
+      "distribute/tools/open-distribution.html",
+      "about/dashboards/index.html"
+    ]
+  },
+  "distribute/googleplay": {
+    "title": "Google Play",
+    "resources": [
+      "distribute/googleplay/developer-console.html",
+      "distribute/essentials/best-practices/apps.html",
+      "distribute/tools/launch-checklist.html",
+      "distribute/essentials/best-practices/games.html",
+    ]
+  },
+  "distribute/googleplay/gettingstarted": {
+    "title": "Get Started",
+    "resources": [
+      "distribute/googleplay/developer-console.html",
+      "https://support.google.com/googleplay/android-developer/answer/113468",
+      "https://support.google.com/googleplay/android-developer/answer/138294",
+      "https://support.google.com/googleplay/android-developer"
+    ]
+  },
+  "distribute/googleplay/developerconsole/related": {
+    "title": "Developer Console",
+    "resources": [
+      "google/play/billing/index.html",
+      "https://support.google.com/googleplay/android-developer/answer/138294"
+    ]
+  },
+  "distribute/googleplay/developerconsole": {
+    "title": "Developer Console",
+    "resources": [
+      "google/play/billing/index.html",
+      "https://support.google.com/googleplay/android-developer/answer/138294"
+    ]
+  },
+  "distribute/googleplay/beta": {
+    "title": "Alpha and Beta Testing",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/3131213",
+      "https://support.google.com/googleplay/android-developer/answer/3131213#games",
+      "distribute/googleplay/experiments.html"
+    ]
+  },
+  "distribute/googleplay/experiments/successes": {
+    "title": "Store Listing Experiment successes",
+    "resources": [
+    ]
+  },
+  "distribute/googleplay/experiments/related": {
+    "title": "Store Listing Experiments",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/6227309",
+      "https://www.youtube.com/watch?v=B6ydLpkhq04",
+      "https://support.google.com/tagmanager/answer/6003007"
+    ]
+  },
+  "distribute/googleplay/banners/related": {
+    "title": "App Install Banners",
+    "resources": [
+      "https://developers.google.com/web/updates/2015/03/increasing-engagement-with-app-install-banners-in-chrome-for-android#native"
+    ]
+  },
+  "distribute/googleplay/useracquisition/related": {
+    "title": "User Acquisition",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/6263332"
+    ]
+  },
+  "distribute/googleplay/cast": {
+    "title": "Google Cast",
+    "resources": [
+      "https://developers.google.com/cast/docs/ux_guidelines",
+      "https://developers.google.com/cast/docs/android_sender",
+      "https://www.github.com/googlecast"
+    ]
+  },
+  "distribute/googleplay/cardboard": {
+    "title": "Google Cast",
+    "resources": [
+      "https://www.google.com/get/cardboard/get-cardboard/",
+      "https://developers.google.com/cardboard/android/download",
+      "https://www.google.com/design/spec-vr"
+    ]
+  },
+  "distribute/googleplay/gpfe/highlight": {
+    "title": "About Google Play for Education",
+    "resources": [
+      "https://youtu.be/vzvpcEffvaE"
+    ]
+  },
+  "distribute/googleplay/gpfe/dev/about": {
+    "title": "About Google Play for Education / Developers",
+    "resources": [
+      "distribute/googleplay/edu/start.html",
+      "https://developers.google.com/edu/guidelines",
+      "https://developers.google.com/edu/faq",
+      "distribute/essentials/quality/tablets.html",
+      "https://developers.google.com/edu/",
+      "https://www.google.com/edu/tablets/#tablets-family"
+    ]
+  },
+  "distribute/googleplay/gpfe/dev": {
+    "title": "About Google Play for Education / Developers",
+    "resources": [
+      "distribute/googleplay/edu/about.html",
+      "https://developers.google.com/edu/guidelines",
+      "distribute/essentials/quality/tablets.html",
+      "distribute/googleplay/developer-console.html",
+      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
+    ]
+  },
+  "distribute/googleplay/aboutgpfe/educators/about": {
+    "title": "About Google Play for Education / Educators",
+    "resources": [
+      "https://www.google.com/edu/tablets/",
+      "https://www.youtube.com/watch?v=haEmsMo0f3w"
+    ]
+  },
+  "distribute/googleplay/aboutgpfe/educators": {
+    "title": "About Google Play for Education / Educators",
+    "resources": [
+      "https://www.google.com/edu/tablets/",
+      "https://youtu.be/vzvpcEffvaE"
+    ]
+  },
+  "distribute/googleplay/gettingstartedgpfe/educators": {
+    "title": "About Google Play for Education / Educators",
+    "resources": [
+      "https://www.google.com/edu/tablets/",
+      "https://youtu.be/vzvpcEffvaE"
+    ]
+  },
+  "distribute/essentials/eduessentials/developers": {
+    "title": "",
+    "resources": [
+      "distribute/googleplay/developer-console.html",
+      "distribute/googleplay/edu/start.html",
+      "https://developers.google.com/edu/faq"
+    ]
+  },
+  "distribute/essentials/eduessentials/educators": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/edu/tablets/",
+      "distribute/essentials/quality/tablets.html",
+    ]
+  },
+  "distribute/essentials/optimizing": {
+    "title": "Optimizing Your App",
+    "resources": [
+      "design/index.html",
+      "training/articles/perf-anr.html",
+      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html"
+    ]
+  },
+  "distribute/users/appinvites": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/app-invites/",
+      "https://developers.google.com/identity/sign-in/android/",
+      "https://developers.google.com/app-indexing/"
+    ]
+  },
+  "distribute/users/promotewithads": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/adwords/answer/6032059",
+      "https://support.google.com/adwords/answer/6032073",
+      "https://support.google.com/adwords/answer/6167164",
+      "https://support.google.com/adwords/answer/6167162"
+    ]
+  },
+  "distribute/users/buildbuzz": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/linking.html",
+      "distribute/tools/promote/device-art.html",
+      "https://plus.google.com/+GooglePlay"
+    ]
+  },
+  "distribute/users/createagreatlisting": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/1078870",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+      "distribute/tools/launch-checklist.html",
+      "https://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html",
+      "https://android-developers.blogspot.com/2012/12/localize-your-promotional-graphics-on.html",
+      "https://android-developers.blogspot.com/2013/10/making-your-app-content-more-accessible.html"
+    ]
+  },
+  "distribute/users/appindexing": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/app-indexing/",
+      "https://developers.google.com/app-indexing/webmasters/details",
+      "distribute/engage/deep-linking.html",
+      "training/app-indexing/index.html"
+    ]
+  },
+  "distribute/users/otas": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/identity/sign-in/android/",
+      "https://developers.google.com/+/features/play-installs",
+      "https://developers.google.com/+/features/analytics"
+    ]
+  },
+  "distribute/users/houseads": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/admob/topic/2784623",
+      "https://developers.google.com/mobile-ads-sdk/download",
+      "https://support.google.com/googleplay/android-developer/topic/2985714",
+      "https://analyticsacademy.withgoogle.com/mobile-app",
+      "https://support.google.com/analytics/answer/2611404",
+      "https://support.google.com/admob/answer/3111064"
+    ]
+  },
+  "distribute/users/youtube": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/youtube/answer/6140493",
+      "https://support.google.com/youtube/answer/2797387"
+    ]
+  },
+  "distribute/toolsreference/bestpractices/apps": {
+    "title": "",
+    "resources": [
+      "distribute/googleplay/developer-console.html",
+      "https://android-developers.blogspot.com/"
+    ]
+  },
+  "distribute/toolsreference/bestpractices/games": {
+    "title": "",
+    "resources": [
+      "google/play-services/games.html",
+      "https://android-developers.blogspot.com/",
+      "distribute/googleplay/developer-console.html",
+      "https://www.youtube.com/watch?v=1RIz-cmTQB4"
+    ]
+  },
+  "distribute/essentials/corequalityguidelines/visualdesign": {
+    "title": "",
+    "resources": [
+      "design/index.html",
+      "design/patterns/navigation.html",
+      "design/patterns/actionbar.html",
+      "design/style/iconography.html",
+      "design/patterns/notifications.html"
+    ]
+  },
+  "distribute/essentials/corequalityguidelines/functionality": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html",
+      "guide/components/tasks-and-back-stack.html",
+      "training/basics/activity-lifecycle/recreating.html"
+    ]
+  },
+  "distribute/essentials/tvqualityguidelines/visualdesign": {
+    "title": "",
+    "resources": [
+      "design/tv/index.html",
+      "training/tv/start/index.html"
+    ]
+  },
+  "distribute/essentials/tvqualityguidelines/functionality": {
+    "title": "",
+    "resources": [
+      "training/tv/start/hardware.html",
+      "training/tv/games/index.html"
+    ]
+  },
+  "distribute/essentials/wearqualityguidelines/visualdesign": {
+    "title": "",
+    "resources": [
+      "design/wear/index.html",
+      "training/building-wearables.html",
+      "training/wearables/ui/index.html"
+    ]
+  },
+  "distribute/essentials/wearqualityguidelines/functionality": {
+    "title": "",
+    "resources": [
+      "training/wearables/notifications/index.html",
+      "training/wearables/apps/index.html",
+      "training/wearables/notifications/voice-input.html"
+    ]
+  },
+  "distribute/essentials/autoqualityguidelines/visualdesign": {
+    "title": "",
+    "resources": [
+      "training/auto/messaging/index.html",
+      "training/auto/start/index.html"
+    ]
+  },
+  "distribute/essentials/core/performance": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html",
+      "training/articles/perf-anr.html",
+      "https://android-developers.blogspot.com/2010/07/multithreading-for-performance.html"
+    ]
+  },
+  "distribute/essentials/core/play": {
+    "title": "",
+    "resources": [
+      "distribute/tools/launch-checklist.html",
+      "https://play.google.com/about/developer-content-policy.html",
+      "https://support.google.com/googleplay/android-developer/answer/188189",
+      "https://support.google.com/googleplay/android-developer/answer/1078870",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html",
+      "https://support.google.com/googleplay/android-developer/answer/113477"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/optimize": {
+    "title": "",
+    "resources": [
+      "design/style/metrics-grids.html",
+      "design/style/devices-displays.html",
+      "guide/practices/screens_support.html",
+    ]
+  },
+  "distribute/essentials/tabletguidelines/extrascreen": {
+    "title": "",
+    "resources": [
+      "design/patterns/multi-pane-layouts.html",
+      "training/design-navigation/multiple-sizes.html",
+      "training/multiscreen/index.html",
+    ]
+  },
+  "distribute/essentials/tabletguidelines/assets": {
+    "title": "",
+    "resources": [
+      "design/style/iconography.html",
+      "guide/topics/resources/providing-resources.html",
+      "guide/practices/screens_support.html",
+      "training/basics/supporting-devices/screens.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/fonts": {
+    "title": "",
+    "resources": [
+      "design/style/metrics-grids.html",
+      "design/style/typography.html",
+      "guide/practices/screens_support.html",
+      "training/multiscreen/screendensities.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/widgets": {
+    "title": "",
+    "resources": [
+      "guide/topics/appwidgets/index.html#MetaData",
+      "guide/topics/appwidgets/index.html",
+      "design/patterns/widgets.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/versions": {
+    "title": "",
+    "resources": [
+      "guide/topics/manifest/uses-sdk-element.html#ApiLevels",
+      "guide/topics/manifest/uses-sdk-element.html",
+      "training/basics/supporting-devices/platforms.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/hardware": {
+    "title": "",
+    "resources": [
+      "guide/topics/manifest/uses-feature-element.html",
+      "guide/topics/manifest/uses-feature-element.html#testing"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/tabletscreens": {
+    "title": "",
+    "resources": [
+      "guide/practices/screens_support.html#DeclaringScreenSizeSupport",
+      "guide/practices/screens_support.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/showcase": {
+    "title": "",
+    "resources": [
+      "distribute/tools/launch-checklist.html",
+      "https://play.google.com/apps/publish/",
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/device-art.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines/googleplay": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "google/play/filters.html"
+    ]
+  },
+  "distribute/essentials/tabletguidelines": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/quality/core.html",
+      "https://android-developers.blogspot.com/2013/10/more-visibility-for-tablet-apps-in.html",
+      "distribute/tools/launch-checklist.html",
+      "distribute/tools/promote/device-art.html"
+    ]
+  },
+  "distribute/getusers/notifications": {
+    "title": "",
+    "resources": [
+      "design/patterns/notifications.html",
+      "distribute/engage/gcm.html",
+      "https://play.google.com/about/developer-content-policy.html"
+    ]
+  },
+  "distribute/engage/analytics": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/analytics/mobile/",
+      "https://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html",
+      "https://developers.google.com/analytics/devguides/collection/android/"
+    ]
+  },
+  "distribute/engage/widgets": {
+    "title": "",
+    "resources": [
+      "design/patterns/widgets.html",
+      "guide/topics/appwidgets/index.html"
+    ]
+  },
+  "distribute/engage/reengage": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/adwords/answer/6032073",
+      "distribute/engage/deep-linking.html",
+      "https://support.google.com/adwords/answer/6167162",
+      "distribute/users/promote-with-ads.html"
+    ]
+  },
+  "distribute/engage/appindexing": {
+    "title": "",
+    "resources": [
+      "distribute/engage/intents.html",
+      "distribute/engage/deep-linking.html",
+      "distribute/users/appindexing.html",
+      "training/app-indexing/index.html"
+    ]
+  },
+  "distribute/engage/intents": {
+    "title": "",
+    "resources": [
+      "guide/components/intents-filters.html",
+      "distribute/engage/deep-linking.html",
+      "distribute/engage/ads.html"
+    ]
+  },
+  "distribute/getusers/expandnewmarkets": {
+    "title": "",
+    "resources": [
+      "distribute/tools/localization-checklist.html",
+      "https://support.google.com/googleplay/android-developer/table/3541286",
+      "distribute/stories/localization.html",
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/device-art.html",
+      "https://www.youtube.com/watch?v=SkHHPf3EdzE"
+    ]
+  },
+  "distribute/engage/gcm": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/cloud-messaging/gcm",
+      "https://developers.google.com/cloud-messaging/android/client",
+    ]
+  },
+  "distribute/engage/gamesservices/related": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/games/services/",
+      "distribute/analyze/start.html",
+      "distribute/googleplay/cardboard.html",
+      "https://www.google.com/admob/"
+    ]
+  },
+  "distribute/engage/googleplaygames": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/games/services/",
+      "distribute/analyze/start.html",
+      "distribute/googleplay/cardboard.html",
+      "https://www.google.com/admob/"
+    ]
+  },
+  "distribute/engage/gplus": {
+    "title": "",
+    "resources": [
+      "distribute/users/ota-installs.html",
+      "https://developers.google.com/identity/sign-in/android/people",
+      "https://developers.google.com/+/mobile/android/"
+    ]
+  },
+  "distribute/engage/community": {
+    "title": "",
+    "resources": [
+      "distribute/users/build-community.html",
+      "distribute/engage/video.html"
+    ]
+  },
+  "distribute/engage/deeplinks": {
+    "title": "",
+    "resources": [
+      "distribute/engage/easy-signin.html",
+      "https://developers.google.com/app-indexing/",
+      "https://developers.google.com/+/mobile/android/share/interactive-post"
+    ]
+  },
+  "distribute/engage/appupdates": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/optimizing-your-app.html",
+      "distribute/tools/launch-checklist.html",
+      "distribute/googleplay/developer-console.html",
+      "design/patterns/notifications.html"
+    ]
+  },
+  "distribute/engage/video/more": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/yt/dev/",
+      "distribute/essentials/best-practices/games.html",
+      "https://www.youtube.com/watch?v=RRelFvc6Czo"
+    ]
+  },
+  "distribute/engage/community": {
+    "title": "",
+    "resources": [
+      "distribute/users/build-community.html",
+      "distribute/engage/video.html"
+    ]
+  },
+  "distribute/engage/kiwi": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=WWArLD6nqrk"
+    ]
+  },
+  "distribute/toolsreference/gpfefaq": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/edu/tablets/",
+      "distribute/googleplay/edu/start.html",
+      "https://play.google.com/about/developer-distribution-agreement-addendum.html",
+      "distribute/essentials/quality/core.html",
+      "distribute/essentials/quality/tablets.html"
+    ]
+  },
+  "distribute/toolsreference/localizationchecklist/identifylocales": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/138294"
+    ]
+  },
+  "distribute/tools/loc/designforloc": {
+    "title": "",
+    "resources": [
+      "https://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html",
+      "guide/topics/resources/string-resource.html#Plurals",
+      "guide/topics/resources/string-resource.html",
+      "reference/java/util/Locale.html"
+    ]
+  },
+  "distribute/toolsreference/localizationchecklist/managestrings": {
+    "title": "",
+    "resources": [
+      "guide/topics/resources/string-resource.html",
+      "design/style/writing.html",
+      "https://en.wikipedia.org/wiki/XLIFF"
+    ]
+  },
+  "distribute/toolsreference/localizationchecklist/translatestrings": {
+    "title": "",
+    "resources": [
+      "distribute/stories/localization.html",
+    ]
+  },
+  "distribute/toolsreference/localizationchecklist/preplaunch": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/device-art.html"
+    ]
+  },
+  "distribute/toolsreference/localizationchecklist/supportlaunch": {
+    "title": "",
+    "resources": [
+      "distribute/tools/launch-checklist.html",
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/understanding": {
+    "title": "",
+    "resources": [
+      "tools/publishing/publishing_overview.html",
+      "tools/publishing/preparing.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/policies": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/4430948",
+      "https://support.google.com/googleplay/android-developer/topic/2364761",
+      "https://support.google.com/googleplay/android-developer"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/quality": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/quality/core.html",
+      "distribute/essentials/quality/tablets.html",
+      "https://developers.google.com/edu/guidelines"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/rating": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/188189",
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/country": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/138294"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/size": {
+    "title": "",
+    "resources": [
+      "google/play/expansion-files.html",
+      "tools/help/proguard.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/platform": {
+    "title": "",
+    "resources": [
+      "guide/practices/screens_support.html",
+      "about/dashboards/index.html",
+      "guide/topics/manifest/uses-sdk-element.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/price": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/table/3541286",
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/purchasemethod": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "google/play/billing/billing_subscriptions.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/setprice": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/1169947",
+      "https://support.google.com/googleplay/android-developer/answer/138412",
+      "https://support.google.com/googleplay/android-developer/answer/112622",
+      "https://support.google.com/googleplay/android-developer/answer/138000"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/localization": {
+    "title": "",
+    "resources": [
+      "distribute/tools/localization-checklist.html",
+      "guide/topics/resources/localization.html",
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/graphics": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/1078870",
+      "https://android-developers.blogspot.com/2011/10/android-market-featured-image.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/productdetails": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/113475",
+      "https://support.google.com/googleplay/android-developer/answer/1078870"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/badges": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/linking.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/finalchecks": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/about/developer-content-policy.html",
+      "https://support.google.com/googleplay/android-developer/answer/113476",
+      "support.html"
+    ]
+  },
+  "distribute/toolsreference/launchchecklist/afterlaunch": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/googleplay/android-developer/answer/113477",
+      "https://support.google.com/googleplay/android-developer/answer/1153479",
+      "https://support.google.com/payments/answer/2741495",
+      "distribute/essentials/optimizing-your-app.html"
+    ]
+  },
+  "distribute/monetize/premium": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "https://support.google.com/googleplay/android-developer/answer/4407611"
+    ]
+  },
+  "distribute/monetize/freemium": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "https://support.google.com/googleplay/android-developer/answer/4407611"
+    ]
+  },
+  "distribute/monetize/subscriptions": {
+    "title": "",
+    "resources": [
+      "google/play/billing/billing_subscriptions.html",
+      "https://support.google.com/googleplay/android-developer/answer/4407611"
+    ]
+  },
+  "distribute/monetize/ecommerce": {
+    "title": "",
+    "resources": [
+      "https://developers.google.com/wallet/instant-buy/",
+      "https://support.google.com/googleplay/android-developer/answer/4407611"
+    ]
+  },
+  "distribute/monetize/advertising": {
+    "title": "",
+    "resources": [
+      "https://www.google.com/ads/admob/#subid=us-en-et-dac",
+      "https://www.google.com/doubleclick/publishers/small-business/index.html",
+      "https://support.google.com/googleplay/android-developer/topic/2985714",
+      "training/monetization/ads-and-ux.html"
+    ]
+  },
+  "distribute/monetize/admob": {
+    "title": "",
+    "resources": [
+      "https://support.google.com/admob/topic/2784623",
+      "https://admob.blogspot.com/",
+      "https://analyticsacademy.withgoogle.com/mobile-app",
+    ]
+  },
+  "distribute/monetize/paymentmethods": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/about/giftcards/",
+      "https://support.google.com/googleplay/answer/2651410"
+    ]
+  },
+  "autolanding": {
+    "title": "",
+    "resources": [
+      "auto/index.html",
+      "design/auto/index.html",
+      "training/auto/index.html"
+    ]
+  },
+  "tvlanding": {
+    "title": "",
+    "resources": [
+      "tv/index.html",
+      "design/tv/index.html",
+      "training/tv/index.html"
+    ]
+  },
+  "wearlanding": {
+    "title": "",
+    "resources": [
+      "design/wear/index.html",
+      "training/building-wearables.html",
+      "training/wearables/ui/index.html"
+    ]
+  },
+  "design/auto/auto_ui_guidelines": {
+    "title": "",
+    "resources": [
+      "shareables/auto/AndroidAuto-audio-apps.pdf",
+      "shareables/auto/AndroidAuto-messaging-apps.pdf",
+      "shareables/auto/AndroidAuto-custom-colors.pdf"
+    ]
+  },
+  "training/auto/overview": {
+    "title": "",
+    "resources": [
+      "training/auto/start/index.html",
+      "design/auto/index.html",
+      "shareables/auto/AndroidAuto-custom-colors.pdf"
+    ]
+  },
+  "training/auto/messaging": {
+    "title": "",
+    "resources": [
+      "training/auto/messaging/index.html",
+      "shareables/auto/AndroidAuto-messaging-apps.pdf",
+      "samples/MessagingService/index.html"
+    ]
+  },
+  "training/auto/media": {
+    "title": "",
+    "resources": [
+      "training/auto/audio/index.html",
+      "shareables/auto/AndroidAuto-audio-apps.pdf",
+      "samples/MediaBrowserService/index.html"
+    ]
+  },
+  "training/auto/distribute": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/quality/auto.html",
+      "distribute/googleplay/auto.html"
+    ]
+  },
+  "distribute/stories/games": {
+    "title": "",
+    "resources": [
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf",
+      "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf"
+    ]
+  },
+  "training/testing/overview": {
+    "title": "",
+    "resources": [
+      "training/testing/start/index.html",
+      "tools/testing/testing_android.html",
+      "https://www.youtube.com/watch?v=vdasFFfXKOY"
+    ]
+  },
+  "training/testing/tools": {
+    "title": "",
+    "resources": [
+      "tools/testing-support-library/index.html",
+      "tools/help/monkey.html",
+      "tools/help/monkeyrunner_concepts.html",
+      "tools/testing/testing_otheride.html",
+      "https://source.android.com/devices/tech/debug/dumpsys.html"
+    ]
+  },
+  "training/testing/techniques": {
+    "title": "",
+    "resources": [
+      "training/testing/ui-testing/index.html",
+      "training/testing/unit-testing/index.html",
+      "training/testing/performance.html"
+    ]
+  },
+  "training/testing/resources": {
+    "title": "",
+    "resources": [
+      "https://github.com/googlesamples/android-testing",
+      "https://www.youtube.com/watch?v=2I6fuD20qlY",
+      "https://codelabs.developers.google.com/codelabs/android-testing/index.html",
+      "https://github.com/googlesamples/android-testing-templates",
+      "https://google.github.io/android-testing-support-library"
+    ]
+  },
+  "overview/1": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/quality/core.html",
+      "distribute/essentials/quality/tablets.html",
+      "distribute/tools/launch-checklist.html",
+      "tools/publishing/publishing_overview.html",
+      "distribute/tools/localization-checklist.html"
+    ]
+  },
+  "overview/2": {
+    "title": "",
+    "resources": [
+      "google/play/billing/index.html",
+      "google/play/billing/api.html",
+      "google/play/billing/billing_admin.html",
+      "google/play/billing/billing_testing.html",
+      "google/play/billing/billing_best_practices.html"
+    ]
+  },
+  "overview/3": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/intl/en_us/badges/",
+      "distribute/tools/promote/device-art.html",
+      "distribute/tools/promote/linking.html",
+      "distribute/tools/promote/brand.html",
+      "tools/help/proguard.html"
+    ]
+  },
+  "overview/4": {
+    "title": "",
+    "resources": [
+      "design/style/writing.html",
+      "training/basics/fragments/fragment-ui.html",
+      "training/multiscreen/index.html",
+      "training/monitoring-device-state/index.html"
+    ]
+  },
+  "training/work/apps": {
+    "title": "",
+    "resources": [
+      "training/enterprise/app-compatibility.html",
+      "training/enterprise/app-restrictions.html",
+      "https://www.youtube.com/watch?v=39NkpWkaH8M&index=2&list=PLOU2XLYxmsIKAK2Bhv19H2THwF-22O5WX",
+      "samples/AppRestrictionSchema/index.html",
+      "samples/AppRestrictionEnforcer/index.html",
+      "https://www.youtube.com/watch?v=dH41OutAMNM"
+    ]
+  },
+  "training/work/admin": {
+    "title": "",
+    "resources": [
+      "training/enterprise/work-policy-ctrl.html",
+      "samples/BasicManagedProfile/index.html",
+      "https://www.youtube.com/watch?v=j3QC6hcpy90"
+    ]
+  },
+  "tools/performance/rendering": {
+    "title": "",
+    "resources": [
+      "tools/performance/debug-gpu-overdraw/index.html",
+      "tools/performance/profile-gpu-rendering/index.html",
+      "tools/performance/hierarchy-viewer/setup.html",
+      "tools/performance/hierarchy-viewer/index.html",
+      "tools/performance/hierarchy-viewer/profiling.html"
+    ]
+  },
+  "tools/performance/memory": {
+    "title": "",
+    "resources": [
+      "tools/performance/memory-monitor/index.html",
+      "tools/performance/heap-viewer/index.html",
+      "tools/performance/allocation-tracker/index.html",
+      "tools/performance/comparison.html"
+    ]
+  },
+  "tools/performance/cpu": {
+    "title": "",
+    "resources": [
+      "tools/performance/traceview/index.html",
+      "tools/performance/systrace/index.html"
+    ]
+  },
+  "tools/performance/battery": {
+    "title": "",
+    "resources": [
+      "tools/performance/batterystats-battery-historian/index.html",
+      "tools/performance/batterystats-battery-historian/charts.html"
+    ]
+  },
+  "marshmallow/landing/resources": {
+    "title": "",
+    "resources": [
+      "about/versions/marshmallow/android-6.0-changes.html",
+      "about/versions/marshmallow/android-6.0.html",
+      "about/versions/marshmallow/samples.html"
+    ]
+  },
+  "marshmallow/landing/videos": {
+    "title": "",
+    "resources": [
+      "https://youtu.be/U9tw5ypqEN0",
+      "https://youtu.be/N72ksDKrX6c",
+      "https://youtu.be/iZqDdvhTZj0",
+      "https://www.youtube.com/watch?v=vcSj8ln-BlE",
+      "https://youtu.be/LQoohRwojmw",
+      "https://www.youtube.com/watch?v=VOn7VrTRlA4",
+      "https://youtu.be/5sCQjeGoE7M",
+      "https://www.youtube.com/watch?v=C8lUdPVSzDk",
+      "https://www.youtube.com/watch?v=HXacyy0HSW0",
+      "https://www.youtube.com/watch?v=OW1A4XFRuyc",
+      "https://www.youtube.com/watch?v=j3QC6hcpy90",
+      "https://www.youtube.com/watch?v=f17qe9vZ8RM",
+      "https://www.youtube.com/watch?v=ndBdf1_oOGA"
+    ]
+  },
+  "marshmallow/landing/more": {
+    "title": "",
+    "resources": [
+      "training/permissions/requesting.html",
+      "training/backup/autosyncapi.html",
+      "training/monitoring-device-state/doze-standby.html",
+      "training/app-links/index.html",
+      "training/articles/assistant.html",
+      "training/testing/performance.html",
+      "https://developers.google.com/android/nexus/images"
+    ]
+  },
+  "tools/landing/carousel": {
+    "title": "",
+    "resources": [
+    "panel1",
+    "panel2",
+    "panel3",
+    "panel4",
+    ]
+  },
+  "tools/landing/resources": {
+    "title": "",
+    "resources": [
+    "tools/studio/index.html",
+    "tools/studio/studio-features.html",
+    "sdk/installing/studio-tips.html",
+    ]
+  },
+};
+
+/**
+ * Static search results.
+ */
+METADATA['en'].searchHeroCollections = {
+  "material": {
+    "title":"Material Design for Android",
+    "category":"",
+    "summary":"Material design is a comprehensive guide for visual, motion, and interaction design across platforms and devices. Android now includes support for material design apps.",
+    "url":"design/material/index.html",
+    "group":"",
+    "keywords": ["material","design"],
+    "tags": ["material","design"],
+    "image":"images/cards/design-material-for-android_2x.jpg",
+    "lang":"en",
+    "type":"design"
+  }
+};
diff --git a/docs/html/jd_extras_es.js b/docs/html/jd_extras_es.js
new file mode 100644
index 0000000..7ced2595
--- /dev/null
+++ b/docs/html/jd_extras_es.js
@@ -0,0 +1,13 @@
+
+//must use intl/nn to override translated resources
+METADATA['es'].carousel = {
+  "intl/es/distribute/googleplay/guide.html": {
+    "image": "images/distribute/hero-secrets-to-app-success.jpg",
+  },
+};
+
+/**
+ * Static metadata collections for this language.
+ */
+METADATA['es'].collections = {
+};
\ No newline at end of file
diff --git a/docs/html/jd_extras_ja.js b/docs/html/jd_extras_ja.js
new file mode 100644
index 0000000..390c23c
--- /dev/null
+++ b/docs/html/jd_extras_ja.js
@@ -0,0 +1,185 @@
+/* Metadata represendations of resources that are outside of the autogenerated
+   local resource lists, or that override local resource representations.
+
+   Resources listed here are referenced from sitemap sections and collections,
+   matched by url string if there is no resource existing in ALL_RESOURCES.
+
+   Currently, these articles can override only the generated resources
+   in DISTRIBUTE_RESOURCES. A representation defined here will not be applied
+   when a collection or section specifies a url that's not in DISTRIBUTE_RESOURCEs.
+   Also
+   So if a section url refers to a static doc that's
+   not in a distribute section, you need to create an item for
+   it in this file. Fix is to compare across
+   ALL_RESOURCES_BY_URL.  */
+
+METADATA['ja'].extras = METADATA['ja'].extras.concat([
+ /* TODO Remove standard resources from here, such as below
+ */
+  {
+    "lang": "ja",
+    "title": "Gaming Everywhere",
+    "category": "",
+    "summary": "東京ゲームショウ 2014 の基調講演より。",
+    "url": "https://www.youtube.com/watch?v=xelYnWcYkuE",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://img.youtube.com/vi/xelYnWcYkuE/hqdefault.jpg",
+    "type": "youtube"
+  },
+  {
+    "lang": "ja",
+    "title": "Playtime Tokyo",
+    "category": "",
+    "summary": "アプリビジネスのノウハウを各担当者が講演しました。",
+    "url": "https://www.youtube.com/playlist?list=PLCOC_kP3nqGIHEgwm9mybvA04Vn4Cg9nn",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://img.youtube.com/vi/lJdjY3z6-LY/hqdefault.jpg",
+    "type": "youtube"
+  },
+  {
+    "lang": "ja",
+    "title": "Android Wear 関連の動画に日本語字幕が付きました",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://i1.ytimg.com/vi/4JcDYkgqksY/maxresdefault.jpg",
+    "type": "blog"
+  },
+  {
+    "lang": "ja",
+    "title": "Android Studio 1.0 をリリースしました",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://3.bp.blogspot.com/-1hV3sD1At74/VIaQSWBasUI/AAAAAAAABAU/9vYLJMsmMuQ/s1600/studio-logo.png",
+    "type": "blog"
+  },
+  {
+    "lang": "ja",
+    "title": "Google Play 開発者サービス 6.5 のご紹介",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://1.bp.blogspot.com/-4BNREC0Jojo/VGo7ahW35wI/AAAAAAAABAc/9thZl94F6fY/s1600/GMS%2B-%2BRelease%2BBlog%2BNacho%2B-%2BMap%2BToolbar.png",
+    "type": "blog"
+  },
+  {
+    "lang": "ja",
+    "title": "Alpha and Beta Testing",
+    "category": "",
+    "summary": "アプリのローンチにまつわるリスクを最小限にするために必須のツールです。[英語コンテンツ]",
+    "url": "intl/ja/distribute/googleplay/developer-console.html#alpha-beta",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "images/gp-dc-ab.png",
+    "type": "distribute"
+  },
+  {
+    "lang": "ja",
+    "title": "Finding Success on Google Play",
+    "category": "",
+    "summary": "Google Play での成功の秘訣がこの一冊に。[英語コンテンツ]",
+    "url": "intl/ja/distribute/googleplay/guide.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "distribute/images/play_dev_guide_b.jpg",
+    "type": "distribute"
+  },
+  {
+    "lang": "ja",
+    "title": "Google Play アプリ ポリシー センター",
+    "category": "",
+    "summary": "",
+    "url": "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389356_en_v0",
+    "type": "distribute"
+  },
+  {
+    "lang": "ja",
+    "title": "Wear App Quality",
+    "category": "",
+    "summary": "いよいよウェアラブルの時代が到来。[英語コンテンツ]",
+    "url": "intl/ja/distribute/essentials/quality/wear.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "distribute/images/gp-wear-quality.png",
+    "type": "distribute"
+  },
+  {
+    "lang": "ja",
+    "title": "Google Cloud Platform が支える、新感覚リアルタイム RPG ユニゾンリーグ - 株式会社エイチームの GCP 導入事例",
+    "category": "",
+    "summary": "スケーラブルなバックエンドを実現する Google Cloud Platform の最新導入事例。",
+    "url": "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://3.bp.blogspot.com/-xp7KoPkbne4/VI_PfoFil3I/AAAAAAAAA3U/-k1UZ0zjCBc/s1600/unison-league.jpeg",
+    "type": "distribute"
+  },
+  {
+    "lang": "ja",
+    "title": "Monetize with Ads",
+    "category": "",
+    "summary": "アプリ内広告成功のコツがここに。[英語コンテンツ]",
+    "url": "intl/ja/distribute/monetize/ads.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "distribute/images/advertising.jpg",
+    "type": "distribute"
+  },
+]);
+
+//must use intl/nn url to override a translated resource
+METADATA['ja'].carousel = {
+  "intl/ja/distribute/googleplay/guide.html": {
+    "image": "images/distribute/hero-secrets-to-app-success.jpg",
+    "title": "Secrets to App Success on Google Play",
+    "summary": "Get the updated guide full of useful features, tips, and best practices that will help you grow a successful app or game business on Google Play.",
+  },
+};
+
+/**
+ * Static metadata collections.
+ */
+METADATA['ja'].collections = {
+  "launch/static/ja": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=xelYnWcYkuE",
+      "https://www.youtube.com/playlist?list=PLCOC_kP3nqGIHEgwm9mybvA04Vn4Cg9nn",
+      "https://googledevjp.blogspot.jp/2014/12/android-wear.html",
+      "https://googledevjp.blogspot.jp/2014/12/android-studio-10.html",
+      "https://googledevjp.blogspot.jp/2014/12/google-play-65.html",
+      "distribute/googleplay/developer-console.html#alpha-beta",
+      "distribute/googleplay/guide.html",
+      "distribute/essentials/quality/core.html",
+      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ja",
+      "support.html",
+      "distribute/essentials/quality/wear.html",
+      "training/tv/start/index.html",
+      "https://googleforwork-japan.blogspot.jp/2014/12/gcp-google-cloud-platform-rpg-gcp.html",
+      "distribute/monetize/ads.html"
+    ]
+  },
+};
\ No newline at end of file
diff --git a/docs/html/jd_extras_ko.js b/docs/html/jd_extras_ko.js
new file mode 100644
index 0000000..8d9059c
--- /dev/null
+++ b/docs/html/jd_extras_ko.js
@@ -0,0 +1,120 @@
+/* Metadata represendations of resources that are outside of the autogenerated
+   local resource lists, or that override local resource representations.
+
+   Resources listed here are referenced from sitemap sections and collections,
+   matched by url string if there is no resource existing in ALL_RESOURCES.
+
+   Currently, these articles can override only the generated resources
+   in DISTRIBUTE_RESOURCES. A representation defined here will not be applied
+   when a collection or section specifies a url that's not in DISTRIBUTE_RESOURCEs.
+   Also
+   So if a section url refers to a static doc that's
+   not in a distribute section, you need to create an item for
+   it in this file. Fix is to compare across
+   ALL_RESOURCES_BY_URL.  */
+
+METADATA['ko'].extras = METADATA['ko'].extras.concat([
+ /* TODO Remove standard resources from here, such as below
+ */
+  {
+    "lang": "ko",
+    "title": "구글 플레이 2015년 비전",
+    "category": "",
+    "summary": "G-Star 구글 컨퍼런스",
+    "url": "https://www.youtube.com/watch?v=7X9Ue0Nfdh4&index=2&list=PL_WJkTbDHdBksDBRoqfeyLchEQqBAOlNl",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://img.youtube.com/vi/7X9Ue0Nfdh4/hqdefault.jpg",
+    "type": "youtube"
+  },
+  {
+    "lang": "ko",
+    "title": "구글 플레이 게임",
+    "category": "",
+    "summary": "게임 프로필, 퀘스트, 세이브드 게임 등의 신기능 소개",
+    "url": "https://www.youtube.com/watch?v=83FpwuschCQ",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://img.youtube.com/vi/83FpwuschCQ/hqdefault.jpg",
+    "type": "youtube"
+  },
+  {
+    "lang": "ko",
+    "title": "안드로이드 5.0 롤리팝을 맞이하는 개발자를 위한 안내서",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://lh5.googleusercontent.com/0Gx4Ob_WvIgNOMv3hVMuUm4O7KuSWyxCEFIvy39_6fgXh2q2azqjZf3bpZoEk-LMW-K8GwYMfyYfMUAwp38hhPQ6WFNnddhN2E2_GF3-XBQI_qjhISviz10h_mGgDWsZKA",
+    "type": "blog"
+  },
+  {
+    "lang": "ko",
+    "title": "안드로이드 앱을 위한 머티리얼 디자인 체크 리스트",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://lh4.googleusercontent.com/JKoxeDdmsj6gYHV8rmp96U1jHj7FKeMzGBaaFu35kXp5EpJR9Ei9MQFAYghjwJoycdgydw-FZTuFNY8pDx63MWhy37rKC96ajoDXEMzvo9W0sj5yC2-uSYJdhpazVOP2cA",
+    "type": "blog"
+  },
+  {
+    "lang": "ko",
+    "title": "App Compat 라이브러리",
+    "category": "",
+    "summary": "",
+    "url": "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://2.bp.blogspot.com/-7fF9ayZ6PgI/U9iFpk5FNEI/AAAAAAAAAs0/4P4SCvdB_4M/s640/image00.png",
+    "type": "blog"
+  },
+  {
+    "lang": "ko",
+    "title": "구글 플레이 게임 서비스",
+    "category": "",
+    "summary": "다양한 구글 플레이 게임 서비스 기능 알아보기 [영문]",
+    "url": "intl/ko/google/play-services/games.html",
+    "group": "",
+    "keywords": [],
+    "tags": [],
+    "image": "https://developers.google.com/games/services/images/gamescreen3.jpg",
+    "type": "distribute"
+  },
+]);
+
+//must use intl/nn to override translated resources
+METADATA['ko'].carousel = {
+};
+
+/**
+ * Static metadata collections.
+ */
+METADATA['ko'].collections = {
+  "launch/static/ko": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=7X9Ue0Nfdh4&index=2&list=PL_WJkTbDHdBksDBRoqfeyLchEQqBAOlNl",
+      "https://www.youtube.com/watch?v=83FpwuschCQ",
+      "https://googledevkr.blogspot.com/2014/11/android50guidefordevelopers.html",
+      "https://googledevkr.blogspot.com/2014/10/material-design-on-android-checklist.html",
+      "https://googledevkr.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html",
+      "distribute/googleplay/developer-console.html#alpha-beta",
+      "distribute/googleplay/guide.html",
+      "distribute/essentials/quality/core.html",
+      "https://support.google.com/googleplay/android-developer/answer/4430948?hl=ko",
+      "support.html",
+      "distribute/essentials/quality/wear.html",
+      "tv/index.html",
+      "google/play-services/games.html",
+      "distribute/monetize/ads.html"
+    ]
+  },
+};
\ No newline at end of file
diff --git a/docs/html/jd_extras_ru.js b/docs/html/jd_extras_ru.js
new file mode 100644
index 0000000..d6c873c
--- /dev/null
+++ b/docs/html/jd_extras_ru.js
@@ -0,0 +1,13 @@
+
+//must use intl/nn to override translated resources
+METADATA['ru'].carousel = {
+  "intl/ru/distribute/googleplay/guide.html": {
+    "image": "images/distribute/hero-secrets-to-app-success.jpg",
+  },
+};
+
+/**
+ * Static metadata collections for this language.
+ */
+METADATA['ru'].collections = {
+};
\ No newline at end of file
diff --git a/docs/html/jd_extras_zh-cn.js b/docs/html/jd_extras_zh-cn.js
new file mode 100644
index 0000000..cb1ccb7
--- /dev/null
+++ b/docs/html/jd_extras_zh-cn.js
@@ -0,0 +1,291 @@
+/* Metadata represendations of resources that are outside of the autogenerated
+ local resource lists, or that override local resource representations.
+
+ Resources listed here are referenced from sitemap sections and collections,
+ matched by url string if there is no resource existing in ALL_RESOURCES.
+
+ Currently, these articles can override only the generated resources
+ in DISTRIBUTE_RESOURCES. A representation defined here will not be applied
+ when a collection or section specifies a url that's not in DISTRIBUTE_RESOURCEs.
+ Also
+ So if a section url refers to a static doc that's
+ not in a distribute section, you need to create an item for
+ it in this file. Fix is to compare across
+ ALL_RESOURCES_BY_URL.  */
+
+
+
+METADATA['zh-cn'].extras = METADATA['zh-cn'].extras.concat([
+  {
+    "title":"Google Play应用政策中心",
+    "category":"google play",
+    "summary":"一个方便你了解Google Play政策和指南的中心资源。",
+    "url":"https://support.google.com/googleplay/android-developer/answer/4430948?hl=zh-Hans",
+    "group":"",
+    "lang":"zh-cn",
+    "keywords": [],
+    "tags": [],
+    "image":"http://storage.googleapis.com/support-kms-prod/SNP_712EA2784949DDF085C46E3BE7B1DC618A09_4389397_en_v0",
+    "type":"distribute"
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1169947?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "以多种货币销售应用",
+    "summary": "如何在Google Play为应用定价",
+    "keywords": [],
+    "type": "distribute",
+    "category": "guide"
+  },
+  {
+    "title": "支持向Google Play用户发布应用的地区",
+    "lang": "zh-cn",
+    "category":"",
+    "summary": "支持向Google Play用户发布应用的国家/地区。",
+    "url":"https://support.google.com/googleplay/android-developer/answer/138294?hl=zh-Hans",
+    "group":"",
+    "keywords": [],
+    "tags": [],
+    "image":"images/play_dev.jpg",
+    "type":"google"
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/188189?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "针对Google Play为你的应用内容分级",
+    "summary": "如何为你的应用内容分级。",
+    "keywords": [],
+    "type": "support",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113477?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "为用户提供支持",
+    "summary": "为用户提供支持的各种选择。",
+    "keywords": [],
+    "type": "support",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://play.google.com/apps/publish/?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "Google Play 开发者控制台",
+    "summary": "发布应用的开发者控制台",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/topic/2364761?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "政策和最佳做法",
+    "summary": "内容政策和流程",
+    "keywords": [],
+    "type": "distribute",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/138412?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "各国家/地区获许定价范围和货币",
+    "summary": "各国家/地区获许定价范围和货币列表",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/112622?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "交易费用",
+    "summary": "销售的应用和应用内产品的交易费。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/138000?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "税率",
+    "summary": "如何设置不同国家/地区的税率",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113475?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "类别",
+    "summary": "应用的类别列表。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/113476?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "更新应用",
+    "summary": "更新Google Play应用的要求。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1153479?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": null,
+    "title": "应用内结算",
+    "summary": "如何正确设置应用内商品和订阅结算。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/googleplay/android-developer/answer/1078870?hl=zh-Hans",
+    "timestamp": 1194884220000,
+    "image": "images/play_dev.jpg",
+    "title": "为你的应用的图片资源",
+    "summary": "如何在你的应用的商品详情页面上添加图片资源。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://support.google.com/payments/answer/2741495?hl=zh-Hans",
+    "timestamp": null,
+    "image": null,
+    "title": "退回訂單款項",
+    "summary": "如何退还已收取的订单款项。",
+    "keywords": [],
+    "type": "guide",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": ["localization", "pricing", "developer support"],
+    "url": "https://support.google.com/googleplay/android-developer/table/3541286?hl=zh-Hans",
+    "timestamp": null,
+    "image": "images/play_dev.jpg",
+    "title": "支持向Google Play用户发布应用的地区",
+    "summary": "支持向Google Play用户发布应用的国家/地区。",
+    "keywords": [],
+    "type": "distribute",
+    "category": ""
+  },
+  {
+    "lang": "zh-cn",
+    "group": "",
+    "tags": [],
+    "url": "https://developers.google.com/edu/guidelines?hl=zh-Hans",
+    "timestamp": null,
+    "image": "https://developer.android.com/distribute/images/edu-guidelines.jpg",
+    "title": "Education Guidelines",
+    "summary": "These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.",
+    "keywords": [],
+    "type": "",
+    "category": ""
+  },
+]);
+
+/**
+ * Static metadata collections.
+ */
+METADATA['zh-cn'].collections = {
+  "overview/zhcn/1": {
+    "title": "",
+    "resources": [
+      "intl/zh-cn/distribute/essentials/quality/core.html",
+      "intl/zh-cn/distribute/essentials/quality/tablets.html",
+      "intl/zh-cn/distribute/tools/launch-checklist.html",
+      "intl/zh-cn/tools/publishing/publishing_overview.html",
+      "intl/zh-cn/distribute/tools/localization-checklist.html"
+    ]
+  },
+  "overview/zhcn/2": {
+    "title": "",
+    "resources": [
+      "intl/zh-cn/google/play/billing/index.html",
+      "intl/zh-cn/google/play/billing/api.html",
+      "intl/zh-cn/google/play/billing/billing_admin.html",
+      "intl/zh-cn/google/play/billing/billing_testing.html",
+      "intl/zh-cn/google/play/billing/billing_best_practices.html"
+    ]
+  },
+  "overview/zhcn/3": {
+    "title": "",
+    "resources": [
+      "https://play.google.com/intl/en_us/badges/",
+      "intl/zh-cn/distribute/tools/promote/device-art.html",
+      "intl/zh-cn/distribute/tools/promote/linking.html",
+      "intl/zh-cn/distribute/tools/promote/brand.html",
+      "intl/zh-cn/tools/help/proguard.html"
+    ]
+  },
+  "overview/zhcn/4": {
+    "title": "",
+    "resources": [
+      "intl/zh-cn/design/style/writing.html",
+      "intl/zh-cn/training/basics/fragments/fragment-ui.html",
+      "intl/zh-cn/training/multiscreen/index.html",
+      "intl/zh-cn/training/monitoring-device-state/index.html"
+    ]
+  },
+  "overview/carousel/zhcn": {
+    "title": "",
+    "resources": [
+      "https://www.youtube.com/watch?v=vGV7FHGzpFU",
+      "https://www.youtube.com/watch?v=aqc3ZOTzpdk",
+      "https://www.youtube.com/watch?v=jaNrJ8uyLSc"
+    ]
+  },
+};
\ No newline at end of file
diff --git a/docs/html/jd_extras_zh-tw.js b/docs/html/jd_extras_zh-tw.js
new file mode 100644
index 0000000..f41598e
--- /dev/null
+++ b/docs/html/jd_extras_zh-tw.js
@@ -0,0 +1,13 @@
+
+//must use intl/nn to override translated resources
+METADATA['zh-tw'].carousel = {
+  "intl/zh-tw/distribute/googleplay/guide.html": {
+    "image": "images/distribute/hero-secrets-to-app-success.jpg",
+  },
+};
+
+/**
+ * Static metadata collections for this language.
+ */
+METADATA['zh-tw'].collections = {
+};
\ No newline at end of file
diff --git a/docs/html/legal.jd b/docs/html/legal.jd
old mode 100644
new mode 100755
index 5ee6b5c..0a68508
--- a/docs/html/legal.jd
+++ b/docs/html/legal.jd
@@ -70,12 +70,10 @@
 restrictions. Such services include:</p>
 
 <dl>
-  <dt>Eclipse Android Developer Tools Plugin</dt>
-    <dd>If you're developing apps with the Eclipse IDE, we offer a free plugin called the
-<a href="{@docRoot}tools/sdk/eclipse-adt.html">Android Developer Tools</a> (ADT) to speed up your
-development and debugging. Certain code within the ADT plugin and other packages available
-from the SDK Manager require that you agree to terms and conditions for use, reproduction and
-distribution upon installation.</dd>
+  <dt>Android Studio</dt>
+    <dd>Android Studio and other packages available from the SDK manager require that you agree
+to terms and conditions
+for use, reproduction and distribution upon installation.</dd>
 
   <dt>Google Play</dt>
     <dd>Google Play is a publicly available service through which you can distribute your apps for
diff --git a/docs/html/ndk/downloads/index.jd b/docs/html/ndk/downloads/index.jd
index 391a7d5..f674993 100644
--- a/docs/html/ndk/downloads/index.jd
+++ b/docs/html/ndk/downloads/index.jd
@@ -1,32 +1,8 @@
 ndk=true
 page.template=sdk
-
-
-ndk.mac64_download=android-ndk-r10e-darwin-x86_64.bin
-ndk.mac64_bytes=388937326
-ndk.mac64_checksum=2cb8893a5701603519d38a7e04c50e81
-
-ndk.linux64_download=android-ndk-r10e-linux-x86_64.bin
-ndk.linux64_bytes=401522849
-ndk.linux64_checksum=19af543b068bdb7f27787c2bc69aba7f
-
-ndk.linux32_download=android-ndk-r10e-linux-x86.bin
-ndk.linux32_bytes=394281908
-ndk.linux32_checksum=c3edd3273029da1cbd2f62c48249e978
-
-ndk.win64_download=android-ndk-r10e-windows-x86_64.exe
-ndk.win64_bytes=419616132
-ndk.win64_checksum=8412bb4991a95e08fda50b5a44d95df7
-
-ndk.win32_download=android-ndk-r10e-windows-x86.exe
-ndk.win32_bytes=396563176
-ndk.win32_checksum=1a82445baaf62aec3a46386ab1e5772c
-
-
-
 page.title=NDK Downloads
-@jd:body
 
+@jd:body
 
 <div id="tos" style="display:none;width:760px;height:0;margin:0 auto">
 
@@ -320,7 +296,7 @@
 <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
 <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
 </p>
-<p><a href="" class="button disabled ndk" id="downloadForRealz" onclick="return onDownloadNdkForRealz(this);"></a></p>
+<p><a href="" class="dac-button dac-raised dac-primary disabled ndk" id="downloadForRealz" onclick="return onDownloadNdkForRealz(this);"></a></p>
 </div>
 
 
diff --git a/docs/html/ndk/guides/concepts.jd b/docs/html/ndk/guides/concepts.jd
old mode 100644
new mode 100755
index 0601f21..c56143f
--- a/docs/html/ndk/guides/concepts.jd
+++ b/docs/html/ndk/guides/concepts.jd
@@ -18,12 +18,9 @@
 
 <h2 id="bb">Before Beginning</h2>
 
-<p>This guide assumes that you are:</p>
-<ul>
-<li>Already familiar with concepts inherent in native programming and in
-<a href="{@docRoot}">Android development</a>.</li>
-<li>Working in <a href="{@docRoot}sdk/index.html">Eclipse, and using the Android
-Development Tools (ADT)</a>, except where otherwise noted.</li>
+<p>This guide assumes that you are already familiar with concepts inherent in native programming and 
+in <a href="{@docRoot}developer/index.html">Android development</a>.</p>
+
 </ul>
 <h2 id="intro">Introduction</h2>
 
@@ -151,15 +148,13 @@
 <p class="note"><strong>Note:</strong> While it is possible to completely avoid Java, you are likely
 to find the Android Java framework useful for tasks including controlling the display and UI.</p>
 </li>
-
-<li>Create an Android app Project in Eclipse as you would for any other Android project.</li>
+<li>Create an Android app Project as you would for any other Android project.</li>
 <li>If you are writing a native-only app, declare the {@link android.app.NativeActivity} class in
-{@code AndroidManifest.xml}. You can do so from the Eclipse/ADT Android Manifest Editor, or by
-hand-editing the file. For more information, see the <a href="#naa">Native Activities and
+{@code AndroidManifest.xml}. For more information, see the <a href="#naa">Native Activities and
 Applications</a>.
 </li>
 <li>Create an {@code Android.mk} file describing the native library, including name, flags, linked
-libraries, and source files to be compiled in the ‘JNI’ directory.</li>
+libraries, and source files to be compiled in the "JNI" directory.</li>
 <li>Optionally, you can create an {@code Application.mk} file configuring the target ABIs,
 toolchain, release/debug mode, and STL. For any of these that you do not specify, the following
 default values are used, respectively:
@@ -184,7 +179,6 @@
 needed for your app to run.
 </ol>
 
-<p>Note that Eclipse can perform steps 7. through 9. in a single operation.</p>
 
 <h2 id="naa">Native Activities and Applications</h2>
 
@@ -300,7 +294,7 @@
 $ &lt;ndk&gt;/ndk-build
 </pre>
 
-<li>Build and install your Android project as usual, using Ant or Eclipse. If your native code is in
+<li>Build and install your Android project as usual. If your native code is in
 the {@code jni/} directory, the build script automatically packages the {@code .so} file(s) built
 from it into the APK.</li>
 </ol>
diff --git a/docs/html/ndk/guides/guides_toc_new.cs b/docs/html/ndk/guides/guides_toc_new.cs
new file mode 100644
index 0000000..981eb51
--- /dev/null
+++ b/docs/html/ndk/guides/guides_toc_new.cs
@@ -0,0 +1,75 @@
+<?cs # Table of contents for Dev Guide.
+
+       For each document available in translation, add an localized title to this TOC.
+       Do not add localized title for docs not available in translation.
+       Below are template spans for adding localized doc titles. Please ensure that
+       localized titles are added in the language order specified below.
+?>
+
+<ul id="nav">
+   <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>ndk/guides/index.html">
+      <span class="en">Getting Started</span></a></div>
+      <ul>
+         <li><a href="<?cs var:toroot ?>ndk/guides/setup.html">Setup</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/concepts.html">Concepts</a></li>
+      </ul>
+   </li>
+
+   <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>ndk/guides/build.html">
+      <span class="en">
+      Building</span></a></div>
+      <ul>
+         <li><a href="<?cs var:toroot ?>ndk/guides/android_mk.html">Android.mk</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/application_mk.html">Application.mk</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/ndk-build.html">ndk-build</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/standalone_toolchain.html">Standalone Toolchain
+         </a></li>
+      </ul>
+   </li>
+
+   <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>ndk/guides/arch.html">
+      <span class="en">Architectures and CPUs</span></a></div>
+      <ul>
+         <li><a href="<?cs var:toroot ?>ndk/guides/abis.html">ABI Management</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/cpu-arm-neon.html">NEON</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/x86.html">x86</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/x86-64.html">x86-64</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/mips.html">MIPS</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/cpu-features.html">The cpufeatures Library</a>
+         </li>
+      </ul>
+   </li>
+
+   <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>ndk/guides/debug.html">
+      <span class="en">Debugging</span></a></div>
+      <ul>
+         <li><a href="<?cs var:toroot ?>ndk/guides/ndk-gdb.html">ndk-gdb</a></li>
+         <li><a href="<?cs var:toroot ?>ndk/guides/ndk-stack.html">ndk-stack</a></li>
+      </ul>
+   </li>
+
+   <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>ndk/guides/libs.html">
+      <span class="en">Libraries</span></a></div>
+      <ul>
+      <li><a href="<?cs var:toroot ?>ndk/guides/prebuilts.html">Prebuilt Libraries</a></li>
+      <li><a href="<?cs var:toroot ?>ndk/guides/cpp-support.html">C++ Support</a></li>
+      <li><a href="<?cs var:toroot ?>ndk/guides/stable_apis.html">Stable APIs</a></li>
+
+      </ul>
+   </li>
+
+</ul>
+
+
+<script type="text/javascript">
+<!--
+    buildToggleLists();
+    changeNavLang(getLangPref());
+//-->
+</script>
+
diff --git a/docs/html/ndk/guides/ndk-build.jd b/docs/html/ndk/guides/ndk-build.jd
old mode 100644
new mode 100755
index 18ca2d8..55bc4602
--- a/docs/html/ndk/guides/ndk-build.jd
+++ b/docs/html/ndk/guides/ndk-build.jd
@@ -8,7 +8,6 @@
       <ol>
         <li><a href="#int">Internals</a></li>
          <li><a href="#ifc">Invoking from the Command Line</a></li>
-         <li><a href="#ife">Invoking from Eclipse</a></li>
          <li><a href="#6432">64-Bit and 32-Bit Toolchains</a></li>
          <li><a href="#req">Requirements</a></li>
           </ol>
@@ -85,29 +84,6 @@
   don't want to {@code cd} to it in your terminal.</dd>
 </dl>
 
-<h2 id="ife">Invoking from Eclipse</h2>
-<p>To build from Eclipse, make sure that you have configured it as described in
-<a href="{@docRoot}ndk/guides/setup.html#configure">Setup</a>. If you
-wish to build using the default <code>ndk-build</code> command, with no
-options, you can just build your project just as you would any Android project.
-To get Eclipse to add any of the options described above, follow these steps:</p>
-<ol type="1">
-<li>In the <em>Project Explorer</em> pane, right-click your project name.</li>
-<li>Select <strong>Properties</strong>.</li>
-<li>Click <strong>C/C++ Build</strong>.</li>
-<li>Under the <em>Builder Settings</em> tab, uncheck <strong>Use default build command</strong>.</li>
-<li>In the <em>Build command</em> field, enter the entire build string as if you were typing it on
-the command line.</li>
-<li>Click <strong>OK</strong>.</li>
-</ol>
-Figure 1 shows an example of an entered string.<br>
-<br>
-<img src="./images/NDK_build_string.png"
-    srcset="./images/NDK_build_string@2x.png 2x"
-    alt="enter the build string next to 'Build command'"
-    height="152" width="501">
-<p style="clear:both"><b>Figure 1.</b> Specifying a debug build from within
-Eclipse</p>
 <p><a class="anchor" id="dvr"></a> </p>
 <h3>Debuggable versus Release builds</h3>
 <p>Use the <code>NDK_DEBUG</code> option and, in certain cases,
diff --git a/docs/html/ndk/guides/ndk-gdb.jd b/docs/html/ndk/guides/ndk-gdb.jd
old mode 100644
new mode 100755
index b15e67e..6d9f933
--- a/docs/html/ndk/guides/ndk-gdb.jd
+++ b/docs/html/ndk/guides/ndk-gdb.jd
@@ -32,10 +32,7 @@
 <li>Develop your app in a Unix shell. On Windows, use <a href="https://www.cygwin.com/">Cygwin</a>
 or the experimental {@code ndk-gdb-py} <a href="https://www.python.org/">Python</a>
 implementation.</li>
-<li>Use GNU Make 3.81 or higher.</li>
-<li>If you are building your app from
-<a href="{@docRoot}sdk/installing/installing-adt.html">Eclipse</a>, build it
-using version 0.9.7 or higher of the ADT plug-in.</li>
+<li>Use GNU Make 3.81 or higher.</li></ul>
 
 <h2 id="use">Usage</h2>
   To invoke the {@code ndk-gdb} script, change into the application directory or any directory under
diff --git a/docs/html/ndk/guides/standalone_toolchain.jd b/docs/html/ndk/guides/standalone_toolchain.jd
old mode 100644
new mode 100755
index 3b6f7f1..e08d531e
--- a/docs/html/ndk/guides/standalone_toolchain.jd
+++ b/docs/html/ndk/guides/standalone_toolchain.jd
@@ -17,7 +17,7 @@
   </div>
 
 <p>You can use the toolchains provided with the Android NDK independently, or as plug-ins
-with an existing IDE, such as Eclipse. This flexibility
+with an existing IDE. This flexibility
 can be useful if you already have your own build system, and only need the ability to invoke the
 cross-compiler in order to add support to Android for it.</p>
 
diff --git a/docs/html/ndk/index.jd b/docs/html/ndk/index.jd
index a88c15d..fc1c595 100644
--- a/docs/html/ndk/index.jd
+++ b/docs/html/ndk/index.jd
@@ -40,11 +40,12 @@
     <i class="dac-sprite dac-arrow-down-gray"></i>
   </a>
 </div>
-<section class="dac-section dac-gray dac-small dac-invert" id="latest"><div class="wrap">
+<section class="dac-section dac-gray dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Latest</h2>
   <div class="resource-widget resource-flow-layout col-16"
        data-query="type:blog+tag:ndk"
        data-cardSizes="6x6"
        data-maxResults="9"
+       data-items-per-page="6"
        data-initial-results="3"></div>
 </div></section>
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 0b1780d..bf571ea 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -1,58 +1,10 @@
 page.title=Download Android Studio and SDK Tools
-page.tags=sdk, android studio
+page.tags="sdk, android studio,tools"
 page.template=sdk
 page.image=images/cards/android-studio_2x.png
 header.hide=1
 page.metaDescription=Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and more.
 
-studio.version=1.5.0.4
-
-studio.linux_bundle_download=android-studio-ide-141.2422023-linux.zip
-studio.linux_bundle_bytes=380940715
-studio.linux_bundle_checksum=25f3b2b67641ef72e54d2c74cc69fde059630b50
-
-studio.mac_bundle_download=android-studio-ide-141.2422023-mac.dmg
-studio.mac_bundle_bytes=367454371
-studio.mac_bundle_checksum=9ff98b82e85081910d35b39342127cfc9071c08a
-
-studio.win_bundle_download=android-studio-ide-141.2422023-windows.zip
-studio.win_bundle_bytes=375657281
-studio.win_bundle_checksum=b427298bfc80b9f162fef3cba95a5775c86b4676
-
-
-studio.win_bundle_exe_download=android-studio-bundle-141.2422023-windows.exe
-studio.win_bundle_exe_bytes=1209184992
-studio.win_bundle_exe_checksum=e44c0c7fe53ca8e8a6f3b9bdc7551c3b8ee41f30
-
-studio.win_notools_exe_download=android-studio-ide-141.2422023-windows.exe
-studio.win_notools_exe_bytes=351441320
-studio.win_notools_exe_checksum=41933764d0f6d232cf8c123974c80fd400f0e6ea
-
-
-
-
-sdk.linux_download=android-sdk_r24.4.1-linux.tgz
-sdk.linux_bytes=326412652
-sdk.linux_checksum=725bb360f0f7d04eaccff5a2d57abdd49061326d
-
-sdk.mac_download=android-sdk_r24.4.1-macosx.zip
-sdk.mac_bytes=102781947
-sdk.mac_checksum=85a9cccb0b1f9e6f1f616335c5f07107553840cd
-
-sdk.win_download=android-sdk_r24.4.1-windows.zip
-sdk.win_bytes=199701062
-sdk.win_checksum=66b6a6433053c152b22bf8cab19c0f3fef4eba49
-
-
-sdk.win_installer=installer_r24.4.1-windows.exe
-sdk.win_installer_bytes=151659917
-sdk.win_installer_checksum=f9b59d72413649d31e633207e31f456443e7ea0b
-
-
-
-
-
-
 @jd:body
 
 <style type="text/css">
@@ -257,7 +209,7 @@
 <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
 <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
 </p>
-<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
+<p><a href="" class="dac-button dac-raised dac-primary disabled ndk" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
 </div>
 
 
@@ -278,7 +230,7 @@
 
 <div style="color: #fff; width:226px; height:0; overflow:visible; position:absolute; top:40px; left:25px">
 
-<h1 class="studio-logo" style="margin:0 0 35px !important">Android Studio</h1>
+<h1 class="studio-logo" style="margin:0 0 35px !important;padding:0 !important">Android Studio</h1>
 
 <p style="font-size: 16px; color:#bbb; position: absolute;left: 297px; top: 5px; display: block;
 width: 400px;text-align: center;">The official Android IDE</p>
@@ -304,6 +256,7 @@
   <li><a href="#Requirements">System Requirements</a></li>
   <li><a href="#Other">Other Download Options</a></li>
   <li><a href="{@docRoot}sdk/installing/migrate.html">Migrating to Android Studio</a></li>
+  <li><a href="https://www.google.com/intl/en/usability/index.html?l=9&reserved=0&pType=devel&productTag=0&campaignType=ghc&campaignDate=0&labelTag=0&referral_code=ASDWNLD">Participate in usability research</a></li>
   <li><a href="https://docs.google.com/a/google.com/forms/d/1mjsyfzv3HAnDY-_Kfj-3QJKdpuksyMFs9e73CRwmT6Q/viewform"
 target="_blank">Take a Survey</a></li>
 </ul>
diff --git a/docs/html/sdk/installing/adding-packages.jd b/docs/html/sdk/installing/adding-packages.jd
index 88619bd..2911c38 100644
--- a/docs/html/sdk/installing/adding-packages.jd
+++ b/docs/html/sdk/installing/adding-packages.jd
@@ -31,7 +31,7 @@
   line-height:20px;
   padding:0 0 0 20px;
   margin:0 0 20px 0;
-  display:inline-block;
+  display:inline;
   font-weight:normal;
 }
 ol.large > li:nth-child(1):before {
diff --git a/docs/html/sdk/installing/index.jd b/docs/html/sdk/installing/index.jd
index 0375a2f..203d2ff 100644
--- a/docs/html/sdk/installing/index.jd
+++ b/docs/html/sdk/installing/index.jd
@@ -32,17 +32,14 @@
 <p>Android Studio provides everything you need to start developing apps for Android, including
 the Android Studio IDE and the Android SDK tools.</p>
 
-<p>If you didn't download Android Studio, go <a href="{@docRoot}sdk/index.html"
-><b>download Android Studio now</b></a>, or switch to the
-<a href="{@docRoot}sdk/installing/index.html?pkg=tools">stand-alone SDK Tools
-install</a> instructions.</p>
+<p class="note"><strong>Note:</strong> If you have not yet downloaded Android Studio, <a href="{@docRoot}sdk/index.html"
+><b>download</b></a> it now.</p>
 
 
-<p>Before you set up Android Studio, be sure you have installed
-JDK 6 or higher (the JRE alone is not sufficient)&mdash;JDK 7 is required when
-developing for Android 5.0 and higher. To check if you
-have JDK installed (and which version), open a terminal and type <code>javac -version</code>.
-If the JDK is not available or the version is lower than version 6, download the 
+<p>Before installing Android Studio, make sure you have JDK 6 or higher installed&mdash;the JRE
+alone is not sufficient. When developing for Android 5.0 (API level 21) and higher, you will need to install JDK 7.
+To check if you have the correct version of the JDK installed, open a terminal and type <code>javac -version</code>.
+If the JDK is not available or the version is lower than version 6, download the
 <a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html" class="external-link"
 >Java SE Development Kit 7</a>.</p>
 
@@ -57,10 +54,10 @@
 
 <p><b>To set up Android Studio on Windows:</b></p>
   <ol>
-    <li>Launch the <code>.exe</code> file you just downloaded.</li>
+    <li>Launch the {@code .exe} file you downloaded.</li>
     <li>Follow the setup wizard to install Android Studio and any necessary SDK tools.
 
-    <p>On some Windows systems, the launcher script does not find where Java is installed.
+    <p>On some Windows systems, the launcher script does not find where the JDK is installed.
       If you encounter this problem,
       you need to set an environment variable indicating the correct location.</p>
       <p>Select <strong>Start menu > Computer > System Properties >
@@ -69,11 +66,10 @@
       your JDK folder, for example <code>C:\Program Files\Java\jdk1.7.0_21</code>.</p>
     </p>
     </li>
-
   </ol>
 
 
-<p>The individual tools and other SDK packages are saved outside the Android Studio application
+<p>The individual tools and other SDK packages used by Android Studio are installed in a separate
 directory. If you need to access the tools directly, use a terminal to navigate to the location
 where they are installed. For example:</p>
 <p><code>\Users\&lt;user&gt;\sdk\</code></p>
@@ -87,15 +83,9 @@
 
 <p><b>To set up Android Studio on Mac OSX:</b></p>
   <ol>
-    <li>Launch the {@code .dmg} file you just downloaded.</li>
+    <li>Launch the {@code .dmg} file you downloaded.</li>
     <li>Drag and drop Android Studio into the Applications folder.
     <li>Open Android Studio and follow the setup wizard to install any necessary SDK tools.
-      <p>
-      Depending on your security settings, when you attempt to open Android Studio, you might
-      see a warning that says the package is damaged and should be moved to the trash. If this
-      happens, go to <strong>System Preferences > Security &amp; Privacy</strong> and under
-      <strong>Allow applications downloaded from</strong>, select <strong>Anywhere</strong>.
-      Then open Android Studio again.</p>
     </li>
   </ol>
 
@@ -112,30 +102,30 @@
 <p><b>To set up Android Studio on Linux:</b></p>
 
   <ol>
-    <li>Unpack the downloaded ZIP file into an
+    <li>Unpack the {@code .zip} file you downloaded to an
         appropriate location for your applications.
-    <li>To launch Android Studio, navigate to the {@code android-studio/bin/} directory
-    in a terminal and execute {@code studio.sh}.
+    <li>To launch Android Studio, open a terminal, navigate to the {@code android-studio/bin/} directory,
+     and execute {@code studio.sh}.
       <p>You may want to add {@code android-studio/bin/} to your PATH environmental
       variable so that you can start Android Studio from any directory.</p>
     </li>
     <li>If the SDK is not already installed, follow the setup wizard to install the SDK and any
     necessary SDK tools.
-    <p class="note"><strong>Note:</strong> You may also need to install the ia32-libs,
-    lib32ncurses5-dev, and lib32stdc++6 packages. These packages are required to support 32-bit apps
-    on a 64-bit machine. </p>
+    <p class="note"><strong>Note:</strong> To support 32-bit apps
+    on a 64-bit machine, you will need to install the ia32-libs,
+    lib32ncurses5-dev, and lib32stdc++6 packages.</p>
     </li>
   </ol>
 
 </div><!-- end linux -->
 </div><!-- end procedure box -->
 
-<p>Android Studio is now ready and loaded with the Android developer tools, but there are still a
-couple packages you should add to make your Android SDK complete.</p>
+<p>You can now start developing apps in Android Studio! Later on, you may want to add packages or
+update them.</p>
 
 <p class="paging-links">
 <a href="{@docRoot}sdk/installing/adding-packages.html" class="next-page-link">
-Continue: Adding SDK Packages</a></p>
+Optional: Adding SDK Packages</a></p>
 
 
 </div>
@@ -157,10 +147,9 @@
 It includes only the core SDK tools, which you can access from a command line or with a plugin
 for your favorite IDE (if available).</p>
 
-<p>If you didn't download the SDK tools, go <a href="{@docRoot}sdk/index.html#Other"
-><b>download the SDK now</b></a>,
-or switch to the <a href="{@docRoot}sdk/installing/index.html?pkg=studio">Android Studio
-install</a> instructions.</p>
+<p class="note"><strong>Note:</strong> If you have not yet downloaded the SDK tools, <a href="{@docRoot}sdk/index.html#Other"
+><b>download</b></a> them now. For a complete IDE and Android SDK package, we recommend <a href="{@docRoot}sdk/index.html"
+><b>downloading Android Studio</b></a>.</p>
 
 
 <div class="procedure-box">
@@ -173,14 +162,13 @@
 <p><b>To get started on Windows:</b></p>
 
 <p>Your download package is an executable file that starts an installer. The installer checks your machine
-  for required tools, such as the proper Java SE Development Kit (JDK) and installs it if necessary.
-  The installer then saves the Android SDK Tools to a specified the location outside of the Android
-  Studio directories.</p>
+  for required tools, such as the proper Java SE Development Kit (JDK), and installs them if necessary.
+  The installer then saves the Android SDK Tools to a specified location.</p>
 
 <ol>
-<li>Double-click the executable ({@code .exe} file) to start the install.</li>
-<li>Make a note of the name and location where you save the SDK on your system&mdash;you will need to
-refer to the SDK directory later when using
+<li>Double-click the {@code .exe} file to start the install.</li>
+<li>Make a note of the name and location where you saved the SDK on your system&mdash;you will need to
+refer to them later when using
 the SDK tools from the command line.</li>
 <li>Once the installation completes, the installer starts the Android SDK Manager.
 </li>
@@ -194,13 +182,14 @@
 
 <p><b>To get started on Mac OSX:</b></p>
 
-<p>Unpack the ZIP file you've downloaded. By default, it's unpacked
-into a directory named <code>android-sdk-mac_x86</code>. Move it to an appropriate location on your
-machine, such as a "Development" directory in your home directory.</p>
-
-<p>Make a note of the name and location of the SDK directory on your system&mdash;you will need to
-refer to the SDK directory later when using
-the SDK tools from the command line.</p>
+<ol>
+<li>Unpack the {@code .zip} file you downloaded. By default, the file is unpacked
+into a directory named <code>android-sdk-mac_x86</code>.</li>
+<li>Move the directory to an appropriate location on your
+machine, such as a "Development" directory in your home directory.</li>
+<li>Make a note of the name and location of the SDK directory on your system&mdash;you will need to
+refer to them later when using the SDK tools from the command line.</li>
+</ol>
 
 </div>
 
@@ -211,13 +200,11 @@
 
 <p><b>To get started on Linux:</b></p>
 
-<p>Unpack the {@code .zip} file you've downloaded. The SDK files are download separately to a
-user-specified directory. </p>
-
-<p>Make a note of the name and location of the SDK directory on your system&mdash;you will need to
-refer to the SDK directory later when using
-the SDK tools from the command line.</p>
-
+<ol>
+<li>Unpack the {@code .tgz} file you downloaded.</li>
+<li>Make a note of the name and location of the unpacked SDK directory on your system&mdash;you will need to
+refer to them later when using the SDK tools from the command line.</li>
+</ol>
 
 <h5 id="Troubleshooting" style="margin-bottom:15px"><a href='' class="expandable"
   onclick="toggleExpandable(this,'#UbuntuTrouble');return false;"
@@ -256,8 +243,8 @@
 </div><!-- end procedure box -->
 
 
-<p>The Android SDK tools are now ready to begin developing apps, but there are still a
-couple packages you should add to make your Android SDK complete.</p>
+<p>Before you can begin developing apps with the Android SDK tools, you must install a few
+additional packages.</p>
 
 <p class="paging-links">
 <a href="{@docRoot}sdk/installing/adding-packages.html" class="next-page-link">
@@ -281,11 +268,7 @@
 
 <div id="default" style="display:none">
 
-<p>If you haven't already, <b><a href="{@docRoot}sdk/index.html">download
-the Android SDK bundle for Android Studio</a></b> or the
-<a href="{@docRoot}sdk/index.html#Other">stand-alone SDK Tools</a>. </p>
-
-<p>Then, select which SDK bundle you want to install:</p>
+<p>Select the SDK bundle you want to install:</p>
 
 <div class="cols" style="margin:30px 0 60px">
 
diff --git a/docs/html/sdk/installing/installing-adt.jd b/docs/html/sdk/installing/installing-adt.jd
deleted file mode 100644
index b89c068..0000000
--- a/docs/html/sdk/installing/installing-adt.jd
+++ /dev/null
@@ -1,160 +0,0 @@
-page.title=Installing the Eclipse Plugin
-adt.zip.version=23.0.6
-adt.zip.download=ADT-23.0.6.zip
-adt.zip.bytes=103344298
-adt.zip.checksum=f64b7e50c84799f41c642218c35f1bbe
-
-@jd:body
-
-
-<p class="caution">
-  <strong>Important:</strong> Support for the Android Developer Tools (ADT) in Eclipse is ending,
-  per our <a href=
-  "http://android-developers.blogspot.com/2015/06/an-update-on-eclipse-android-developer.html"
-  class="external-link">announcement</a>. You should migrate your app development projects to
-  Android Studio as soon as possible. For more information on transitioning to Android Studio, see
-  <a href="{@docRoot}sdk/installing/migrate.html">Migrating to Android Studio</a>.
-</p>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT). This plugin provides a powerful, integrated
-environment in which to develop Android apps. It extends the capabilities
-of Eclipse to let you quickly set up new Android projects, build an app
-UI, debug your app, and export signed (or unsigned) app packages (APKs) for distribution.
-</p>
-
-<p>You should install the ADT plugin
-only if you already have an Eclipse installation that you want to continue using.
-Your existing Eclipse installation must meet these requirements:</p>
-    <ul>
-      <li><a href="http://eclipse.org/mobile/">Eclipse</a> 3.7.2 (Indigo) or greater
-<p class="note"><strong>Note:</strong> Eclipse 3.6 (Helios) is no longer
-supported with the latest version of ADT.</p></li>
-      <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included
-in most Eclipse IDE packages) </li>
-      <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a>
-        (JRE alone is not sufficient)</li>
-      <li><strong>Not</strong> compatible with GNU Compiler for Java (gcj)</li>
-    </ul>
-
-
-<h2 id="Download">Download the ADT Plugin</h2>
-
-<p>To add the ADT plugin to Eclipse:</p>
-<ol>
-    <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install New
-Software</strong>.</li>
-    <li>Click <strong>Add</strong>, in the top-right corner.</li>
-    <li>In the Add Repository dialog that appears, enter "ADT Plugin" for the <em>Name</em> and the
-following URL for the <em>Location</em>:
-      <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-      <p class="note"><strong>Note:</strong> The Android Developer Tools update site requires
-      a secure connection. Make sure the update site URL you enter starts with HTTPS.</p>
-    </li>
-    <li>Click <strong>OK</strong>.</li>
-    <li>In the Available Software dialog, select the checkbox next to Developer Tools and click
-<strong>Next</strong>.</li>
-    <li>In the next window, you'll see a list of the tools to be downloaded. Click
-<strong>Next</strong>. </li>
-    <li>Read and accept the license agreements, then click <strong>Finish</strong>.
-      <p>If you get a security warning saying that the authenticity or validity of
-the software can't be established, click <strong>OK</strong>.</p></li>
-    <li>When the installation completes, restart Eclipse. </li>
-</ol>
-
-
-
-<h2 id="Configure">Configure the ADT Plugin</h2>
-
-<p>Once Eclipse restarts, you
-  must specify the location of your Android SDK directory:</p>
-
-<ol>
-    <li>In the "Welcome to Android Development" window that appears, select <strong>Use
-existing SDKs</strong>.</li>
-    <li>Browse and select the location of the Android SDK directory you recently
-downloaded and unpacked.</li>
-    <li>Click <strong>Next</strong>.</li>
-</ol>
-
-<p>Your Eclipse IDE is now set up to develop Android apps, but you need to add
-the latest SDK platform tools and an Android platform to your environment.
-To get these packages for your SDK, continue to
-<a href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms and Packages</a>.</p>
-
-
-<h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
-
-<p>If you are having trouble downloading the ADT plugin after following the
-steps above and you are behind a firewall (such as a corporate firewall), make sure that
-you have properly configured your proxy settings in Eclipse. In Eclipse,
-you can configure proxy information from the main Eclipse menu in
-<strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) &gt;
-<strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
-Connections</strong>.
-</p>
-
-<p>If you are still unable to use Eclipse to download the ADT plugin as a
-remote update site, you can download the ADT zip file to your local machine and
-manually install it:</p>
-
-<ol>
-  <li>Download the ADT Plugin zip file (do not unpack it):
-
-  <table class="download">
-    <tr>
-      <th>Package</th>
-      <th>Size</th>
-      <th>MD5 Checksum</th>
-  </tr>
-  <tr>
-    <td>
-      <a href="https://dl.google.com/android/{@adtZipDownload}">{@adtZipDownload}</a>
-    </td>
-    <td>{@adtZipBytes} bytes</td>
-    <td>{@adtZipChecksum}</td>
-  </tr>
-</table>
-</li>
-
-</li>
-  <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install New
-Software</strong>.</li>
-  <li>Click <strong>Add</strong>, in the top-right corner.</li>
-  <li>In the Add Repository dialog, click <strong>Archive</strong>.</li>
-  <li>Select the downloaded {@adtZipDownload} file and click <strong>OK</strong>.</li>
-  <li>Enter "ADT Plugin" for the name and click <strong>OK</strong>.
-  <li>In the Available Software dialog, select the checkbox next to Developer Tools and click
-<strong>Next</strong>.</li>
-  <li>In the next window, you'll see a list of the tools to be downloaded. Click
-<strong>Next</strong>. </li>
-  <li>Read and accept the license agreements, then click <strong>Finish</strong>.
-    <p>If you get a security warning saying that the authenticity or validity of
-the software can't be established, click <strong>OK</strong>.</p></li>
-  <li>When the installation completes, restart Eclipse. </li>
-</ol>
-
-<p>To update your plugin once you've installed using the zip file, you will have
-to follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional
-Eclipse packages (for example, WST). If you encounter an error when
-installing ADT, your Eclipse installation might not include these packages.
-For information about how to quickly add the necessary packages to your
-Eclipse installation, see the troubleshooting topic
-<a href="{@docRoot}resources/faq/troubleshooting.html#installeclipsecomponents">ADT
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse:
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
diff --git a/docs/html/sdk/installing/migrate.jd b/docs/html/sdk/installing/migrate.jd
index 6dedad6..61e6798 100644
--- a/docs/html/sdk/installing/migrate.jd
+++ b/docs/html/sdk/installing/migrate.jd
@@ -1,4 +1,4 @@
-page.title=Migrating to Android Studio
+page.title=Migrating from Eclipse ADT
 
 @jd:body
 
diff --git a/docs/html/sdk/installing/studio-layout.jd b/docs/html/sdk/installing/studio-layout.jd
index f0e5d59..60cbcb3 100644
--- a/docs/html/sdk/installing/studio-layout.jd
+++ b/docs/html/sdk/installing/studio-layout.jd
@@ -132,6 +132,15 @@
 <p>Within the graphical editor, you can rearrange your app's UI by dragging widgets to
 the desired location.</p>
 
+<h3>Multi-API Version Rendering</h3>
+
+<p>Android Studio supports multi-API version rendering. When you click the Android version icon <img src="{@docRoot}images/tools/as-api-level-preview.png" style="vertical-align:bottom;margin:0;height:19px" /> in the <b>Design</b> view,
+Android Studio allows you to preview your Android layouts across multiple Android API levels.
+</p>
+
+<p><img src="{@docRoot}images/tools/studio-api-version-rendering.png" /></p>
+    <p class="img-caption"><strong>Figure 7.</strong> Multi-API version rendering.</p>
+
 <h3>Taking a snapshot</h3>
 
 <p>When you run your app on a connected device, you can take a snapshot of it by clicking
diff --git a/docs/html/sdk/installing/studio-tips.jd b/docs/html/sdk/installing/studio-tips.jd
index 6c944ab..113388f 100644
--- a/docs/html/sdk/installing/studio-tips.jd
+++ b/docs/html/sdk/installing/studio-tips.jd
@@ -1,4 +1,7 @@
 page.title=Android Studio Tips and Tricks
+page.image=images/tools/studio-previewall.png
+page.tags="sdk", "studio", "android studio"
+meta.tags="studio"
 @jd:body
 
 <div id="qv-wrapper">
diff --git a/docs/html/sdk/sdk_vars.cs b/docs/html/sdk/sdk_vars.cs
new file mode 100644
index 0000000..c911f5a
--- /dev/null
+++ b/docs/html/sdk/sdk_vars.cs
@@ -0,0 +1,59 @@
+<?cs
+set:studio.version='1.5.1.0' ?><?cs
+
+
+set:studio.linux_bundle_download='android-studio-ide-141.2456560-linux.zip' ?><?cs
+set:studio.linux_bundle_bytes='380943097' ?><?cs
+set:studio.linux_bundle_checksum='b8460a2197abe26979d88e3b01b3c8bfd80a37db' ?><?cs
+
+set:studio.mac_bundle_download='android-studio-ide-141.2456560-mac.dmg' ?><?cs
+set:studio.mac_bundle_bytes='367456698' ?><?cs
+set:studio.mac_bundle_checksum='d0807423985757195ad5ae4717d580deeba1dbd8' ?><?cs
+
+set:studio.win_bundle_download='android-studio-ide-141.2456560-windows.zip' ?><?cs
+set:studio.win_bundle_bytes='375635150' ?><?cs
+set:studio.win_bundle_checksum='64882fb967f960f2142de239200104cdc9b4c75b' ?><?cs
+
+set:studio.win_bundle_exe_download='android-studio-bundle-141.2456560-windows.exe' ?><?cs
+set:studio.win_bundle_exe_bytes='1209163328' ?><?cs
+set:studio.win_bundle_exe_checksum='6ffe608b1dd39041a578019eb3fedb5ee62ba545' ?><?cs
+
+set:studio.win_notools_exe_download='android-studio-ide-141.2456560-windows.exe' ?><?cs
+set:studio.win_notools_exe_bytes='351419656' ?><?cs
+set:studio.win_notools_exe_checksum='8d016b90bf04ebac6ce548b1976b0c8a4f46b5f9' ?><?cs
+
+
+set:sdk.linux_download='android-sdk_r24.4.1-linux.tgz' ?><?cs
+set:sdk.linux_bytes='326412652' ?><?cs
+set:sdk.linux_checksum='725bb360f0f7d04eaccff5a2d57abdd49061326d' ?><?cs
+
+set:sdk.mac_download='android-sdk_r24.4.1-macosx.zip' ?><?cs
+set:sdk.mac_bytes='102781947' ?><?cs
+set:sdk.mac_checksum='85a9cccb0b1f9e6f1f616335c5f07107553840cd' ?><?cs
+
+set:sdk.win_download='android-sdk_r24.4.1-windows.zip' ?><?cs
+set:sdk.win_bytes='199701062' ?><?cs
+set:sdk.win_checksum='66b6a6433053c152b22bf8cab19c0f3fef4eba49' ?><?cs
+set:sdk.win_installer='installer_r24.4.1-windows.exe' ?><?cs
+set:sdk.win_installer_bytes='151659917' ?><?cs
+set:sdk.win_installer_checksum='f9b59d72413649d31e633207e31f456443e7ea0b' ?><?cs
+
+
+set:ndk.mac64_download='android-ndk-r10e-darwin-x86_64.bin' ?><?cs
+set:ndk.mac64_bytes='388937326' ?><?cs
+set:ndk.mac64_checksum='2cb8893a5701603519d38a7e04c50e81' ?><?cs
+
+set:ndk.linux64_download='android-ndk-r10e-linux-x86_64.bin' ?><?cs
+set:ndk.linux64_bytes='401522849' ?><?cs
+set:ndk.linux64_checksum='19af543b068bdb7f27787c2bc69aba7f' ?><?cs
+set:ndk.linux32_download='android-ndk-r10e-linux-x86.bin' ?><?cs
+set:ndk.linux32_bytes='394281908' ?><?cs
+set:ndk.linux32_checksum='c3edd3273029da1cbd2f62c48249e978' ?><?cs
+
+set:ndk.win64_download='android-ndk-r10e-windows-x86_64.exe' ?><?cs
+set:ndk.win64_bytes='419616132' ?><?cs
+set:ndk.win64_checksum='8412bb4991a95e08fda50b5a44d95df7' ?><?cs
+set:ndk.win32_download='android-ndk-r10e-windows-x86.exe' ?><?cs
+set:ndk.win32_bytes='396563176' ?><?cs
+set:ndk.win32_checksum='1a82445baaf62aec3a46386ab1e5772c'
+?>
\ No newline at end of file
diff --git a/docs/html/sdk/win-usb.jd b/docs/html/sdk/win-usb.jd
index cb3e7bd..c08f6fd 100644
--- a/docs/html/sdk/win-usb.jd
+++ b/docs/html/sdk/win-usb.jd
@@ -155,7 +155,7 @@
 <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
 <label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
 </p>
-<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
+<p><a href="" class="dac-button dac-raised dac-primary disabled ndk" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
 </div>
 
 
diff --git a/docs/html/support.jd b/docs/html/support.jd
index 9ef4a16..0d87961 100644
--- a/docs/html/support.jd
+++ b/docs/html/support.jd
@@ -1,8 +1,7 @@
-page.title=Developer Support
+page.title=Developer Support Resources
 page.type=about
 fullpage=1
-page.metaDescription=Resources available to help you report and resolve issues while you are developing apps for Android.
-page.image=/images/android-support-card.png
+page.metaDescription=Links to community and support resources for Android developers.
 
 @jd:body
 
diff --git a/docs/html/tools/adk/adk.jd b/docs/html/tools/adk/adk.jd
old mode 100644
new mode 100755
index 3f45c3c..d602497
--- a/docs/html/tools/adk/adk.jd
+++ b/docs/html/tools/adk/adk.jd
@@ -299,46 +299,8 @@
   ADK board. The ADK board receives commands such as lighting up the board's LEDs or sends data
   from the board such as joystick movement and temperature readings.</p>
 
-  <p>To install and run the application in Eclipse:</p>
-
-  <ol>
-    <li><a href="http://code.google.com/android/add-ons/google-apis/installing.html">Install the
-    Google APIs API Level 10 add-on library</a>, which includes the Open Accessory library for
-    2.3.4 devices that support accessory mode. This library is also forward compatible with Android
-    3.1 or newer devices that support accessory mode. If you only care about Android 3.1 or newer
-    devices, all you need is API Level 12. For more information on deciding which API level to use,
-    see the <a href="{@docRoot}guide/topics/connectivity/usb/accessory.html#choosing">USB Accessory</a>
-    documentation.</li>
-
-    <li>Click <strong>File &gt; New &gt; Project...</strong>, then select <strong>Android &gt;
-    Android Project</strong></li>
-
-    <li>In the <strong>Project name:</strong> field, type DemoKit.</li>
-
-    <li>Choose <strong>Create project from existing source</strong>, click <strong>Browse</strong>,
-    select the <code>app</code> directory, click <strong>Open</strong> to close that dialog and then
-    click <strong>Finish</strong>.</li>
-
-    <li>For Build Target, select <strong>Google APIs</strong> (Platform 2.3.3, API Level 10).
-
-      <p class="note"><strong>Note:</strong> Even though the add-on is labeled as
-      <strong>2.3.3</strong>, the newest Google API add-on library for API level 10 adds USB Open
-      Accessory API support for 2.3.4 devices.</p>
-    </li>
-
-    <li>Click <strong>Finish</strong>.</li>
-
-    <li>Install the application to your device.</li>
-
-    <li>Connect the ADK board (USB-A) to your Android-powered device (micro-USB). Ensure that the
-    power cable to the accessory is plugged in or that the micro-USB port on the accessory is
-    connected to your computer for power (this also allows you to <a href="#monitoring">monitor the
-    ADK board</a>). When connected, accept the prompt that asks for whether or not to open the
-    DemoKit application to connect to the accessory. If the prompt does not show up, connect and
-    reconnect the accessory.</li>
-  </ol>
-
-  <p>You can now interact with the ADK board by moving the color LED or servo sliders (make sure
+  <p>After the application is installed, you can interact with the ADK board by moving the color
+  LED or servo sliders (make sure
   the servos are connected) or by pressing the relay buttons in the application. On the ADK shield,
   you can press the buttons and move the joystick to see their outputs displayed in the
   application.</p>
diff --git a/docs/html/tools/building/building-cmdline-ant.jd b/docs/html/tools/building/building-cmdline-ant.jd
deleted file mode 100644
index add6ca2..0000000
--- a/docs/html/tools/building/building-cmdline-ant.jd
+++ /dev/null
@@ -1,389 +0,0 @@
-page.title=Building and Running from the Command Line
-parent.title=Building and Running
-parent.link=index.html
-@jd:body
-
- <div id="qv-wrapper">
-    <div id="qv">
-      <h2>In this document</h2>
-      <ol>
-        <li><a href="#DebugMode">Building in Debug Mode</a></li>
-        <li><a href="#ReleaseMode">Building in Release Mode</a>
-          <ol>
-            <li><a href="#ManualReleaseMode">Build unsigned</a></li>
-            <li><a href="#AutoReleaseMode">Build signed and aligned</a></li>
-            <li><a href="#OnceBuilt">Once built and signed in release mode</a></li>
-          </ol>
-        </li>
-        <li><a href="#RunningOnEmulator">Running on the Emulator</a></li>
-        <li><a href="#RunningOnDevice">Running on a Device</a></li>
-        <li><a href="#Signing">Application Signing</a></li>
-        <li><a href="#AntReference">Ant Command Reference</a></li>
-      </ol>
-  <h2>See also</h2>
-  <ol>
-    <li><a href="{@docRoot}tools/devices/managing-avds-cmdline.html">Managing AVDs from
-the Command Line</a></li>
-    <li><a href="{@docRoot}tools/devices/emulator.html">Using the Android
-Emulator</a></li>
-    <li><a href="{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a></li>
-  </ol>
-    </div>
-  </div>
-
-<p class="caution">
-  <strong>Important:</strong> Support for Ant as a build tool for Android is ending, per our
-  <a href="http://android-developers.blogspot.com/2015/06/an-update-on-eclipse-android-developer.html"
-  class="external-link">announcement</a>. You should migrate your app development projects to
-  Android Studio and Gradle as soon as possible. For more information on transitioning to these
-  tools, see <a href="{@docRoot}sdk/installing/migrate.html">Migrating to Android Studio</a>.
-</p>
-
-  <p>There are two ways to build your application using the Ant build script: one for
-  testing/debugging your application &mdash; <em>debug mode</em> &mdash; and one for building your
-  final package for release &mdash; <em>release mode</em>. Regardless of which way you build your application,
-  it must be signed before it can install on an emulator or device&mdash;with a debug key when building
-  in debug mode and with your own private key when building in release mode.</p>
-
-  <p>Whether you're building in debug mode or release mode, you need to use the Ant tool to compile
-  and build your project. This will create the .apk file that you can install on an emulator or device.
-  When you build in debug mode, the .apk file is automatically signed by the SDK tools with
-  a debug key, so it's instantly ready for installation onto an emulator or attached
-  development device. You cannot distribute an application that is signed with a debug key.
-  When you build in release mode, the .apk file is <em>unsigned</em>, so you
-  must manually sign it with your own private key, using Keytool and Jarsigner.</p>
-
-  <p>It's important that you read and understand <a href=
-  "{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a>, particularly once
-  you're ready to release your application and share it with end-users. That document describes the
-  procedure for generating a private key and then using it to sign your .apk file. If you're just
-  getting started, however, you can quickly run your applications on an emulator or your own
-  development device by building in debug mode.</p>
-
-  <p>If you don't have Ant, you can obtain it from the <a href="http://ant.apache.org/">Apache Ant
-  home page</a>. Install it and make sure it is in your executable PATH. Before calling Ant, you
-  need to declare the JAVA_HOME environment variable to specify the path to where the JDK is
-  installed.</p>
-
-  <p class="note"><strong>Note:</strong> When installing JDK on Windows, the default is to install
-  in the "Program Files" directory. This location will cause <code>ant</code> to fail, because of
-  the space. To fix the problem, you can specify the JAVA_HOME variable like this:
-  <pre>set JAVA_HOME=c:\Progra~1\Java\&lt;jdkdir&gt;</pre>
-
-  <p>The easiest solution, however, is to install JDK in a non-space directory, for example:</p>
-
-  <pre>c:\java\jdk1.7</pre>
-
-  <h2 id="DebugMode">Building in Debug Mode</h2>
-
-  <p>For immediate application testing and debugging, you can build your application in debug mode
-  and immediately install it on an emulator. In debug mode, the build tools automatically sign your
-  application with a debug key and optimize the package with {@code zipalign}.</p>
-
-  <p>To build in debug mode:</p>
-
-  <ol>
-    <li>Open a command-line and navigate to the root of your project directory.</li>
-    <li>Use Ant to compile your project in debug mode:
-      <pre>
-ant debug
-</pre>
-
-      <p>This creates your debug <code>.apk</code> file inside the project <code>bin/</code> directory, named
-      <code>&lt;your_project_name&gt;-debug.apk</code>. The file is already signed with
-      the debug key and has been aligned with
-      <a href="{@docRoot}tools/help/zipalign.html"><code>zipalign</code></a>.
-      </p>
-    </li>
-  </ol>
-
-  <p>Each time you change a source file or resource, you must run Ant again in order to package up
-  the latest version of the application.</p>
-
-  <p>To install and run your application on an emulator, see the following section about <a href=
-  "#RunningOnEmulator">Running on the Emulator</a>.</p>
-
-  <h2 id="ReleaseMode">Building in Release Mode</h2>
-
-  <p>When you're ready to release and distribute your application to end-users, you must build your
-  application in release mode. Once you have built in release mode, it's a good idea to perform
-  additional testing and debugging with the final .apk.</p>
-
-  <p>Before you start building your application in release mode, be aware that you must sign the
-  resulting application package with your private key, and should then align it using the {@code
-  zipalign} tool. There are two approaches to building in release mode: build an unsigned package
-  in release mode and then manually sign and align the package, or allow the build script to sign
-  and align the package for you.</p>
-
-  <h3 id="ManualReleaseMode">Build unsigned</h3>
-
-  <p>If you build your application <em>unsigned</em>, then you will need to manually sign and align
-  the package.</p>
-
-  <p>To build an <em>unsigned</em> .apk in release mode:</p>
-
-  <ol>
-    <li>Open a command-line and navigate to the root of your project directory.</li>
-
-    <li>Use Ant to compile your project in release mode:
-      <pre>
-ant release
-</pre>
-    </li>
-  </ol>
-
-  <p>This creates your Android application .apk file inside the project <code>bin/</code>
-  directory, named <code><em>&lt;your_project_name&gt;</em>-unsigned.apk</code>.</p>
-
-  <p class="note"><strong>Note:</strong> The .apk file is <em>unsigned</em> at this point and can't
-  be installed until signed with your private key.</p>
-
-  <p>Once you have created the unsigned .apk, your next step is to sign the .apk with your private
-  key and then align it with {@code zipalign}. To complete this procedure, read <a href=
-  "{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a>.</p>
-
-  <p>When your <code>.apk</code> has been signed and aligned, it's ready to be distributed to end-users.
-  You should test the final build on different devices or AVDs to ensure that it
-  runs properly on different platforms.</p>
-
-  <h3 id="AutoReleaseMode">Build signed and aligned</h3>
-
-  <p>If you would like, you can configure the Android build script to automatically sign and align
-  your application package. To do so, you must provide the path to your keystore and the name of
-  your key alias in your project's {@code ant.properties} file. With this information provided,
-  the build script will prompt you for your keystore and alias password when you build in release
-  mode and produce your final application package, which will be ready for distribution.</p>
-
-  <p class="caution"><strong>Caution:</strong> Due to the way Ant handles input, the password that
-  you enter during the build process <strong>will be visible</strong>. If you are concerned about
-  your keystore and alias password being visible on screen, then you may prefer to perform the
-  application signing manually, via Jarsigner (or a similar tool). To instead perform the signing
-  procedure manually, <a href="#ManualReleaseMode">build unsigned</a> and then continue with
-  <a href="{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a>.</p>
-
-  <p>To specify your keystore and alias, open the project {@code ant.properties} file (found in
-  the root of the project directory) and add entries for {@code key.store} and {@code key.alias}.
-  For example:</p>
-  <pre>
-key.store=path/to/my.keystore
-key.alias=mykeystore
-</pre>
-
-  <p>Save your changes. Now you can build a <em>signed</em> .apk in release mode:</p>
-
-  <ol>
-    <li>Open a command-line and navigate to the root of your project directory.</li>
-
-    <li>Use Ant to compile your project in release mode:
-      <pre>
-ant release
-</pre>
-    </li>
-
-    <li>When prompted, enter you keystore and alias passwords.
-
-      <p class="caution"><strong>Caution:</strong> As described above, your password will be
-      visible on the screen.</p>
-    </li>
-  </ol>
-
-  <p>This creates your Android application .apk file inside the project <code>bin/</code>
-  directory, named <code><em>&lt;your_project_name&gt;</em>-release.apk</code>. This .apk file has
-  been signed with the private key specified in {@code ant.properties} and aligned with {@code
-  zipalign}. It's ready for installation and distribution.</p>
-
-  <h3 id="OnceBuilt">Once built and signed in release mode</h3>
-
-  <p>Once you have signed your application with a private key, you can install and run it on an
-  <a href="#RunningOnEmulator">emulator</a> or <a href="#RunningOnDevice">device</a>. You can
-  also try installing it onto a device from a web server. Simply upload the signed .apk to a web
-  site, then load the .apk URL in your Android web browser to download the application and begin
-  installation. (On your device, be sure you have enabled
-  <em>Settings &gt; Applications &gt; Unknown sources</em>.)</p>
-
-  <h2 id="RunningOnEmulator">Running on the Emulator</h2>
-
-  <p>Before you can run your application on the Android Emulator, you must <a href=
-  "{@docRoot}tools/devices/managing-avds.html">create an AVD</a>.</p>
-
-  <p>To run your application:</p>
-
-  <ol>
-    <li>
-      <strong>Open the AVD Manager and launch a virtual device</strong>
-
-      <p>From your SDK's <code>platform-tools/</code> directory, execute the {@code android} tool
-with the <code>avd</code> options:</p>
-      <pre>
-android avd
-</pre>
-
-      <p>In the <em>Virtual Devices</em> view, select an AVD and click <strong>Start</strong>.</p>
-    </li>
-
-    <li>
-      <strong>Install your application</strong>
-
-      <p>From your SDK's <code>tools/</code> directory, install the {@code .apk} on the
-      emulator:</p>
-      <pre>
-adb install <em>&lt;path_to_your_bin&gt;</em>.apk
-</pre>
-
-      <p>Your .apk file (signed with either a release or debug key) is in your project {@code bin/}
-      directory after you build your application.</p>
-
-      <p>If there is more than one emulator running, you must specify the emulator upon which to
-      install the application, by its serial number, with the <code>-s</code> option. For
-      example:</p>
-      <pre>
-adb -s emulator-5554 install <em>path/to/your/app</em>.apk
-</pre>
-
-      <p>To see a list of available device serial numbers, execute {@code adb devices}.</p>
-    </li>
-  </ol>
-
-  <p>If you don't see your application on the emulator, try closing the emulator and launching the
-  virtual device again from the AVD Manager. Sometimes when you install an application for the
-  first time, it won't show up in the application launcher or be accessible by other applications.
-  This is because the package manager usually examines manifests completely only on emulator
-  startup.</p>
-
-  <p>Be certain to create multiple AVDs upon which to test your application. You should have one
-  AVD for each platform and screen type with which your application is compatible. For instance, if
-  your application compiles against the Android 4.0 (API Level 14) platform, you should create an
-  AVD for each platform equal to and greater than 4.0 and an AVD for each <a href=
-  "{@docRoot}guide/practices/screens_support.html">screen type</a> you support, then test your
-  application on each one.</p>
-
-  <p class="note"><strong>Tip:</strong> If you have <em>only one</em> emulator running, you can
-  build your application and install it on the emulator in one simple step. Navigate to the root of
-  your project directory and use Ant to compile the project with <em>install mode</em>: <code>ant
-  install</code>. This will build your application, sign it with the debug key, and install it on
-  the currently running emulator.</p>
-
-  <h2 id="RunningOnDevice">Running on a Device</h2>
-
-  <p>Before you can run your application on a device, you must perform some basic setup for your
-  device:</p>
-
-  <ul>
-    <li>Enable <strong>USB debugging</strong> on your device.
-      <ul>
-        <li>On most devices running Android 3.2 or older, you can find the option under
-          <strong>Settings > Applications > Development</strong>.</li>
-        <li>On Android 4.0 and newer, it's in <strong>Settings > Developer options</strong>.
-          <p class="note"><strong>Note:</strong> On Android 4.2 and newer, <strong>Developer
-          options</strong> is hidden by default. To make it available, go
-          to <strong>Settings > About phone</strong> and tap <strong>Build number</strong>
-          seven times. Return to the previous screen to find <strong>Developer options</strong>.</p>
-        </li>
-      </ul>
-    </li>
-
-    <li>Ensure that your development computer can detect your device when connected via USB</li>
-  </ul>
-
-  <p>Read <a href="{@docRoot}tools/device.html#setting-up">Setting up a Device for
-  Development</a> for more information.</p>
-
-  <p>Once your device is set up and connected via USB, navigate to your SDK's <code>platform-tools/</code>
-  directory and install the <code>.apk</code> on the device:</p>
-  <pre>
-adb -d install <em>path/to/your/app</em>.apk
-</pre>
-
-  <p>The {@code -d} flag specifies that you want to use the attached device (in case you also have
-  an emulator running).</p>
-
-  <p>For more information on the tools used above, please see the following documents:</p>
-
-  <ul>
-    <li><a href="{@docRoot}tools/help/android.html">android Tool</a></li>
-
-    <li><a href="{@docRoot}tools/devices/emulator.html">Android Emulator</a></li>
-
-    <li><a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a> (ADB)</li>
-  </ul>
-
-  <h2 id="Signing">Application Signing</h2>
-
-  <p>As you begin developing Android applications, understand that all Android applications must be
-  digitally signed before the system will install them on an emulator or device. There are two ways
-  to do this: with a <em>debug key</em> (for immediate testing on an emulator or development
-  device) or with a <em>private key</em> (for application distribution).</p>
-
-  <p>The Android build tools help you get started by automatically signing your .apk files with a
-  debug key at build time. This means that you can compile your application and install it on the
-  emulator without having to generate your own private key. However, please note that if you intend
-  to publish your application, you <strong>must</strong> sign the application with your own private
-  key, rather than the debug key generated by the SDK tools.</p>
-
-  <p>The ADT plugin helps you get started quickly by signing your .apk files with a debug key,
-  prior to installing them on an emulator or development device. This means that you can quickly
-  run your application from Eclipse without having to generate your own private key. No specific
-  action on your part is needed, provided ADT has access to Keytool. However, please note that if
-  you intend to publish your application, you <strong>must</strong> sign the application with your
-  own private key, rather than the debug key generated by the SDK tools.</p>
-
-  <p>Please read <a href="{@docRoot}tools/publishing/app-signing.html">Signing Your
-  Applications</a>, which provides a thorough guide to application signing on Android and what it
-  means to you as an Android application developer. The document also includes a guide to exporting
-  and signing your application with the ADT's Export Wizard.</p>
-
-  <h2 id="AntReference">Ant Command Reference</h2>
-  <dt><code>ant clean</code></dt>
-  <dd>Cleans the project. If you include the <code>all</code> target before <code>clean</code>
-(<code>ant all clean</code>), other projects are also cleaned. For instance if you clean a
-test project, the tested project is also cleaned.</dd>
-
-  <dt><code>ant debug</code></dt>
-  <dd>Builds a debug package. Works on application, library, and test projects and compiles
-  dependencies as  needed.</dd>
-
-  <dt id="emma"><code>ant emma debug</code></dt>
-  <dd>Builds a test project while building the tested project with instrumentation turned on.
-  This is used to run tests with code coverage enabled.</dd>
-
-  <dt><code>ant release</code></dt>
-  <dd>Builds a release package.</dd>
-
-  <dt><code>ant instrument</code>
-  </dt>
-  <dd>Builds an instrumented debug package. This is generally called automatically when building a
-  test project with code coverage enabled (with the <code>emma</code>
-  target)</dd>
-
-  <dt><code>ant &lt;build_target&gt; install</code></dt>
-  <dd>Builds and installs a package. Using <code>install</code> by itself fails.</dd>
-
-  <dt><code>ant installd</code></dt>
-  <dd>Installs an already compiled debug package. This fails if the <code>.apk</code> is not
-  already built.</dd>
-
-  <dt><code>ant installr</code></dt>
-  <dd>Installs an already compiled release package. This fails if the <code>.apk</code> is not
-  already built.</dd>
-
-  <dt><code>ant installt</code></dt>
-  <dd>Installs an already compiled test package. Also installs the <code>.apk</code> of the
-  tested application. This fails if the <code>.apk</code> is not already built.</dd>
-
-  <dt><code>ant installi</code></dt>
-  <dd>Installs an already compiled instrumented package. This is generally not used manually as
-  it's called when installing a test package. This fails if the <code>.apk</code> is not already
-  built.</dd>
-
-   <dt><code>ant test</code></dt>
-   <dd>Runs the tests (for test projects). The tested and test <code>.apk</code> files must be
-   previously installed.</dd>
-
-  <dt><code>ant debug installt test</code></dt>
-  <dd>Builds a test project and the tested project, installs both <code>.apk</code> files, and
-  runs the tests.</dd>
-
-  <dt><code>ant emma debug install test</code></dt>
-  <dd>Builds a test project and the tested project, installs both <code>.apk</code> files, and
-  runs the tests with code coverage enabled.</dd>
-
diff --git a/docs/html/tools/building/building-eclipse.jd b/docs/html/tools/building/building-eclipse.jd
deleted file mode 100644
index 89c3e16..0000000
--- a/docs/html/tools/building/building-eclipse.jd
+++ /dev/null
@@ -1,176 +0,0 @@
-page.title=Building and Running from Eclipse with ADT
-parent.title=Building and Running
-parent.link=index.html
-@jd:body
-
-<div id="qv-wrapper">
-    <div id="qv">
-      <h2>In this document</h2>
-
-      <ol>
-        <li><a href="#RunningOnEmulatorEclipse">Running on an Emulator</a></li>
-
-        <li><a href="#RunningOnDeviceEclipse">Running on a Device</a></li>
-
-        <li><a href="#RunConfig">Creating a Run Configuration</a></li>
-      </ol>
-    </div>
-  </div>
-
-  <p>Eclipse and ADT provide an environment where most of the details of the build process are
-  hidden from you. By default, the build process constantly runs in the background as you make
-  changes to your project.</p>
-
-  <p>When Eclipse automatically builds your application, it enables debugging and signs the
-  <code>.apk</code> with a debug key, by default. When you run the application,
-  Eclipse invokes ADB and installs your application to a device or emulator, so you do not have to
-  manually perform these tasks. Since most of the build process is taken care of by Eclipse, the
-  following topics show you how to run an application, which will automatically build your
-  application as well.</p>
-
-  <p>To distribute your application, however, you must build your application in release mode and
-  sign the <code>.apk</code> file with your own private key.</p>
-
-   <p>This document shows you how to run your application on an emulator or a real device
-   from Eclipse&mdash;all of which is done using the debug version of your application.
-   For more information about how to sign your application with a private key for release, see <a href=
-  "{@docRoot}tools/publishing/app-signing.html#ExportWizard">Signing Your Applications</a></p>
-
-  <h2 id="RunningOnEmulatorEclipse">Running on the emulator</h2>
-
-  <p>Before you can run your application on the Android Emulator, you must <a href=
-  "{@docRoot}tools/devices/managing-avds.html">create an AVD</a>.</p>
-
-  <p>To run (or debug) your application, select <strong>Run</strong> &gt; <strong>Run</strong> (or
-  <strong>Run</strong> &gt; <strong>Debug</strong>) from the Eclipse menu bar. The ADT plugin will
-  automatically create a default run configuration for the project. Eclipse will then perform the
-  following:</p>
-
-  <ol>
-    <li>Compile the project (if there have been changes since the last build).</li>
-
-    <li>Create a default run configuration (if one does not already exist for the project).</li>
-
-    <li>Install and start the application on an emulator (or device), based on the Deployment
-    Target defined by the run configuration.
-
-      <p>By default, Android run configurations use an "automatic target" mode for selecting a
-      device target. For information on how automatic target mode selects a deployment target, see
-      <a href="#AutoAndManualTargetModes">Automatic and manual target modes</a> below.</p>
-    </li>
-  </ol>
-
-  <p>If you run the application with the Debug option, the application will start in the "Waiting For Debugger" mode. Once the debugger
-  is attached, Eclipse opens the Debug perspective and starts the application's main activity. Otherwise, if you run the
-  application with the normal Run option, Eclipse installs the application on the device and launches the main activity.</p>
-
-  <p>To set or change the run configuration used for your project, use the run configuration
-  manager. See the section below about <a href="#RunConfig">Creating a Run Configuration</a> for more information.</p>
-
-  <p>Be certain to create multiple AVDs upon which to test your application. You should have one
-  AVD for each platform and screen type with which your application is compatible. For instance, if
-  your application compiles against the Android 4.0 (API Level 14) platform, you should create an
-  AVD for each platform equal to and greater than 4.0 and an AVD for each <a href=
-  "{@docRoot}guide/practices/screens_support.html">screen type</a> you support, then test your
-  application on each one.</p>
-
-  <h2 id="RunningOnDeviceEclipse">Running on a device</h2>
-
-  <p>Before you can run your application on a device, you must perform some basic setup for your
-  device:</p>
-
-  <ul>
-    <li>Ensure that your application is debuggable by setting the
-    <code>android:debuggable</code> attribute of the <code>&lt;application&gt;</code>
-    element to <code>true</code>. As of ADT 8.0, this is done by default when you build in debug mode.</li>
-
-    <li>Enable <strong>USB debugging</strong> on your device.
-      <ul>
-        <li>On most devices running Android 3.2 or older, you can find the option under
-          <strong>Settings > Applications > Development</strong>.</li>
-        <li>On Android 4.0 and newer, it's in <strong>Settings > Developer options</strong>.
-          <p class="note"><strong>Note:</strong> On Android 4.2 and newer, <strong>Developer
-          options</strong> is hidden by default. To make it available, go
-          to <strong>Settings > About phone</strong> and tap <strong>Build number</strong>
-          seven times. Return to the previous screen to find <strong>Developer options</strong>.</p>
-        </li>
-      </ul>
-    </li>
-
-    <li>Ensure that your development computer can detect your device when connected via USB</li>
-  </ul>
-
-  <p>Read <a href="{@docRoot}tools/device.html">Using Hardware Devices</a>
-  for more information.</p>
-
-  <p>Once set up and your device is connected via USB, install your application on the device by
-  selecting <strong>Run</strong> &gt; <strong>Run</strong> (or <strong>Run</strong> &gt;
-  <strong>Debug</strong>) from the Eclipse menu bar.</p>
-
-  <h2 id="RunConfig">Creating a Run Configuration</h2>
-
-  <p>The run configuration specifies the project to run, the Activity to start, the emulator or
-  connected device to use, and so on. When you first run a project as an <em>Android
-  Application</em>, ADT will automatically create a run configuration. The default run
-  configuration will launch the default project Activity and use automatic target mode for device
-  selection (with no preferred AVD). If the default settings don't suit your project, you can
-  customize the run configuration or even create a new one.</p>
-
-  <p>To create or modify a run configuration, refer to the Eclipse documentation on how to create Run configurations.
-  The following steps highlight the important things you need to do for an Android project:</p>
-
-  <ol>
-    <li>Open the run configuration manager from the Run Menu.</li>
-
-    <li>Expand the <strong>Android Application</strong> item and create a new configuration or open
-    an existing one.
-    </li>
-
-    <li>With the Run Configuration selected, adjust your desired run configuration settings:
-      <ul>
-      <li>In the Android tab, specify the Project and Activity to launch.
-      </li>
-      <li><p>In the Target tab, consider whether you'd like to use Manual or Automatic mode when
-      selecting an AVD to run your application. See the following section on <a href=
-      "#AutoAndManualTargetModes">Automatic and manual target modes</a>).</p>
-
-      <p>You can specify any emulator options to the Additional Emulator Command Line Options
-      field. For example, you could add <code>-scale 96dpi</code> to scale the AVD's screen to an
-      accurate size, based on the dpi of your computer monitor. For a full list of emulator
-      options, see the <a href="{@docRoot}tools/help/emulator.html">Android
-      Emulator</a> document.</p>
-      </li>
-      </ul>
-    </li>
-  </ol>
-
-  <h4 id="AutoAndManualTargetModes">Automatic and manual target modes</h4>
-
-  <p>By default, a run configuration uses the <strong>automatic</strong> target mode in order to
-  select an AVD. In this mode, ADT will select an AVD for the application in the following
-  manner:</p>
-
-  <ol>
-    <li>If there's a device or emulator already running and its AVD configuration meets the
-    requirements of the application's build target, the application is installed and run upon
-    it.</li>
-
-    <li>If there's more than one device or emulator running, each of which meets the requirements
-    of the build target, a "device chooser" is shown to let you select which device to use.</li>
-
-    <li>If there are no devices or emulators running that meet the requirements of the build
-    target, ADT looks at the available AVDs. If there is an AVD that matches the build target of the
-    project, ADT chooses that AVD. If the AVD versions are newer than the build target of the project,
-    ADT chooses the oldest possible version of an AVD that meets the project's build target
-    requirement.</li>
-
-    <li>If there are no suitable AVDs, the application is not installed a console error warning tells
-    you that there is no existing AVD that meets the build target requirements.</li>
-  </ol>
-
-  <p>However, if a "preferred AVD" is selected in the run configuration, then the application will
-  <em>always</em> be deployed to that AVD. If it's not already running, then a new emulator will be
-  launched.</p>
-
-  <p>If your run configuration uses <strong>manual</strong> mode, then the "device chooser" is
-  presented every time that your application is run, so that you can select which AVD to use.</p>
diff --git a/docs/html/tools/data-binding/guide.jd b/docs/html/tools/data-binding/guide.jd
index 9629bb02..6acc38c 100644
--- a/docs/html/tools/data-binding/guide.jd
+++ b/docs/html/tools/data-binding/guide.jd
@@ -131,6 +131,11 @@
           </li>
         </ol>
       </li>
+
+      <li>
+        <a href="#studio_support">Android Studio Support for Data Binding</a>
+      </li>
+
     </ol>
   </div><!-- qv -->
 </div><!-- qv-wrapper -->
@@ -211,8 +216,9 @@
  must configure data binding in its <code>build.gradle</code> file as well.</p>
 
 <p>Also, make sure you are using a compatible version of Android Studio.
-<strong>Android Studio 1.3</strong> adds the code-completion and layout-preview
-support for data binding.</p>
+<strong>Android Studio 1.3</strong> and later provides support for data binding as described in
+<a href="#studio_support">Android Studio Support for Data Binding</a>.
+</p>
 
 <h2 id="data_binding_layout_files">
   Data Binding Layout Files
@@ -1643,3 +1649,28 @@
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/&gt;
 </pre>
+
+<h3 id="studio_support">Android Studio Support for Data Binding</h3>
+
+<p>
+Android Studio supports syntax highlighting of data binding expressions, and flags any expression
+language syntax errors in the editor.
+</p>
+<p>
+The Preview pane displays default values for data binding expressions if provided. In the following
+example excerpt of an element from a layout XML file, the Preview pane displays the
+{@code PLACEHOLDER} default text value in the <code>TextView</code>.
+</p>
+
+<pre>
+&lt;TextView android:layout_width="wrap_content"
+   android:layout_height="wrap_content"
+   android:text="&commat;{user.firstName, default=PLACEHOLDER}"/&gt;
+</pre>
+
+<p>
+If you need to display a default value during the design phase of your project, you
+can also use tools attributes instead of default expression values, as described in
+<a class="external-link" href="http://tools.android.com/tips/layout-designtime-attributes">
+Designtime Layout Attributes</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/tools/debugging/debugging-memory.jd b/docs/html/tools/debugging/debugging-memory.jd
old mode 100644
new mode 100755
index 261df93..71c009d
--- a/docs/html/tools/debugging/debugging-memory.jd
+++ b/docs/html/tools/debugging/debugging-memory.jd
@@ -42,7 +42,7 @@
 <p>The simplest place to begin investigating your app’s memory usage is the runtime log messages.
 Sometimes when a GC occurs, a message is printed to
 <a href="{@docRoot}tools/help/logcat.html">logcat</a>. The logcat output is also available in the
-Device Monitor or directly in IDEs such as Eclipse and Android Studio.</p>
+Device Monitor or directly in an IDE such as Android Studio.</p>
 
 <h3 id="DalvikLogMessages">Dalvik Log Messages</h3>
 
@@ -240,7 +240,7 @@
 
 <h3>Memory Monitor in Android Studio</h3>
 <p>Use Android Studio to view your app's memory use: </p>
-<ul>
+<ol>
   <li>Start your app on a connected device or emulator.</li>
   <li>Open the Android run-time window, and view the free and allocated memory in the Memory
     Monitor. </li>
@@ -260,7 +260,7 @@
    </li>
   <li>Identify which actions in your app are likely causing too much allocation and determine where
    in your app you should try to reduce allocations and release resources.
-</ul>
+</ol>
 
 <h3>Device Monitor </h3>
 <ol>
@@ -628,7 +628,7 @@
 
 
 <p>To retrieve your heap dump from within Android Studio, use the
-<a href="{@docRoot}tools/studio/index.html#me-cpu">Memory Monitor</a> and
+<a href="{@docRoot}tools/studio/index.html#mem-cpu">Memory Monitor</a> and
 <a href="{@docRoot}tools/studio/index.html#heap-dump">HPROF viewer</a>.  
 
 <p>You can also still perform these procedures in the Android monitor:</p>
@@ -655,10 +655,12 @@
 number of allocations in the Zygote process. But because the Zygote allocations are shared across
 all app processes, they don’t matter very much to your own heap analysis.</p>
 
-<p>To analyze your heap dump, you can use a standard tool like jhat or the <a href=
-"http://www.eclipse.org/mat/downloads.php">Eclipse Memory Analyzer Tool</a> (MAT). However, first
+<p>To analyze your heap dump, you can use <a href=
+"{@docRoot}tools/help/am-memory.html">Memory Monitor</a> in Android Studio. 
+You can also use a standard tool like jhat. However, first
 you'll need to convert the HPROF file from Android's format to the J2SE HPROF format. You can do
-this using the <code>hprof-conv</code> tool provided in the <code>&lt;sdk&gt;/platform-tools/</code>
+this using the <code>hprof-conv</code> tool provided in the 
+<code>&lt;sdk&gt;/platform-tools/</code>
 directory. Simply run the <code>hprof-conv</code> command with two arguments: the original HPROF
 file and the location to write the converted HPROF file. For example:</p>
 
@@ -666,11 +668,9 @@
 hprof-conv heap-original.hprof heap-converted.hprof
 </pre>
 
-<p class="note"><strong>Note:</strong> If you're using the version of DDMS that's integrated into
-Eclipse, you do not need to perform the HPROF conversation—it performs the conversion by
-default.</p>
 
-<p>You can now load the converted file in MAT or another heap analysis tool that understands
+
+<p>You can now load the converted file into a heap analysis tool that understands
 the J2SE HPROF format.</p>
 
 <p>When analyzing your heap, you should look for memory leaks caused by:</p>
@@ -682,77 +682,6 @@
 </ul>
 
 
-<h3 id="EclipseMat">Using the Eclipse Memory Analyzer Tool</h3>
-
-<p>The <a href=
-"http://www.eclipse.org/mat/downloads.php">Eclipse Memory Analyzer Tool</a> (MAT) is just one
-tool that you can use to analyze your heap dump. It's also quite powerful so most of its
-capabilities are beyond the scope of this document, but here are a few tips to get you started.
-
-<p>Once you open your converted HPROF file in MAT, you'll see a pie chart in the Overview,
-showing what your largest objects are. Below this chart, are links to couple of useful features:</p>
-
-<ul>
-  <li>The <strong>Histogram view</strong> shows a list of all classes and how many instances
-  there are of each.
-  <p>You might want to use this view to find extra instances of classes for which you know there
-  should be only a certain number. For example, a common source of leaks is additional instance of
-  your {@link android.app.Activity} class, for which you should usually have only one instance
-  at a time. To find a specific class instance, type the class name into the <em>&lt;Regex></em>
-  field at the top of the list.
-  <p>When you find a class with too many instances, right-click it and select
-  <strong>List objects</strong> &gt; <strong>with incoming references</strong>. In the list that
-  appears, you can determine where an instance is retained by right-clicking it and selecting
-  <strong>Path To GC Roots</strong> &gt; <strong>exclude weak references</strong>.</p>
-  </li>
-
-  <li>The <strong>Dominator tree</strong> shows a list of objects organized by the amount
-  of retained heap.
-  <p>What you should look for is anything that's retaining a portion of heap that's roughly
-  equivalent to the memory size you observed leaking from the <a href="#LogMessages">GC logs</a>,
-  <a href="#ViewHeap">heap updates</a>, or <a href="#TrackAllocations">allocation
-  tracker</a>.
-  <p>When you see something suspicious, right-click on the item and select
-  <strong>Path To GC Roots</strong> &gt; <strong>exclude weak references</strong>. This opens a
-  new tab that traces the references to that object which is causing the alleged leak.</p>
-
-  <p class="note"><strong>Note:</strong> Most apps will show an instance of
-  {@link android.content.res.Resources} near the top with a good chunk of heap, but this is
-  usually expected when your app uses lots of resources from your {@code res/} directory.</p>
-  </li>
-</ul>
-
-
-<img src="{@docRoot}images/tools/mat-histogram@2x.png" width="760" alt="" />
-<p class="img-caption"><strong>Figure 4.</strong> The Eclipse Memory Analyzer Tool (MAT),
-showing the Histogram view and a search for "MainActivity".</p>
-
-<p>For more information about MAT, watch the Google I/O 2011 presentation,
-<a href="http://www.youtube.com/watch?v=_CruQY55HOk">Memory management for Android apps</a>,
-which includes a walkthrough using MAT beginning at about <a href=
-"http://www.youtube.com/watch?v=_CruQY55HOk&amp;feature=player_detailpage#t=1270">21:10</a>.
-Also refer to the <a href="http://wiki.eclipse.org/index.php/MemoryAnalyzer">Eclipse Memory
-Analyzer documentation</a>.</p>
-
-<h4 id="MatCompare">Comparing heap dumps</h4>
-
-<p>You may find it useful to compare your app's heap state at two different points in time in order
-to inspect the changes in memory allocation. To compare two heap dumps using MAT:</p>
-
-<ol>
-  <li>Create two HPROF files as described above, in <a href="#HeapDump">Capturing a Heap Dump</a>.
-  <li>Open the first HPROF file in MAT (<strong>File</strong> > <strong>Open Heap Dump</strong>).
-  <li>In the Navigation History view (if not visible, select <strong>Window</strong> >
-  <strong>Navigation History</strong>), right-click on <strong>Histogram</strong> and select
-  <strong>Add to Compare Basket</strong>.
-  <li>Open the second HPROF file and repeat steps 2 and 3.
-  <li>Switch to the <em>Compare Basket</em> view and click <strong>Compare the Results</strong>
-  (the red "!" icon in the top-right corner of the view).
-</ol>
-
-
-
-
 
 
 <h2 id="TriggerLeaks">Triggering Memory Leaks</h2>
diff --git a/docs/html/tools/debugging/debugging-projects.jd b/docs/html/tools/debugging/debugging-projects.jd
deleted file mode 100644
index 2283f8b..0000000
--- a/docs/html/tools/debugging/debugging-projects.jd
+++ /dev/null
@@ -1,67 +0,0 @@
-page.title=Debugging from Eclipse with ADT
-parent.title=Debugging
-parent.link=index.html
-@jd:body
-
- <div id="qv-wrapper">
-    <div id="qv">
-      <h2>In this document</h2>
-
-      <ol>
-        <li><a href="#tools">The Debug Perspective</a></li>
-
-        <li><a href="#toptips">The DDMS Perspective</a></li>
-      </ol>
-    </div>
-  </div>
-  
-  <p>If you are developing in Eclipse with the ADT plugin, you can use the built-in Java Debugger,
-  along with DDMS, to debug your applications. To access the debugger and
-  DDMS, Eclipse displays the debugger and DDMS features as perspectives, which are customized
-  Eclipse views that display certain tabs and windows depending on the perspective that you are in.
-  Eclipse also takes care of starting the ADB host daemon for you, so you do not have to run this
-  manually.</p>
-
-  <h2>The Debug Perspective in Eclipse</h2>
-
-  <p>The Debug Perspective in Eclipse gives you access to the following tabs:</p>
-
-  <ul>
-    <li>Debug - Displays previously and currently debugged Android applications and its currently
-    running threads</li>
-
-    <li>Variables - When breakpoints are set, displays variable values during code execution</li>
-
-    <li>Breakpoints - Displays a list of the set breakpoints in your application code</li>
-
-    <li>LogCat - Allows you to view system log messages in real time. The LogCat tab is also
-    available in the DDMS perspective.</li>
-  </ul>
-  <p>You can access the Debug Perspective by clicking <strong>Window &gt; Open Perspective &gt;
-  Debug</strong>. Refer to the appropriate documentation for the Eclipse debugger for more
-  information.</p>
-
-  <h2>The DDMS Perspective</h2>
-  <p>The DDMS Perspective in Eclipse lets you access all of the features
-  of DDMS from within the Eclipse IDE. The following sections of DDMS are available to you:</p>
-
-  <ul>
-    <li>Devices - Shows the list of devices and AVDs that are connected to ADB.</li>
-
-    <li>Emulator Control - Lets you carry out device functions.</li>
-
-    <li>LogCat - Lets you view system log messages in real time.</li>
-
-    <li>Threads - Shows currently running threads within a VM.</li>
-
-    <li>Heap - Shows heap usage for a VM.</li>
-
-    <li>Allocation Tracker - Shows the memory allocation of objects.</li>
-
-    <li>File Explorer - Lets you explore the device's file system.</li>
-  </ul>
-  <p>To access the DDMS perspective, go to <strong>Window &gt; Open Perspective &gt;
-  DDMS</strong>. If DDMS does not appear, go to <strong>Window &gt; Open Perspective &gt; Other
-  ...</strong> and select <strong>DDMS</strong> from the Open Perspective window that appears. For
-  more information on using DDMS, see <a href="ddms.html">Using the Dalvik Debug Monitor Server</a>.
-  </p>
\ No newline at end of file
diff --git a/docs/html/tools/extras/oem-usb.jd b/docs/html/tools/extras/oem-usb.jd
index 6d449ee..cf15048 100644
--- a/docs/html/tools/extras/oem-usb.jd
+++ b/docs/html/tools/extras/oem-usb.jd
@@ -128,7 +128,7 @@
   <li>Select <strong>Browse my computer for driver software</strong>.</li>
   <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB
 Driver is located in {@code &lt;sdk&gt;\extras\google\usb_driver\}.) As long as you specified the
-exact location of the 
+exact location of the
     installation package, you may leave <strong>Include subfolders</strong> checked or
   unchecked&mdash;it doesn't matter.</li>
   <li>Click <strong>Next</strong>. Vista may prompt you to confirm the privilege elevation
@@ -161,124 +161,245 @@
   <li>When Vista asks if you'd like to install the Google ADB Interface device,
   click <strong>Install</strong> to upgrade the driver.</li>
 </ol>
-  
+
 
 <h2 id="Drivers">OEM Drivers</h2>
 
 
-<table><tr>
+<table>
+<tr>
     <th>OEM</th>
     <th>Driver URL</th></tr>
-<tr><td>Acer</td>	<td><a
-href="http://www.acer.com/worldwide/support/mobile.html">http://www.acer.com/worldwide/support/mobile.html</a>
-    </td></tr>
-  <tr>
-    <td style="font-variant:small-caps">alcatel one touch</td>
-    <td><a
-href="http://www.alcatelonetouch.com/global-en/support/faq/usbdriver.html">http://www.alcatelonetouch.com/global-en/support/faq/usbdriver.html</a></td>
-  </tr>
-  <tr>
-    <td>Asus</td>
-    <td><a href="http://support.asus.com/download/">http://support.asus.com/download/</a></td>
-  </tr>
-  <tr><td>
-       Dell
-    </td>	<td>
-      <a
-href="http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml">http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml</a>  </td></tr>
+      <tr>
+        <td>
+          Acer
+        </td>
+        <td>
+          <a href=
+          "http://www.acer.com/worldwide/support/mobile.html">http://www.acer.com/worldwide/support/mobile.html</a>
+        </td>
+      </tr>
 
-<tr><td>Foxconn</td>	<td><a
-href="http://drivers.cmcs.com.tw/">http://drivers.cmcs.com.tw/</a></td>
-</tr>
-  <tr>
-    <td>
-      Fujitsu
-    </td>
-    <td><a
-href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a>
-    </td>
-  </tr>
-  <tr><td>
-       Garmin-Asus
-    </td>	<td><a
-href="https://www.garminasus.com/en_US/support/pcsync/">https://www.garminasus.com/en_US/support/pcsync/</a></td>
-</tr>
+      <tr>
+        <td style="font-variant:small-caps">
+          alcatel one touch
+        </td>
+        <td>
+          <a href=
+          "http://www.alcatelonetouch.com/global-en/support/">http://www.alcatelonetouch.com/global-en/support/</a>
+        </td>
+      </tr>
 
-<tr><td>Hisense</td>
-  <td><a
-href="http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&resourceId=16&type=5">http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&amp;resourceId=16&amp;type=5 </a></td>
-</tr>
+      <tr>
+        <td>
+          Asus
+        </td>
+        <td>
+          <a href="http://support.asus.com/download/">http://support.asus.com/download/</a>
+        </td>
+      </tr>
 
-<tr><td>HTC</td>	<td><a href="http://www.htc.com">http://www.htc.com </a> <br>Click on the
-support tab to select your products/device.  Different regions will have different links.</td>
-</tr>
+      <tr>
+        <td>
+          Blackberry
+        </td>
+        <td>
+          <a href=
+          "https://swdownloads.blackberry.com/Downloads/entry.do?code=4EE0932F46276313B51570F46266A608">
+          https://swdownloads.blackberry.com/Downloads/entry.do?code=4EE0932F46276313B51570F46266A608</a>
+        </td>
+      </tr>
 
-<tr><td>Huawei</td>	<td><a
-href="http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index">http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index</a></td>
-</tr>
+      <tr>
+        <td>
+          Dell
+        </td>
+        <td>
+          <a href=
+          "http://support.dell.com/support/downloads/index.aspx?c=us&amp;cs=19&amp;l=en&amp;s=dhs&amp;~ck=anavml">
+          http://support.dell.com/support/downloads/index.aspx?c=us&amp;cs=19&amp;l=en&amp;s=dhs&amp;~ck=anavml</a>
+        </td>
+      </tr>
 
-<tr><td>Intel</td>	<td><a
-href="http://www.intel.com/software/android">http://www.intel.com/software/android</a></td>
-</tr>
+      <tr>
+        <td>
+          Fujitsu
+        </td>
+        <td>
+          <a href=
+          "http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a>
+        </td>
+      </tr>
 
-<tr><td>KT Tech</td>	<td><a
-href="http://www.kttech.co.kr/cscenter/download05.asp">http://www.kttech.co.kr/cscenter/download05.asp</a> for EV-S100 (Take)</td>
-</tr>
-  <tr>
-    <td>
-      Kyocera
-    </td>
-    <td><a href="http://www.kyocera-wireless.com/support/phone_drivers.htm">http://www.kyocera-wireless.com/support/phone_drivers.htm</a>
-    </td>
-  </tr>
-  <tr>
-    <td>Lenovo</td>
-    <td><a href="http://developer.lenovomm.com/developer/download.jsp"
-        >http://developer.lenovomm.com/developer/download.jsp</a>
-    </td>
-  </tr>
-  <tr><td>LGE</td>	<td><a
-href="http://www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp">http://www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp</a></td>
-</tr>
-<tr><td>Motorola</td> <td><a
-href="http://developer.motorola.com/docstools/USB_Drivers/">http://developer.motorola.com/docstools/USB_Drivers/</a></td>
-</tr>
-<tr><td>MTK</td> <td><a
-href="http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip">http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip</a></td>
-</tr>
-<tr><td>Oppo</td> <td><a
-href="http://www.oppo.com/index.php?q=software/view&sw_id=631"
->http://www.oppo.com/index.php?q=software/view&sw_id=631</a></td>
-</tr>
-<tr><td>Pantech</td>	<td><a
-href="http://www.isky.co.kr/cs/software/software.sky?fromUrl=index">http://www.isky.co.kr/cs/software/software.sky?fromUrl=index</a></td>
-</tr><tr><td>Pegatron</td>	<td><a
-href="http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip">http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip</a> (ZIP download)</td>
-</tr><tr><td>Samsung</td>	<td><a
-href="http://www.samsung.com/us/support/downloads">http://www.samsung.com/us/support/downloads</a></td>
-</tr><tr><td>Sharp</td>	<td><a
-href="http://k-tai.sharp.co.jp/support/">http://k-tai.sharp.co.jp/support/</a></td>
-</tr><tr><td>SK Telesys</td>	<td><a
-href="http://www.sk-w.com/service/wDownload/wDownload.jsp">http://www.sk-w.com/service/wDownload/wDownload.jsp</a></td></tr><tr>
-<td>Sony Mobile Communications</td>	<td><a
-href="http://developer.sonymobile.com/downloads/drivers/">http://developer.sonymobile.com/downloads/drivers/</a></td></tr>
+      <tr>
+        <td>
+          Hisense
+        </td>
+        <td>
+          <a href=
+          "http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&amp;resourceId=16&amp;type=5">
+          http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&amp;resourceId=16&amp;type=5</a>
+        </td>
+      </tr>
 
-<tr><td>Teleepoch</td>	<td><a
-href="http://www.teleepoch.com/android.html">http://www.teleepoch.com/android.html</a></td>
-</tr>
+      <tr>
+        <td>
+          HTC
+        </td>
+        <td>
+          <a href="http://www.htc.com">http://www.htc.com</a><br>
+          Click on the support tab to select your products/device. Different regions will have
+          different links.
+        </td>
+      </tr>
 
-<tr><td>Toshiba</td>  <td><a
-href="http://support.toshiba.com/sscontent?docId=4001814">http://support.toshiba.com/sscontent?docId=4001814</a></td>
-</tr>
+      <tr>
+        <td>
+          Huawei
+        </td>
+        <td>
+          <a href=
+          "http://consumer.huawei.com/en/support/index.htm">http://consumer.huawei.com/en/support/index.htm</a>
+        </td>
+      </tr>
 
-<tr><td>Yulong Coolpad</td>	<td><a
-href="http://www.yulong.com/product/product/product/downloadList.html#downListUL">http://www.yulong.com/product/product/product/downloadList.html#downListUL</a></td>
-</tr>
+      <tr>
+        <td>
+          Intel
+        </td>
+        <td>
+          <a href="http://www.intel.com/software/android">http://www.intel.com/software/android</a>
+        </td>
+      </tr>
 
-<tr><td>Xiaomi</td>  <td><a
-href="http://www.xiaomi.com/c/driver/index.html">http://www.xiaomi.com/c/driver/index.html</a></td>
-</tr>
-<tr>
-<td>ZTE</td>	<td><a
-href="http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442">http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442</a></td></tr>
-</table>
+      <tr>
+        <td>
+          Kyocera
+        </td>
+        <td>
+          <a href=
+          "http://www.kyocera-wireless.com/support/phone_drivers.htm">http://www.kyocera-wireless.com/support/phone_drivers.htm</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Lenovo
+        </td>
+        <td>
+          <a href=
+          "http://support.lenovo.com/us/en/GlobalProductSelector">http://support.lenovo.com/us/en/GlobalProductSelector</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          LGE
+        </td>
+        <td>
+          <a href=
+          "http://www.lg.com/us/support/software-firmware">http://www.lg.com/us/support/software-firmware</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Motorola
+        </td>
+        <td>
+          <a href=
+          "https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481">https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481/</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          MTK
+        </td>
+        <td>
+          <a href=
+          "http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip">http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip</a>
+          (ZIP download)
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Oppo
+        </td>
+        <td>
+          <a href=
+          "http://www.oppo.com/index.php?q=software/view&amp;sw_id=631">http://www.oppo.com/index.php?q=software/view&amp;sw_id=631</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Pegatron
+        </td>
+        <td>
+          <a href=
+          "http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip">http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip</a>
+          (ZIP download)
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Samsung
+        </td>
+        <td>
+          <a href=
+          "http://www.samsung.com/us/support/downloads">http://www.samsung.com/us/support/downloads</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Sharp
+        </td>
+        <td>
+          <a href="http://k-tai.sharp.co.jp/support/">http://k-tai.sharp.co.jp/support/</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Sony Mobile Communications
+        </td>
+        <td>
+          <a href=
+          "http://developer.sonymobile.com/downloads/drivers/">http://developer.sonymobile.com/downloads/drivers/</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Toshiba
+        </td>
+        <td>
+          <a href=
+          "http://support.toshiba.com/sscontent?docId=4001814">http://support.toshiba.com/sscontent?docId=4001814</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          Xiaomi
+        </td>
+        <td>
+          <a href=
+          "http://www.xiaomi.com/c/driver/index.html">http://www.xiaomi.com/c/driver/index.html</a>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          ZTE
+        </td>
+        <td>
+          <a href=
+          "http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442">http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442</a>
+        </td>
+      </tr>
+</table>
\ No newline at end of file
diff --git a/docs/html/tools/help/adb.jd b/docs/html/tools/help/adb.jd
old mode 100644
new mode 100755
index 2faff4f..06e0099
--- a/docs/html/tools/help/adb.jd
+++ b/docs/html/tools/help/adb.jd
@@ -29,7 +29,7 @@
 
 <ul>
   <li>A client, which runs on your development machine. You can invoke a client from a shell
-by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create
+by issuing an adb command. Other Android tools such as DDMS also create
 adb clients. </li>
   <li>A server, which runs as a background process on your development machine. The server
 manages communication between the client and the adb daemon running on an emulator or device. </li>
@@ -361,7 +361,7 @@
 <p>For more information about how to create an .apk file that you can install on an emulator/device
 instance, see <a href="{@docRoot}tools/building/index.html">Building and Running</a></p>
 
-<p>Note that, if you are using the Eclipse IDE and have the ADT plugin installed, you do not need to use adb (or aapt) directly to install your application on the emulator/device. Instead, the ADT plugin handles the packaging and installation of the application for you. </p>
+<p>Note that, if you are using Android Studio, you do not need to use adb (or aapt) directly to install your application on the emulator/device. Instead, Android Studio handles the packaging and installation of the application for you. </p>
 
 
 
diff --git a/docs/html/tools/help/adt.jd b/docs/html/tools/help/adt.jd
index 0fac62d..7d29d02 100644
--- a/docs/html/tools/help/adt.jd
+++ b/docs/html/tools/help/adt.jd
@@ -2,540 +2,23 @@
 page.tags=adt
 @jd:body
 
-  <div id="qv-wrapper">
-    <div id="qv">
-      <h2>In this document</h2>
-
-      <ol>
-        <li><a href="#tools">SDK Tools Integration</a></li>
-
-        <li><a href="#editors">Code Editors</a>
-          <ol>
-            <li><a href="#resource-linking">Resource linking enhancements</a></li>
-          </ol>
-        </li>
-
-        <li><a href="#graphical-editor">Graphical Layout Editor</a>
-          <ol>
-            <li><a href="#canvas">Canvas and outline view</a></li>
-            <li><a href="#palette">Palette</a></li>
-            <li><a href="#config-chooser">Configuration chooser</a></li>
-          </ol>
-        </li>
-
-        <li><a href="#refactoring">Layout Factoring Support</a></li>
-        <li><a href="#Updating">Updating the ADT Plugin</a></li>
-
-      </ol>
-    </div>
-  </div>
-
 <p class="caution">
-  <strong>Important:</strong> Support for the Android Developer Tools (ADT) in Eclipse is ending,
+  <strong>Important:</strong> Support for the Android Developer Tools (ADT) in Eclipse has ended,
   per our <a href=
   "http://android-developers.blogspot.com/2015/06/an-update-on-eclipse-android-developer.html"
   class="external-link">announcement</a>. You should migrate your app development projects to
   Android Studio as soon as possible. For more information on transitioning to Android Studio, see
-  <a href="{@docRoot}sdk/installing/migrate.html">Migrating to Android Studio</a>.
+  <a href="{@docRoot}sdk/installing/migrate.html">Migrating from Eclipse ADT</a>.
 </p>
 
-  <p>Android Developer Tools (ADT) is a plugin for Eclipse that provides a suite of
-  tools that are integrated with the Eclipse IDE. It offers you access to many features that help
-  you develop Android applications. ADT
-  provides GUI access to many of the command line SDK tools as well as a UI design tool for rapid
-  prototyping, designing, and building of your application's user interface.</p>
+  <p>Formerly the official IDE solution for Android development, Android Developer Tools (ADT)
+  is a plugin for Eclipse that provides GUI-based access to many of the command-line SDK tools,
+  along with a UI design tool for rapid prototyping, designing, and building of your app's
+  user interface.</p>
 
-<p>If you still wish to use the ADT plugin for Eclipse, see
-<a href="{@docRoot}sdk/installing/installing-adt.html">Installing Eclipse Plugin.</a>
-</p>
-
-
-  <h2 id="tools">SDK Tools Integration</h2>
-
-  <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Need help designing icons?</h2>
-  <p>The <a href="http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html">Android
-      Asset Studio</a> is a web-based tool that lets you generate icons from existing images,
-    clipart, or text. It also generates the icons with different DPIs for different screen sizes and
-    types.</p>
-
-    </div>
-  </div>
-
-  <p>Many of the tools that you can start or run from the command line are integrated into ADT.
-  They include:</p>
-
-  <ul>
-    <li><a href="{@docRoot}tools/debugging/debugging-tracing.html">Traceview</a>:
-    Allows you to profile your program's execution
-    (<strong>Window &gt; Open Perspective &gt; Traceview</strong>). </li>
-
-    <li><a href="{@docRoot}tools/help/android.html">android</a>: Provides access to
-    the Android SDK Manager and AVD Manager. Other <code>android</code> features such as creating or
-    updating projects (application and library) are integrated throughout the Eclipse IDE. </li>
-
-    <li><a href="{@docRoot}tools/debugging/debugging-ui.html#HierarchyViewer">Hierarchy
-    Viewer</a>: Allows you to visualize your application's view hierarchy to find inefficiencies
-    (<strong>Window &gt; Open Perspective &gt; Hierarchy Viewer</strong>).</li>
-
-    <li><a href="{@docRoot}tools/debugging/debugging-ui.html#pixelperfect">Pixel
-    Perfect</a>: Allows you to closely examine your UI to help with designing and building.
-    (<strong>Window &gt; Open Perspective &gt; Pixel Perfect</strong>).</li>
-
-    <li><a href="{@docRoot}tools/debugging/ddms.html">DDMS</a>: Provides
-    debugging features including: screen capturing, thread and heap information, and logcat
-    (<strong>Window &gt; Open Perspective &gt; DDMS</strong>).</li>
-
-    <li><a href="{@docRoot}tools/help/adb.html">adb</a>: Provides access to
-      a device from your development system. Some features of
-    <code>adb</code> are integrated into ADT such as project installation (Eclipse run menu),
-    file transfer, device enumeration, and logcat (DDMS). You must access the more advanced
-    features of <code>adb</code>, such as shell commands, from the command line.</li>
-
-    <li><a href="{@docRoot}tools/help/proguard.html">ProGuard</a>: Allows code obfuscation,
-    shrinking, and optimization. ADT integrates ProGuard as part of the build, if you <a href=
-    "{@docRoot}tools/help/proguard.html#enabling">enable it</a>.</li>
-  </ul>
-
-<h2 id="editors">Code Editors</h2>
-
-  <p>In addition to Eclipse's standard editor features, ADT provides custom XML editors to help
-  you create and edit Android manifests, resources, menus, and layouts in a form-based or graphical
-  mode. Double-clicking on an XML file in Eclipse's package explorer opens the
-  appropriate XML editor.
-
-    <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Google I/O Session Video</h2>
-      <p>View the segment on the <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=30m50s">XML editors</a> for more
-      information.</p>
-    </div>
-  </div>
-
-  <p class="note"><strong>Note:</strong> You can edit Android-specific XML files (such as a layout
-or manifest) in both a graphical mode and also an XML markup mode. You can switch between
-these modes with the pair of tabs at the bottom of each custom XML editor.</p>
-
-  <p>In addition, some special file types that don't have custom editors, such as drawables, animations,
-  and color files offer editing enhancements such as XML tag completion.</p>
-
-<p>ADT provides the following custom, form-based XML editors:</p>
-
-  <dl>
-
-    <dt><strong>Graphical Layout Editor</strong></dt>
-
-    <dd>Edit and design your XML layout files with a drag and drop interface. The layout editor
-    renders your interface as well, offering you a preview as you design your layouts. This editor
-    is invoked when you open an XML file with a view declared (usually declared in
-    <code>res/layout</code>. For more information, see <a href="#graphical-editor">Graphical Layout
-    Editor</a>.</dd>
-
-    <dt><strong>Android Manifest Editor</strong></dt>
-
-    <dd>Edit Android manifests with a simple graphical interface. This editor is invoked
-    when you open an <code>AndroidManifest.xml</code> file.</dd>
-
-    <dt><strong>Menu Editor</strong></dt>
-
-    <dd>Edit menu groups and items with a simple graphical interface. This editor is
-    invoked when you open an XML file with a <code>&lt;menu&gt;</code> declared (usually located in
-    the <code>res/menu</code> folder).</dd>
-
-    <dt><strong>Resources Editor</strong></dt>
-
-    <dd>Edit resources with a simple graphical interface. This editor is invoked when
-    you open an XML file with a <code>&lt;resources&gt;</code> tag declared.</dd>
-
-    <dt><strong>XML Resources Editor</strong></dt>
-
-    <dd>Edit XML resources with a simple graphical interface. This editor is invoked
-    when you open an XML file.</dd>
-  </dl>
-
-
-  <h3 id="resource-linking">Resource linking enhancements</h3>
-  <p>In addition to the normal code editing features of Eclipse, ADT provides enhancements to the Android
-  development experience that allow you to quickly jump to declarations of various types of resources such
-  as strings or layout files. You can access these enhancements by holding down the control key and
-  clicking on the following items:
-
-      <ul>
-
-        <li>A resource identifier, such as <code>R.id.button1</code>, jumps
-        to the XML definition of the view.</li>
-
-        <li>A declaration in the <code>R.java</code> file, such as <code>public
-        static final int Button01=0x7f050000"</code>, jumps to the corresponding XML definition.</li>
-
-        <li>An activity or service definition in your manifest, such as
-        <code>&lt;activity android:name=".TestActivity"&gt;</code>, jumps to the corresponding Java class. You can
-        jump from an activity definition (or service definition) into the corresponding Java class.</li>
-
-        <li>You can jump to any value definition (e.g. <code>@string:foo</code>), regardless of
-which XML file
-        "foo" is defined in.</li>
-
-        <li>Any file-based declaration, such as <code>@layout/bar</code>, opens the file.</li>
-
-        <li>Non-XML resources, such as <code>@drawable/icon</code>, launches
-        Eclipse's default application for the given file type, which in this case is an
-        image.</li>
-
-        <li><code>@android</code> namespace resources opens the resources found in
-        the SDK install area.</li>
-
-        <li>Custom views in XML layouts, such as <code>&lt;foo.bar.MyView&gt;&lt;/foo.bar.MyView&gt;</code>,
-        or <code>&lt;view class="foo.bar.MyView"&gt;</code>) jump to the corresponding custom view classes.</li>
-
-        <li>An XML attribute such as <code>@android:string/ok</code> or <code>android.R.string.id</code> in Java code
-        opens the file that declares the strings. The XML tab opens when doing this, not
-        the form-based editor.</li>
-
-      </ul>
-
-  <h2 id="graphical-editor">Graphical Layout Editor</h2>
-
-  <p>ADT provides many features to allow you to design and build your application's user interface.
-  Many of these features are in the graphical layout editor, which you can access by opening one of
-  your application's XML layout files in Eclipse.
+  <p>As with ADT, support for the <a href="http://ant.apache.org/"
+  class="external-link">Ant</a>
+  tool for building from the command line has ended.
+  <a href="{@docRoot}tools/building/plugin-for-gradle.html">Gradle</a> is now the supported method
+  of building Android apps.
   </p>
-
-  <p>The graphical layout editor is the main screen that you use to visually design and build your
-  UI. It is split up into the following parts:</p>
-
-  <dl>
-    <dt><strong>Canvas</strong></dt>
-
-    <dd>In the middle of the editor is the canvas. It provides the rendered view of your
-    layout and supports dragging and dropping of UI widgets
-    directly from the palette. You can select the platform version used to render the items in
-    the canvas. Each platform version has its own look and feel, which might be the similar to or
-    radically different from another platform version. The canvas renders the appropriate look
-    and feel for the currently selected platform version.
-    This platform version does not need to be the same as the version that your
-    application targets.
-
-    <p>The canvas also provides
-    context-sensitive actions in the layout actions bar, such as adjusting layout margins and
-orientation.
-    The layout actions bar displays available actions depending on the selected UI element in the
-    canvas.</p>
-    </dd>
-
-    <dt><strong>Outline</strong></dt>
-
-    <dd>On the right side of the editor is the outline view. It displays a hierarchical
-    view of your layout where you can do things such as reorder of views. The outline
-    view exposes similar functionality as the canvas but displays your layout in an ordered
-    list instead of a rendered preview.</dd>
-
-    <dt><strong>Palette</strong></dt>
-
-    <dd>On the left side of the editor is the palette. It provides a set of widgets that
-    you can drag onto the canvas. The palette shows rendered previews of the
-    widgets for easy lookup of desired UI widgets.</dd>
-
-    <dt><strong>Configuration Chooser</strong></dt>
-
-    <dd>At the top of the editor is the configuration chooser.
-    It provides options to change a layout's rendering mode or screen type.</dd>
-  </dl>
-
-  <img src="{@docRoot}images/layout_editor.png" alt="graphical layout editor screenshot"
-  height="500" id="layout-editor" name="layout-editor">
-
-  <p class="img-caption"><strong>Figure 1.</strong> Graphical layout editor</p>
-
-  <h3 id="canvas">Canvas and outline view</h3>
-
-  <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Google I/O Session Video</h2>
-
-      <p>View the segment on the <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=7m16s">canvas and outline view</a> and the
-      <a href="http://www.youtube.com/watch?v=Oq05KqjXTvs#t=11m43s">layout actions bar</a>
-      for more information.
-      </p>
-    </div>
-  </div>
-
-  <p>The canvas is the area where you can drag and drop UI widgets from the palette to design your
-  layout. The canvas offers a rendered preview of your layout depending on factors such as the
-  selected platform version, screen orientation, and currently selected theme that you specify in
-  the <a href="#configuration-chooser">configuration chooser</a>. You can also drag and drop
-  items into the outline view, which displays your layout in a hierarchical list. The outline view
-  exposes much of the same functionality as the canvas but offers another method of organization
-  that is beneficial for ordering and quickly selecting items. When you right-click a specific item
-  in the canvas or outline view, you can access a context-sensitive menu that lets you modify the
-  following attributes of the layout or view:</p>
-
-  <dl>
-    <dt><strong>View and layout properties</strong></dt>
-
-    <dd>
-      When you right-click a view or layout in the canvas or outline view, it brings up a
-      context-sensitive menu that lets you set things such as:
-
-      <ul>
-        <li>ID of the view or layout</li>
-
-        <li>Text of the view</li>
-
-        <li>Layout width</li>
-
-        <li>Layout height</li>
-
-        <li>Properties such as alpha or clickable</li>
-      </ul>
-    </dd>
-
-    <dt><strong>Animation preview and creation</strong></dt>
-
-    <dd>
-      If your layout or view is animated, you can preview the animation directly in the canvas
-      (when you select Android 3.0 or later as the platform version in the configuration chooser).
-      Right-click an item in the canvas and select <strong>Play Animation</strong>. If
-      animation is not associated with item, an option is available in the menu to create one.
-
-      <p>View the segment on the <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=28m30s">animation features</a> for more
-      information.</p>
-    </dd>
-
-    <dt><strong>Extract as Include</strong></dt>
-
-    <dd>You can extract parts of a current layout into its own layout file,
-    which you can then include in any layout with a single line of XML. See <a href=
-    "#extract-as-include">Layout Refactoring Support</a> for more information.</dd>
-  </dl>
-
-  <h4>Other canvas features</h4>
-
-  <p>The canvas has additional features not available in the outline view:</p>
-
-  <ul>
-
-    <li>Edit views with the layout actions bar: The context-sensitive layout actions bar allows you to
-    edit how a view is laid out in your UI. The available actions depend on the currently
-    selected view and its parent layout. Some common actions include
-    toggling the fill mode of the view and specifying margins. For instance, if you select a
-    {@link android.widget.Button}
-    in a {@link android.widget.LinearLayout}, you see actions related to the {@link
-android.widget.LinearLayout}, such as a toggle to switch
-    between horizontal and vertical layout, and a toggle to control whether its children are
-    aligned along their text baseline. You will also see toolbar actions to control the individual
-    layout attributes of the child, such as whether the child should stretch out to match its
-    parent's width and height, a dropdown action to set the child's layout gravity, a button to open
-    a margin editor, and a layout weight editor.</li>
-
-    <li>Edit a nested layout in its current context: If you are editing a layout
-    that includes another layout, you can edit the included layout in the layout that included
-    it.</li>
-
-    <li>Preview drag and drop location: When you drag and drop a UI widget onto the canvas, ruler
-    markers appear showing you the approximate location of the UI widget depending on the
-    type of layout, such as {@link android.widget.RelativeLayout} or {@link
-    android.widget.LinearLayout}.</li>
-
-    <li>Preview animations: You can preview view and layout animations when you select Android 2.1
-    or later for the platform version in the configuration bar.</li>
-
-    <li>Render layouts in real-time: Layouts are rendered as accurately as possible according to
-    the platform version, including the appropriate system and action bars.</li>
-
-    <li>Support for fragments: Fragments can be rendered in the same screen as the layout that
-    includes the fragments.</li>
-
-  </ul>
-
-  <img src="{@docRoot}images/canvas.png" alt="screenshot of the canvas" height="553">
-
-  <p class="img-caption"><strong>Figure 2.</strong> Canvas portion of the layout editor showing
-  a rendered preview of an application</p>
-
-  <img src=
-  "{@docRoot}images/layout_outline.png" alt="screenshot of the outline view" height="185">
-
-  <p class="img-caption"><strong>Figure 3.</strong> Outline view showing current layout's structure</p>
-
-  <h3 id="palette">Palette</h3>
-
-  <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Google I/O Session Video</h2>
-
-      <p>View the segment on the <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=7m53s">palette</a> for more information.</p>
-    </div>
-  </div>
-
-  <p>The palette contains the UI widgets that you can drag and drop onto the canvas and add to your
-  layout. The pallete categorizes the widgets and shows rendered previews
-  for easier lookup. The main features of the palette include:</p>
-
-  <ul>
-    <li>Different modes of rendered previews include: icons only, icons and text, tiny previews,
-    small previews, and previews (rendered in real size). Previews are only available for layouts
-    rendered with the latest revisions of Android 2.1 (API Level 7) or later.</li>
-
-    <li>Custom views in your project or library projects are added under custom views
-    category.</li>
-
-    <li>Arrange UI widgets alphabetically or by category.</li>
-  </ul>
-  <img src="{@docRoot}images/palette.png" alt="palette screenshot" height="566">
-
-  <p class="img-caption"><strong>Figure 4.</strong> Palette showing available UI widgets</p>
-
-  <h3 id="config-chooser">Configuration chooser</h3>
-
-  <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Google I/O Session Video</h2>
-
-      <p>View the segment on the <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=12m51s">configuration chooser</a> for more
-      information.</p>
-    </div>
-  </div>
-
-
-  <p>The configuration chooser allows you to create and configure different configurations of
-  a layout for different situations, such as one for landscape and one for portrait mode. You can
-  set the following options for each configuration of a layout:
-  </p>
-      <ul>
-        <li>Screen type combo box: Predefined screen settings for common device configurations. You
-        can also create your own by selecting <strong>Custom...</strong>.</li>
-
-        <li>Screen orientation combo box: Portrait or Landscape screen orientation.</li>
-
-        <li>Theme combo box: Predefined themes or a custom theme that you have created.</li>
-
-        <li>Platform combo box: Platform version used to render the canvas and palette as well as
-        displaying appropriate themes.</li>
-
-        <li>Custom layout combo boxes: The locale, dock, and time of day combo boxes let you select
-        different versions of the same layout depending on the device's current state. You can
-        create a new version of a layout with the <strong>Create</strong> button.</li>
-      </ul>
-
-      <img src="{@docRoot}images/layout_bar.png" alt=
-  "configuration chooser screenshot" height="50" id="configuration-chooser" name="configuration chooser">
-
-  <p class="img-caption"><strong>Figure 5.</strong> Configuration chooser</p>
-
-  <h2 id="refactoring">Layout Refactoring Support</h2>
-
-  <div class="sidebox-wrapper">
-    <div class="sidebox">
-      <h2>Google I/O Session Video</h2>
-
-      <p>View the segment on <a href=
-      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=18m00s">refactoring features</a> for a rundown
-of the more important refactoring features.</p>
-
-    </div>
-  </div>
-
-  <p>In both the graphical and XML layout editor, there are many features that help you quickly
-  refactor your layouts. The following list describes the major refactoring support:</p>
-
-  <dl>
-
-    <dt><strong>Change layout</strong></dt>
-    <dd>This lets you change the layout on the fly and re-renders the canvas for you.
-    You can apply this refactoring to any layout and the layout is converted to the new type if
-    possible. In many cases, the opening and closing tags of the layout's XML element are changed
-    along with things such as ID attributes and their references. However, for some supported
-    types, ADT attempts to preserve the layout, such as changing a {@link
-    android.widget.LinearLayout} to a {@link android.widget.RelativeLayout}.</dd>
-
-    <dt><strong>Change widget</strong></dt>
-    <dd>This lets you select one or more widgets and converts them to a new widget type. In
-    addition to changing the element name, it also removes any
-    attributes that are not supported by the new widget type and adds in any mandatory attributes
-    required by the new widget type. If the current ID of a widget includes the
-    current widget type in its ID (such as a <code>&lt;Button&gt;</code> widget named
-    <code>"button1"</code>), then the ID is changed to match the new widget type and all
-    references are updated.</dd>
-
-    <dt id="extract-as-include"><strong>Extract as include</strong></dt>
-    <dd>This lets you extract views inside of an existing layout into their own separate layout
-    file. An <code>include</code> tag that points to the newly created layout file is inserted
-    into the existing layout file. Right-click the view or layout and select <strong>Extract as
-    Include...</strong>.</dd>
-
-    <dt><strong>Extract string</strong></dt>
-    <dd>Extract strings from either XML or Java files into their own separate resource file.</dd>
-
-    <dt><strong>Extract style</strong></dt>
-    <dd>Extract style-related attributes from a layout and define them in a new
-    <code>styles.xml</code> file. You can select multiple views and this refactoring extracts all
-    of the same styles into one style and assigns that style to all the views that use it.</dd>
-
-    <dt><strong>Wrap-in container</strong></dt>
-    <dd>This lets you select one or more sibling elements and wrap them in a new container. This
-    can be applied to the root element as well, in which case the namespace declaration attributes
-    will be transferred to the new root. This refactoring also transfers <code>layout_</code>
-    attribute references to the new root, For example, suppose you have a {@link android.widget.RelativeLayout}.
-    If other widgets have layout constraints pointing to your widget, wrapping the widget causes
-    these constraints to point to the parent instead.</dd>
-
-    <dt><strong>Quick Assistant</strong></dt>
-    <dd>Provides refactoring suggestions depending on the current context. Press
-    <strong>Ctrl-1</strong> (or <strong>Cmd-1</strong> on
-    Mac) in an editor, and Eclipse provides a list of possible refactorings depending on the
-    context. The Quick Assistant provides fast access to all of the above refactorings, where applicable.
-    For example, if you are editing an XML value and decide you want to extract it out
-    as a string, place the text cursor in the string and press Ctrl-1 to see the refactoring context
-    menu.</dd>
-  </dl>
-
-
-
-
-
-<h2 id="Updating">Updating the ADT Plugin</h2>
-
-<p>From time to time, a new revision of the ADT Plugin becomes available, with
-new features and bug fixes. Generally, when a new revision of ADT is available,
-you should update to it as soon as convenient. </p>
-
-<p>In some cases, a new revision of ADT will have a dependency on a specific
-revision of the Android SDK Tools. If such dependencies exist, you will need to
-update the SDK Tools package of the SDK after installing the new revision of
-ADT. To update the SDK Tools package, use the Android SDK Manager, as
-described in <a href="{@docRoot}sdk/installing/adding-packages.html">Adding SDK Packages</a>.</p>
-
-<p>To learn about new features of each ADT revision and also any dependencies on
-the SDK Tools, see the listings in the <a href="{@docRoot}tools/revisions/index.html">Revisions</a>
-section. To determine the version currently installed, open the
-Eclipse Installed Software window using <strong>Help</strong>
-&gt; <strong>Software Updates</strong> and refer to the version listed for
-"Android Development Tools".</p>
-
-<p>Follow the steps below to check whether an update is available and, if so,
-to install it. </p>
-
-<ol>
-    <li>Select <strong>Help</strong> &gt; <strong>Check for Updates</strong>.
-      <p>If there are no updates available, a dialog will say so and you're done.</p></li>
-    <li>If there are updates available, select Android DDMS, Android Development Tools,
-      and Android Hierarchy Viewer, then click <strong>Next</strong>.</li>
-    <li>In the Update Details dialog, click <strong>Next</strong>.</li>
-    <li>Read and accept the license agreement and then click <strong>Finish</strong>.
-      This will download and install the latest version of Android DDMS and
-      Android Development Tools.</li>
-    <li>Restart Eclipse.</li>
-</ol>
-
-
-<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then
-perform a fresh installation, using the instructions for <a
-href="{@docRoot}sdk/installing/installing-adt.html">Installing the ADT
-Plugin</a>.</p>
diff --git a/docs/html/tools/help/am-cpu.jd b/docs/html/tools/help/am-cpu.jd
new file mode 100644
index 0000000..62b3590
--- /dev/null
+++ b/docs/html/tools/help/am-cpu.jd
@@ -0,0 +1,325 @@
+page.title=CPU Monitor
+parent.title=Android Monitor
+parent.link=android-monitor.html
+page.tags=monitor
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#running">Displaying a Running App in the CPU Monitor</a></li>
+  <li><a href="#trace">Performing a Method Trace in the CPU Monitor</a></li>
+  <li><a href="#viewtrace">Viewing a Saved Method Trace</a></li>
+  <li><a href="#sorttrace">Sorting Method Trace Data</a></li>
+  <li><a href="#renametrace">Renaming a Method Trace File</a></li>
+  <li><a href="#locatetrace">Locating a Method Trace File on Disk</a></li>
+  <li><a href="#deletetrace">Deleting a Method Trace File</a></li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li>
+        <a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a>
+      </li>
+    <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+  </ol>
+
+
+<h2>
+  Dependencies and Prerequisites
+</h2>
+
+<ul>
+  <li>Make sure your development computer detects your hardware device, which often happens
+  automatically when you connect it to a USB port.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/device.html#device-developer-options">Enable</a> <strong><a href=
+    "{@docRoot}tools/device.html#device-developer-options">USB debugging</a></strong> in
+    <strong>Developer Options</strong> on the device or emulator.
+  </li>
+
+  <li>In your app, set the <code>debuggable</code> property to <code>true</code> in the manifest or
+  <code>build.gradle</code> file (it’s initially set by default).
+  </li>
+
+<li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+  <strong>Enable ADB Integration</strong>.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+
+</ul>
+
+</div>
+</div>
+
+
+<p>
+  The CPU Monitor lets you easily monitor the central processing unit (CPU) usage of your app. It
+  displays CPU usage in real time and displays the percentage of total CPU time (including all cores)
+  used by user and kernel mode. In user mode, the code must use system APIs to access hardware or
+  memory, and crashes are usually recoverable. In kernel mode, the code can directly access
+  hardware, including memory addresses; crashes halt the device.
+</p>
+
+<h2 id="running">
+  Displaying a Running App in the CPU Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Optionally connect a hardware device.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/android-monitor.html#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Click the <strong>CPU</strong> tab.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run it</a> on a hardware device or
+  emulator.
+  </li>
+
+  <li>Enable the CPU Monitor by clicking Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> to deselect
+  it.
+  </li>
+
+<p>
+  The CPU Monitor starts to display any CPU usage.
+  In the graph, the y-axis displays the percentage of CPU used. The x-axis records the time elapsed
+  and starts with seconds, and then minutes and seconds, and so on.
+</p>
+<img src="{@docRoot}images/tools/am-cpumon.png" style="vertical-align:sub;margin:0;width:450px" />
+  <li>To stop the CPU Monitor, click Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> again to select
+  it.
+  </li>
+</ol>
+
+
+<h2 id="trace">
+  Performing a Method Trace in the CPU Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>
+    <a href="{@docRoot}tools/help/android-monitor.html#displaying">Display a running app in the CPU
+    Monitor</a>.
+  </li>
+
+  <li>Start a trace by clicking Start Method Tracing <img src="{@docRoot}images/tools/am-imethodtrace.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Start Method Tracing icon" /> to
+  select it.
+  </li>
+
+  <li>To stop the trace, click Stop Method Tracing <img src="{@docRoot}images/tools/am-imethodtrace.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Stop Method Tracing icon" /> to
+  deselect it.
+  </li>
+
+<p>
+  The method trace appears in the Code Editor area:
+</p>
+<img src="{@docRoot}images/tools/am-methodtrace.png" alt="Method Trace" />
+<p>
+  Android Studio creates the method trace file
+  with the filename <code>Trace_<em>yyyy.mm.dd_hh.mm.ss</em>.trace</code>
+  using the year, month, day, hour, minute, and second of the capture, for example,
+  <code>Trace_2015.11.17_14.58.48.trace</code>.
+</p>
+  <li>Specify display options:
+    <ul>
+      <li>Select a <strong>Thread</strong>.
+      </li>
+
+      <li>Select an <strong>x-axis</strong> time for the graphic and the method list:
+      </li>
+
+        <ul>
+          <li>
+            <strong>Wall Clock Time</strong> - Total CPU time elapsed between the method call and
+            return.
+          </li>
+
+          <li>
+            <strong>Thread Time</strong> - Total time during which the JRE scheduled the
+            thread during call processing. It’s less than or equal to the Wall Clock Time: less if
+            the JRE interrupted the thread, and equal if it didn’t.
+            The thread might not run continuously; when it’s not executing, that time is excluded.
+            If threads are interrupted often and it’s not by design, the interruptions affect app
+            performance. However, an example of a by-design use is synchronous operations that take
+            a long time, such as file transfers and reads from disk, where the method could be the
+            asynchronous wrapper for the synchronous reader.
+          </li>
+       </ul>
+
+        <li>
+          Optionally select <strong>Color by inclusive time</strong>.
+        </li>
+        </ul>
+
+        <p>
+          The display shows the following information:
+        </p>
+<table>
+  <tr>
+    <th scope="col">Field</th>
+    <th scope="col">Description</th>
+  </tr>
+
+  <tr>
+    <td><strong>Name</strong></td>
+    <td>The name of the method.</td>
+  </tr>
+
+  <tr>
+    <td><strong>Invocation Count</strong></td>
+    <td>How many times the method was called.</td>
+  </tr>
+
+  <tr>
+    <td><strong>Inclusive Time (microseconds)</strong></td>
+    <td>Time spent in the method and all of its children, either wall clock or thread time,
+          depending on your selection in the <strong>x-axis</strong> menu.</td>
+  </tr>
+
+  <tr>
+    <td><strong>Exclusive Time (microseconds)</strong></td>
+    <td>Time spent just in the method (excluding time spent in its children), either wall clock
+          or thread time, depending on your selection in the <strong>x-axis</strong> menu.</td>
+  </tr>
+</table>
+<p class="note"><strong>Note:</strong> Running the method trace significantly affects CPU timings.
+  Use the method trace to understand the flow of the program, but not for performance timings.</p>
+        <p>
+          The graphic represents the wall clock or thread time for each method. Hover the cursor
+          over the display to receive information about the method. This information also appears
+          in the table.
+        </p>
+</ol>
+        <h2 id="viewtrace">
+          Viewing a Saved Method Trace
+        </h2>
+
+        <p>
+          After you do a method trace, Android Studio automatically stores it so you can view it
+          again. To examine the trace, follow these steps:
+        </p>
+
+        <ol>
+          <li>Click <strong>Captures</strong> in the main window.
+          </li>
+
+        <p>
+          The <em>Captures</em> window appears.
+        </p>
+
+      <li>Open the <strong>Methods Tracing</strong> folder.
+      </li>
+
+      <li>Double-click the file to view it.
+      </li>
+</ol>
+
+<h2 id="sorttrace">
+  Sorting Method Trace Data
+</h2>
+
+<p>
+  You can sort the data by method name, count, inclusive time, and exclusive time. Follow this step:
+</p>
+
+
+<ul>
+  <li>Click a column heading to sort the table by ascending or descending order.
+  </li>
+</ul>
+
+<h2 id="renametrace">
+  Renaming a Method Trace File
+</h2>
+
+<p>
+  Rename a method trace file from within Android Studio so it
+  continues to appear in the <em>Captures</em> window. Follow these steps:
+</p>
+
+<ol>
+  <li>In the <em>Captures</em> window, right-click the file and select <strong>Rename</strong>.
+  </li>
+
+  <li>In the dialog, specify the name of the file and click <strong>OK</strong>.
+  </li>
+</ol>
+
+<h2 id="locatetrace">
+  Locating a Method Trace File on Disk
+</h2>
+
+<p>
+  You can quickly discover where Android Studio stored method trace files on disk. Follow this step:
+</p>
+
+
+
+<ul>
+  <li>In the <em>Captures</em> window, right-click a method trace file and select <strong>Show in
+  files</strong>.
+  </li>
+
+<p>
+  Android Studio opens an operating system file browser displaying the location where the file
+  resides.
+</p>
+</ul>
+<p class="note">
+  <strong>Note:</strong> If you move a method trace file, Android Studio no longer displays the file
+  in the <em>Captures</em> window. To display it, use <strong>File</strong> &gt;
+  <strong>Open</strong>. Also, rename a file from the <em>Captures</em>
+  window and not in the operating system file browser.
+</p>
+
+<h2 id="deletetrace">
+  Deleting a Method Trace File
+</h2>
+
+<p>
+  Follow this step in Android Studio:
+</p>
+
+<ul>
+  <li>In the <em>Captures</em> window, right-click a method trace file and select
+  <strong>Delete</strong>.
+  </li>
+</ul>
+
+<p>
+  Android Studio deletes the file from the <em>Captures</em> dialog and from disk.
+</p>
\ No newline at end of file
diff --git a/docs/html/tools/help/am-gpu.jd b/docs/html/tools/help/am-gpu.jd
new file mode 100644
index 0000000..a244b22
--- /dev/null
+++ b/docs/html/tools/help/am-gpu.jd
@@ -0,0 +1,136 @@
+page.title=GPU Monitor
+parent.title=Android Monitor
+parent.link=android-monitor.html
+page.tags=monitor
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#running">Displaying a Running App in the GPU Monitor</a></li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li>
+        <a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a>
+      </li>
+    <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+  </ol>
+
+<h2>
+  Dependencies and Prerequisites
+</h2>
+
+<ul>
+  <li>Make sure your development computer detects your hardware device, which often happens
+  automatically when you connect it to a USB port.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/device.html#device-developer-options">Enable</a> <strong><a href=
+    "{@docRoot}tools/device.html#device-developer-options">USB debugging</a></strong> in
+    <strong>Developer Options</strong> on the device or emulator.
+  </li>
+
+  <li>For Android 5.0 (API level 21) and Android 5.1 (API level 22), in <strong>Developer
+  Options</strong> on the device or emulator, set <strong>Profile GPU rendering</strong> to
+  <strong>In adb shell dumpsys gfxinfo</strong>.
+  </li>
+
+  <li>In your app, set the <code>debuggable</code> property to <code>true</code> in the manifest or
+  <code>build.gradle</code> file (it’s initially set by default).
+  </li>
+
+
+  <li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+  <strong>Enable ADB Integration</strong>.
+  </li>
+
+   <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+</ul>
+
+</div>
+</div>
+
+<p>
+  The GPU Monitor gives you a quick visual representation of how much time it takes to render the
+  frames of a UI window. It profiles the amount of time it takes for the render thread to prepare,
+  process, and execute the draw commands. The GPU Monitor can help you to:
+</p>
+
+<ul>
+  <li>Quickly see how a UI window performs.
+  </li>
+
+  <li>Identify whether any part of the rendering pipeline stands out in using processing time.
+  </li>
+
+  <li>Look for spikes in frame rendering time associated with user or program actions.
+  </li>
+</ul>
+
+<p>
+  For example, if displaying a static photo continues to take Graphics Processor Unit
+  (GPU) resources long after it has finished
+  drawing on the screen, that’s a likely candidate for optimization.
+</p>
+
+
+<h2 id="running">
+  Displaying a Running App in the GPU Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Optionally connect a hardware device.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/android-monitor.html#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Click the <strong>GPU</strong> tab.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run it</a> on a hardware device or
+  emulator.
+  </li>
+
+  <li>Enable the GPU Monitor by clicking Pause <img src="{@docRoot}images/tools/am-ipause.png" style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> to deselect
+  it.
+  </li>
+
+  <p>
+  Any GPU usage begins to appear in the GPU Monitor:
+</p>
+  <img src="{@docRoot}images/tools/am-gpumon.png" style="vertical-align:sub;margin:0;width:450px" />
+
+<p>
+  The y-axis is the amount of time it takes the GPU to execute, process, prepare, and draw frames,
+  in milliseconds. The x-axis records the time elapsed; it starts with seconds, and then minutes
+  and seconds, and so on.
+</p>
+
+  <li>To stop the GPU Monitor, click Pause <img src="{@docRoot}images/tools/am-ipause.png" style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> again to select
+  it.
+  </li>
+</ol>
diff --git a/docs/html/tools/help/am-logcat.jd b/docs/html/tools/help/am-logcat.jd
new file mode 100644
index 0000000..57da848
--- /dev/null
+++ b/docs/html/tools/help/am-logcat.jd
@@ -0,0 +1,521 @@
+page.title=logcat Monitor
+parent.title=Android Monitor
+parent.link=android-monitor.html
+page.tags=monitor
+@jd:body
+<div id="qv-wrapper">
+  <div id="qv">
+    <h2>
+      In this document
+    </h2>
+
+    <ol>
+      <li>
+        <a href="#format">logcat Message Format</a>
+      </li>
+
+      <li>
+        <a href="#running">Displaying a Running App in the logcat Monitor</a>
+      </li>
+
+      <li>
+        <a href="#level">Setting the Log Level</a>
+      </li>
+
+      <li>
+        <a href="#searching">Searching logcat Messages</a>
+      </li>
+
+      <li>
+        <a href="#filtering">Filtering logcat Messages</a>
+      </li>
+
+      <li>
+        <a href="#logheader">Configuring the logcat Header Display</a>
+      </li>
+
+      <li>
+        <a href="#stack">Moving Up and Down the Stack Trace</a>
+      </li>
+
+      <li>
+        <a href="#logend">Moving to the End of the Log</a>
+      </li>
+
+      <li>
+        <a href="#printing">Printing the Log</a>
+      </li>
+
+      <li>
+        <a href="#clearing">Clearing the Log</a>
+      </li>
+
+      <li>
+        <a href="#restarting">Restarting the Log</a>
+      </li>
+    </ol>
+
+    <h2>
+      See also
+    </h2>
+
+    <ol>
+      <li>
+        <a href="{@docRoot}tools/debugging/debugging-log.html">Reading and Writing Logs</a>
+      </li>
+      <li>
+        <a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+    </ol>
+
+    <h2>
+      Dependencies and Prerequisites
+    </h2>
+
+    <ul>
+      <li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+      <strong>Enable ADB Integration</strong>.
+      </li>
+  <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+    </ul>
+  </div>
+</div>
+
+<p>
+  The Android logging system provides a mechanism for collecting and viewing system debug output.
+  logcat Monitor displays messages that you added to your app by using the <a href=
+  "{@docRoot}reference/android/util/Log.html">Log</a> class, as well as system
+  messages, such as stack traces when the emulator throws an error or a garbage collection occurs.
+  The monitor displays messages in real time and also keeps a history so you can view older
+  messages.
+</p>
+
+<p>
+  To display just the information of interest, you can create filters, modify how much information
+  is displayed in messages, set priority levels, display messages produced by app code
+  only, and search the log. By default, logcat Monitor shows the log output related to the running
+  application only.
+</p>
+
+<p>
+  You can traverse the stack trace when your app throws an exception, as well as view the
+  associated code. This feature can help you fix exceptions and improve app operation.
+</p>
+
+<h2 id="format">
+  logcat Message Format
+</h2>
+
+<p>
+  Every Android log message has a tag and a priority associated with it. The tag of a system
+  log message
+  is a short string indicating the system component from which the message originates (for example,
+  <code>ActivityManager</code>). A user-defined tag can be any string that you find helpful, such
+  as the name of the current class (the recommended tag). You define it in a <code>Log</code>
+  method call, for example:
+</p>
+
+<pre>
+Log.d(tag, message);
+</pre>
+<p>
+  The priority is one of the following values:
+</p>
+
+<ul>
+  <li>
+    <strong>V</strong> — Verbose (lowest priority)
+  </li>
+
+  <li>
+    <strong>D</strong> — Debug
+  </li>
+
+  <li>
+    <strong>I</strong> — Info
+  </li>
+
+  <li>
+    <strong>W</strong> — Warning
+  </li>
+
+  <li>
+    <strong>E</strong> — Error
+  </li>
+
+  <li>
+    <strong>A</strong> — Assert
+  </li>
+</ul>
+
+<p>
+  The log message format is:
+</p>
+
+<pre class="no-pretty-print">
+<em>date time PID-TID/package priority/tag: message</em>
+</pre>
+
+<p>
+  For example, the following log message has a priority of <code>V</code> and a tag of
+  <code>AuthZen</code>:
+</p>
+
+<pre class="no-pretty-print">
+12-10 13:02:50.071 1901-4229/com.google.android.gms V/AuthZen: Handling delegate intent.
+</pre>
+<p>
+  PID stands for process identifier and TID is thread identifier; they can be the same if there’s
+  only one thread.
+</p>
+
+<h2 id="running">
+  Displaying a Running App in the logcat Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Optionally connect a hardware device.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/android-monitor.html#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Click the <strong>logcat</strong> tab.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run it</a> on a hardware device or
+  emulator.
+  </li>
+<p>
+  By default, the logcat Monitor displays messages for the app running on the device or emulator:
+</p>
+<img src="{@docRoot}images/tools/am-logcatmon.png" />
+<p>
+  To change this default, see <a href="#filtering">Filtering logcat Messages</a>.
+</p>
+</ol>
+
+<h2 id="level">
+  Setting the Log Level
+</h2>
+
+<p>
+  You can control how many messages appear in logcat Monitor by setting the log level. You can
+  display all messages, or just the messages indicating the most severe conditions.
+</p>
+
+<p>
+  Remember that logcat Monitor continues to collect all messages regardless of the log level setting.
+  The setting just determines what logcat Monitor displays.
+</p>
+
+<p>
+  Follow this step:
+</p>
+
+<ul>
+  <li>In the <strong>Log level</strong> menu, select one of the following values:
+  </li>
+
+    <ul>
+      <li>
+        <strong>Verbose</strong> - Show all log messages (the default).
+      </li>
+
+      <li>
+        <strong>Debug</strong> - Show debug log messages that are useful during development only,
+        as well as the message levels lower in this list.
+      </li>
+
+      <li>
+        <strong>Info</strong> - Show expected log messages for regular usage, as well as the
+        message levels lower in this list.
+      </li>
+
+      <li>
+        <strong>Warn</strong> - Show possible issues that are not yet errors, as well as the
+        message levels lower in this list.
+      </li>
+
+      <li>
+        <strong>Error</strong> - Show issues that have caused errors, as well as the message levels
+        lower in this list.
+      </li>
+
+      <li>
+        <strong>Assert</strong> - Show issues that the developer expects should never happen.
+      </li>
+    </ul>
+
+</ul>
+
+    <h2 id="searching">
+      Searching logcat Messages
+    </h2>
+
+    <p>
+      You can search the messages currently displayed in logcat Monitor. Follow these steps:
+    </p>
+
+    <ol>
+      <li>Optionally select <strong>Regex</strong> if you want to use a regular expression
+      search pattern.
+      </li>
+
+      <li>Type a character sequence in the search field <img src="{@docRoot}images/tools/am-isearch.png"
+        style="vertical-align:sub;margin:0;height:17px" alt="Search icon" />.
+      </li>
+
+    <p>
+      The logcat Monitor display changes accordingly.
+    </p>
+  </li>
+
+  <li>Press <strong>Enter</strong> to store the sequence in the menu during this session.
+  </li>
+
+  <li>To repeat a search, choose it from the search menu. Select or deselect
+  <strong>Regex</strong> as needed (the setting isn’t remembered).
+  </li>
+ </ol>
+
+    <h2 id="filtering">
+      Filtering logcat Messages
+    </h2>
+
+    <p>
+      One way to reduce the log output to a manageable level is to restrict it by using a filter.
+    </p>
+
+    <p class="note">
+      <strong>Note:</strong> The filter applies to your full logcat history, not just those messages
+      currently displayed in logcat Monitor. Make sure your other display options are set
+      appropriately so you can see the filter output you want to examine.
+    </p>
+
+    <p>
+      To define and apply a filter, follow these steps:
+    </p>
+
+    <ol>
+      <li>In the filter menu, select a filter option:
+        <ul>
+          <li>
+            <strong>Show only selected application</strong> - Display the messages produced by the
+            app code only.
+          </li>
+
+          <li>
+            <strong>No Filters</strong> - Apply no filters (the default).
+          </li>
+
+          <li>
+            <strong>Edit Filter Configuration</strong> - Create or modify a custom filter.
+          </li>
+        </ul>
+
+        <p>
+          After you define filters, you can also select them in the menu. To remove them from the
+          menu, delete them.
+        </p>
+
+          <li>If you selected <strong>Edit Filter Configuration</strong>, create or modify a
+          filter.
+            <ol type="a">
+              <li>Specify the filter parameters in the <em>Create New Logcat Filter</em> dialog:
+              </li>
+
+
+            <ul>
+              <li>
+                <strong>Filter Name</strong> - Type the name of a filter you want to define, or
+                select it in the left pane to modify an existing filter. The name can contain
+                lowercase characters, underscores, and digits only.
+              </li>
+
+              <li>
+                <strong>Log Tag</strong> - Optionally specify a tag. For more information, see
+                <a href="#format">logcat Message Format</a>.
+              </li>
+
+              <li>
+                <strong>Log Message</strong> - Optionally specify log message text. For more
+                information, see <a href="#format">logcat Message Format</a>.
+              </li>
+
+              <li>
+                <strong>Package Name</strong> - Optionally specify a package name. For more
+                information, see <a href="#format">logcat Message Format</a>.
+              </li>
+
+              <li>
+                <strong>PID</strong> - Optionally specify a process ID. For more information, see
+                <a href="#format">logcat Message Format</a>.
+              </li>
+
+              <li>
+                <strong>Log Level</strong> - Optionally select a log level. For more information,
+                see <a href="#level">Setting the Log Level</a>.
+              </li>
+
+              <li>
+                <strong>Regex</strong> - Select this option to use regular expression syntax for
+                that parameter.
+              </li>
+            </ul>
+
+            <li>
+              Click <strong>+</strong> to add it to the left pane.
+            </li>
+
+            <p>
+              To remove a filter, select it in the left pane and click <strong>-</strong>.
+            </p>
+
+            <li>
+              When you’re finished, click <strong>OK</strong>. If you click
+              <strong>Cancel</strong>, any filter additions or modifications are lost.
+            </li>
+            </ol>
+            </ol>
+
+            <h2 id="logheader">
+              Configuring the logcat Header Display
+            </h2>
+
+            <p>
+              You can customize the header display to show just the information you’re interested
+              in:
+            </p>
+
+            <ul>
+              <li>Select Use Soft Wraps <img src="{@docRoot}images/tools/am-isoftwraps.png"
+                style="vertical-align:sub;margin:0;height:17px" alt="Use Soft Wraps icon" />
+                to see the entire
+              message and prevent it from running off of the right edge.
+              </li>
+
+              <li>Click Configure Logcat Header <img src="{@docRoot}images/tools/am-igear.png"
+                style="vertical-align:sub;margin:0;height:17px" alt="Configure Logcat header icon" />
+                to specify
+              elements of the messages that you want to show or hide, and then click
+              <strong>OK</strong>.
+              </li>
+            </ul>
+
+            <p>
+              For more information about message elements, see <a href=
+              "#format">logcat Message Format</a>.
+            </p>
+
+            <h2 id="stack">
+              Moving Up and Down the Stack Trace
+            </h2>
+
+            <p>
+              When the app throws an exception, the message includes a stack trace of method calls.
+              logcat
+              Monitor lets you quickly locate stack traces in the log and view the associated code
+              in the Code Editor. If needed (and possible), the decompiler derives source code that
+              you can view.
+            </p>
+
+            <ul>
+              <li>Click Up the Stack Trace <img src="{@docRoot}images/tools/am-iupstack.png"
+                style="vertical-align:sub;margin:0;height:17px" alt="Up the Stack Trace icon" />
+                to move to the
+              previous method in relation to the current position in the log.
+              </li>
+
+              <li>Click Down the Stack Trace <img src="{@docRoot}images/tools/am-idownstack.png"
+                style="vertical-align:sub;margin:0;height:17px" alt="Down the Stack Trace icon" />
+                to move to
+              the next method in relation to the current position in the log.
+              </li>
+            </ul>
+
+            <h2 id="logend">
+              Moving to the End of the Log
+            </h2>
+
+            <p>
+              Clicking a particular message stops the display of messages. You can quickly move to
+              the end of the log to see the real-time message flow.
+            </p>
+
+<ul>
+          <li>Click Scroll to the End <img src="{@docRoot}images/tools/am-iscrollend.png"
+            style="vertical-align:sub;margin:0;height:17px" alt="Scroll to the End icon" />.
+          </li>
+
+          <li>Press the End key.
+          </li>
+
+          <li>Scroll or press the Page Down key until you reach the end.
+</li>
+</ul>
+
+<h2 id="printing">
+  Printing the Log
+</h2>
+<p>
+  Follow these steps:
+</p>
+<ol>
+  <li>Click Print <img src="{@docRoot}images/tools/am-iprint.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Print icon" />.
+  </li>
+  <li>
+    In the <em>Print</em> dialog, optionally change print parameters, and then click
+    <strong>Print</strong>.
+</ol>
+
+<h2 id="clearing">
+  Clearing the Log
+</h2>
+<p>
+  To clear (flush) the entire log, follow this step:
+</p>
+<ul>
+  <li>Click Clear logcat <img src="{@docRoot}images/tools/am-iclear.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Clear logcat icon" />.
+  </li>
+</ul>
+
+
+
+<h2 id="restarting">
+  Restarting the Log
+</h2>
+
+<p>
+  If there is a problem and the log is no longer progressing, you can restart the log. Follow this
+  step:
+</p>
+
+<ul>
+  <li>Click Restart <img src="{@docRoot}images/tools/am-irestart.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Restart icon" />.
+  </li>
+</ul>
\ No newline at end of file
diff --git a/docs/html/tools/help/am-memory.jd b/docs/html/tools/help/am-memory.jd
new file mode 100644
index 0000000..24006cd
--- /dev/null
+++ b/docs/html/tools/help/am-memory.jd
@@ -0,0 +1,916 @@
+page.title=Memory Monitor
+parent.title=Android Monitor
+parent.link=android-monitor.html
+page.tags=monitor
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#workflow">Memory Monitor Workflow</a>
+  <ol>
+  <li><a href="#treeroot">Garbage collection roots and dominator trees</a></li>
+  <li><a href="#analysis">Memory leak and use analysis</a></li>
+  <li><a href="#vm">Memory management for different virtual machines</a></li>
+  </ol>
+  </li>
+  <li><a href="#displaying">Displaying a Running App in the Memory Monitor</a></li>
+  <li><a href="#forcing">Forcing a Garbage Collection Event</a></li>
+  <li><a href="#dumping">Dumping and Analyzing the Java Heap</a>
+    <ol>
+      <li><a href="#hprof-snapshot">Taking and displaying a snapshot of the Java heap</a></li>
+      <li><a href="#hprof-diving">Diving into heap dump data in the HPROF Viewer</a></li>
+      <li><a href="#hprof-analyzing">Analyzing heap dump data in the HPROF Analyzer</a></li>
+      <li><a href="#hprof-sorting">Sorting heap dump data</a></li>
+      <li><a href="#hprof-source">Displaying Java source</a></li>
+      <li><a href="#hprof-viewing">Viewing a saved HPROF file</a></li>
+      <li><a href="#hprof-renaming">Renaming an HPROF file</a></li>
+      <li><a href="#hprof-locating">Locating a heap dump file on disk</a></li>
+      <li><a href="#hprof-deleting">Deleting a heap dump file</a></li>
+      <li><a href="#hprof-converting">Converting a heap dump file to standard HPROF format</a></li>
+    </ol>
+    </li>
+  <li><a href="#tracking">Tracking and Analyzing Memory Allocation</a>
+      <ol>
+      <li><a href="#alloc-snapshot">Taking and displaying a snapshot of allocation data</a></li>
+      <li><a href="#alloc-sorting">Sorting allocation data</a></li>
+      <li><a href="#alloc-source">Displaying Java source</a></li>
+      <li><a href="#alloc-viewing">Viewing a saved allocation tracking file</a></li>
+      <li><a href="#alloc-renaming">Renaming an allocation tracking file</a></li>
+      <li><a href="#alloc-locating">Locating an allocation tracking file</a></li>
+      <li><a href="#alloc-deleting">Deleting an allocation tracking file</a></li>
+    </ol>
+    </li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li><a href="{@docRoot}training/articles/memory.html">Managing Your App's Memory</a></li>
+    <li><a href="{@docRoot}guide/practices/verifying-apps-art.html#GC_Migration">Addressing Garbage Collection Issues</a></li>
+    <li><a href="{@docRoot}tools/debugging/debugging-memory.html">Investigating Your RAM Usage</a></li>
+
+    <li>
+        <a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a>
+      </li>
+    <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+  </ol>
+
+
+<h2>
+  Dependencies and Prerequisites
+</h2>
+
+<ul>
+  <li>
+    Make sure your development computer detects your hardware device, which often happens
+  automatically when you connect it to a USB port.
+  </li>
+<li>
+    <a href="{@docRoot}tools/device.html#device-developer-options">Enable</a> <strong><a href=
+    "{@docRoot}tools/device.html#device-developer-options">USB debugging</a></strong> in
+    <strong>Developer Options</strong> on the device or emulator.
+  </li>
+
+  <li>In your app, set the <code>debuggable</code> property to <code>true</code> in the manifest or
+  <code>build.gradle</code> file (it’s initially set by default).
+  </li>
+
+  <li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+  <strong>Enable ADB Integration</strong>.
+  </li>
+
+   <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+</ul>
+
+</div>
+</div>
+
+<p>
+  Android Studio provides a Memory Monitor so you can more easily monitor app performance and
+  memory usage to find deallocated objects, locate memory leaks, and track the amount of memory the
+  connected device is using. The Memory Monitor reports how your app allocates memory and helps you
+  to visualize the memory your app uses. It lets you:
+</p>
+
+<ul>
+  <li>Show a graph of available and allocated memory over time.
+  </li>
+<li>Show garbage collection (GC) events
+  over time.
+  </li>
+  <li>Initiate garbage collection events.
+  </li>
+
+  <li>Quickly test whether app slowness might be related to excessive garbage collection events.
+  </li>
+
+  <li>Quickly test whether app crashes may be related to running out of memory.
+  </li>
+</ul>
+
+<h2 id="workflow">
+  Memory Monitor Workflow
+</h2>
+
+<p>
+  To profile and optimize memory use, the typical workflow is to run your app and do the following:
+</p>
+
+<ol>
+  <li>Profile the app using the Memory Monitor to find out whether undesirable garbage collection
+  event patterns might be causing performance problems.
+  </li>
+
+  <li>If you see many garbage collection events in a short amount of time, dump the Java heap to
+  identify candidate object types that get or stay allocated unexpectedly or unnecessarily.
+  </li>
+
+  <li>Start allocation tracking to determine where any problems are happening in your code.
+  </li>
+</ol>
+
+<p>
+  The Java heap data shows in real-time what types of objects your application has allocated, how
+  many, and their sizes on the heap. Viewing the heap helps you to:
+</p>
+
+<ul>
+  <li>Get a sense of how your app allocates and frees memory.
+  </li>
+
+  <li>Identify memory leaks.
+  </li>
+</ul>
+
+<p>
+  Allocation tracking records app memory allocations and lists all allocations for the
+  profiling cycle, including the call stack, size, and allocating code. It helps you to:
+</p>
+
+<ul>
+  <li>Identify where many similar object types, from roughly the same call stack, are allocated and
+  deallocated over a very short period of time.
+  </li>
+
+  <li>Find the places in your code that may contribute to inefficient memory use.
+  </li>
+</ul>
+
+<h3 id="treeroot">
+  Garbage collection roots and dominator trees
+</h3>
+
+<p>
+  When you dump the Java heap, the Memory Monitor creates an Android-specific Heap/CPU Profiling
+  (HPROF) file that you can view in the HPROF Viewer. The HPROF Viewer indicates a garbage
+  collection root with the <img src="{@docRoot}images/tools/am-igcroot.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="GC Root icon" /> icon (and a depth of zero)
+  and a
+  dominator with the <img src="{@docRoot}images/tools/am-idom.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Dominator icon" /> icon.
+</p>
+
+<p>
+  There are several kinds of garbage collection roots in Java:
+</p>
+
+<ul>
+<li>references on the stack</li>
+<li>Java Native Interface (JNI) native objects and memory</li>
+<li>static variables and functions</li>
+<li>threads and objects that can be referenced </li>
+<li>classes loaded by the bootstrap loader</li>
+<li>finalizers and unfinalized objects</li>
+<li>busy monitor objects</li>
+</ul>
+
+<p>
+  The HPROF file provides the list of roots to the HPROF Viewer.
+</p>
+
+<p>
+  A dominator tree traces paths to objects created by the app. An object dominates another object
+  if the only way to reach the other object is, directly or indirectly, through the dominator
+  object. When you examine objects and paths created by an app in an effort to optimize memory use,
+  try to remove objects that are no longer needed. You can release a dominator object to
+  release all subordinate objects. For example, in the following figure, if you were to
+  remove object B, that would also release the memory used by the objects it dominates, which are
+  objects C, D, E, and F. In fact, if objects C, D, E, and F were marked for removal, but object B
+  was still referring to them, that could be the reason that they weren’t released.
+</p>
+
+  <img src="{@docRoot}images/tools/am-domtree.png" height="200" />
+
+<h3 id="analysis">
+  Memory leak and use analysis
+</h3>
+
+<p>
+  An app performs better if it uses memory efficiently and releases the memory when it’s no longer
+  needed.
+  Memory leaks that are large or that grow over time are the most important to correct.
+</p>
+
+<p>
+  One way to optimize memory usage is to analyze large arrays. For example, can you reduce the size
+  of individual elements in the array to save memory? Does a dominator object point to
+  an element in the array, preventing it from being garbage-collected? If the dominator object
+  directly points to an element in the array, the dominator is either the contiguous memory
+  representing the underlying data of the array, some part of the array, or the array itself.
+</p>
+
+<p>
+  Another area that deserves attention is objects that the app no longer needs but continues to
+  reference. You can gather heap dumps over different periods of time and compare them to determine
+  if you have a growing memory leak, such as an object type that your code creates multiple times
+  but doesn’t destroy. These objects could be part of a growing array or an object tree, for
+  example. To track down this problem, compare the heap dumps and see if you have a particular
+  object type that continues to have more and more instances over time.
+</p>
+
+<p>
+  Continually growing object trees that contain root or dominator objects can prevent subordinate
+  objects from being garbage-collected. This issue is a common cause of memory leaks, out-of-memory
+  errors,
+  and crashes. Your app could have a small number of objects that are preventing a large number of
+  subordinate objects from being destroyed, so it runs out of memory quickly. To find these issues,
+  get a heap dump and examine the amount of memory held by root and dominator objects. If the
+  memory is substantial, you’ve likely found a good place to start optimizing your memory use.
+</p>
+
+<p>
+  As you start narrowing down memory issues, you should also use the Allocation Tracker to get a
+  better understanding of where your memory-hogging objects are allocated. The Allocation Tracker
+  can be valuable not only for looking at specific uses of memory, but also for analyzing critical
+  code paths, such as loading and scrolling. For example, tracking allocations when flinging a list
+  in your app
+  allows you to see all of the allocations that need to be done for that behavior, what thread they
+  are on, and where they came from. This information is extremely valuable for tightening up these
+  paths to reduce the work they need and improve the overall smoothness of the UI.
+</p>
+
+<p>
+  It’s useful to examine your algorithms for allocations that are unnecessary or that create the
+  same object many times instead of reusing them. For example, do you create temporary objects and
+  variables within recursive loops? If so, try creating an object or variable before
+  the loop for use within the loop. Otherwise, your app might needlessly allocate many objects and
+  variables, depending on the number of recursions.
+</p>
+
+<p>
+  It’s important to perform allocation tests on portions of your code that create the most and
+  largest objects, as those areas offer the most optimization opportunities. In addition to unit
+  tests, you should test your app with production-realistic data loads, especially those algorithms
+  that are data-driven. Also, make sure to account for the app caching and startup phase, which can
+  sometimes be slow; allocation analysis is best done after that phase to produce accurate results.
+</p>
+
+<p>
+  After you optimize code, be sure to test that it worked. You need to test under different load
+  conditions and also without running the Memory Monitor tools. Compare results before and after
+  optimization to make sure that performance has actually improved.
+</p>
+
+<h3 id="vm">
+  Memory management for different virtual machines
+</h3>
+
+<p>
+  Android Monitor uses the Virtual Machine (VM) that the device or emulator uses:
+</p>
+
+<ul>
+  <li>Android 4.3 (API level 18) and lower uses the Dalvik VM.
+  </li>
+
+  <li>In Android 4.4 (API level 19), the Android RunTime (ART) VM is an option, while the Dalvik VM
+  is the default.
+  </li>
+
+  <li>Android 5.0 (API level 21) and higher uses the ART VM.
+  </li>
+</ul>
+
+<p>
+  The VM handles garbage collection. The Dalvik VM uses a mark-and-sweep scheme for garbage
+  collection. The ART VM uses a generational scheme, combined with mark-and-sweep when memory needs
+  a more thorough garbage collection, such as when memory becomes excessively fragmented. The
+  logcat Monitor displays some messages that indicate the type of garbage collection that occurred
+  and why.
+</p>
+
+<p>
+  Memory Monitor results can vary between the different VMs. As a result, if you’re supporting both
+  VMs, you might want to test with both. In addition, the VMs available for different API levels
+  can have different behavior. For example, the Dalvik VM in Android 2.3 (API level 10) and lower
+  uses externally allocated memory while higher versions allocate in the Dalvik heap only.
+</p>
+
+<p>
+  You can’t reconfigure the Dalvik and ART VMs to tune performance. Instead, you should examine
+  your app code to determine how to improve its operation, for example, reducing the size of very
+  large arrays.
+</p>
+
+<p>
+  There are programmatic ways to manipulate when the VM performs garbage collection, although it’s
+  not a best practice. These techniques can be specific to the VM. For more information, see
+  <a href=
+  "{@docRoot}guide/practices/verifying-apps-art.html#GC_Migration">Addressing
+  Garbage Collection (GC) Issues</a> and <a href=
+  "{@docRoot}tools/debugging/debugging-memory.html">Investigating Your RAM
+  Usage</a>.
+</p>
+
+<p>
+  The ART VM adds a number of performance, development, and debugging improvements over the Dalvik
+  VM. For more information, see <a href=
+  "https://source.android.com/devices/tech/dalvik/index.html">ART and Dalvik</a>.
+</p>
+
+<h2 id="displaying">
+  Displaying a Running App in the Memory Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Optionally connect a hardware device.
+  </li>
+
+  <li>
+    <a href=
+    "{@docRoot}tools/help/android-monitor.html#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Click the <strong>Memory</strong> tab.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run it</a> on a
+  hardware device or emulator.
+  </li>
+
+  <li>Enable the Memory Monitor by clicking Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> to deselect it.
+  </li>
+
+
+<p>
+  In the graph, the y-axis displays the free and allocated RAM in megabytes. The x-axis shows the
+  time elapsed; it starts with seconds, and then minutes and seconds, and so on. The amount of free
+  memory, measured in megabytes,
+  is shown in a light color, and allocated memory is a darker color. When there’s a sharp drop in
+  allocated memory, that indicates a garbage collection event. </p>
+
+
+
+<p>
+  To force a garbage collection event, click Initiate GC <img src="{@docRoot}images/tools/am-igc.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Initiate GC icon" />.
+</p>
+
+  <p>In the following figure, the VM initiated the first garbage collection event, while the
+    developer forced the second.
+</p>
+<img src="{@docRoot}images/tools/am-gc.png" />
+
+  <li>Interact with your app and watch how it affects memory usage in the Memory Monitor. You can
+  identify garbage collection patterns for your app and determine whether they are healthy and what
+  you expect.
+  </li>
+
+
+<p>
+  The graph can show you potential issues:
+</p>
+
+<ul>
+  <li>Excessive garbage collection events slow down the app.
+  </li>
+
+  <li>The app runs out of memory, which causes it to crash.
+  </li>
+
+  <li>Potential memory leaks.
+  </li>
+</ul>
+
+<p>
+  For example, you might see the following signs of problems:
+</p>
+
+<ul>
+  <li>Your app is static, but you see memory being allocated in the monitor.
+  </li>
+
+  <li>You see spikes of memory allocations in the monitor, but you don’t think there’s any app
+  logic to cause this behavior.
+  </li>
+</ul>
+  <li>To stop the Memory Monitor, click Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> again to select it.
+  </li>
+
+</ol>
+
+<h2 id="forcing">
+  Forcing a Garbage Collection Event
+</h2>
+
+<p>
+  Normally, VMs perform garbage collection only when absolutely needed, since it’s expensive.
+  However, it can be useful to force garbage collection in certain circumstances. For example, when
+  locating memory leaks, if you want to determine whether a large object was successfully released
+  already, you can initiate garbage collection much more aggressively than usual.
+</p>
+
+<p>
+  To force a garbage collection event:
+</p>
+
+<ul>
+  <li>While the <a href="#displaying">Memory Monitor is running</a>, click Initiate GC
+  <img src="{@docRoot}images/tools/am-igc.png" style="vertical-align:sub;margin:0;height:17px"
+  alt="Initiate GC icon" />.
+  </li>
+</ul>
+
+<h2 id="dumping">
+  Dumping and Analyzing the Java Heap
+</h2>
+
+<p>
+  When you're monitoring memory usage in Android Studio you can, at the same time, dump the Java
+  heap to a heap snapshot in an Android-specific HPROF binary format file. The HPROF Viewer
+  displays classes, instances of each class, and a reference tree to help you track memory usage
+  and find memory leaks. HPROF is a heap dump format originally supported by J2SE.
+</p>
+<p>The Java heap display does the following:</p>
+
+<ul>
+  <li>Shows snapshots of a number of objects allocated by type.
+  </li>
+
+  <li>Samples data every time a garbage collection event occurs naturally or is triggered by you.
+  </li>
+
+  <li>Helps identify which object types might be involved in memory leaks.
+  </li>
+</ul>
+
+<p>
+  However, you have to look for changes over time yourself by tracking what's happening in the
+  graph.
+</p>
+
+<p>
+  The HPROF Analyzer finds the following potential issues:
+</p>
+
+<ul>
+  <li>All destroyed activity instances that are reachable from garbage collection roots.
+  </li>
+
+  <li>Where the target program has strings that repeat values.
+  </li>
+</ul>
+
+<p>
+  A dominator is at the top of a tree. If you remove it, you also remove the branches of the tree
+  it dominates, so it’s a potential way to free memory.
+</p>
+
+<h3 id="hprof-snapshot">
+  Taking and displaying a snapshot of the Java heap
+</h3>
+
+<p>
+  To see a snapshot of the Java heap, follow these steps:
+</p>
+
+<ol>
+  <li>While the Memory Monitor is running, click Dump Java Heap
+    <img src="{@docRoot}images/tools/am-idump.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Dump Java Heap icon" />.
+  </li>
+
+
+<p>
+  When the icon on the Memory Monitor display changes from
+  <img src="{@docRoot}images/tools/am-idumpstart.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Dump Java Heap Start icon" /> to
+  <img src="{@docRoot}images/tools/am-idumpend.png" style="vertical-align:sub;margin:0;height:17px"
+  alt="Dump Java Heap End icon" />, the file is ready. Android Studio creates the heap snapshot
+  file with the
+  filename <code>Snapshot_<em>yyyy.mm.dd_hh.mm.ss</em>.hprof</code> using
+  the year, month, day, hour, minute, and second of the capture, for example,
+  <code>Snapshot_2015.11.17_14.58.48.hprof</code>.
+</p>
+
+  <li>Click <strong>Captures</strong> in the main window.
+  </li>
+
+<p>
+  The <em>Captures</em> window appears.
+</p>
+
+  <li>Double-click the file to view it in the HPROF Viewer.
+  </li>
+
+<p>
+  The HPROF Viewer appears:
+</p>
+<img src="{@docRoot}images/tools/am-hprofviewer.png" />
+<p>
+  The tool displays the following information:
+</p>
+
+<table>
+  <tr>
+    <th scope="col">Column</th>
+    <th scope="col">Description</th>
+  </tr>
+
+  <tr>
+    <td><strong>Class Name</strong></td>
+    <td>The Java class responsible for the memory.</td>
+  </tr>
+
+  <tr>
+    <td><strong>Total Count</strong></td>
+    <td>Total number of instances outstanding.</td>
+  </tr>
+  <tr>
+    <td><strong>Heap Count</strong></td>
+    <td>Number of instances in the selected heap.</td>
+  </tr>
+  <tr>
+    <td><strong>Sizeof</strong></td>
+    <td>Size of the instances (currently, 0 if the size is variable).</td>
+  </tr>
+  <tr>
+    <td><strong>Shallow Size</strong></td>
+    <td>Total size of all instances in this heap.</td>
+  </tr>
+  <tr>
+    <td><strong>Retained Size</strong></td>
+    <td>Size of memory that all instances of this class is dominating.</td>
+  </tr>
+  <tr>
+    <td><strong>Instance</strong></td>
+    <td>A specific instance of the class.</td>
+  </tr>
+  <tr>
+    <td><strong>Reference Tree</strong></td>
+    <td>References that point to the selected instance, as well as references pointing to the
+      references.</td>
+  </tr>
+  <tr>
+    <td><strong>Depth</strong></td>
+    <td>The shortest number of hops from any GC root to the selected instance.</td>
+  </tr>
+  <tr>
+    <td><strong>Shallow Size</strong></td>
+    <td>Size of this instance.</td>
+  </tr>
+  <tr>
+    <td><strong>Dominating Size</strong></td>
+    <td>Size of memory that this instance is dominating.</td>
+  </tr>
+</table>
+
+  <li>Select the Heap menu option you want to display:
+    <ul>
+      <li>
+        <strong>App heap</strong> - The heap used by the current app.
+      </li>
+
+      <li><strong>Image heap</strong> - The memory mapped copy of the
+      current app on disk.
+      </li>
+
+
+  <li>
+    <strong>Zygote heap</strong> - The common set of libraries and runtime classes and data that
+    all apps are forked
+    from. The zygote space is created during device startup and is never allocated into.
+  </li>
+
+    </ul>
+
+      <li>Select the View menu option you want to display:
+        <ul>
+          <li>
+            <strong>Class List View</strong>
+          </li>
+
+              <li>
+                <strong>Package Tree View</strong>
+              </li>
+            </ul>
+    </ol>
+
+
+<h3 id="hprof-diving">
+  Diving into heap dump data in the HPROF Viewer
+</h3>
+<p>The following steps outline the typical workflow:</p>
+<ol>
+<li>In the HPROF viewer, select a class name. </li>
+<li>Select an instance of that class.</li>
+<li>Examine the reference tree.</li>
+<li>Right-click an item to <strong>Jump to source</strong> or <strong>Go to instance</strong>,
+  as needed.</li>
+</ol>
+
+
+
+<h3 id="hprof-analyzing">Analyzing heap dump data in the HPROF Analyzer</h3>
+<p>You can detect leaked activities and find duplicate strings with the HPROF Analyzer.
+  Follow these steps: </p>
+<ol>
+<li>In the <em>Captures</em> window, double-click an <code>.hprof</code> file to display it in the
+  HPROF Viewer. </li>
+<li>Click <strong>Capture Analysis</strong> on the right side of the main Android Studio window.</li>
+
+
+<p>The HPROF Analyzer appears to the right of the HPROF Analyzer, by default: </p>
+
+<img src="{@docRoot}images/tools/am-hprofanalyzer.png" />
+
+<li>In the <strong>Analyzer Tasks</strong> list, select the items you want to find.</li>
+<li>Click Perform Analysis <img src="{@docRoot}images/tools/am-iperformanalysis.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Perform Analysis icon" />.</li>
+<li>Examine the items in <strong>Analysis Results</strong>. Click an item to display it in the
+  HPROF Viewer.</li>
+</ol>
+
+
+
+<h3 id="hprof-sorting">Sorting heap dump data</h3>
+<p>Follow this step:</p>
+<ul>
+<li>In the HPROF Viewer, click a column heading to sort the table by ascending or descending
+  order. </li>
+</ul>
+
+
+<h3 id="hprof-source">Displaying Java source</h3>
+<p>For some items displayed in the HPROF Viewer, you can go straight to its source code.
+  Follow this step:</p>
+<ul>
+<li>In the HPROF Viewer, right-click a class, instance, or item in the reference tree, and then
+  select <strong>Jump to Source</strong>. </li>
+
+
+<p>The source code appears in the Code Editor.</p>
+</ul>
+
+<h3 id="hprof-viewing">Viewing a saved HPROF file</h3>
+<p>After you do a heap dump, Android Studio automatically stores it so you can view it again.
+  Follow these steps:</p>
+
+<ol>
+<li>Click <strong>Captures</strong> in the main window.</li>
+
+<p>The <em>Captures</em> window appears.</p>
+<li>Open the <strong>Heap Snapshot</strong> folder.</li>
+<li>Double-click the file to view it.</li>
+</ol>
+
+
+<h3 id="hprof-renaming">Renaming an HPROF file</h3>
+
+<p>If you rename a file from within Android Studio, it continues to appear in <em>Captures</em>
+  window. Follow these steps:</p>
+<ol>
+<li>In the <em>Captures</em> window, right-click the file and select <strong>Rename</strong>. </li>
+<li>In the dialog, specify the name of the file and click <strong>OK</strong>.</li>
+</ol>
+
+
+<h3 id="hprof-locating">Locating a heap dump file on disk</h3>
+<p>You can quickly discover where Android Studio stored HPROF files on disk.</p>
+
+
+<p>Follow this step in Android Studio: </p>
+<ul>
+<li>In the <em>Captures</em> window, right-click a heap snapshot file and select
+  <strong>Show in files</strong>.</li>
+
+<p>Android Studio opens an operating system file browser displaying the location where the file
+  resides.</p>
+</ul>
+<p class="note"><strong>Note:</strong> If you move an HPROF file, Android Studio no longer
+  displays it in the <em>Captures</em> window. To display it, use
+  <strong>File</strong> &gt; <strong>Open</strong>. Also, if you want to rename the file, do it
+  from the <em>Captures</em> window and not in the operating system file browser. </p>
+
+<h3 id="hprof-deleting">Deleting a heap dump file</h3>
+
+<p>To delete a heap dump file, follow this step: </p>
+<ul>
+<li>In the <em>Captures</em> window, right-click a heap snapshot file and select
+  <strong>Delete</strong>.</li>
+
+<p>Android Studio deletes the file from the <em>Captures</em> dialog and from disk. </p>
+</ul>
+
+<h3 id="hprof-converting">Converting a heap dump file to standard HPROF format</h3>
+<p>You can convert an HPROF file to standard format so you can use it outside of Android Studio with
+  other analysis tools. Follow these steps: </p>
+<ol>
+<li>In the <em>Captures</em> window, right-click a heap snapshot file and select <strong>Export to
+  standard .hprof</strong>.</li>
+<li>In the <em>Convert Android Java Heap Dump</em> dialog, specify a filename and click
+  <strong>OK</strong>.</li>
+
+
+<p>Android Studio creates a binary HPROF file in the location you specified.</p>
+</ol>
+
+<h2 id="tracking">
+  Tracking and Analyzing Memory Allocation
+</h2>
+
+<p>Android Studio allows you to track memory allocation as it monitors memory use. Tracking memory
+  allocation allows you to monitor where objects are being allocated when you perform certain
+  actions. Knowing these allocations enables you to adjust the method calls related to those actions
+  to optimize app performance and memory use.</p>
+
+<p>The Allocation Tracker does the following:</p>
+<ul>
+<li>Shows when and where your code allocates object types, their size, allocating thread, and stack
+  traces.</li>
+<li>Helps recognize memory churn through recurring allocation/deallocation patterns.</li>
+<li>Help you track down memory leaks when used in combination with the HPROF Viewer. For example,
+  if you see a bitmap object resident on the heap, you can find its allocation location with
+  Allocation Tracker.</li>
+</ul>
+
+
+<p>However, it takes time and experience to learn to interpret the output from this tool.</p>
+
+<h3 id="alloc-snapshot">Taking and displaying a snapshot of allocation data</h3>
+
+<p>Follow these steps:</p>
+<ol>
+<li>While the Memory Monitor is running, click Start Allocation Tracking
+  <img src="{@docRoot}images/tools/am-ialloctracking.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Start Allocation Tracking icon" />. </li>
+<li>Click Start Allocation Tracking
+  <img src="{@docRoot}images/tools/am-ialloctracking.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Start Allocation Tracking icon" /> again to
+  deselect it and end the snapshot. </li>
+
+  <p>The Memory Monitor displays the period when it took the snapshot. In the following
+    figure, you can see the snapshot period, as shown on the left. By comparison, when you dump the
+    Java heap, the Memory Monitor displays just the point where the heap snapshot was taken, as
+    shown on the right.</p>
+    <img src="{@docRoot}images/tools/am-dumpalloc.png" />
+
+<p>Android Studio creates the heap snapshot file with the
+  filename <code>Allocations_<em>yyyy.mm.dd_hh.mm.ss</em>.alloc</code> using the year, month, day,
+  hour, minute, and second of the capture, for example,
+  <code>Allocations_2015.11.17_14.58.48.alloc</code>.</p>
+<li>Click <strong>Captures</strong> in the main window.</li>
+
+
+<p>The <em>Captures</em> window appears.</p>
+<li>Double-click the file to view it in the Allocation Tracker. </li>
+<li>Optionally click the graphic icon to display a visual representation of the data.
+  </li>
+<p>
+  The Allocation Tracker appears:
+</p>
+<img src="{@docRoot}images/tools/am-alloctracker.png" />
+<p>
+
+
+<p>The tool displays the following information: </p>
+
+<table>
+  <tr>
+    <th scope="col">Column</th>
+    <th scope="col">Description</th>
+  </tr>
+
+  <tr>
+    <td><strong>Method</strong></td>
+    <td>The Java method responsible for the allocation.</td>
+  </tr>
+  <tr>
+    <td><strong>Count</strong></td>
+    <td>Total number of instances allocated.</td>
+  </tr>
+  <tr>
+    <td><strong>Size</strong></td>
+    <td>The total amount of allocated memory in bytes.</td>
+  </tr>
+
+</table>
+
+
+<li>Select the Group By menu option you want to display: </li>
+<ul>
+<li><strong>Group by Allocator</strong> </li>
+<li><strong>Group by Method</strong></li>
+</ul>
+
+</ol>
+
+
+
+<h3 id="alloc-sorting">Sorting allocation data</h3>
+
+<p>Follow this step:</p>
+<ul>
+<li>In the Allocation Tracker, click a column heading to sort the table by ascending or
+  descending order. </li>
+</ul>
+
+
+<h3 id="alloc-source">Displaying Java source</h3>
+<p>For some items displayed in the Allocation Tracker, you can view the Java source. Follow one of
+  these steps:</p>
+<ul>
+<li>In the Allocation Tracker, right-click a method and then select <strong>Jump to Source</strong>.
+</li>
+<li>In the Allocation Tracker, select a method and then click Jump to Source
+  <img src="{@docRoot}images/tools/am-ijumptosource.png"
+  style="vertical-align:sub;margin:0;height:17px" alt="Jump to Source icon" />. </li>
+</ul>
+
+<p>The source code appears in the Code Editor.</p>
+
+<h3 id="alloc-viewing">Viewing a saved allocation tracking file</h3>
+<p>After you monitor allocation tracking, Android Studio automatically stores it so you can view it
+  again. Follow these steps:</p>
+
+
+<ol>
+<li>Click <strong>Captures</strong> in the main window.</li>
+
+
+<p>The <em>Captures</em> window appears.</p>
+<li>Open the <strong>Allocation Tracking</strong> folder.</li>
+<li>Double-click the file to view it.</li>
+</ol>
+
+
+<h3 id="alloc-renaming">Renaming an allocation tracking file</h3>
+
+<p>If you rename a file from within Android Studio, it continues to appear in the <em>Captures</em>
+  window. Follow these steps:</p>
+<ol>
+<li>In the <em>Captures</em> window, right-click the file and select <strong>Rename</strong>.</li>
+<li>In the <em>Rename</em> dialog, specify the name of the file and click <strong>OK</strong>.</li>
+</ol>
+
+
+<h3 id="alloc-locating">Locating an allocation tracking file</h3>
+<p>You can quickly discover where Android Studio stored allocation tracking files on disk.</p>
+
+
+<p>Follow this step in Android Studio: </p>
+<ul>
+<li>In the <em>Captures</em> window, right-click allocation file and select
+  <strong>Show in Files</strong>.</li>
+
+<p>Android Studio opens an operating system file browser displaying the location where the file
+  resides.</p>
+</ul>
+
+<p class="note"><strong>Note:</strong> If you move an allocation tracking file, Android Studio
+  no longer displays it in the <em>Captures</em> window. To display the file, use
+  <strong>File</strong>
+  &gt; <strong>Open</strong>. Also, rename the file from the <em>Captures</em>
+  window and not in the operating system file browser. </p>
+
+<h3 id="alloc-deleting">Deleting an allocation tracking file</h3>
+
+
+<p>Follow this step: </p>
+<ul>
+<li>In the <em>Captures</em> window, right-click an allocation tracking file and select
+  <strong>Delete</strong>.</li>
+
+<p>Android Studio deletes the file from the <em>Captures</em> dialog and from disk. </p>
+</ul>
diff --git a/docs/html/tools/help/am-network.jd b/docs/html/tools/help/am-network.jd
new file mode 100644
index 0000000..ae116ac
--- /dev/null
+++ b/docs/html/tools/help/am-network.jd
@@ -0,0 +1,130 @@
+page.title=Network Monitor
+parent.title=Android Monitor
+parent.link=android-monitor.html
+page.tags=monitor
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#running">Displaying a Running App in the Network Monitor</a></li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li>
+        <a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a>
+      </li>
+    <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+  </ol>
+
+<h2>Video</h2>
+  <ol>
+    <li><a href="https://www.youtube.com/watch?v=fEEulSk1kNY"
+      class="external-link">Battery Drain and Networking</a></li>
+  </ol>
+
+<h2>
+  Dependencies and Prerequisites
+</h2>
+
+<ul>
+  <li>
+    <a href="{@docRoot}tools/building/building-studio.html#RunningOnDeviceStudio">Connect a
+    hardware device</a> to your development computer.
+  </li>
+
+  <li>Make sure your development computer detects your hardware device, which often happens
+  automatically when you connect it to a USB port.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/device.html#device-developer-options">Enable</a> <strong><a href=
+    "{@docRoot}tools/device.html#device-developer-options">USB debugging</a></strong> in
+    <strong>Developer Options</strong> on the device.
+  </li>
+
+  <li>In your app, set the <code>debuggable</code> property to <code>true</code> in the manifest or
+  <code>build.gradle</code> file (it’s initially set by default).
+  </li>
+
+  <li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+  <strong>Enable ADB Integration</strong>.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+</ul>
+
+</div>
+</div>
+
+<p>
+  The Network Monitor makes it possible to track when your application is making network requests.
+  Using this tool, you can monitor how and when your app transfers data, and optimize the underlying
+  code appropriately.
+</p>
+
+<p>
+  By monitoring the frequency of data transfers, and the amount of data transferred during each
+  connection, you can identify areas of your app that can be made more efficient and use less
+  battery power.
+  Generally, you should look for short spikes that can be delayed, or that could cause a later
+  transfer to be preempted.
+</p>
+
+
+<h2 id="running">
+  Displaying a Running App in the Network Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Connect a hardware device.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/android-monitor.html#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Click the <strong>Network</strong> tab.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run it</a> on the hardware device.
+  </li>
+
+  <li>To start the Network Monitor, click Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> to
+  deselect it.
+  </li>
+<p>
+  Any network traffic begins to appear in the Network Monitor:
+</p>
+  <img src="{@docRoot}images/tools/am-networkmon.png" style="vertical-align:sub;margin:0;width:450px" />
+<p>
+  The Network Monitor adds up the amount of time it takes for the device to transmit and receive
+  kilobytes of data.
+  The y-axis is in kilobytes per second. The x-axis starts with seconds, and then minutes and
+  seconds, and so on.
+</p>
+  <li>To stop the Network Monitor, click Pause <img src="{@docRoot}images/tools/am-ipause.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Pause icon" /> again to
+  select it.
+  </li>
+</ol>
\ No newline at end of file
diff --git a/docs/html/tools/help/android-monitor.jd b/docs/html/tools/help/android-monitor.jd
new file mode 100644
index 0000000..4c9f80f
--- /dev/null
+++ b/docs/html/tools/help/android-monitor.jd
@@ -0,0 +1,462 @@
+page.title=Android Monitor
+parent.title=Tools
+parent.link=index.html
+page.tags=monitor
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#displaying">Displaying Android Monitor</a></li>
+  <li><a href="#profiling">Profiling a Running App in Android Monitor</a></li>
+  <li><a href="#switching">Switching between Devices and Apps</a></li>
+  <li><a href="#screencapture">Taking a Screen Capture of the Device</a></li>
+  <li><a href="#video">Recording a Video from the Screen</a></li>
+  <li><a href="#sysinfo">Examining System Information</a></li>
+  <li><a href="#terminating">Terminating the App</a></li>
+  <li><a href="#rearranging">Rearranging Android Monitor Windows</a></li>
+  <li><a href="#removing">Removing an App from a Device</a></li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+  </ol>
+
+
+<h2>
+  Dependencies and Prerequisites
+</h2>
+
+<ul>
+  <li>In your app, set the <code>debuggable</code> property to <code>true</code> in the manifest or
+  <code>build.gradle</code> file (it’s initially set by default).
+  </li>
+
+    <li>Enable ADB integration through <strong>Tools</strong> &gt; <strong>Android</strong> &gt;
+  <strong>Enable ADB Integration</strong>.
+    </li>
+
+  <li>Make sure your development computer detects your hardware device, which often happens
+  automatically when you connect it to a USB port.
+  </li>
+ <li>
+    <a href="{@docRoot}tools/device.html#device-developer-options">Enable</a> <strong><a href=
+    "{@docRoot}tools/device.html#device-developer-options">USB debugging</a></strong> in
+    <strong>Developer Options</strong> on the device or emulator.
+  </li>
+
+  <li>
+    <a href="{@docRoot}tools/help/monitor.html">Android Device Monitor</a> can’t be running.
+  </li>
+</ul>
+
+</div>
+</div>
+
+<p>
+  Android Monitor helps you to profile the performance of your apps so you can optimize, debug, and
+  improve them. It lets you monitor the following aspects of your apps from a hardware device or
+  the Android Studio emulator:
+</p>
+
+<ul>
+  <li>
+    <a href="{@docRoot}reference/android/util/Log.html">Log</a> messages, either
+    system- or user-defined
+  </li>
+
+  <li>Memory, CPU, and GPU usage
+  </li>
+
+  <li>Network traffic (hardware device only)
+  </li>
+</ul>
+
+<p>
+  Android Monitor contains the logcat, Memory, CPU, GPU, and Network Monitors that you can use
+  separately to examine these aspects of your apps.
+</p>
+
+
+<h2 id="displaying">
+  Displaying Android Monitor
+</h2>
+
+<p>
+  Android Monitor is integrated into the Android Studio main window:
+</p>
+
+<ul>
+  <li>To display Android Monitor, click <img src="{@docRoot}images/tools/am-icon.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Android Monitor icon" />, which by default
+  is at the bottom of the main window.
+  </li>
+
+  <li>To hide Android Monitor, click <img src="{@docRoot}images/tools/am-icon.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Android Monitor icon" /> again.
+  </li>
+</ul>
+<img src="{@docRoot}images/tools/am-androidmon.png" style="vertical-align:sub;margin:0;width:480px" />
+
+<h2 id="profiling">
+  Profiling a Running App in Android Monitor
+</h2>
+
+<p>
+  Follow these steps:
+</p>
+
+<ol>
+  <li>Optionally connect a hardware device.
+  </li>
+
+  <li>
+    <a href="#displaying">Display Android Monitor</a>.
+  </li>
+
+  <li>Open an app project and <a href=
+  "{@docRoot}tools/building/building-studio.html#RunningApp">run the app</a> on a device or
+  emulator.
+  </li>
+
+  <li>Click the tab for the monitor you want to view and start the monitor, if needed:
+    <ul>
+      <li><a href="{@docRoot}tools/help/am-logcat.html">logcat Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-memory.html">Memory Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-cpu.html">CPU Monitor</a>
+      </li>
+
+      <li><a href="{@docRoot}tools/help/am-gpu.html">GPU Monitor</a>
+      </li>
+
+      <li>
+        <a href="{@docRoot}tools/help/am-network.html">Network Monitor</a>
+      </li>
+    </ul>
+</ol>
+    <h2 id="switching">
+      Switching between Devices and Apps
+    </h2>
+
+    <p>
+      By default, Android Monitor displays data for your most recently run app. You can switch to
+      another device and app as needed. In addition to currently running apps, you can view
+      information about apps that are no longer running so you can continue to view any information
+      about them that you gathered previously.
+    </p>
+
+    <p>
+      At the top of the Android Monitor main window are two menus listing devices and processes. To
+      switch to another device, process, or both, follow these steps:
+    </p>
+
+    <ol>
+      <li>Select the device or emulator.
+      </li>
+
+    <p>
+      The Device menu lists the devices and emulators that are running or have run during your
+      current session. There are various status messages that can appear in the Device menu:
+    </p>
+
+    <ul>
+      <li>
+        <strong>DISCONNECTED</strong> - You closed an emulator or unplugged a device from the
+        computer.
+      </li>
+
+      <li>
+        <strong>UNAUTHORIZED</strong> - A device needs you to accept the incoming computer
+        connection. For example, if the connected device displays an <em>Allow USB Debugging</em>
+        dialog, click <strong>OK</strong> to allow the connection.
+      </li>
+
+      <li>
+        <strong>OFFLINE</strong> - Android Monitor can’t communicate with a device, even though it
+        has detected that device.
+      </li>
+    </ul>
+
+  <li>Select the process.
+  </li>
+</ol>
+
+<p>
+  The Process menu lists the processes that are running or have run during your current session. If
+  a process is no longer running, the menu displays a status of <strong>DEAD</strong>.
+</p>
+
+<h2 id="screencapture">
+  Taking a Screen Capture of the Device
+</h2>
+
+<p>
+  You can take a PNG screenshot of the display on a connected device or the emulator. You can use
+  the images for your marketing materials as well as for debugging, for example.
+</p>
+<p>
+  Follow these steps:
+</p>
+<ol>
+  <li>
+    <a href="{@docRoot}training/basics/firstapp/running-app.html">Run your
+    app</a> from within Android Studio.
+  </li>
+
+  <li>
+    <a href="#switching">Select the device and the process</a> in the Android Monitor
+    menus, if needed.
+  </li>
+
+  <li>Interact with the display on the device or emulator to stage the image you want.
+  </li>
+
+  <li>Click Screen Capture <img src="{@docRoot}images/tools/am-iscreencapture.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Screen Capture icon" /> in the
+    Android Monitor toolbar.
+  </li>
+  <p>The screenshot appears in a <em>Screenshot Editor</em> window.</p>
+
+  <li>Optionally change the image:
+    <ul>
+      <li>
+        <strong>Reload</strong> - Click to take a new screenshot.
+      </li>
+
+      <li>
+        <strong>Rotate</strong> - Click to rotate the image 90 degrees clockwise.
+      </li>
+
+      <li>
+        <strong>Frame Screenshot</strong> - Select this option and choose a device to add an image
+        of the device to the outside of the screenshot. Select <strong>Drop Shadow</strong>,
+        <strong>Screen Glare</strong>, or both to add these effects to your image.
+      </li>
+
+      <li>
+        <strong>Chessboard</strong> and <strong>Grid</strong> - Select an option to display these
+        behind your image.
+      </li>
+
+      <li>
+        <strong>Zoom In</strong>, <strong>Zoom Out</strong>, or <strong>Actual Size</strong> -
+        Click these options to get different perspectives of your image without changing the image
+        itself.
+      </li>
+    </ul>
+    </li>
+      <li>Click <strong>Save</strong> to save the image.
+      </li>
+</ol>
+
+<h2 id="video">
+  Recording a Video from the Screen
+</h2>
+
+<p>
+  Android Studio lets you record an MP4 video from your hardware device for a maximum of three
+  minutes. You can use the video for your marketing materials as well as for debugging, for
+  example.
+</p>
+<p>
+  Follow these steps:
+</p>
+<ol>
+  <li>
+    <a href="{@docRoot}training/basics/firstapp/running-app.html">Run your
+    app</a> from within Android Studio.
+  </li>
+
+  <li>
+    <a href="#switching">Select the device and the process</a> in the Android Monitor
+    menus, if needed.
+  </li>
+
+  <li>Interact with the display on the device or emulator to stage the start of the video.
+  </li>
+
+  <li>Click Screen Record <img src="{@docRoot}images/tools/am-ivideo.png" style="vertical-align:sub;margin:0;height:17px" alt="Screen Record icon" /> in the Android Monitor toolbar.
+  </li>
+  <p>The screenshot appears in a Screenshot Editor window.</p>
+
+  <li>In the <em>Screen Recorder Options</em> dialog, optionally change the recording options:
+  </li>
+<ul>
+  <li>
+    <strong>Bit Rate</strong> - Type a bit rate. The default is 4 Mbps.
+  </li>
+
+  <li>
+    <strong>Resolution</strong> - Type a width and height value in pixels. The value must be a
+    multiple of 16. The default is the resolution of the device.
+  </li>
+</ul>
+  <li>Click <strong>Start Recording</strong> to start the recording.
+  </li>
+
+  <li>Click <strong>Stop Recording</strong> to stop the recording.
+  </li>
+
+  <li>In the <em>Save As</em> dialog, save the MP4 file.
+  </li>
+
+  <li>In the <em>Screen Recorder</em> dialog, click one of the buttons to show the file location,
+  open the recording in a player, or to dismiss the dialog.
+  </li>
+</ol>
+
+<h2 id="sysinfo">
+  Examining System Information
+</h2>
+<p>
+  You can view <code>dumpsys</code> output from within Android Monitor. Follow these steps:
+</p>
+
+<ol>
+  <li>
+    <a href="{@docRoot}training/basics/firstapp/running-app.html">Run your
+    app</a> from within Android Studio.
+  </li>
+
+  <li>
+    <a href="#switching">Select the device and the process</a> in the Android Monitor
+    menus, if needed.
+  </li>
+
+  <li>Click System Information <img src="{@docRoot}images/tools/am-isysteminfo.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="System Information icon" /> and then a
+    menu item in the Android Monitor
+  toolbar.
+  </li>
+
+<p>
+  The menu items display different types of <code><a href=
+  "https://source.android.com/devices/tech/debug/dumpsys.html">dumpsys</a></code> output:
+</p>
+
+<ul>
+  <li>
+    <strong>Activity Manager State</strong> - <code>dumpsys activity</code>
+  </li>
+
+  <li>
+    <strong>Package Information</strong> - <code>dumpsys package</code>
+  </li>
+
+  <li>
+    <strong>Memory Usage</strong> - <code><a href=
+    "{@docRoot}tools/debugging/debugging-memory.html#ViewingAllocations">dumpsys
+    meminfo</a></code>
+  </li>
+
+  <li>
+    <strong>Memory Use Over Time</strong> - <code><a href=
+    "http://android-developers.blogspot.com/2014/01/process-stats-understanding-how-your.html">dumpsys
+    procstats</a></code>
+  </li>
+
+  <li>
+    <strong>Graphics State</strong> - <code><a href=
+    "{@docRoot}training/testing/performance.html">dumpsys gfxinfo</a></code>
+  </li>
+</ul>
+
+<p>
+  The information appears in an editable text file in the Code Editor.
+</p>
+</ol>
+
+<h2 id="terminating">
+  Terminating the App
+</h2>
+
+<p>
+  If you want to stop an app you’ve run from Android Studio, follow these steps:
+</p>
+
+<ol>
+  <li>
+    <a href="#switching">Select the device and the process</a> in the Android Monitor
+    menus, if needed.
+  </li>
+
+  <li>Click Terminate Application <img src="{@docRoot}images/tools/am-iterminate.png"
+    style="vertical-align:sub;margin:0;height:17px" alt="Terminate App icon" />.
+  </li>
+
+
+<p>
+  The process status changes to <strong>DEAD</strong> in the Processes menu. The emulator or device
+  continues to run, but the app closes. Any running monitors in Android Monitor stop.
+</p>
+</ol>
+
+<h2 id="rearranging">
+  Rearranging Android Monitor Windows
+</h2>
+
+<p>
+  You can rearrange the Android Monitor windows for optimal viewing during your tests:
+</p>
+
+<ul>
+  <li>To reorder the monitors, move the tabs back and forth.
+  </li>
+
+  <li>To move a monitor to a standalone window, grab a tab and move it to a different location on
+  the screen. Or, select <img src="{@docRoot}images/tools/am-igear.png" style="vertical-align:sub;margin:0;height:17px" alt="Gear menu icon" /> &gt; <strong>Floating Mode</strong>.
+  </li>
+
+
+  <li>To dock a standalone window, grab it and move it to the Android Monitor area. Or, select
+  <img src="{@docRoot}images/tools/am-igear.png" style="vertical-align:sub;margin:0;height:17px"
+  alt="Gear menu icon"> &gt; <strong>Floating Mode</strong> to deselect it.
+  </li>
+
+
+  <li>To combine two monitor displays together, grab a tab and move it onto another monitor.
+  </li>
+
+  <li>To hide a monitor, click the <img src="{@docRoot}images/tools/am-ihide.png" style="vertical-align:sub;margin:0;height:17px" alt="Hide icon" /> icon. To make it reappear, click the icon of
+  the monitor on the far right of the row of tabs.
+  </li>
+</ul>
+
+<h2 id="removing">
+  Removing an App from a Device
+</h2>
+
+<p>
+  To remove an app from a device you use for development, use the normal uninstall procedure on the
+  device.
+</p>
+
+<p>
+  If you run a new version of an app from Android Studio that’s been already installed on a
+  hardware device, the device displays an <em>Application Installation Failed</em> dialog. Click
+  <strong>OK</strong> to install the new version of the app.
+</p>
+
+
+
+
diff --git a/docs/html/tools/help/android.jd b/docs/html/tools/help/android.jd
old mode 100644
new mode 100755
index 0d7d2aa..fa359e9
--- a/docs/html/tools/help/android.jd
+++ b/docs/html/tools/help/android.jd
@@ -17,7 +17,7 @@
     "{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>.</li>
   </ul>
 
-<p>If you are using Android Studio or Eclipse, the <code>android</code> tool's features are
+<p>If you are using Android Studio, the <code>android</code> tool's features are
 integrated into the IDE, so you should not need to use this tool directly. </p>
 
   <p class="note"><strong>Note:</strong> The documentation of options below is not exhaustive
diff --git a/docs/html/tools/help/avd-manager.jd b/docs/html/tools/help/avd-manager.jd
old mode 100644
new mode 100755
index 20f6253..b3dcad5
--- a/docs/html/tools/help/avd-manager.jd
+++ b/docs/html/tools/help/avd-manager.jd
@@ -8,9 +8,6 @@
 
 <p>You can launch the AVD Manager in one of the following ways:</p>
 <ul>
-  <li>In Eclipse: select <strong>Window &gt; Android Virtual Device Manager</strong>, or click
-  the AVD Manager icon in the toolbar.</li>
-
   <li>In Android Studio: select <strong>Tools &gt; Android &gt; AVD Manager</strong>, or click
   the AVD Manager icon in the toolbar.</li>
 
diff --git a/docs/html/tools/help/gltracer.jd b/docs/html/tools/help/gltracer.jd
old mode 100644
new mode 100755
index 700ee39..866bdc9
--- a/docs/html/tools/help/gltracer.jd
+++ b/docs/html/tools/help/gltracer.jd
@@ -26,17 +26,6 @@
 
 <h2 id="running">Running Tracer</h2>
 
-<p>Tracer can be run as part of the Eclipse Android Development Tools (ADT) plugin or as part of the
-Device Monitor tool.</p>
-
-<p>To run Tracer in Eclipse:</p>
-
-<ol>
-  <li>Start Eclipse and open a workspace that contains an Android project.</li>
-  <li>Activate the perspective for Tracer by choosing <strong>Window > Open Perspective >
-Other...</strong></li>
-  <li>Select <strong>Tracer for OpenGL ES</strong> and click <strong>OK</strong>.</li>
-</ol>
 
 <p>To run Tracer in Device Monitor:</p>
 
@@ -64,7 +53,7 @@
 <ol>
   <li>Connect the Android device using a USB cable and make sure it is enabled for debugging. For
 more information, see <a href="{@docRoot}tools/device.html">Using Hardware Devices</a>.</li>
-  <li>In Eclipse or Device Monitor, activate the <strong>Tracer for OpenGL ES</strong>
+  <li>In the Device Monitor, activate the <strong>Tracer for OpenGL ES</strong>
 perspective.</li>
   <li>On the toolbar, click the trace capture button (<img
 src="{@docRoot}images/gltracer/icon-capture.png">).</li>
@@ -94,10 +83,10 @@
 <p>To review a captured trace:</p>
 
 <ol>
-  <li>In Eclipse or Device Monitor, activate the <strong>Tracer for OpenGL ES</strong>
+  <li>In Device Monitor, activate the <strong>Tracer for OpenGL ES</strong>
 perspective.</li>
   <li>On the toolbar, click the trace load button (<img
 src="{@docRoot}images/gltracer/icon-load-trace.png">).</li>
   <li>After loading a trace, select a frame and review the OpenGL ES calls. Drawing commands are
 highlighted in blue.</li>
-</ol>
\ No newline at end of file
+</ol>
diff --git a/docs/html/tools/help/image-asset-studio.jd b/docs/html/tools/help/image-asset-studio.jd
new file mode 100644
index 0000000..818b744
--- /dev/null
+++ b/docs/html/tools/help/image-asset-studio.jd
@@ -0,0 +1,200 @@
+page.title=Image Asset Studio
+parent.title=Tools
+parent.link=index.html
+page.tags=image asset
+@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#access">Accessing Image Asset Studio</a></li>
+  <li><a href="#creating">Creating Icons</a></li>
+  <li><a href="#customizing">Customizing Icons</a></li>
+  <li><a href="#saving">Saving Icons</a></li>
+  <li><a href="#configure">Configuring Build Properties</a></li>
+  <li><a href="#referincode">Referring to an Image Resource in Code</a></li>
+ </ol>
+</div>
+</div>
+
+
+<p>Image Asset Studio helps you to generate custom icons for your Android applications from existing
+ image, clipart, or text-string resources. It generates a set of icons at the appropriate resolution
+ for each <a href ="{@docRoot}guide/practices/screens_support.html#range"> generalized screen
+ density</a> that your app supports.
+  The newly generated icons are placed in density-specific folders (for example, <code>mipmap-mdpi/
+  </code> or <code>drawable-xxxhdpi/</code>), which
+ reside in the application’s <code>res/</code> folder. At runtime, Android uses the appropriate
+ resource based on the screen density of the device your application is running on. </p>
+
+<p>Image Asset Studio generates the following asset types:</p>
+<ul>
+<li>Launcher icons.</li>
+<li>Action bar and tab icons.</li>
+<li>Notification icons.</li>
+</ul>
+
+<p>This guide shows how to generate these assets using Image Asset Studio.</p>
+
+<h2 id="access">Accessing Image Asset Studio</h2>
+<p>Follow these steps to access Image Asset Studio:</p>
+<ol>
+<li>In Android Studio, open an Android app project.</li>
+<li>In the <a href= "{@docRoot}sdk/installing/create-project.html#enable-view">project-view-pane</a>
+ on the left side of the screen, select <strong>Android</strong> from the dropdown menu. The Android
+  project view appears in the pane.
+</li>
+<li>Right-click the <code>res/</code>folder and select <strong>New</strong> &gt; <strong>Image
+Asset</strong>. The Image Asset Studio window appears.</li>
+</ol>
+
+
+<h2 id="creating">Creating Icons</h2>
+<p>You can generate icons from <a href="#launch_image">image</a>, <a href="#launch_clipart">clipart
+</a>, or <a href="#launch_text">text-string</a> resources. This section explains how to work with
+each of these resources.
+</p>
+
+
+<h3 id="launch_image">From an image resource</h3>
+<ol>
+<li>Open the <em>Asset Type</em> dropdown menu and select an icon type.</li>
+<li>From the available <em>Foreground</em> options, select <strong>Image</strong>.</li>
+<li>Specify the asset to use by entering a filename in the <em>Image file</em> field or by
+ navigating to and selecting a file via the file browser. Image Asset Studio supports the following
+ file types, in descending order of desirability: PNG, JPG, and GIF.
+ <p>The icon to be generated appears in the <em>Preview</em> pane, displayed at sizes corresponding
+ to different screen densities.</p>
+
+<p>The rest of the settings on this screen are optional.
+To learn how to customize your icons using these options,
+ see <a href="#customizing">Customizing Icons</a>.</p></li>
+<li><a href="#saving">Save your icons</a> to the project folder.
+</li>
+</ol>
+
+
+<h3 id="launch_clipart">From a clipart resource</h3>
+<ol>
+<li>Open the <em>Asset Type</em> dropdown menu and select an icon type.</li>
+<li>From the available <em>Foreground</em> options, select <strong>Clipart</strong>. The <strong>
+Choose</strong> button appears.</li>
+<li>Click <strong>Choose</strong>. A window containing clipart resources appears.</li>
+<li> Select a clipart resource.
+<p>The icon to be generated appears in the <em>Preview</em> pane, displayed at sizes corresponding
+to different screen densities.</p>
+<p>The rest of the settings on this screen are optional.
+ To learn how to customize your icons using these options,
+ see <a href="#customizing">Customizing Icons</a>.</p></li>
+<li><a href="#saving">Save your icons</a> to the project folder.
+</li>
+</ol>
+
+
+
+<h3 id="launch_text"> From a text-string resource</h3>
+<ol>
+<li>Open the <em>Asset Type</em> dropdown menu and select an icon type.</li>
+<li>From the available <em>Foreground </em> options, select <strong>Text</strong>.</li>
+<li>Enter into the <em>Text</em> field the text you want to turn into an icon.
+<p>The icon to be generated appears in the <em> Preview</em> pane, displayed at sizes corresponding
+to different screen densities.</p></li>
+<li>To change the font, select a font from the <em>Font</em> dropdown menu.
+<p>The rest of the settings on this screen are optional.
+To learn how to customize your icons using these options,
+see <a href="#customizing">Customizing Icons</a>.</p></li>
+<li><a href="#saving">Save your icons</a> to the project folder.
+</li>
+</ol>
+
+
+<h2 id="customizing">Customizing Icons</h2>
+<p>Image Asset Studio lets you customize various visual effects for your icons. The following options
+are of particular note.</p>
+
+<ul>
+<li><em>Trim surrounding blank space</em>: This option allows you to adjust the margin between the
+icon graphic and border.
+<figure id="">
+  <img src="{@docRoot}images/tools/trim.png"
+    width="461">
+    <figcaption><strong>Figure 1</strong>: An icon before and after trimming.</figcaption>
+</figure>
+<li><em>Additional Padding</em>: This option allows you to adjust the icon's padding on all four
+sides. Use the slider to select a value between 0 and 100 pixels. For example, for a 100px X 100px
+image with padding of 25px, the resulting image is 150px X 150px.</li>
+ <li><em>Theme</em>: This option allows you to set a theme for your action bar and tab icons.
+ You can tint icons using the HOLO_DARK or HOLO_LIGHT theme or create
+  a custom theme using the color palette.</li>
+ <li><em>Resource name</em>: This option allows you to specify a resource name other than the
+ default one. If an asset with the specified resource name already exists, Image Asset Studio warns
+  you that it is going to overwrite the existing asset with this one.</li></ul>
+
+
+<h2 id="saving">Saving Icons</h2>
+ <p>This section explains how to save your icons to the <code>res/</code> folder. Do so by following
+  these steps:</p>
+ <ol>
+ <li>From the initial screen that appeared when you opened Image Asset Studio, click
+ <strong>Next</strong>. Image Asset Studio opens a new window.</li>
+ <li>Confirm the target module and resource directory settings for the icon.
+ If you don't want to use the default target module or resource directory, you can
+ <a href="#configure">enter your own values</a> for them.
+ </li>
+ <li>Click <strong>Finish</strong>. The Image Asset Studio generates new icon files, in PNG format,
+ according to the options you have chosen.
+ </li>
+ </ol>
+
+ <p class="note"><strong>Note:</strong> Launcher icon files reside in a different location from that
+  of other icons. They are located in the <code>mipmap/</code> folder. All other icon files reside
+  in the <code>drawable/</code> folder of your project.</p>
+
+
+<h2 id="configure">Configuring Build Properties</h2>
+<p>To change the module and resource directory, follow these steps:</p>
+<ol>
+<li>In the <em>Target Module</em> field, select a module to add the resource to.
+For more information,
+see <a href="{@docRoot}sdk/installing/create-project.html#CreatingAModule">
+Creating an Android Module</a>.
+ </li>
+<li>In the <em>Res Directory</em> field, select an option for where to place the image
+ asset:
+ <ul>
+  <li><code>src/main/res</code>: This source set applies to all build variants, including debug
+   and release.</li>
+  <li><code>src/debug/res</code>, <code> src/release/res</code>: These source sets override the main
+   source set and apply to one version of a build. The debug source set is for debugging only.
+   </li>
+   <li>User-defined: To define your own source set, select <strong>File</strong> &gt; <strong>Project
+   Structure</strong> &gt; <strong>app</strong>  &gt; <strong>Build Types</strong>.
+   For example, you could define a beta source set and create a version of an icon that includes the
+    text "BETA” in the bottom right corner. For more information, see
+    <a href="{@docRoot}tools/building/configuring-gradle.html#workBuildVariants">
+    Work with build variants</a>.</li>
+  </ul>
+</ol>
+
+
+
+
+<h2 id="referincode">Referring to an Image Resource in Code</h2>
+
+<p>After you have an image resource in the <code>res/</code>directory of your project, you can
+ reference it from your Java code or your XML layout using its
+ <a href="{@docRoot}guide/topics/resources/accessing-resources.html#ResourcesFromCode">
+ resource ID</a>. </p>
+
+<p> For example, the following XML references the <code>ic_launcher icon</code> in the
+<code>mipmap/</code> folder.</p>
+<pre>
+&lt;application android:name="ApplicationTitle"
+    android:label="&#64;string/app_label"
+    android:icon="&#64;mipmap/ic_launcher" &gt;</pre>
+
+<p>The following Java code sets an
+<a href="{@docRoot}reference/android/widget/ImageView.html">ImageView</a> to use
+ the <code>drawable/myimage.png</code> resource:</p>
+<pre>ImageView imageView = (ImageView) findViewById(R.id.myimageview);
+imageView.setImageResource(R.drawable.myimage);</pre>
diff --git a/docs/html/tools/help/index.jd b/docs/html/tools/help/index.jd
old mode 100644
new mode 100755
index d49a279..a97a551
--- a/docs/html/tools/help/index.jd
+++ b/docs/html/tools/help/index.jd
@@ -58,6 +58,9 @@
   <dt><a href="{@docRoot}tools/help/sqlite3.html">sqlite3</a></dt>
     <dd>Lets you access the SQLite data files created and used by Android applications.</dd>
 
+  <dt><a href="{@docRoot}tools/help/translations-editor.html">Translations Editor</a></dt>
+    <dd>Lets you view and update all your string resource translations in one convenient place.</dd>
+
 </dl>
 
 
@@ -65,6 +68,10 @@
 <h3 id="tools-debugging">Debugging Tools</h3>
 <dl>
 
+  <dt><a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a></dt>
+    <dd>Android Monitor is integrated into Android Studio and provides logcat, memory, CPU, GPU, and
+      network monitors for app debugging and analysis.</dd>
+
   <dt><a href="{@docRoot}tools/help/adb.html">adb</a></dt>
     <dd>Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with
         an emulator instance or connected Android-powered device. It also provides access to the
@@ -100,10 +107,6 @@
   <dt><a href="{@docRoot}tools/help/traceview.html">traceview</a></dt>
     <dd>Provides a graphical viewer for execution logs saved by your application.</dd>
 
-  <dt><a href="{@docRoot}tools/help/systrace.html">Systrace</a></dt>
-    <dd>Lets you analyze the execution of your application in the context of system processes,
-    to help diagnose display and performance issues.</dd>
-
 </dl>
 
 
@@ -134,7 +137,13 @@
 WYSIWYG editor. It also previews stretched versions of the image, and highlights the area in which
 content is allowed.</dd>
 
+<dt><a href="{@docRoot}tools/help/image-asset-studio.html">Image Asset Studio</a></dt>
+    <dd>Helps you to generate custom icons for your Android applications from existing images, cliparts, or text.
+     It generates a set of icons at the appropriate resolution for each generalized screen density that your app 
+     supports.</dd>
+
 <dt><a href="{@docRoot}tools/help/vector-asset-studio.html">Vector Asset Studio</a></dt>
+
     <dd>Helps you add material icons and import Scalable Vector Graphic (SVG) files into your
     Android Studio project as a drawable resource.</dd>
 
@@ -161,8 +170,8 @@
 
 <p>The other platform tools, such as <a href="{@docRoot}guide/components/aidl.html">aidl</a>,
 <code>aapt</code>, <code>dexdump</code>, and <code>dx</code>, are typically called by the Android
-build tools or Android Development Tools (ADT), so you rarely need to invoke these tools directly.
-As a general rule, you should rely on the build tools or the ADT plugin to call them as needed.</p>
+build tools, so you rarely need to invoke these tools directly.
+As a general rule, you should rely on the build tools to call them as needed.</p>
 
 <p class="note"><strong>Note:</strong> The Android SDK provides additional shell tools that can
 be accessed through <code>adb</code>, such as <a href="{@docRoot}tools/help/bmgr.html">bmgr</a> and
diff --git a/docs/html/tools/help/layoutopt.jd b/docs/html/tools/help/layoutopt.jd
old mode 100644
new mode 100755
index 1a18326..1bc6c64
--- a/docs/html/tools/help/layoutopt.jd
+++ b/docs/html/tools/help/layoutopt.jd
@@ -4,13 +4,18 @@
 @jd:body
 
 
-<p class="note"><strong>Note: </strong>The Android <code>layoutopt</code> tool has been replaced by the {@code lint} tool beginning in ADT and SDK Tools revision 16. The {@code lint} tool reports UI layout performance issues in a similar way as <code>layoutopt</code>, and detects additional problems.</p>
-<p>For more information about using {@code lint}, see <a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with lint</a> and the <a  href="{@docRoot}tools/help/lint.html">lint reference documentation</a>.</p>
+<p class="note"><strong>Note: </strong>The Android <code>layoutopt</code> tool has been replaced 
+by the {@code lint} tool beginning in SDK Tools revision 16. The {@code lint} tool reports UI 
+layout performance issues in a similar way as <code>layoutopt</code>, and detects additional problems.</p>
+<p>For more information about using {@code lint}, see 
+<a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with lint</a> and the 
+<a href="{@docRoot}tools/help/lint.html">lint reference documentation</a>.</p>
 
 <p><code>layoutopt</code> is a command-line tool that helps you optimize the
 layouts and layout hierarchies of your applications.<p>
 
-<p>This document is a reference to the available command line options. For more information and sample
+<p>This document is a reference to the available command line options. For more information and 
+sample
 output of the tool, see <a
 href="{@docRoot}tools/debugging/debugging-ui.html#layoutopt">Optimizing layouts with
 layoutopt</a>.</p>
diff --git a/docs/html/tools/help/logcat.jd b/docs/html/tools/help/logcat.jd
index b30971e..1d75848 100644
--- a/docs/html/tools/help/logcat.jd
+++ b/docs/html/tools/help/logcat.jd
@@ -3,15 +3,25 @@
 parent.link=index.html
 @jd:body
 
+  <div id="qv-wrapper">
+    <div id="qv">
+      <h2>See also</h2>
+
+      <ol>
+          <li><a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a></li>
+      </ol>
+    </div>
+  </div>
+
   <p>The Android logging system provides a mechanism for collecting and viewing system debug
   output. Logs from various applications and portions of the system are collected in a series of
-  circular buffers, which then can be viewed and filtered by the <code>logcat</code> command. You can use 
+  circular buffers, which then can be viewed and filtered by the <code>logcat</code> command. You can use
   <code>logcat</code> from an ADB shell to view the log messages.</p>
 
   <p>For complete information about logcat options and filtering specifications, see
   <a href="{@docRoot}tools/debugging/debugging-log.html">Reading and Writing Logs</a>.</p>
 
-  <p>For more information on accessing <code>logcat</code> from DDMS, instead of the command line, see 
+  <p>For more information on accessing <code>logcat</code> from DDMS, instead of the command line, see
   <a href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a>. </p>
 
   <h3>Syntax</h3>
@@ -34,7 +44,7 @@
 
   <h3>Options</h3>
   <p>The following table describes the command line options of <code>logcat</code>.</p>
-  
+
   <table>
     <tr>
       <th>Option</th>
@@ -46,7 +56,7 @@
       <td><code>-b&nbsp;&lt;buffer&gt;</code></td>
 
       <td>Loads an alternate log buffer for viewing, such as <code>events</code> or
-      <code>radio</code>. The <code>main</code> buffer is used by default. See <a href= 
+      <code>radio</code>. The <code>main</code> buffer is used by default. See <a href=
       "{@docRoot}tools/debugging/debugging-log.html#alternativeBuffers">Viewing Alternative Log Buffers</a>.</td>
     </tr>
 
diff --git a/docs/html/tools/help/monitor.jd b/docs/html/tools/help/monitor.jd
old mode 100644
new mode 100755
index 5f7b5ce..3541cc3
--- a/docs/html/tools/help/monitor.jd
+++ b/docs/html/tools/help/monitor.jd
@@ -8,6 +8,7 @@
       <ol>
         <li><a href="{@docRoot}tools/debugging/debugging-memory.html"
           >Investigating Your RAM Usage</a></li>
+          <li><a href="{@docRoot}tools/help/android-monitor.html">Android Monitor</a></li>
       </ol>
     </div>
   </div>
@@ -47,6 +48,4 @@
 <p>Start an Android emulator or connect an Android device via USB cable, and connect Device
 Monitor to the device by selecting it in the <strong>Devices</strong> window.</p>
 
-<p class="note"><strong>Note:</strong> Only one debugger can be connected to your device at a time.
-If you're using ADT, you may need to close the debugging tool before launching the Device Monitor
-in order for the device to be fully debuggable.</p>
+<p class="note"><strong>Note:</strong> Only one debugger can be connected to your device at a time.</p>
diff --git a/docs/html/tools/help/proguard.jd b/docs/html/tools/help/proguard.jd
old mode 100644
new mode 100755
index b5d84ed..e26aca0
--- a/docs/html/tools/help/proguard.jd
+++ b/docs/html/tools/help/proguard.jd
@@ -1,6 +1,7 @@
 page.title=ProGuard
 parent.title=Tools
 parent.link=index.html
+page.metaDescription=Use ProGuard to shrink, optimize, and obfuscate your code prior to release.
 @jd:body
 
  <div id="qv-wrapper">
@@ -117,76 +118,6 @@
   </pre>
 
 
-
-  <h2 id="enabling">Enabling ProGuard (Ant Builds)</h2>
-
-  <p>When you create an Android project, a <code>proguard.cfg</code> file is automatically
-  generated in the root directory of the project. This file defines how ProGuard optimizes and
-  obfuscates your code, so it is very important that you understand how to customize it for your
-  needs. The default configuration file only covers general cases, so you most likely have to edit
-  it for your own needs. See the following section about <a href="#configuring">Configuring
-  ProGuard</a> for information on customizing the ProGuard configuration file.</p>
-
-  <p>To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the
-  <code>proguard.config</code> property in the <code>&lt;project_root&gt;/project.properties</code>
-  file. The path can be an absolute path or a path relative to the project's root.</p>
-
-  <p>If you left the <code>proguard.cfg</code> file in its default location (the project's root
-  directory), you can specify its location like this:</p>
-
-<pre class="no-pretty-print">
-proguard.config=proguard.cfg
-</pre>
-
-<p>
-You can also move the the file to anywhere you want, and specify the absolute path to it:
-</p>
-
-<pre class="no-pretty-print">
-proguard.config=/path/to/proguard.cfg
-</pre>
-
-  <p>When you build your application in release mode, either by running <code>ant release</code> or
-  by using the <em>Export Wizard</em> in Eclipse, the build system automatically checks to see if
-  the <code>proguard.config</code> property is set. If it is, ProGuard automatically processes
-  the application's bytecode before packaging everything into an <code>.apk</code> file. Building in debug mode
-  does not invoke ProGuard, because it makes debugging more cumbersome.</p>
-
-  <p>ProGuard outputs the following files after it runs:</p>
-
-  <dl>
-    <dt><code>dump.txt</code></dt>
-    <dd>Describes the internal structure of all the class files in the <code>.apk</code> file</dd>
-
-    <dt><code>mapping.txt</code></dt>
-    <dd>Lists the mapping between the original and obfuscated class, method, and field names. 
-    This file is important when you receive a bug report from a release build, because it 
-    translates the obfuscated stack trace back to the original class, method, and member names.
-    See <a href="#decoding">Decoding Obfuscated Stack Traces</a> for more information.</dd>
-
-    <dt><code>seeds.txt</code></dt>
-    <dd>Lists the classes and members that are not obfuscated</dd>
-
-    <dt><code>usage.txt</code></dt>
-    <dd>Lists the code that was stripped from the <code>.apk</code></dd>
-  </ul>
-
-  <p>These files are located in the following directories:</p>
-
-  <ul>
-    <li><code>&lt;project_root&gt;/bin/proguard</code> if you are using Ant.</li>
-
-    <li><code>&lt;project_root&gt;/proguard</code> if you are using Eclipse.</li>
-  </ul>
-
-
-  <p class="caution"><strong>Caution:</strong> Every time you run a build in release mode, these files are
-  overwritten with the latest files generated by ProGuard. Save a copy of them each time you release your
-  application in order to de-obfuscate bug reports from your release builds.
-  For more information on why saving these files is important, see
-  <a href="#considerations">Debugging considerations for published applications</a>.
-  </p>
-
   <h2 id="configuring">Configuring ProGuard</h2>
 
   <p>For some situations, the default configurations in the ProGuard configuration file will
@@ -246,9 +177,7 @@
   By retaining a copy of the <code>mapping.txt</code> file for each release build,
   you ensure that you can debug a problem if a user encounters a bug and submits an obfuscated stack trace.
   A project's <code>mapping.txt</code> file is overwritten every time you do a release build, so you must be
-  careful about saving the versions that you need. For Eclipse, this file is stored in
-  <code>&lt;project_root&gt;/bin/proguard/</code>. For Android Studio, this file is stored in
-  the app <code>build/outs/</code> folder. </p>
+  careful about saving the versions that you need. The file is stored in the app <code>build/outs/</code> folder. </p>
 
   <p>For example, say you publish an application and continue developing new features of
   the application for a new version. You then do a release build using ProGuard soon after. The
diff --git a/docs/html/tools/help/project-mgmt.jd b/docs/html/tools/help/project-mgmt.jd
new file mode 100644
index 0000000..693f0de
--- /dev/null
+++ b/docs/html/tools/help/project-mgmt.jd
@@ -0,0 +1,174 @@
+page.title=Project Structure Management
+parent.title=Tools
+parent.link=index.html
+page.tags="android studio,project structure,target sdk,minimum sdk"
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#dev-svc">Developer Services</a></li>
+  <li><a href="#modules">Modules</a></li>
+</ol>
+
+</div>
+</div>
+
+<p>
+  You can use the <strong>Android Studio File &gt; Project Structure</strong> dialog box to
+  change configuration settings for your Android Studio project. This dialog
+  box is useful if you need to change some of the settings you chose when you
+  created the project.
+</p>
+
+<p>
+  The Project Structure dialog box contains the following sections:
+</p>
+
+<ul>
+  <li>
+    <strong>SDK Location:</strong> Sets the location of the JDK, Android SDK,
+    and Android NDK that the project uses.
+  </li>
+
+  <li>
+    <strong>Project:</strong> Sets version information for <a
+    href="{@docRoot}tools/building/plugin-for-gradle.html">Gradle</a> and for
+    the <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android plugin
+    for Gradle</a>.
+  </li>
+
+  <li>
+    <strong>Developer Services:</strong> Contains settings for Android Studio
+    add-in components from Google or third parties.
+  </li>
+
+  <li>
+    <strong>Modules:</strong> Used to set or change various module-specific
+    build settings, including the target and minimum SDK, the app signature,
+    and library dependencies. Most importantly, this is where you change
+    the settings for your project's <em>app</em> module.
+  </li>
+</ul>
+
+<p>
+  The following two sections provide information on the <a href=
+  "#dev-svc">Developer Services</a> and <a href="#modules">Modules</a>
+  sections.
+</p>
+
+<h2 id="dev-svc">
+  Developer Services
+</h2>
+
+<p>
+  The <em>Developer Services</em> section of the <em>Project Structure</em>
+  dialog box contains configuration pages
+  for several services that you can be use with your app. This section
+  contains the following pages:
+</p>
+
+<ul>
+  <li>
+    <strong>AdMob:</strong> Allows you to turn on Google's <a href=
+    "https://developers.google.com/admob/" class="external-link">AdMob</a>
+    component, which helps you understand your users and show them tailored
+    advertisements.
+  </li>
+
+  <li>
+    <strong>Analytics:</strong> Allows you to turn on <a href=
+    "https://developers.google.com/analytics/" class="external-link">Google
+    Analytics</a>, which helps you measure user interactions with your app
+    across various devices and environments.
+  </li>
+
+  <li>
+    <strong>Authentication:</strong> Allows users to use <a href=
+    "https://developers.google.com/identity/sign-in/android/" class=
+    "external-link">Google Sign-In</a> to sign in to your app with their Google
+    accounts.
+  </li>
+
+  <li>
+    <strong>Cloud:</strong> Allows you to turn on <a href=
+    "https://www.firebase.com/" class="external-link">Firebase</a> cloud-based
+    services for your app.
+  </li>
+
+  <li>
+    <strong>Notifications:</strong> Allows you to use <a href=
+    "https://developers.google.com/cloud-messaging/" class=
+    "external-link">Google Cloud Messaging</a> to communicate between your app
+    and your server.
+  </li>
+</ul>
+
+<p>
+  Turning on any of these services may cause Android Studio to add necessary
+  dependencies and permissions to your app. Each configuration page lists these
+  and other actions that Android Studio takes if you enable the associated service.
+</p>
+
+<h2 id="modules">
+  Modules
+</h2>
+
+<p>
+  The <em>Modules</em> settings section lets you change configuration
+  options for each of your project's modules. This section contains one page
+  for each module in your app. In many cases, the project has just a single
+  module, named <em>app</em>. However, if your project targets multiple form
+  factors, it might have several modules. For example, if your project contains
+  both a tablet app and a wearable app, it might have two modules, named
+  <em>mobile</em> and <em>wear</em>. For more information about project
+  modules, see <a href=
+  "{@docRoot}tools/projects/index.html#ApplicationModules">Android Application
+  Modules</a>.
+</p>
+
+<p>
+  Each module's settings page is divided into the following panes:
+</p>
+
+<ul>
+  <li>
+    <strong>Properties:</strong> Specifies the versions of the SDK and build
+    tools to use to compile the module.
+  </li>
+
+  <li>
+    <strong>Signing:</strong> Specifies the certificate to use to
+    <a href="{@docRoot}tools/publishing/app-signing.html#sign-auto">sign your
+    APK</a>.
+  </li>
+
+  <li>
+    <strong>Flavors:</strong> Lets you create multiple build <em>flavors</em>, where
+    each flavor specifies a set of configuration settings, such as the
+    module's minimum and target SDK version, and the
+    <a href="{@docRoot}tools/publishing/versioning.html">version code and
+    version name</a>. For example, you might define one flavor that has a
+    minimum SDK of 15 and a target SDK of 21, and another flavor that has a
+    minimum SDK of 19 and a target SDK of 23.
+  </li>
+
+  <li>
+    <strong>Build Types:</strong> Lets you create and modify build
+    configurations, as described in <a href=
+    "{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle
+    Builds</a>. By default, every module has <em>debug</em> and
+    <em>release</em> build types, but you can define more as needed.
+  </li>
+
+  <li>
+    <strong>Dependencies:</strong> Lists the library, file, and module
+    dependencies for this module. You can add, modify, and delete dependencies
+    from this pane. For more information about module dependencies, see
+    <a href="{@docRoot}tools/building/configuring-gradle.html#declareDeps">Declare
+    dependencies</a> in <a href=
+    "{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle
+    Builds</a>.
+  </li>
+</ul>
diff --git a/docs/html/tools/help/sdk-manager.jd b/docs/html/tools/help/sdk-manager.jd
old mode 100644
new mode 100755
index cc95edf..c8493dc
--- a/docs/html/tools/help/sdk-manager.jd
+++ b/docs/html/tools/help/sdk-manager.jd
@@ -34,7 +34,7 @@
 </ul>
 
 <p class="note"><strong>Tip:</strong> The standalone SDK Manager is still available from the
-command line, but we recommend it only for use with Eclipse ADT and standalone SDK installations.</p>
+command line, but we recommend it only for use with standalone SDK installations.</p>
 
 <p>By default, the SDK Manager installs the latest packages and tools. Click the checkbox next to
 each additional SDK platform and tool that you want to install. Clear the
@@ -99,7 +99,7 @@
 Android APIs (such as <a href="{@docRoot}guide/components/fragments.html">fragments</a>,
 plus others not included in the framework at all) on devices running
 a platform version as old as Android 1.6. All of the activity templates available when creating
-a new project with the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a>
+a new project with Android Studio
 require this. For more information, read <a
 href="{@docRoot}tools/support-library/index.html">Support Library</a>.</dd>
 
diff --git a/docs/html/tools/help/systrace.jd b/docs/html/tools/help/systrace.jd
old mode 100644
new mode 100755
index 2a8e86f..6aefffe
--- a/docs/html/tools/help/systrace.jd
+++ b/docs/html/tools/help/systrace.jd
@@ -30,9 +30,8 @@
 
 <h2 id="gui">User Interface</h2>
 
-<p>The Systrace tool can be run from the
-<a href="{@docRoot}tools/help/adt.html">Android Developer Tools</a> (ADT) in Eclipse,
-<a href="{@docRoot}sdk/installing/studio.html">Android Studio</a>,
+<p>The Systrace tool can be run from
+<a href="{@docRoot}sdk/installing/studio.html">Android Studio</a>
 or the Android <a href="{@docRoot}tools/help/monitor.html">Device Monitor</a>.
 
 <p>To run the Systrace capture user interface:</p>
@@ -40,26 +39,6 @@
 <div class="toggle-content closed">
 <p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
   <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
-  />Using Eclipse</a></p>
-
-  <div class="toggle-content-toggleme">
-  <ol>
-    <li>In Eclipse, open an Android application project.</li>
-    <li>Switch to the DDMS perspective, by selecting <strong>Window &gt; Perspectives &gt;
-      DDMS</strong>.</li>
-    <li>In the <strong>Devices</strong> tab, select the device on which to run a trace. If no
-      devices are listed, make sure your device is connected via USB cable and that debugging is
-      enabled on the device.</li>
-    <li>Click the Systrace icon <img src="{@docRoot}images/systrace/systrace-button.png"
-      style="margin:0"/> at the top of the <strong>Devices</strong> panel to configure tracing.</li>
-    <li>Set the tracing options and click <strong>OK</strong> to start the trace.</li>
-  </ol>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
-  <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
   />Using Android Studio</a></p>
 
   <div class="toggle-content-toggleme">
diff --git a/docs/html/tools/help/translations-editor.jd b/docs/html/tools/help/translations-editor.jd
new file mode 100644
index 0000000..ab557e1
--- /dev/null
+++ b/docs/html/tools/help/translations-editor.jd
@@ -0,0 +1,133 @@
+page.title=Translations Editor
+parent.title=Tools
+parent.link=index.html
+page.tags=translations
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#about">About the Translations Editor</a></li>
+  <li><a href="#running">Running the Translations Editor</a></li>
+  <li><a href="#managing">Managing String Resources</a></li>
+  <li><a href="#ordering">Ordering Translation Services</a></li>
+</ol>
+
+ <h2>See also</h2>
+  <ol>
+    <li><a href="{@docRoot}training/basics/supporting-devices/languages.html">Supporting Different
+    Languages</a></li>
+    <li><a href="{@docRoot}guide/topics/resources/localization.html">Localizing with Resources</a>
+    </li>
+    <li><a href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a>
+    </li>
+  </ol>
+
+</div>
+</div>
+
+<p>
+If your application supports multiple languages, you need to properly manage your
+translated string resources. Android Studio provides the Translations Editor to make viewing and
+managing your translated resources easier.
+</p>
+
+<h2 id="about">About the Translations Editor</h2>
+
+<p>
+Translated resources are stored in multiple XML files in multiple directories in your project.
+Manually finding and editing resource files across many translations can be difficult. Because of
+this, your application might have missing translations that go unnoticed until after your
+application has been built and distributed to users.
+</p>
+
+<p>
+The Translations Editor lets you view and update all your string resources in one convenient
+place. The editor gives you a single view of all of your translated resources, making it easy to
+change or add translations, and even find missing translations.
+</p>
+
+<img src="{@docRoot}images/tools/studio-translations-editor.png" />
+<p class="img-caption"><strong>Figure 1.</strong> Manage locales and strings in the
+Translations Editor.</p>
+
+<h2 id="running">Running the Translations Editor</h2>
+
+<p>
+Follow these steps to start the Translations Editor:
+</p>
+
+<ol>
+  <li>In Android Studio, open an Android app project.</li>
+  <li>In the <em>Project</em> window, select the
+  <a href="{@docRoot}sdk/installing/create-project.html#ProjectView">Android view</a>.</li>
+  <li>Open the <strong>res</strong> folder, and then open the <strong>values</strong> folder.</li>
+  <li>If a <strong>strings.xml</strong> folder is present, open this folder.</li>
+  <li>Right-click the <code>strings.xml</code> file (not folder) and select <strong>Open
+    Translations Editor</strong>.</li>
+</ol>
+
+<p>
+You can also access the Translations Editor by opening a <code>strings.xml</code> file for editing
+and clicking the <strong>Open editor</strong> link, or clicking the globe icon
+<img src="{@docRoot}images/tools/studio-globe-icon.png" alt=""/> in the Design layout view and
+choosing <strong>Edit Translations</strong>.
+</p>
+
+<h2 id="managing">Managing String Resources</h2>
+
+<p>
+The Translations Editor provides a view of all your string resources and current locale
+translations. The name of each resource is listed in the Key column, along with a default value
+for the key, a checkbox to mark the key as untranslatable, and values for each locale translation.
+</p>
+
+<p>
+Edit translations by double-clicking on the translation and editing the value directly
+in the list view, or selecting the translation and editing the <strong>Translation</strong> field
+value at the bottom of the editor. The default value can be edited by double-clicking on
+the default value or selecting the default value and updating the <strong>Default Value</strong>
+field.</p>
+
+<p>
+If a resource is missing a translation and isn't marked untranslatable, the key name is
+displayed in red. If you hover over a red resource, Android Studio displays details about the
+missing translations.
+</p>
+
+<h3 id="adding">Adding a new string resource</h3>
+
+<p>
+Add a new resource by clicking the add icon <img src="{@docRoot}images/tools/studio-add-icon.png"
+ alt=""/>. Android Studio prompts you for a key name,
+default value, and resource folder that contains the <code>strings.xml</code> file where the new
+resource is added.
+</p>
+
+<h3 id="adding_locales">Adding additional locales</h3>
+
+<p>
+Add additional locales by pressing the globe icon
+ <img src="{@docRoot}images/tools/studio-globe-icon.png" alt=""/> and selecting the locale you want
+to add. The Translations Editor adds the new locale column and creates the translation strings XML
+file in the appropriate project directory.
+</p>
+
+<p>
+The Translations Editor has
+<a class="external-link" href="https://tools.ietf.org/html/bcp47">BCP 47</a> support, and
+combines language and region codes into a single selection for targeted localizations.
+</p>
+
+<h2 id="ordering">Ordering Translation Services</h2>
+
+<p>
+Clicking the <strong>Order a translation</strong> link opens a page in your browser where you
+can upload string resource XML files and order translation services. App translation services are
+available from Google Play and other vendors. For more information about Google Play App
+Translation Services, see the <a class="external-link"
+href="http://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html">
+Google Play App Translation Service</a> announcement.
+</p>
+
diff --git a/docs/html/tools/help/zipalign.jd b/docs/html/tools/help/zipalign.jd
old mode 100644
new mode 100755
index 184cdcb..c70810c
--- a/docs/html/tools/help/zipalign.jd
+++ b/docs/html/tools/help/zipalign.jd
@@ -16,12 +16,12 @@
 
 <p>This tool should always be used to align your .apk file before 
 distributing it to end-users. The Android build tools can handle
-this for you. When using Eclipse with the ADT plugin, the Export Wizard
-will automatically zipalign your .apk after it signs it with your private key. 
+this for you. Android Studio automatically aligns your .apk after it signs it with your 
+private key. 
 The build scripts used
-when compiling your application with Ant will also zipalign your .apk,
+when compiling your application with Gradle also align your .apk,
 as long as you have provided the path to your keystore and the key alias in
-your project {@code ant.properties} file, so that the build tools 
+your project {@code gradle.properties} file, so that the build tools 
 can sign the package first.</p>
 
 <p class="caution"><strong>Caution:</strong> zipalign must only be performed
diff --git a/docs/html/tools/projects/projects-eclipse.jd b/docs/html/tools/projects/projects-eclipse.jd
deleted file mode 100644
index af85015..0000000
--- a/docs/html/tools/projects/projects-eclipse.jd
+++ /dev/null
@@ -1,273 +0,0 @@
-page.title=Managing Projects from Eclipse with ADT
-parent.title=Managing Projects
-parent.link=index.html
-@jd:body
-
- <div id="qv-wrapper">
-    <div id="qv">
-      <h2>In this document</h2>
-
-      <ol>
-        <li><a href="#CreatingAProject">Creating an Android Project</a></li>
-
-        <li><a href="#SettingUpLibraryProject">Setting up a Library Project</a></li>
-
-        <li><a href="#ReferencingLibraryProject">Referencing a Library Project</a></li>
-      </ol>
-
-      <h2>See also</h2>
-
-      <ol>
-        <li><a href=
-        "{@docRoot}tools/testing/testing_eclipse.html#CreateTestProjectEclipse">Testing
-        from Eclipse with ADT</a></li>
-      </ol>
-    </div>
-  </div>
-
-  <p>Eclipse and the ADT plugin provide GUIs and wizards to create all three types of projects
-  (Android project, Library project, and Test project):
-
-  <ul>
-    <li>An Android project contains all of the files and resources that are needed to build a project into
-  an .apk file for installation. You need to create an Android project for any application that you
-  want to eventually install on a device.</li>
-
-  <li>You can also designate an Android project as a library project, which allows it to be shared
-  with other projects that depend on it. Once an Android project is designated as a library
-  project, it cannot be installed onto a device.</li>
-
-  <li>Test projects extend JUnit test functionality to include Android specific functionality. For
-  more information on creating a test project, see <a href=
-  "{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse with ADT</a>.</li>
-  </ul>
-
-  <h2 id="CreatingAProject">Creating an Android Project</h2>
-
-  <p>The ADT plugin provides a <em>New Project Wizard</em> that you can use to quickly create a new
-  Android project (or a project from existing code). To create a new project:</p>
-
-  <ol>
-    <li>Select <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Project</strong>.</li>
-
-    <li>Select <strong>Android</strong> &gt; <strong>Android Application Project</strong>, and click
-    <strong>Next</strong>.</li>
-
-    <li>Enter the basic settings for the project:
-
-      <ul>
-        <li>Enter an <strong>Application Name</strong>. This name is used as the title of your
-        application launcher icon when it is installed on a device.</li>
-
-        <li>Enter a <strong>Project Name</strong>. This text is used as the name of the folder where
-        your project is created.</li>
-
-        <li>Enter a <strong>Package Name</strong>. This class package namespace creates the initial
-        package structure for your applications code files and is added as the
-        <a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">{@code package}</a>
-        attribute in your application's
-        <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">Android manifest file</a>.
-        This manifest value serves as the unique identifier for your application app when you
-        distribute it to users. The package name must follow the same rules as packages in the Java
-        programming language.</li>
-
-        <li>Select a <strong>Minimum Required SDK</strong>. This setting indicates the lowest
-        version of the Android platform that your application supports. This value sets the
-        <code>minSdkVersion</code> attribute in the
-        <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a>
-        element of your manifest file.</li>
-
-        <li>Select a <strong>Target SDK</strong>. This setting indicates the highest version of
-        Android with which you have tested with your application and sets the
-        <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
-        targetSdkVersion}</a> attribute in your application's' manifest file.
-
-          <p class="note"><strong>Note:</strong> You can change the target SDK for your
-          project at any time: Right-click the project in the Package Explorer, select
-          <strong>Properties</strong>, select <strong>Android</strong> and then check the desired
-          <strong>Project Build Target</strong>.</p>
-        </li>
-
-        <li>Select a <strong>Compile With</strong> API version. This setting specifies what version
-        of the SDK to compile your project against. We strongly recommend using the most recent
-        version of the API.</li>
-
-        <li>Select a <strong>Theme</strong>. This setting specifies which standard Android
-        <a href="{@docRoot}design/style/themes.html">visual style</a> is applied to your
-        application.</li>
-
-        <li>Click <strong>Next</strong>.</li>
-      </ul>
-    </li>
-
-    <li>In the <strong>Configure Project</strong> page, select the desired settings and click
-      <strong>Next</strong>. Leave the <strong>Create activity</strong> option checked so you can
-      start your application with some essential components.</li>
-
-    <li>In the <strong>Configure Launcher Icon</strong> page, create an icon and click
-      <strong>Next</strong>.</li>
-
-    <li>In the <strong>Create Activity</strong> page, select activity template and click
-      <strong>Next</strong>. For more information about Android code templates, see
-      <a href="{@docRoot}tools/projects/templates.html">Using Code Templates</a>.
-      </li>
-
-    <li>Click <strong>Finish</strong> and the wizard creates a new project according to the options
-      you have chosen.</li>
-  </ol>
-
-  <p class="note"><strong>Tip:</strong> You can also start the New Project Wizard by clicking the
-  <strong>New</strong> <img src="/images/tools/eclipse-new.png"
-  style="vertical-align:baseline;margin:0"> icon in the toolbar.</p>
-
-
-  <h2 id="SettingUpLibraryProject">Setting up a Library Project</h2>
-
-  <p>A library project is a standard Android project, so you can create a new one in the same way
-  as you would a new application project.</p>
-
-  <p>To create a new library project:</p>
-
-  <ol>
-    <li>Select <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Project</strong>.</li>
-
-    <li>Select <strong>Android</strong> &gt; <strong>Android Application Project</strong>, and click
-    <strong>Next</strong>.</li>
-
-    <li>Enter the basic settings for the project, including <strong>Application Name</strong>,
-    <strong>Project Name</strong>, <strong>Package Name</strong>, and SDK settings.</li>
-
-    <li>In the <strong>Configure Project</strong> page, select the <strong>Mark this project as a
-    library</strong> option to flag the project as a library.</li>
-
-    <li>Set the other options as desired and click <strong>Next</strong>.</li>
-
-    <li>Follow the instructions to complete the wizard and create a new library project.</li>
-  </ol>
-
-  <p>You can also convert an existing application project into a library. To do so, simply open the
-    Properties for the project and select the <strong>is Library</strong> checkbox, as shown in
-    the figure below.</p>
-
-  <img src= "{@docRoot}images/developing/adt-props-isLib.png">
-  <p class="img-caption"><strong>Figure 1.</strong> Marking a project as an Android library.</p>
-
-  <p>To set the a project's properties to indicate that it is a library project:</p>
-
-  <ol>
-    <li>In the <strong>Package Explorer</strong>, right-click the library project and select
-    <strong>Properties</strong>.</li>
-
-    <li>In the <strong>Properties</strong> window, select the <strong>Android</strong> properties
-    group in the left pane and locate the <strong>Library</strong> properties in the right pane.</li>
-
-    <li>Select the <strong>is Library</strong> check box and click <strong>Apply</strong>.</li>
-
-    <li>Click <strong>OK</strong> to close the <strong>Properties</strong> window.</li>
-  </ol>
-
-  <p>Once you create a library project or mark an existing project as a library, you can reference
-  the library project in other Android application projects. For more information, see the
-  <a href="#ReferencingLibraryProject">Referencing a library project</a> section.
-
-
-  <h3>Creating the manifest file</h3>
-
-  <p>A library project's manifest file must declare all of the shared components that it includes,
-  just as would a standard Android application. For more information, see the documentation for
-  <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a>.</p>
-
-  <p>For example, the <a href=
-  "{@docRoot}resources/samples/TicTacToeLib/AndroidManifest.html">TicTacToeLib</a> example library
-  project declares the activity <code>GameActivity</code>:</p>
-  <pre>
-&lt;manifest&gt;
-  ...
-  &lt;application&gt;
-    ...
-    &lt;activity android:name="GameActivity" /&gt;
-    ...
-  &lt;/application&gt;
-&lt;/manifest&gt;
-</pre>
-
-  <h2 id="ReferencingLibraryProject">Referencing a library project</h2>
-
-  <p>If you are developing an application and want to include the shared code or resources from a
-  library project, you can do so easily by adding a reference to the library project in the
-  application project's Properties.</p>
-
-  <p>To add a reference to a library project, follow these steps:</p>
-
-  <ol>
-    <li>Make sure that both the project library and the application project that depends on it are
-      in your workspace. If one of the projects is missing, import it into your workspace.</li>
-
-    <li>In the <strong>Package Explorer</strong>, right-click the dependent project and select
-    <strong>Properties</strong>.</li>
-
-    <li>In the <strong>Properties</strong> window, select the "Android" properties group at left
-    and locate the <strong>Library</strong> properties at right.</li>
-
-    <li>Click <strong>Add</strong> to open the <strong>Project Selection</strong> dialog.</li>
-
-    <li>From the list of available library projects, select a project and click
-    <strong>OK</strong>.</li>
-
-    <li>When the dialog closes, click <strong>Apply</strong> in the <strong>Properties</strong>
-    window.</li>
-
-    <li>Click <strong>OK</strong> to close the <strong>Properties</strong> window.</li>
-  </ol>
-
-  <p>As soon as the Properties dialog closes, Eclipse rebuilds the project, including the contents
-  of the library project.</p>
-
-  <p>Figure 2 shows the Properties dialog that lets you add library references and move
-  them up and down in priority.</p><img src="{@docRoot}images/developing/adt-props-libRef.png">
-
-  <p class="img-caption"><strong>Figure 2.</strong> Adding a reference to a
-     library project in the properties of an application project.</p>
-
-  <p>If you are adding references to multiple libraries, note that you can set their relative
-  priority (and merge order) by selecting a library and using the <strong>Up</strong> and
-  <strong>Down</strong> controls. The tools merge the referenced libraries with your application
-  starting from lowest priority (bottom of the list) to highest (top of the list). If more than one
-  library defines the same resource ID, the tools select the resource from the library with higher
-  priority. The application itself has highest priority and its resources are always used in
-  preference to identical resource IDs defined in libraries.</p>
-
-  <h3>Declaring library components in the manifest file</h3>
-
-  <p>In the manifest file of the application project, you must add declarations of all components
-  that the application will use that are imported from a library project. For example, you must
-  declare any <code>&lt;activity&gt;</code>, <code>&lt;service&gt;</code>,
-  <code>&lt;receiver&gt;</code>, <code>&lt;provider&gt;</code>, and so on, as well as
-  <code>&lt;permission&gt;</code>, <code>&lt;uses-library&gt;</code>, and similar elements.</p>
-
-  <p>Declarations should reference the library components by their fully-qualified package names,
-  where appropriate.</p>
-
-  <p>For example, the <a href=
-  "{@docRoot}resources/samples/TicTacToeMain/AndroidManifest.html">TicTacToeMain</a> example
-  application declares the library activity <code>GameActivity</code> like this:</p>
-  <pre>
-&lt;manifest&gt;
-  ...
-  &lt;application&gt;
-    ...
-    &lt;activity android:name="com.example.android.tictactoe.library.GameActivity" /&gt;
-    ...
-  &lt;/application&gt;
-&lt;/manifest&gt;
-</pre>
-
-  <p>For more information about the manifest file, see the documentation for <a href=
-  "{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a>.</p>
-
-
-
-
-
-
-
diff --git a/docs/html/tools/projects/templates.jd b/docs/html/tools/projects/templates.jd
index 002e2c5..676ca50 100644
--- a/docs/html/tools/projects/templates.jd
+++ b/docs/html/tools/projects/templates.jd
@@ -1,6 +1,6 @@
 page.title=Using Code Templates
 page.image=images/cards/card-using-code-templates_16x9_2x.png
-page.metaDescription=Quickly create Android app projects with various UI or functional components. 
+page.metaDescription=Quickly create Android app projects with various UI or functional components.
 page.tags=studio,templates,firstapp
 @jd:body
 
@@ -29,7 +29,6 @@
     </div>
   </div>
 
-<img style="float:right" src="{@docRoot}images/cards/card-using-code-templates_16x9_2x.png">
 <p>The SDK tools provide templates for quickly creating Android application projects with the basic
   structure or for adding components to your existing application modules. The code templates
   provided by the Android SDK follow the Android design and development guidelines to get you on the
@@ -45,6 +44,18 @@
   <li><a href="#object-templates">Other Templates</a></li>
 </ul>
 
+<p>
+  The templates use <a href=
+  "{@docRoot}tools/support-library/features.html">support library</a> objects
+  if such objects are available. The support library objects make new features
+  available on the widest range of platforms. For example, since the templates
+  use the <a href=
+  "{@docRoot}tools/support-library/features.html#v7-appcompat">appcompat
+  library</a>, apps based on the templates use <a href=
+  "{@docRoot}design/material/index.html">material design</a> user interface
+  principles even if they are running on older Android devices that do not
+  directly support material design.
+</p>
 
 <h2 id="app-templates">Application Templates</h2>
 
diff --git a/docs/html/tools/publishing/app-signing-eclipse.jd b/docs/html/tools/publishing/app-signing-eclipse.jd
deleted file mode 100644
index 738e488..0000000
--- a/docs/html/tools/publishing/app-signing-eclipse.jd
+++ /dev/null
@@ -1,64 +0,0 @@
-page.title=Signing Your Applications from Eclipse with ADT
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-
-<ol>
-<li><a href="#signing">Signing Your App for Release</a></li>
-</ol>
-
-<h2>See also</h2>
-
-<ol>
-<li><a href="{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a></li>
-</ol>
-
-</div>
-</div>
-
-
-<p>Android requires that all apps be digitally signed with a certificate before they can be
-installed. Android uses this certificate to identify the author of an app, and the certificate
-does not need to be signed by a certificate authority.</p>
-
-<p>This document provides detailed instructions about how to sign your apps in release mode with the
-ADT plugin for Eclipse. For information about how to obtain a certificate for signing your app, see
-<a href="{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a>.
-</p>
-
-
-<h2 id="signing">Signing Your App for Release</h2>
-
-<p>To sign your app for release with ADT, follow these steps:</p>
-
-<ol>
-<li>Select the project in the Package Explorer and select <strong>File</strong> >
-<strong>Export</strong>.</li>
-<li>On the <em>Export</em> window, select <strong>Export Android Application</strong> and click
-<strong>Next</strong>.</li>
-<li>On the <em>Export Android Application</em> window, select the project you want to sign and
-click <strong>Next</strong>.</li>
-<li>
-<p>On the next window, enter the location to create a keystore and a keystore password. If you
-already have a keystore, select <strong>Use existing keystore</strong>, enter your keystore's
-location and password, and go to step 6.</p>
-<img src="{@docRoot}images/tools/signadt3.png" alt=""
-     width="488" height="270" style="margin-top:15px"/>
-<p class="img-caption"><strong>Figure 6</strong>. Select a keystore in ADT.</p>
-</li>
-<li><p>On the next window, provide the required information as shown in figure 5.<p>
-<p>Your key should be valid for at least 25 years, so you can sign app updates with the same key
-through the lifespan of your app.</p>
-<img src="{@docRoot}images/tools/signadt4.png" alt=""
-     width="488" height="448" style="margin-top:15px"/>
-<p class="img-caption"><strong>Figure 7</strong>. Create a private key in ADT.</p>
-</li>
-<li><p>On the next window, select the location to export the signed APK.</p>
-<img src="{@docRoot}images/tools/signadt5.png" alt=""
-     width="488" height="217" style="margin-top:15px"/>
-<p class="img-caption"><strong>Figure 8</strong>. Export the signed APK in ADT.</p>
-</li>
-</ol>
diff --git a/docs/html/tools/publishing/app-signing.jd b/docs/html/tools/publishing/app-signing.jd
index af5b771..8f68ff7 100644
--- a/docs/html/tools/publishing/app-signing.jd
+++ b/docs/html/tools/publishing/app-signing.jd
@@ -16,7 +16,7 @@
 </li>
 <li><a href="#studio">Signing Your App in Android Studio</a>
   <ol>
-  	<li><a href="sign-auto">Automatically Signing Your App</a></li>
+  	<li><a href="#sign-auto">Automatically Signing Your App</a></li>
   </ol>
 </li>
 <li><a href="#studio">Signing Your App with Android Studio</a></li>
@@ -65,9 +65,9 @@
 
 <p>By default, the <em>debug</em> configuration uses a debug keystore, with a known
 password and a default key with a known password.
-The debug keystore is located in $HOME/.android/debug.keystore, and is created if not present.
-
-The debug build type is set to use this debug <code>SigningConfig</code> automatically. </p>
+The debug keystore is located in <code>$HOME/.android/debug.keystore</code>, and
+is created if not present.
+The debug build type is set to use this debug <code>SigningConfig</code> automatically.</p>
 
 <p>For more information about how to build and run apps in debug mode, see
 <a href="{@docRoot}tools/building/index.html">Building and Running</a>.</p>
@@ -82,7 +82,8 @@
 <li><em>Create a private key.</em> A <strong>private key</strong> represents the entity to
 be identified with the app, such as a person or a company.</li>
 <li><p>Add the signing configuration to the build file for the <code>app</code> module:</p>
-        <p><pre>
+
+<pre>
 ...
 android {
     ...
@@ -103,12 +104,13 @@
     }
 }
 ...
-</pre></p>
+</pre>
     </li>
 <li>Invoke the <code>assembleRelease</code> build task from Android Studio.</li>
 </ol>
 
-<p>The package in <code>app/build/apk/app-release.apk</code> is now signed with your release key.</p>
+<p>The package in <code>app/build/apk/app-release.apk</code> is now signed with your release
+key.</p>
 
 <p class="note"><strong>Note:</strong> Including the passwords for your release key and keystore
 inside the build file is not a good security practice. Alternatively, you can configure the build
@@ -156,17 +158,19 @@
 
 <ol>
 <li>On the menu bar, click <strong>Build</strong> &gt; <strong>Generate Signed APK</strong>.</li>
-<li><p>On the <em>Generate Signed APK Wizard</em> window, click <strong>Create new</strong> to create
-a new keystore.</p><p>If you already have a keystore, go to step 4.</p></li>
+<li><p>On the <em>Generate Signed APK Wizard</em> window, click <strong>Create new</strong> to
+create a new keystore.</p>
+<p>If you already have a keystore, go to step 4.</p></li>
 <li><p>On the <em>New Key Store</em> window, provide the required information as shown
-in figure 1.</p><p>Your key should be valid for at least 25 years, so you can sign app updates
+in figure 1.</p>
+<p>Your key should be valid for at least 25 years, so you can sign app updates
 with the same key through the lifespan of your app.</p>
 <img src="{@docRoot}images/tools/signstudio2.png" alt=""
      width="416" height="364" style="margin-top:15px"/>
 <p class="img-caption"><strong>Figure 1</strong>. Create a new keystore in Android Studio.</p>
 </li>
-<li><p>On the <em>Generate Signed APK Wizard</em> window, select a keystore, a private key, and enter
-the passwords for both. Then click <strong>Next</strong>.</p>
+<li><p>On the <em>Generate Signed APK Wizard</em> window, select a keystore, a private key, and
+enter the passwords for both. Then click <strong>Next</strong>.</p>
 <img src="{@docRoot}images/tools/signstudio1.png" alt=""
      width="349" height="232" style="margin-top:15px"/>
 <p class="img-caption"><strong>Figure 2</strong>. Select a private key in Android Studio.</p>
@@ -193,14 +197,16 @@
 more than one), and enter the required information.</p>
 <img src="{@docRoot}images/tools/signstudio10.png" alt=""
      width="623" height="372" style="margin-top:15px"/>
-<p class="img-caption"><strong>Figure 4</strong>. Create a signing configuration in Android Studio.</p>
+<p class="img-caption"><strong>Figure 4</strong>. Create a signing configuration in Android
+Studio.</p>
 </li>
 <li>Click on the <strong>Build Types</strong> tab.</li>
 <li>Select the <strong>release</strong> build.</li>
 <li><p>Under <em>Signing Config</em>, select the signing configuration you just created.</p>
 <img src="{@docRoot}images/tools/signstudio11.png" alt=""
      width="623" height="372" style="margin-top:15px"/>
-<p class="img-caption"><strong>Figure 5</strong>. Select a signing configuration in Android Studio.</p>
+<p class="img-caption"><strong>Figure 5</strong>. Select a signing configuration in Android
+Studio.</p>
 </li>
 <li>Click <strong>OK</strong>.</li>
 </ol>
@@ -299,9 +305,10 @@
 <ol>
 <li>
   <p>Generate a private key using
-  <code><a href="http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html">keytool</a></code>.
+  <code><a href="http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html"
+    >keytool</a></code>.
   For example:</p>
-<pre>
+<pre class="no-pretty-print">
 $ keytool -genkey -v -keystore my-release-key.keystore
 -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
 </pre>
@@ -317,7 +324,7 @@
   <p>Sign your app with your private key using
   <code><a href="http://docs.oracle.com/javase/6/docs/technotes/tools/windows/jarsigner.html">jarsigner</a></code>:
   </p>
-<pre>
+<pre class="no-pretty-print">
 $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
 -keystore my-release-key.keystore my_application.apk alias_name
 </pre>
@@ -326,14 +333,14 @@
 </li>
 <li style="margin-top:18px">
   <p>Verify that your APK is signed. For example:</p>
-<pre>
+<pre class="no-pretty-print">
 $ jarsigner -verify -verbose -certs my_application.apk
 </pre>
 </li>
 <li style="margin-top:18px">
   <p>Align the final APK package using
   <code><a href="{@docRoot}tools/help/zipalign.html">zipalign</a></code>.</p>
-<pre>
+<pre class="no-pretty-print">
 $ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
 </pre>
   <p><code>zipalign</code> ensures that all uncompressed data starts with a particular byte
diff --git a/docs/html/tools/publishing/preparing.jd b/docs/html/tools/publishing/preparing.jd
index 0b61aa7..3acaedc 100644
--- a/docs/html/tools/publishing/preparing.jd
+++ b/docs/html/tools/publishing/preparing.jd
@@ -1,4 +1,5 @@
 page.title=Preparing for Release
+page.metaDescription=Developer documentation on how to build the signed, release-ready APK. This process is the same for all Android apps.
 @jd:body
 
 <div id="qv-wrapper">
diff --git a/docs/html/tools/publishing/publishing_overview.jd b/docs/html/tools/publishing/publishing_overview.jd
index e42b2fb..167758a 100644
--- a/docs/html/tools/publishing/publishing_overview.jd
+++ b/docs/html/tools/publishing/publishing_overview.jd
@@ -1,4 +1,5 @@
 page.title=Publishing Overview
+page.metaDescription=Start here for an overview of publishing options for Android apps.
 @jd:body
 
 <div id="qv-wrapper">
diff --git a/docs/html/tools/revisions/gradle-plugin.jd b/docs/html/tools/revisions/gradle-plugin.jd
index b7d7630..20f6b34 100644
--- a/docs/html/tools/revisions/gradle-plugin.jd
+++ b/docs/html/tools/revisions/gradle-plugin.jd
@@ -584,9 +584,9 @@
 
 <h2>Updating the Android Plugin for Gradle Version</h2>
 <p>The Android Plugin for Gradle version is specified in the
-<strong>File &gt; Project Structure</strong> menu or the project-level
+<strong>File &gt; Project Structure &gt; Project</strong> menu and the project-level
 <code>build.gradle</code> file. The plugin version applies to all modules built in that
-Android Studio project. This example updates the Android Plugin for Gradle to version 1.1.0:
+Android Studio project. This example sets the Android Plugin for Gradle to version 1.1.0 from the <code>build.gradle</code> file:
 <pre>
 ...
      dependencies {
@@ -600,8 +600,8 @@
 version numbers. Using this feature can cause unexpected version updates and difficulty
 resolving version differences. </p>
 
-<p>If you're building with Gradle but using not Android Studio, the build process downloads the
-latest Android Plugin for Gradle plugin when it runs. </p>
+<p>If you're building with Gradle but not using Android Studio, the build process downloads the
+latest Android Plugin for Gradle when it runs. </p>
 
 
 
@@ -609,8 +609,8 @@
 
 <p>Android Studio requires Gradle version 2.2.1 or later. To view and
 update the Gradle version, edit the Gradle distribution reference in the
-<code>gradle/wrapper/gradle-wrapper.properties</code> file. This example shows the
-Android Plugin for Gradle version set to 2.2.1.</p>
+<code>gradle/wrapper/gradle-wrapper.properties</code> file. This example sets the
+Gradle version to 2.2.1.</p>
 
 <pre>
 ...
@@ -618,14 +618,6 @@
 ...
 </pre>
 
-
-
-
 <p>For more details about the supported Android Plugin for Gradle properties and syntax, click
 the link to the
-<a href="{@docRoot}tools/building/plugin-for-gradle.html">Plugin Language Reference</a>.</p>
-
-
-
-
-
+<a href="{@docRoot}tools/building/plugin-for-gradle.html">Plugin Language Reference</a>.</p>
\ No newline at end of file
diff --git a/docs/html/tools/revisions/platforms.jd b/docs/html/tools/revisions/platforms.jd
index 61bfcbb..a054da5 100644
--- a/docs/html/tools/revisions/platforms.jd
+++ b/docs/html/tools/revisions/platforms.jd
@@ -26,7 +26,7 @@
 version, instead read the highlights in the <a href="{@docRoot}about/index.html">About</a>
 section.</p>
 
-<p>In order to compile your application against a particular version of Android, you must use the
+<p>To compile your application against a particular version of Android, you must use the
 <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> to download and install the SDK
 Platform for that release. If you want to test your application on an emulator, you must also
 download at least one System Image for that Android version.</p>
@@ -59,6 +59,24 @@
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png"
+class="toggle-content-img" alt="" />Revision 2</a> <em>(November 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+    <p>Fixed bugs in the layout rendering library used by Android Studio.</p>
+    <p>Dependencies:</p>
+    <ul>
+      <li>Android SDK Platform-tools r23 or higher is required.</li>
+      <li>Android SDK Tools 24.3.4 or higher is required.</li>
+    </ul>
+  </div>
+
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png"
 class="toggle-content-img" alt="" />Revision 1</a> <em>(August 2015)</em>
   </p>
 
diff --git a/docs/html/tools/revisions/studio.jd b/docs/html/tools/revisions/studio.jd
old mode 100644
new mode 100755
index dec9e4b..94faae1
--- a/docs/html/tools/revisions/studio.jd
+++ b/docs/html/tools/revisions/studio.jd
@@ -42,6 +42,36 @@
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>Android Studio v1.5.1</a> <em>(December 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <p>Fixes and enhancements:</p>
+    <ul>
+    <li>Fixed a rendering failure issue in the Layout Editor.
+      <a href="http://b.android.com/194612">Issue: 194612</a> </li>
+    <li>Added the ability to vary <code>description</code> manifest attributes by configuration.
+      <a href="http://b.android.com/194705">Issue: 194705</a>
+    </li>
+     <li>Improved the contrast of the Android Studio Darcula appearance theme in Vector Asset Studio.
+      <a href="http://b.android.com/191819">Issue: 191819</a>
+    </li>
+    <li>Added <em>Help</em> button support to Vector Asset Studio.
+    </li>
+    <li>Added support for the <code>%</code> operator for data binding. <a href="http://b.android.com/194045">Issue: 194045</a>
+      </li>
+    <li>Fixed a case where launching an app for debugging resulted in the debugger connecting to the
+      wrong device. <a href="http://b.android.com/195167">Issue: 195167</a>
+    </li>
+    <li>Fixed a null pointer exception that could occur when attempting to run an app in
+      certain scenarios.
+    </li>
+  </ul>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
       alt=""/>Android Studio v1.5.0</a> <em>(November 2015)</em>
   </p>
   <div class="toggle-content-toggleme">
@@ -52,7 +82,8 @@
       problems, such as memory leaks. To use this monitor, click <strong>Android Monitor</strong> at
       the bottom of the main window. In Android Monitor, click the <strong>Memory</strong> tab. While
       the monitor is running, click the <strong>Dump Java Heap</strong> icon, and then click
-      <strong>Captures</strong> in the main window and double-click the file to view it. (The
+      <strong>Captures</strong> in the main window and double-click the file to view it. Click
+      <em>Capture Analysis</em> on the right. (The
       Android Device Monitor can't be running at the same time as Android Monitor.)</li>
     <li>Added new deep link and app link support. The Code Editor can automatically create an
       intent filter for deep linking in the <code>AndroidManifest.xml</code> file. It can also
@@ -223,7 +254,7 @@
       <li>Integrated the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>
         into Android Studio to simplify package and tools access and provide update notifications.
         <p class="note"><strong>Note:</strong> The standalone SDK Manager is still available from
-        the command line, but is recommended for use with only Eclipse ADT and standalone SDK
+        the command line, but is recommended for use only with standalone SDK
         installations. </p> </li>
       <li>Added the <code>finger</code> command in the emulator console to simulate
         <a href="{@docRoot}tools/studio/studio-features.html#finger-print">fingerprint</a>
diff --git a/docs/html/tools/studio/index.jd b/docs/html/tools/studio/index.jd
index 43cb2fe..1c0fe99 100644
--- a/docs/html/tools/studio/index.jd
+++ b/docs/html/tools/studio/index.jd
@@ -432,7 +432,7 @@
 <p>Run <strong>Analyze &gt; Inspect Code</strong> to validate the configured annotations. </p>
 
 <p>For a complete list of the supported annotations, either use the auto-complete feature to display
-the available options for the <code>import android.support.annotation.</code> statement or
+the available options for the <code>import android.support.annotation</code> statement or
 view the contents of the
 {@link android.support.annotation Support-Annotations}
 library. </p>
@@ -440,30 +440,6 @@
 <p>For more details about Android annotations, see
 <a href="{@docRoot}tools/debugging/annotations.html">Improving Code Inspection with Annotations</a>.
 
-
-
-<h3>Dynamic layout preview</h3>
-<p>Android Studio allows you to work with layouts in both a <em>Design View</em> </p>
-<p><img src="{@docRoot}images/tools/studio-helloworld-design.png" alt="" />
-</p>
-    <p class="img-caption"><strong>Figure 6.</strong> Hello World App with Design View.</p>
-
-<p>and a <em>Text View</em>. </p>
-
-    <p><img src="{@docRoot}images/tools/studio-helloworld-text.png" alt="" />
-    <pclass="img-caption"><strong>Figure 7.</strong> Hello World App with text view.</p>
-
-<p>Easily select and preview layout changes for different device images, display
-densities, UI modes, locales, and Android versions (multi-API version rendering).
-    <p><img src="{@docRoot}images/tools/studio-api-version-rendering.png" /></p>
-    <p class="img-caption"><strong>Figure 8.</strong> Multi-API version rendering.</p>
-
-
-<p>From the Design View, you can drag and drop elements from the Palette to the Preview or
-Component Tree. The Text View allows you to directly edit the XML settings, while previewing
-the device display. </p>
-
-
 <h3>Log messages</h3>
 <p>When you build and run your app with Android Studio, you can view adb and device log messages
 (logcat) by clicking <strong>Android</strong> at the bottom of the window.</p>
diff --git a/docs/html/tools/studio/studio-features.jd b/docs/html/tools/studio/studio-features.jd
index 44d6985..0894a25 100644
--- a/docs/html/tools/studio/studio-features.jd
+++ b/docs/html/tools/studio/studio-features.jd
@@ -1,6 +1,7 @@
 page.title=Features
 page.metaDescription=Learn about the Android Studio features.
-page.tags=studio, features
+page.tags="studio", "android studio", "sdk"
+page.image=images/cards/card-studio-modules_crop_2x.png
 @jd:body
 
 <div id="qv-wrapper">
@@ -42,24 +43,24 @@
 
 
 <h2 id="trans-editor">Translations Editor</h2>
-<p>Multi-language support is enhanced with the Translations Editor plugin so you can easily add
-a variety of locales to the app's translation file. With
-<a class="external-link" href="https://tools.ietf.org/html/bcp47">BCP 47</a> support, the editor
-combines language and
-region codes into a single selection for targeted localizations. Color codes indicate whether a
-locale is complete or still missing string translations. </p>
+<p>If your application supports multiple languages, you need to properly manage your
+translated string resources. The Translations Editor lets you view and update all your string
+resources in one convenient place.</p>
 
-<p>To access the Translations Editor, open a <code>strings.xml</code> file and click the
-<strong>Open Editor</strong> link, or click the globe icon
-(<img src="{@docRoot}images/tools/studio-globe-icon.png" style="vertical-align:bottom;margin:0;height:19px" />) in the Design layout view.  </p>
+<p>
+Use the Translations Editor to view all your translated resources, modify translations, and add
+new locales. You can provide default values for your resources and mark resources as
+untranslatable. The Translations Editor also marks resources with missing translations in red,
+and provides a link to a page where you can upload resource files and order translation services.
+</p>
 
+<p>For more details on the Translations Editor, see
+<a href="{@docRoot}tools/help/translations-editor.html">Translations Editor</a>.</p>
 
-    <img src="{@docRoot}images/tools/studio-translationeditoropen.png" />
-    <p class="img-caption"><strong>Figure 1.</strong> Add locales and strings in the
+    <img src="{@docRoot}images/tools/studio-translations-editor.png" />
+    <p class="img-caption"><strong>Figure 1.</strong> Manage locales and strings in the
     Translations Editor.</p>
 
-
-
 <h2 id="git-samples">Android Code Samples on GitHub</h2>
 <p>Clicking <strong>Import Samples</strong> from the <strong>File</strong> menu or <em>Welcome</em>
 page provides seamless access to Google code samples on GitHub.</p>
diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd
old mode 100644
new mode 100755
index 61240f1..d0c0965
--- a/docs/html/tools/support-library/features.jd
+++ b/docs/html/tools/support-library/features.jd
@@ -38,7 +38,7 @@
         Support Library Revisions</a></li>
       <li><a href="{@docRoot}tools/support-library/setup.html">
         Support Library Setup</a></li>
-        <li><a href="{@docRoot}tools/testing-support-library/index.html">
+      <li><a href="{@docRoot}tools/testing-support-library/index.html">
         Testing Support Library</a></li>
     </ol>
 
@@ -55,7 +55,7 @@
   appcompat</a> libraries, because they support a wide range of
   Android versions and provide APIs for recommended user interface patterns.</p>
 
-<p>To use any of the following libraries, you must download the library files to your
+<p>In order to use any of the following libraries, you must download the library files to your
   Android SDK installation. Follow the directions for downloading the Support Libraries in
   <a href="{@docRoot}tools/support-library/setup.html#download">Support Library Setup</a> to
   complete this step. You must take additional steps to include a specific Support Library in
@@ -204,8 +204,7 @@
 </p>
 
 <p class="note"><strong>Note:</strong>
-  This library depends on the v4 Support Library. If you are using Ant or Eclipse, make sure
-  you include the v4 Support Library as part of this library's classpath.
+  This library depends on the v4 Support Library.
 </p>
 
 <p>Here are a few of the key classes included in the v7 appcompat library:</p>
@@ -308,12 +307,10 @@
 libraries in your build path when setting up your project. For more information
 on how to set up your project, follow the instructions in <a
 href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries
-with resources</a>. If you are developing in Eclipse/ADT, make sure to include
-both the <code>android-support-v7-mediarouter.jar</code> and
-<code>android-support-v7-appcompat.jar</code> files.</p>
+with resources</a>.</p>
 
-<p>If you are using Android Studio, all you need to do is specify the Gradle build
-script dependency identifier <code>com.android.support:support-v7-mediarouter:&lt;revision&gt;</code>,
+<p>The Gradle builder script dependency identifier is as follows:
+<code>com.android.support:support-v7-mediarouter:&lt;revision&gt;</code>,
 where "&lt;revision&gt;" is the minimum revision at which the library is available. For example:</p>
 
 <pre>
@@ -352,8 +349,8 @@
 
 <p>The recyclerview library adds the {@link android.support.v7.widget.RecyclerView}
 class. This class provides support for the
-<a href="{@docRoot}training/material/lists-cards.html">RecyclerView</a> widget, a view
-for efficiently displaying large data sets by providing a
+<a href="{@docRoot}training/material/lists-cards.html">RecyclerView</a>
+widget, a view for efficiently displaying large data sets by providing a
 limited window of data items.</p>
 
 <p>After you download the Android Support Libraries, this library is located in the
@@ -423,7 +420,7 @@
 
 <p class="note">
   <strong>Note:</strong> Use of RenderScript with the support library is supported with Android
-  Studio and Gradle-based builds, as well as the Eclipse plugin and Ant build tools. The
+  Studio and Gradle-based builds. The
   renderscript library is located in the <code>build-tools/$VERSION/renderscript/</code> folder.
 </p>
 
diff --git a/docs/html/tools/testing-support-library/index.jd b/docs/html/tools/testing-support-library/index.jd
index b29d301..ac21e3a 100644
--- a/docs/html/tools/testing-support-library/index.jd
+++ b/docs/html/tools/testing-support-library/index.jd
@@ -1,4 +1,5 @@
 page.title=Testing Support Library
+page.image=images/tools/studio-test-module.png
 
 @jd:body
 
diff --git a/docs/html/tools/testing/activity_test.jd b/docs/html/tools/testing/activity_test.jd
deleted file mode 100644
index 036407a..0000000
--- a/docs/html/tools/testing/activity_test.jd
+++ /dev/null
@@ -1,1321 +0,0 @@
-page.title=Activity Testing Tutorial
-parent.title=Testing
-parent.link=index.html
-@jd:body
- <div id="qv-wrapper">
-  <div id="qv">
-  <h2>In this document</h2>
-  <ol>
-    <li>
-      <a href="#Prerequisites">Prerequisites</a>
-    </li>
-    <li>
-      <a href="#DownloadCode">Installing the Tutorial Sample Code</a>
-    </li>
-    <li>
-        <a href="#SetupEmulator">Setting Up the Emulator</a>
-    </li>
-    <li>
-        <a href="#SetupProjects">Setting Up the Projects</a>
-    </li>
-    <li>
-      <a href="#CreateTestCaseClass">Creating the Test Case Class</a>
-      <ol>
-        <li>
-          <a href="#AddTestCaseClass">Adding the test case class file</a>
-        </li>
-        <li>
-          <a href="#AddConstructor">Adding the test case constructor</a>
-        </li>
-        <li>
-            <a href="#AddSetupMethod">Adding the setup method</a>
-        </li>
-        <li>
-            <a href="#AddPreConditionsTest">Adding an initial conditions test</a>
-        </li>
-        <li>
-            <a href="#AddUITest">Adding a UI test</a>
-        </li>
-        <li>
-            <a href="#StateManagementTests">Adding state management tests</a>
-        </li>
-      </ol>
-    </li>
-    <li>
-        <a href="#RunTests">Running the Tests and Seeing the Results</a>
-    </li>
-    <li>
-        <a href="#TestFailure">Forcing Some Tests to Fail</a>
-    </li>
-    <li>
-        <a href="#NextSteps">Next Steps</a>
-    </li>
-</ol>
-<h2 id="#Appendix">Appendix</h2>
-<ol>
-    <li>
-        <a href="#InstallCompletedTestApp">Installing the Completed Test Application File</a>
-    </li>
-    <li>
-        <a href="#EditorCommandLine">For Users Not Developing In Eclipse</a>
-    </li>
-</ol>
-<h2>See Also</h2>
-<ol>
-    <li>
-        <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>
-    </li>
-    <li>
-        {@link android.test.ActivityInstrumentationTestCase2}
-    </li>
-    <li>
-        {@link junit.framework.Assert}
-    </li>
-    <li>
-        {@link android.test.InstrumentationTestRunner}
-    </li>
-</ol>
-</div>
-</div>
-<p>
-  Android includes powerful tools for testing applications. The tools extend JUnit with additional features, provide convenience classes for mock Android system objects, and use
-  instrumentation to give you control over your main application while you are testing it. The entire Android testing environment is discussed in the document
-  <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>.
-</p>
-<p>
-  This tutorial demonstrates the Android testing tools by presenting a simple Android application and then leading you step-by-step through the creation of a test application for it.
-  The test application demonstrates these key points:
-</p>
-  <ul>
-    <li>
-      An Android test is itself an Android application that is linked to the application under test by entries in its <code>AndroidManifest.xml</code> file.
-    </li>
-    <li>
-      Instead of Android components, an Android test application contains one or more test cases. Each of these is a separate class definition.
-    </li>
-    <li>
-      Android test case classes extend the JUnit {@link junit.framework.TestCase} class.
-    </li>
-    <li>
-      Android test case classes for activities extend JUnit and also connect you to the application under test with instrumentation. You can send keystroke or touch events directly to the UI.
-    </li>
-    <li>
-      You choose an Android test case class based on the type of component (application, activity, content provider, or service) you are testing.
-    </li>
-    <li>
-      Additional test tools in Eclipse/ADT provide integrated support for creating test applications, running them, and viewing the results.
-    </li>
-  </ul>
-<p>
-  The test application contains methods that perform the following tests:
-</p>
-  <ul>
-    <li>
-      Initial conditions test. Tests that the application under test initializes correctly. This is also a unit test of the application's
-      {@link android.app.Activity#onCreate(android.os.Bundle) onCreate()} method. Testing initial conditions also provides a confidence measure for subsequent tests.
-    </li>
-    <li>
-      UI test. Tests that the main UI operation works correctly. This test demonstrates the instrumentation features available in activity testing.
-      It shows that you can automate UI tests by sending key events from the test application to the main application.
-    </li>
-    <li>
-      State management tests. Test the application's code for saving state. This test demonstrates the instrumentation features of the test runner, which
-      are available for testing any component.
-    </li>
-  </ul>
-<h2 id="Prerequisites">Prerequisites</h2>
-<p>
-  The instructions and code in this tutorial depend on the following:
-</p>
-  <ul>
-    <li>
-      Basic knowledge of Android programming. If you haven't yet written an Android application, 
-      do the class 
-      <a href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a>. 
-      If you want to learn more about Spinner, the application under test, then you 
-      might want to review the "Spinner" sample app.
-    </li>
-    <li>
-      Some familiarity with the Android testing framework and concepts. If you haven't explored
-      Android testing yet, start by reading the
-      <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>
-      guide.
-    </li>
-    <li>
-        Eclipse with ADT. This tutorial describes how to set up and run a test application using
-        Eclipse with ADT. If you haven't yet installed Eclipse and the ADT plugin,
-        follow the steps in <a href="{@docRoot}sdk/installing/index.html">Installing the SDK</a>
-        to install them before continuing. If you are not developing in Eclipse, you will
-        find instructions for setting up and running the test application in the
-        <a href="#EditorCommandLine">appendix</a> of this document.
-    </li>
-  </ul>
-<h2 id="DownloadCode">Installing the Tutorial Sample Code</h2>
-<p>
-    During this tutorial, you will be working with sample code that is provided as part
-    of the downloadable Samples component of the SDK. Specifically, you will be working
-    with a pair of related sample applications &mdash; an application under test and a test
-    application:
-</p>
-    <ul>
-        <li>
-            Spinner is the application under test. This tutorial focuses on the
-            common situation of writing tests for an application that already exists, so the main
-            application is provided to you.
-        </li>
-        <li>
-             SpinnerTest is the test application. In the tutorial, you create this application
-             step-by-step. If you want to run quickly through the tutorial,
-             you can install the completed SpinnerTest application first, and then follow the
-             text. You may get more from the tutorial, however, if you create the test application
-             as you go. The instructions for installing the completed test application are in the
-             section 
-             <a href="#InstallCompletedTestApp">Installing the Completed Test Application File</a>.
-        </li>
-    </ul>
-<p>
-    The sample applications are described in more detail in the 
-    <a href="{@docRoot}tools/samples/index.html">Samples</a> topic. Follow the instructions to
-    download the version of the samples that's appropriate for the platform you're working with.
-</p>
-<h2 id="SetupEmulator">Setting Up the Emulator</h2>
-<p>
-  In this tutorial, you will use the Android emulator to run applications. The emulator needs
-  an Android Virtual Device (AVD) with an API level equal to or higher than the one you set for the projects in the previous step.
-  To find out how to check this and create the right AVD if necessary, 
-  see <a href="{@docRoot}tools/devices/managing-avds.html">Creating an AVD</a>.
-</p>
-<p>
-    As a test of the AVD and emulator, run the SpinnerActivity application in Eclipse with ADT. When it starts,
-    click the large downward-pointing arrow to the right of the spinner text. You see the spinner expand and display the title &quot;Select a planet&quot; at the top.
-    Click one of the other planets. The spinner closes, and your selection appears below it on the screen.
-</p>
-<h2 id="SetupProjects">Setting Up the Projects</h2>
-<p>
-    When you are ready to get started with the tutorial, begin by setting up Eclipse projects for
-    both Spinner (the application under test) and SpinnerTest (the test application).
-</p>
-<p>
-    You'll be using the Spinner application as-is, without modification, so you'll be loading it
-    into Eclipse as a new Android project from existing source. In the process, you'll be
-    creating a new test project associated with Spinner that will contain the SpinnerTest
-    application. The SpinnerTest application will be completely new and you'll be
-    using the code examples in this tutorial to add test classes and tests to it.
-</p>
-<p>
-    To install the Spinner app in a new Android project from existing source, following these steps:
-</p>
-<ol>
-    <li>
-        In Eclipse, select <strong>File</strong>&nbsp;&gt;&nbsp;<strong>New</strong>&nbsp;&gt;&nbsp;<strong>Project</strong>&nbsp;&gt;&nbsp;<strong>Android</strong>&nbsp;&gt;&nbsp;<strong>Android Project</strong>,
-        then click Next. The <strong>New Android Project</strong> dialog appears.
-    </li>
-    <li>
-        In the <em>Project name</em> text box, enter &quot;SpinnerActivity&quot;. The <em>Properties</em> area is filled in automatically.
-    </li>
-    <li>
-        In the <em>Contents</em> area, set &quot;Create project from existing source&quot;.
-    </li>
-    <li>
-        For <em>Location</em>, click <strong>Browse</strong>, navigate to the directory <code>&lt;SDK_path&gt;/samples/android-8/Spinner</code>,
-        then click Open. The directory name <code>&lt;SDK_path&gt;/samples/android-8/Spinner</code> now appears in the <em>Location</em> text box.
-    </li>
-    <li>
-        In the <em>Build Target</em> area, set a API level of 3 or higher. If you are already developing with a particular target, and it is API level 3 or higher, then use that target.
-    </li>
-    <li>
-        In the <em>Properties</em> area, in the <em>Min SDK Version:</em>, enter &quot;3&quot;.
-    </li>
-    <li>
-        You should now see these values:
-        <ul>
-            <li><em>Project Name:</em> &quot;SpinnerActivity&quot;</li>
-            <li><em>Create project from existing source:</em> set</li>
-            <li><em>Location:</em> &quot;<code>&lt;SDK_path&gt;/samples/android-8/Spinner</code>&quot;</li>
-            <li><em>Build Target:</em> &quot;API level of 3 or higher&quot; (<em>Target Name</em> &quot;Android 1.5 or higher&quot;)</li>
-            <li><em>Package name:</em> (disabled, set to &quot;<code>com.android.example.spinner</code>&quot;)</li>
-            <li><em>Create Activity:</em> (disabled, set to &quot;.SpinnerActivity&quot;)</li>
-            <li><em>Min SDK Version:</em> &quot;3&quot;</li>
-        </ul>
-        <p>
-            The following screenshot summarizes these values:
-        </p>
-            <a href="{@docRoot}images/testing/eclipse_new_android_project_complete_callouts.png">
-                <img src="{@docRoot}images/testing/eclipse_new_android_project_complete_callouts.png" alt="New Android Project dialog with filled-in values" style="height:230px"/>
-            </a>
-
-    </li>
-</ol>
-<p>
-    To create a new test project for the SpinnerTest application, follow these steps:
-</p>
-<ol>
-    <li>
-        Click Next. The <strong>New Android Test Project</strong> dialog appears.
-    </li>
-    <li>
-        Set &quot;Create a Test Project&quot;.
-    </li>
-    <li>
-        Leave the other values unchanged. The result should be:
-        <ul>
-            <li><em>Create a Test Project:</em> checked</li>
-            <li><em>Test Project Name:</em> &quot;SpinnerActivityTest&quot;</li>
-            <li><em>Use default location:</em> checked (this should contain the directory name &quot;<code>workspace/SpinnerActivityTest</code>&quot;).</li>
-            <li><em>Build Target:</em> Use the same API level you used in the previous step.</li>
-            <li><em>Application name:</em> &quot;SpinnerActivityTest&quot;</li>
-            <li><em>Package name:</em> &quot;<code>com.android.example.spinner.test</code>&quot;</li>
-            <li><em>Min SDK Version:</em> &quot;3&quot;</li>
-        </ul>
-        <p>
-            The following screenshot summarizes these values:
-        </p>
-            <a href="{@docRoot}images/testing/eclipse_new_android_testproject_complete_callouts.png">
-            <img src="{@docRoot}images/testing/eclipse_new_android_testproject_complete_callouts.png" alt="New Android Test Project dialog with filled-in values" style="height:230px"/>
-            </a>
-    </li>
-    <li>
-        Click Finish. Entries for SpinnerActivity and SpinnerActivityTest should appear in the
-        <strong>Package Explorer</strong>.
-        <p class="note">
-            <strong>Note:</strong> If you set <em>Build Target</em> to an API level higher than &quot;3&quot;, you will see the warning
-            &quot;The API level for the selected SDK target does not match the Min SDK version&quot;. You do not need to change the API level or the Min SDK version.
-            The message tells you that you are building the projects with one particular API level, but specifying that a lower API level is required. This may
-            occur if you have chosen not to install the optional earlier API levels.
-        </p>
-        <p>
-            If you see errors listed in the <strong>Problems</strong> pane at the bottom of the Eclipse window, or if a red error marker appears next to
-            the entry for SpinnerActivity in the Package Explorer, highlight the SpinnerActivity entry and then select
-            <strong>Project</strong>&nbsp;&gt;&nbsp;<strong>Clean</strong>. This should fix any errors.
-        </p>
-    </li>
-</ol>
-<p>
-    You now have the application under test in the SpinnerActivity project,
-    and an empty test project in SpinnerActivityTest. You may
-    notice that the two projects are in different directories, but Eclipse with
-    ADT handles this automatically. You should have no problem in either building or running them.
-</p>
-<p>
-    Notice that Eclipse and ADT have already done some initial setup for your test application.
-    Expand the SpinnerActivityTest project, and notice that it already has an
-    Android manifest file <code>AndroidManifest.xml</code>.
-    Eclipse with ADT created this when you added the test project.
-    Also, the test application is already set up to use instrumentation. You can see this
-    by examining <code>AndroidManifest.xml</code>.
-    Open it, then at the bottom of the center pane click <strong>AndroidManifest.xml</strong>
-    to display the XML contents:
-</p>
-<pre>
-&lt;?xml version="1.0" encoding="utf-8"?&gt;
-&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.android.example.spinner.test"
-      android:versionCode="1"
-      android:versionName="1.0"&gt;
-    &lt;uses-sdk android:minSdkVersion="3" /&gt;
-    &lt;instrumentation
-        android:targetPackage="com.android.example.spinner"
-        android:name="android.test.InstrumentationTestRunner" /&gt;
-    &lt;application android:icon="@drawable/icon" android:label="@string/app_name"&gt;
-        &lt;uses-library android:name="android.test.runner" /&gt;
-        ...
-    &lt;/application&gt;
-&lt;/manifest&gt;
-</pre>
-<p>
-    Notice the <code>&lt;instrumentation&gt;</code> element. The attribute
-    <code>android:targetPackage="com.android.example.spinner"</code> tells Android that the
-    application under test is defined in the Android package
-    <code>com.android.example.spinner</code>. Android now knows to use that
-    package's <code>AndroidManifest.xml</code> file to launch the application under test.
-    The <code>&lt;instrumentation&gt;</code> element also contains the attribute
-    <code>android:name="android.test.InstrumentationTestRunner"</code>, which tells Android
-    instrumentation to run the test application with Android's instrumentation-enabled test runner.
-</p>
-<h2 id="CreateTestCaseClass">Creating the Test Case Class</h2>
-
-<p>
-    You now have a test project SpinnerActivityTest, and the basic structure of a test
-    application also called SpinnerActivityTest. The basic structure includes all the files and
-    directories you need to build and run a test application, except for the class that
-    contains your tests (the test case class).
-</p>
-<p>
-    The next step is to define the test case class. In this tutorial, you'll be creating a
-    test case class that includes:
-</p>
-<ul>
-    <li>
-        Test setup. This use of the JUnit {@link junit.framework.TestCase#setUp() setUp()}
-        method demonstrates some of the tasks you might perform before running an Android test.
-    </li>
-    <li>
-        Testing initial conditions. This test demonstrates a good testing technique.
-        It also demonstrates that with Android instrumentation you can look at the application
-        under test <em>before</em> the main activity starts. The test checks that the application's
-        important objects have been initialized.
-        If the test fails, you then know that any other tests against the application are
-        unreliable, since the application was running in an incorrect state.
-        <p class="note">
-            <strong>Note:</strong> The purpose of testing initial conditions is not the same as
-            using <code>setUp()</code>. The JUnit {@link junit.framework.TestCase#setUp()} runs once
-            before <strong>each test method</strong>, and its purpose is to create a clean test
-            environment. The initial conditions test runs once, and its purpose is to verify that the
-            application under test is ready to be tested.
-        </p>
-    </li>
-    <li>
-        Testing the UI. This test shows how to control the main application's UI
-        with instrumentation, a powerful automation feature of Android testing.
-    </li>
-    <li>
-        Testing state management. This test shows some techniques for testing how
-        well the application maintains state in the Android environment. Remember that to
-        provide a satisfactory user experience, your application must never lose its current state,
-        even if it's interrupted by a phone call or destroyed because of memory constraints.
-        The Android activity lifecycle provides ways to maintain state, and the
-        <code>SpinnerActivity</code> application uses them. The test shows the techniques for
-        verifying that they work.
-    </li>
-</ul>
-<p>
-  Android tests are contained in a special type of Android application that contains one or more test class definitions. Each of these contains
-  one or more test methods that do the actual tests. In this tutorial, you will first add a test case class, and then add tests to it.
-</p>
-<p>
- You first choose an Android test case class to extend. You choose from the base test case classes according to the Android component you are testing and the types of tests you are doing.
- In this tutorial, the application under test has a single simple activity, so the test case class will be for an Activity component. Android offers several, but the one that tests in
- the most realistic environment is {@link android.test.ActivityInstrumentationTestCase2}, so you will use it as the base class. Like all activity test case classes,
- <code>ActivityInstrumentationTestCase2</code> offers convenience methods for interacting directly with the UI of the application under test.
-</p>
-<h3 id="AddTestCaseClass">Adding the test case class file</h3>
-<p>
-    To add <code>ActivityInstrumentationTestCase2</code> as the base test case class, follow these steps:
-</p>
-<ol>
-  <li>
-    In the Package Explorer, expand the test project SpinnerActivityTest if it is not open already.
-  </li>
-  <li>
-    Within SpinnerActivityTest, expand the <code>src/</code> folder and then the package marker for
-    <code>com.android.example.spinner.test</code>. Right-click on the package name and select <strong>New</strong> &gt; <strong>Class</strong>:<br/>
-    <a href="{@docRoot}images/testing/spinner_create_test_class_callouts.png">
-      <img alt="Menu for creating a new class in the test application" src="{@docRoot}images/testing/spinner_create_test_class_callouts.png" style="height:230px"/>
-    </a>
-    <p>
-      The <strong>New Java Class</strong> wizard appears:
-    </p>
-    <a href="{@docRoot}images/testing/spinnertest_new_class_callouts.png">
-      <img alt="New Java Class wizard dialog" src="{@docRoot}images/testing/spinnertest_new_class_callouts.png" style="height:230px"/>
-    </a>
-  </li>
-  <li>
-    In the wizard, enter the following:
-    <ul>
-      <li>
-        <em>Name:</em> &quot;SpinnerActivityTest&quot;. This becomes the name of your test class.
-      </li>
-      <li>
-        <em>Superclass:</em> &quot;<code>android.test.ActivityInstrumentationTestCase2&lt;SpinnerActivity&gt;</code>&quot;. The superclass is parameterized, so
-        you have to provide it your main application's class name.
-      </li>
-    </ul>
-    <p>
-      Do not change any of the other settings. Click Finish.
-    </p>
-  </li>
-  <li>
-    You now have a new file <code>SpinnerActivityTest.java</code> in the project.
-  </li>
-  <li>
-    To resolve the reference to SpinnerActivity, add the following import:
-<pre>
-import com.android.example.spinner.SpinnerActivity;
-</pre>
-  </li>
-</ol>
-<h3 id="AddConstructor">Adding the test case constructor</h3>
-  <p>
-    To ensure that the test application is instantiated correctly, you must set up a constructor that the test
-    runner will call when it instantiates your test class. This constructor has no parameters, and its sole
-    purpose is to pass information to the superclass's default constructor. To set up this constructor, enter the
-    following code in the class:
-  </p>
-<pre>
-  public SpinnerActivityTest() {
-    super(SpinnerActivity.class);
-  } // end of SpinnerActivityTest constructor definition
-</pre>
-<p>
-  This calls the superclass constructor with the main activity's class (<code>SpinnerActivity.class</code>) for the application under test. Android uses this information to find the application and activity to test.
-</p>
-<p>
-  You are now ready to add tests, by adding test methods to the class.
-</p>
-<h3 id="AddSetupMethod">Adding the setup method</h3>
-<p>
-    The <code>setUp()</code> method is invoked before every test. You use it to initialize variables and clean up from previous tests. You can also use
-    the JUnit {@link junit.framework.TestCase#tearDown() tearDown()} method, which runs <strong>after</strong> every test method. The tutorial does not use it.
-</p>
-<p>
-    The method you are going to add does the following:
-</p>
-<ul>
-  <li>
-    <code>super.setUp()</code>. Invokes the superclass constructor for <code>setUp()</code>, which is required by JUnit.
-  </li>
-  <li>
-    Calls {@link android.test.ActivityInstrumentationTestCase2#setActivityInitialTouchMode(boolean) setActivityInitialTouchMode(false)}.
-    This turns off <strong>touch mode</strong> in the device or emulator. If any of your test methods send key events to the application,
-    you must turn off touch mode <em>before</em> you start any activities; otherwise, the call is ignored.
-  </li>
-  <li>
-    Stores references to system objects. Retrieves and stores a reference to the activity under test, the <code>Spinner</code>
-    widget used by the activity, the <code>SpinnerAdapter</code> that backs the widget, and the string value of the selection that is
-    set when the application is first installed. These objects are used in the state management test. The methods invoked are:
-    <ul>
-      <li>
-        {@link android.test.ActivityInstrumentationTestCase2#getActivity()}. Gets a reference to the activity under test (<code>SpinnerActivity</code>).
-        This call also starts the activity if it is not already running.
-      </li>
-      <li>
-        {@link android.app.Activity#findViewById(int)}. Gets a reference to the <code>Spinner</code> widget of the application under test.
-      </li>
-      <li>
-        {@link android.widget.AbsSpinner#getAdapter()}. Gets a reference to the adapter (an array of strings) backing the spinner.
-      </li>
-    </ul>
-  </li>
-</ul>
-<p>
-    Add this code to the definition of <code>SpinnerActivityTest</code>, after the constructor definition:
-</p>
-<pre>
-  &#64;Override
-  protected void setUp() throws Exception {
-    super.setUp();
-
-    setActivityInitialTouchMode(false);
-
-    mActivity = getActivity();
-
-    mSpinner =
-      (Spinner) mActivity.findViewById(
-        com.android.example.spinner.R.id.Spinner01
-      );
-
-      mPlanetData = mSpinner.getAdapter();
-
-  } // end of setUp() method definition
-</pre>
-<p>
-    Add these members to the test case class:
-</p>
-<pre>
-  private SpinnerActivity mActivity;
-  private Spinner mSpinner;
-  private SpinnerAdapter mPlanetData;
-</pre>
-<p>
-  Add these imports:
-</p>
-<pre>
-import android.widget.Spinner;
-import android.widget.SpinnerAdapter;
-</pre>
-<p>
-    You now have the complete <code>setUp()</code> method.
-</p>
-<h3 id="AddPreConditionsTest">Adding an initial conditions test</h3>
-<p>
-  The initial conditions test verifies that the application under test is initialized correctly. It is an illustration of the types of tests you can run, so it is not comprehensive.
-  It verifies the following:
-</p>
-<ul>
-  <li>
-    The item select listener is initialized. This listener is called when a selection is made from the spinner.
-  </li>
-  <li>
-    The adapter that provides values to the spinner is initialized.
-  </li>
-  <li>
-    The adapter contains the right number of entries.
-  </li>
-</ul>
-<p>
-  The actual initialization of the application under test is done in <code>setUp()</code>, which the test runner calls automatically before every test. The verifications are
-  done with JUnit {@link junit.framework.Assert} calls. As a useful convention, the method name is <code>testPreConditions()</code>:
-</p>
-<pre>
-  public void testPreConditions() {
-    assertTrue(mSpinner.getOnItemSelectedListener() != null);
-    assertTrue(mPlanetData != null);
-    assertEquals(mPlanetData.getCount(),ADAPTER_COUNT);
-  } // end of testPreConditions() method definition
-</pre>
-<p>
-  Add this member:
-</p>
-<pre>
-  public static final int ADAPTER_COUNT = 9;
-</pre>
-<h3 id="AddUITest">Adding a UI test</h3>
-<p>
-  Now create a UI test that selects an item from the <code>Spinner</code> widget. The test sends key events to the UI with key events.
-  The test confirms that the selection matches the result you expect.
-</p>
-<p>
-  This test demonstrates the power of using instrumentation in Android testing. Only an instrumentation-based test class allows you to send key events (or touch events)
-  to the application under test. With instrumentation, you can test your UI without having to take screenshots, record the screen, or do human-controlled testing.
-</p>
-<p>
-  To work with the spinner, the test has to request focus for it and then set it to a known position. The test uses {@link android.view.View#requestFocus() requestFocus()} and
-  {@link android.widget.AbsSpinner#setSelection(int) setSelection()} to do this. Both of these methods interact with a View in the application under test, so you have to call them
-  in a special way.
-</p>
-<p>
-  Code in a test application that interacts with a View of the application under test must run in the main application's thread, also
-  known as the <em>UI thread</em>. To do this, you use the {@link android.app.Activity#runOnUiThread(java.lang.Runnable) Activity.runOnUiThread()}
-  method. You pass the code to <code>runOnUiThread()</code>in an anonymous {@link java.lang.Runnable Runnable} object. To set
-  the statements in the <code>Runnable</code> object, you override the object's {@link java.lang.Runnable#run()} method.
-</p>
-<p>
-  To send key events to the UI of the application under test, you use the <a href="{@docRoot}reference/android/test/InstrumentationTestCase.html#sendKeys(int...)">sendKeys</a>() method.
-  This method does not have to run on the UI thread, since Android uses instrumentation to pass the key events to the application under test.
-</p>
-<p>
-  The last part of the test compares the selection made by sending the key events to a pre-determined value. This tests that the spinner is working as intended.
-</p>
-<p>
-    The following sections show you how to add the code for this test.
-</p>
-<ol>
-    <li>
-        Get focus and set selection. Create a new method <code>public void testSpinnerUI()</code>. Add
-        code to to request focus for the spinner and set its position to default or initial position, "Earth". This code is run on the UI thread of
-        the application under test:
-<pre>
-  public void testSpinnerUI() {
-
-    mActivity.runOnUiThread(
-      new Runnable() {
-        public void run() {
-          mSpinner.requestFocus();
-          mSpinner.setSelection(INITIAL_POSITION);
-        } // end of run() method definition
-      } // end of anonymous Runnable object instantiation
-    ); // end of invocation of runOnUiThread
-</pre>
-        <p>
-          Add the following member to the test case class.
-        </p>
-<pre>
-  public static final int INITIAL_POSITION = 0;
-</pre>
-    </li>
-    <li>
-      Make a selection. Send key events to the spinner to select one of the items. To do this, open the spinner by
-      "clicking" the center keypad button (sending a DPAD_CENTER key event) and then clicking (sending) the down arrow keypad button five times. Finally,
-      click the center keypad button again to highlight the desired item. Add the following code:
-<pre>
-    this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-    for (int i = 1; i &lt;= TEST_POSITION; i++) {
-      this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
-    } // end of for loop
-
-    this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-</pre>
-    <p>
-      Add the following member to the test case class:
-    </p>
-<pre>
-  public static final int TEST_POSITION = 5;
-</pre>
-    <p>
-      This sets the final position of the spinner to "Saturn" (the spinner's backing adapter is 0-based).
-    </p>
-  </li>
-  <li>
-    Check the result. Query the current state of the spinner, and compare its current selection to the expected value.
-    Call the method {@link android.widget.AdapterView#getSelectedItemPosition() getSelectedItemPosition()} to find out the current selection position, and then
-    {@link android.widget.AdapterView#getItemAtPosition(int) getItemAtPosition()} to get the object corresponding to that position (casting it to a String). Assert that
-    this string value matches the expected value of "Saturn":
-<pre>
-    mPos = mSpinner.getSelectedItemPosition();
-    mSelection = (String)mSpinner.getItemAtPosition(mPos);
-    TextView resultView =
-      (TextView) mActivity.findViewById(
-        com.android.example.spinner.R.id.SpinnerResult
-      );
-
-    String resultText = (String) resultView.getText();
-
-    assertEquals(resultText,mSelection);
-
-  } // end of testSpinnerUI() method definition
-</pre>
-<p>
-  Add the following members to the test case class:
-</p>
-<pre>
-  private String mSelection;
-  private int mPos;
-</pre>
-  <p>
-    Add the following imports to the test case class:
-  </p>
-<pre>
-  import android.view.KeyEvent;
-  import android.widget.TextView;
-</pre>
-  </li>
-</ol>
-<p>
-  Pause here to run the tests you have. The procedure for running a test application is different
-  from running a regular Android application. You run a test application as an Android JUnit
-  application. To see how to do this, see <a href="#RunTests">Running the Tests and Seeing the Results</a>.
-</p>
-<p>
-    Eventually, you will see the <code>SpinnerActivity</code> application start, and the test
-    application controlling it by sending it key events. You will also see a new
-    <strong>JUnit</strong> view in the Explorer pane, showing the results of the
-    test. The JUnit view is documented in a following section,
-    <a href="#RunTests">Running the Test and Seeing the Results</a>.
-</p>
-<h3 id="StateManagementTests">Adding state management tests</h3>
-<p>
-  You now write two tests that verify that SpinnerActivity maintains its state when it is paused or terminated.
-  The state, in this case, is the current selection in the spinner. When users make a selection,
-  pause or terminate the application, and then resume or restart it, they should see
-  the same selection.
-</p>
-<p>
-  Maintaining state is an important feature of an application. Users may switch from the current
-  application temporarily to answer the phone, and then switch back. Android may decide to
-  terminate and restart an activity to change the screen orientation, or terminate an unused
-  activity to regain storage. In each case, users are best served by having the UI return to its
-  previous state (except where the logic of the application dictates otherwise).
-</p>
-<p>
-  SpinnerActivity manages its state in these ways:
-</p>
-  <ul>
-    <li>
-      Activity is hidden. When the spinner screen (the activity) is running but hidden by some other screen, it
-      stores the spinner's position and value in a form that persists while the application is running.
-    </li>
-    <li>
-      Application is terminated. When the activity is terminated, it stores the spinner's position and value in
-      a permanent form. The activity can read the position and value when it restarts, and restore the spinner to its previous state.
-    </li>
-    <li>
-      Activity re-appears. When the user returns to the spinner screen, the previous selection is restored.
-    </li>
-    <li>
-      Application is restarted. When the user starts the application again, the previous selection is restored.
-    </li>
-  </ul>
-<p class="note">
-    <strong>Note:</strong> An application can manage its state in other ways as well, but these are
-    not covered in this tutorial.
-</p>
-<p>
-  When an activity is hidden, it is <strong>paused</strong>. When it re-appears, it
-  <strong>resumes</strong>. Recognizing that these are key points in an activity's life cycle,
-  the Activity class provides two callback methods {@link android.app.Activity#onPause()} and
-  {@link android.app.Activity#onResume()} for handling pauses and resumes.
-  SpinnerActivity uses them for code that saves and restores state.
-</p>
-<p>
-  <strong>Note:</strong> If you would like to learn more about the difference between losing
-  focus/pausing and killing an application,
-  read about the <a href="{@docRoot}guide/components/activities.html#Lifecycle">activity
-lifecycle</a>.
-</p>
-<p>
-  The first test verifies that the spinner selection is maintained after the entire application is shut down and then restarted. The test uses instrumentation to
-  set the spinner's variables outside of the UI. It then terminates the activity by calling {@link android.app.Activity#finish() Activity.finish()}, and restarts it
-  using the instrumentation method {@link android.test.ActivityInstrumentationTestCase2#getActivity()}. The test then asserts that the current spinner state matches
-  the test values.
-</p>
-<p>
-  The second test verifies that the spinner selection is maintained after the activity is paused and then resumed. The test uses instrumentation to
-  set the spinner's variables outside of the UI and then force calls to the <code>onPause()</code> and <code>onResume()</code> methods. The test then
-  asserts that the current spinner state matches the test values.
-</p>
-<p>
-  Notice that these tests make limited assumptions about the mechanism by which the activity manages state. The tests use the activity's getters and
-  setters to control the spinner. The first test also knows that hiding an activity calls <code>onPause()</code>, and bringing it back to the foreground
-  calls <code>onResume()</code>. Other than this, the tests treat the activity as a "black box".
-</p>
-<p>
-    To add the code for testing state management across shutdown and restart, follow these steps:
-</p>
- <ol>
-    <li>
-      Add the test method <code>testStateDestroy()</code>, then
-      set the spinner selection to a test value:
-<pre>
-  public void testStateDestroy() {
-    mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION);
-    mActivity.setSpinnerSelection(TEST_STATE_DESTROY_SELECTION);
-</pre>
-    </li>
-    <li>
-      Terminate the activity and restart it:
-<pre>
-    mActivity.finish();
-    mActivity = this.getActivity();
-</pre>
-    </li>
-    <li>
-      Get the current spinner settings from the activity:
-<pre>
-    int currentPosition = mActivity.getSpinnerPosition();
-    String currentSelection = mActivity.getSpinnerSelection();
-</pre>
-    </li>
-    <li>
-      Test the current settings against the test values:
-<pre>
-    assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition);
-    assertEquals(TEST_STATE_DESTROY_SELECTION, currentSelection);
-  } // end of testStateDestroy() method definition
-</pre>
-<p>
-  Add the following members to the test case class:
-<pre>
-  public static final int TEST_STATE_DESTROY_POSITION = 2;
-  public static final String TEST_STATE_DESTROY_SELECTION = "Earth";
-</pre>
-    </li>
- </ol>
-<p>
-    To add the code for testing state management across a pause and resume, follow these steps:
-</p>
-<ol>
-    <li>
-      Add the test method <code>testStatePause()</code>:
-<pre>
-    &#64;UiThreadTest
-    public void testStatePause() {
-</pre>
-    <p>
-      The <code>@UiThreadTest</code> annotation tells Android to build this method so that it runs
-      on the UI thread. This allows the method to change the state of the spinner widget in the
-      application under test. This use of <code>@UiThreadTest</code> shows that, if necessary, you
-      can run an entire method on the UI thread.
-    </p>
-    </li>
-   <li>
-    Set up instrumentation. Get the instrumentation object
-    that is controlling the application under test. This is used later to
-    invoke the <code>onPause()</code> and <code>onResume()</code> methods:
-<pre>
-    Instrumentation mInstr = this.getInstrumentation();
-</pre>
-  </li>
-  <li>
-    Set the spinner selection to a test value:
-<pre>
-    mActivity.setSpinnerPosition(TEST_STATE_PAUSE_POSITION);
-    mActivity.setSpinnerSelection(TEST_STATE_PAUSE_SELECTION);
-</pre>
-  </li>
-  <li>
-    Use instrumentation to call the Activity's <code>onPause()</code>:
-<pre>
-    mInstr.callActivityOnPause(mActivity);
-</pre>
-    <p>
-      Under test, the activity is waiting for input. The invocation of
-      {@link android.app.Instrumentation#callActivityOnPause(android.app.Activity)}
-      performs a call directly to the activity's <code>onPause()</code> instead
-      of manipulating the activity's UI to force it into a paused state.
-    </p>
-  </li>
-  <li>
-    Force the spinner to a different selection:
-<pre>
-    mActivity.setSpinnerPosition(0);
-    mActivity.setSpinnerSelection("");
-</pre>
-    <p>
-      This ensures that resuming the activity actually restores the
-      spinner's state rather than simply leaving it as it was.
-    </p>
-  </li>
-  <li>
-    Use instrumentation to call the Activity's <code>onResume()</code>:
-<pre>
-    mInstr.callActivityOnResume(mActivity);
-</pre>
-    <p>
-      Invoking {@link android.app.Instrumentation#callActivityOnResume(android.app.Activity)}
-      affects the activity in a way similar to <code>callActivityOnPause</code>. The
-      activity's <code>onResume()</code> method is invoked instead of manipulating the
-      activity's UI to force it to resume.
-    </p>
-  </li>
-  <li>
-    Get the current state of the spinner:
-<pre>
-    int currentPosition = mActivity.getSpinnerPosition();
-    String currentSelection = mActivity.getSpinnerSelection();
-</pre>
-  </li>
-  <li>
-    Test the current spinner state against the test values:
-<pre>
-    assertEquals(TEST_STATE_PAUSE_POSITION,currentPosition);
-    assertEquals(TEST_STATE_PAUSE_SELECTION,currentSelection);
-  } // end of testStatePause() method definition
-</pre>
-    <p>
-      Add the following members to the test case class:
-    </p>
-<pre>
-  public static final int TEST_STATE_PAUSE_POSITION = 4;
-  public static final String TEST_STATE_PAUSE_SELECTION = "Jupiter";
-</pre>
-  </li>
-  <li>
-    Add the following imports:
-<pre>
-  import android.app.Instrumentation;
-  import android.test.UiThreadTest;
-</pre>
-  </li>
-</ol>
-<h2 id="RunTests">Running the Tests and Seeing the Results</h2>
- <p>
-    The most simple way to run the <code>SpinnerActivityTest</code> test case is to run it directly from the Package Explorer.
- </p>
- <p>
-    To run the <code>SpinnerActivityTest</code> test, follow these steps:
-</p>
- <ol>
-    <li>
-      In the Package Explorer, right-click the project SpinnerActivityTest at the top level, and then
-      select <strong>Run As</strong> &gt; <strong>Android JUnit Test</strong>:<br/>
-      <a href="{@docRoot}images/testing/spinnertest_runas_menu_callouts.png">
-        <img alt="Menu to run a test as an Android JUnit test" src="{@docRoot}images/testing/spinnertest_runas_menu_callouts.png" style="height:230px">
-      </a>
-    </li>
-    <li>
-        You will see the emulator start. When the unlock option is displayed (its appearance depends on the API level you specified for the AVD),
-        unlock the home screen.
-    </li>
-    <li>
-      The test application starts. You see a new tab for the <strong>JUnit</strong> view, next to the Package Explorer tab:<br/>
-      <a href="{@docRoot}images/testing/spinnertest_junit_panel.png">
-        <img alt="The JUnit window" src="{@docRoot}images/testing/spinnertest_junit_panel.png" style="height:230px">
-      </a>
-    </li>
-</ol>
-<p>
-    This view contains two sub-panes. The top pane summarizes the tests that were run, and the bottom pane shows failure traces for
-    highlighted tests.
-</p>
-<p>
-   At the conclusion of a successful test run, this is the view's appearance:<br/>
-   <a href="{@docRoot}images/testing/spinnertest_junit_success.png">
-    <img src="{@docRoot}images/testing/spinnertest_junit_success.png" alt="JUnit test run success" style="height:230px"/>
-   </a>
-</p>
-<p>
-    The upper pane summarizes the test:
-</p>
-    <ul>
-        <li>
-            Total time elapsed for the test application(labeled <em>Finished after &lt;x&gt; seconds</em>).
-        </li>
-        <li>
-            Number of runs (<em>Runs:</em>) - the number of tests in the entire test class.
-        </li>
-        <li>
-            Number of errors (<em>Errors:</em>) - the number of program errors and exceptions encountered during
-            the test run.
-        </li>
-        <li>
-            Number of failures (<em>Failures:</em>) - the number of test failures encountered during the test
-            run. This is the number of assertion failures. A test can fail even if the program does not encounter an error.
-        </li>
-        <li>
-            A progress bar. The progress bar extends from left to right as the tests run.
-            <p>
-               If all the tests succeed, the bar remains green. If a test fails, the bar turns from green to red.
-            </p>
-        </li>
-        <li>
-            A test method summary. Below the bar, you see a line for each class in the test application. To look at the results for the individual
-            methods in a test, click the arrow at the left to expand the line. You see the name of each test method. To the
-            right of the name, you see the time taken by the test. You can look at the test's code
-            by double-clicking its name.
-        </li>
-    </ul>
-<p>
-    The lower pane contains the failure trace. If all the tests are successful, this pane is empty. If some tests fail,
-    then if you highlight a failed test in the upper pane, the lower view contains a stack trace for the test. This is
-    demonstrated in the next section.
-</p>
-<p class="note">
-    <strong>Note:</strong> If you run the test application and nothing seems to happen, look for
-    the JUnit view. If you do not see it, you may have run the test application
-    as a regular Android application.
-    Remember that you need to run it as an Android <strong>JUnit</strong>
-    application.
-</p>
-<h2 id="TestFailure">Forcing Some Tests to Fail</h2>
-<p>
-  A test is as useful when it fails as when it succeeds. This section shows what happens in Eclipse with ADT when a test fails. You
-  can quickly see that a test class has failed, find the method or methods that failed, and then use a failure trace to find
-  the exact problem.
-</p>
-<p>
-  The example application SpinnerActivity that you downloaded passes all the tests in the test application SpinnerActivityTest.
-  To force the test to fail, you must modify the example application. You change a line of setup code in the application under test. This
-  causes the <code>testPreConditions()</code> and <code>testTextView()</code> test methods to fail.
-</p>
-<p>
-    To force the tests to fail, follow these steps:
-</p>
-<ol>
-  <li>
-    In Eclipse with ADT, go to the SpinnerActivity project and open the file <code>SpinnerActivity.java</code>.
-  </li>
-  <li>
-    At the top of <code>SpinnerActivity.java</code>, at the end of the <code>onCreate()</code> method, find the following line:
-<pre>
-    // mySpinner.setOnItemSelectedListener(null);
-</pre>
-    <p>Remove the forward slash characters at the beginning of the line to
-    uncomment the line. This sets the listener callback to null:
-    </p>
-<pre>
-    mySpinner.setOnItemSelectedListener(null);
-</pre>
-  </li>
-  <li>
-    The <code>testPreConditions()</code> method in <code>SpinnerActivityTest</code> contains the following test:
-    <code>assertTrue(mSpinner.getOnItemSelectedListener() != null);</code>. This test asserts that the listener callback is <em>not</em> null.
-    Since you have modified the application under test, this assertion now fails.
-  </li>
-  <li>
-    Run the test, as described in the previous section <a href="#RunTests">Running the Tests and Seeing the Results</a>.
-  </li>
-</ol>
-<p>
-    The JUnit view is either created or updated with the results of the test. Now, however, the progress bar is red,
-    the number of failures is 2, and small "x" icons appear in the list icons next to the testPreConditions and
-    TestSpinnerUI tests. This indicates that the tests have failed. The display is similar to this:<br/>
-    <a href="{@docRoot}images/testing/spinnertest_junit_panel_fail_callouts.png">
-      <img src="{@docRoot}images/testing/spinnertest_junit_panel_fail_callouts.png" alt="The JUnit Failure window" style="height:230px"/>
-    </a>
-</p>
-<p>
-  You now want to look at the failures to see exactly where they occurred.
-</p>
-<p>
-    To examine the failures, follow these steps:
-</p>
-<ol>
-  <li>
-    Click the testPreconditions entry. In the lower pane entitled <strong>Failure Trace</strong>,
-    you see a stack trace of the calls that led to the failure. This trace is similar to the following screenshot:<br/>
-    <a href="{@docRoot}images/testing/spinnertest_junit_panel_failtrace_callouts.png">
-      <img src="{@docRoot}images/testing/spinnertest_junit_panel_failtrace_callouts.png" alt="The JUnit failure trace" style="height:230px"/>
-    </a>
-  </li>
-  <li>
-      The first line of the trace tells you the error. In this case, a JUnit assertion failed. To look at the
-      assertion in the test code, double-click the next line (the first line of the trace). In the center pane
-      a new tabbed window opens, containing the code for the test application <code>SpinnerActivityTest</code>. The failed assertion
-      is highlighted in the middle of the window.
-  </li>
-</ol>
-<p>
-    The assertion failed because you modified the main application to set the <code>getOnItemSelectedListener</code> callback to <code>null</code>.
-</p>
-<p>
-    You can look at the failure in <code>testTextView</code> if you want. Remember, though, that <code>testPreConditions</code> is meant to verify the
-    initial setup of the application under test. If testPreConditions() fails, then succeeding tests can't be trusted. The best strategy to follow is to
-    fix the problem and re-run all the tests.
-</p>
-<p>
-    Remember to go back to <code>SpinnerActivity.java</code> and re-comment the line you uncommented in an earlier step.
-</p>
-<p>
-  You have now completed the tutorial.
-</p>
-<h2 id="NextSteps">Next Steps</h2>
-<p>
-    This example test application has shown you how to create a test project and link it to
-    the application you want to test, how to choose and add a test case class, how to write
-    UI and state management tests, and how to run the tests against the application under
-    test. Now that you are familiar with the basics of testing Android applications, here
-    are some suggested next steps:
-</p>
-<p>
-    <strong>Learn more about testing on Android</strong>
-</p>
-<ul>
-    <li>
-        If you haven't done so already, read the
-        <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>
-        document in the <em>Dev Guide</em>. It provides an overview of how testing on Android
-        works. If you are just getting started with Android testing, reading that document will
-        help you understand the tools available to you, so that you can develop effective
-        tests.
-    </li>
-</ul>
-<p>
-    <strong>Review the main Android test case classes</strong>
-</p>
-<ul>
-    <li>
-        {@link android.test.ActivityInstrumentationTestCase2}
-    </li>
-    <li>
-        {@link android.test.ActivityUnitTestCase}
-    </li>
-    <li>
-        {@link android.test.ProviderTestCase2}
-    </li>
-    <li>
-        {@link android.test.ServiceTestCase}
-    </li>
-</ul>
-<p>
-    <strong>Learn more about the assert and utility classes</strong>
-</p>
-<ul>
-    <li>
-        {@link junit.framework.Assert}, the JUnit Assert class.
-    </li>
-    <li>
-        {@link android.test.MoreAsserts}, additional Android assert methods.
-    </li>
-    <li>
-        {@link android.test.ViewAsserts}, useful assertion methods for testing Views.
-    </li>
-    <li>
-        {@link android.test.TouchUtils}, utility methods for simulating touch events in an Activity.
-    </li>
-</ul>
-<p>
-    <strong>Learn about instrumentation and the instrumented test runner</strong>
-</p>
-<ul>
-    <li>
-        {@link android.app.Instrumentation}, the base instrumentation class.
-    </li>
-    <li>
-        {@link android.test.InstrumentationTestCase}, the base instrumentation test case.
-    </li>
-    <li>
-        {@link android.test.InstrumentationTestRunner}, the standard Android test runner.
-    </li>
-</ul>
-<h2 id="Appendix">Appendix</h2>
-<h3 id="InstallCompletedTestApp">Installing the Completed Test Application File</h3>
-<p>
-    The recommended approach to this tutorial is to follow the instructions step-by-step and
-    write the test code as you go. However, if you want to do this tutorial quickly,
-    you can install the entire file for the test application into the test project.
-</p>
-<p>
-    To do this, you first create a test project with the necessary structure and files by using
-    the automated tools in Eclipse. Then you exit Eclipse and copy the test application's file
-    from the SpinnerTest sample project into your test project. The SpinnerTest sample project is
-    part of the Samples component of the SDK.
-</p>
-<p>
-    The result is a complete test application, ready to run against the Spinner sample application.
-</p>
-<p>
-    To install the test application file, follow these steps:
-</p>
-<ol>
-    <li>
-        Set up the projects for the application under test and the test application, as described
-        in the section section <a href="#SetupProjects">Setting Up the Projects</a>.
-    </li>
-    <li>
-        Set up the emulator, as described in the section <a href="#SetupEmulator">Setting Up the Emulator</a>.
-    </li>
-    <li>
-        Add the test case class, as described in the section <a href="#AddTestCaseClass">Adding the test case class file</a>.
-    </li>
-    <li>
-        Close Eclipse with ADT.
-    </li>
-    <li>
-        Copy the file <code>&lt;SDK_path&gt;/samples/android-8/SpinnerTest/src/com/android/example/spinner/test/SpinnerActivityTest.java</code>
-        to the directory <code>workspace/SpinnerActivityTest/src/com/android/example/spinner/test/</code>.
-    </li>
-    <li>
-        Restart Eclipse with ADT.
-    </li>
-    <li>
-        In Eclipse with ADT, re-build the project <code>SpinnerActivityTest</code> by selecting it in the Package Explorer, right-clicking,
-        and selecting <em>Project</em>&nbsp;&gt;&nbsp;<em>Clean</em>.
-    </li>
-    <li>
-        The complete, working test application should now be in the <code>SpinnerActivityTest</code> project.
-    </li>
-</ol>
-<p>
-    You can now continue with the tutorial, starting at the section <a href="#AddConstructor">Adding the test case constructor</a> and
-    following along in the text.
-</p>
-<h3 id="EditorCommandLine">For Users Not Developing In Eclipse</h3>
-<p>
-    If you are not developing in Eclipse, you can still do this tutorial. Android provides tools for
-    creating test applications using a code editor and command-line tools. You use the following tools:
-</p>
-<ul>
-  <li>
-   <a href="{@docRoot}tools/help/adb.html">adb</a> - Installs and uninstalls applications and test applications to a device or the emulator. You
-   also use this tool to run the test application from the command line.
-  </li>
-  <li>
-    <a href="{@docRoot}tools/help/android.html">android</a> - Manages projects and test projects. This tool also manages AVDs and Android platforms.
-  </li>
-</ul>
-  <p>
-    You use the <code>emulator</code> tool to run the emulator from the command line.
-  </p>
-  <p>
-    Here are the general steps for doing this tutorial using an editor and the command line:
-  </p>
-<ol>
-  <li>
-    As described in the section <a href="#DownloadCode">Installing the Tutorial Sample Code</a>, get the sample code. You will then
-    have a directory <code>&lt;SDK_path&gt;/samples/android-8</code>, containing (among others) the directories <code>Spinner</code>
-    and <code>SpinnerTest</code>:
-    <ul>
-        <li>
-            <code>Spinner</code> contains the main application, also known as the <strong>application under test</strong>. This tutorial focuses on the
-            common situation of writing tests for an application that already exists, so the main application is provided to you.
-        </li>
-        <li>
-            <code>SpinnerTest</code> contains all the code for the test application. If you want to run quickly through the tutorial, you can
-            install the test code and then follow the text. You may get more from the tutorial, however, if you write the code as you go. The instructions
-            for installing the test code are in the section <a href="#InstallCompletedTestApp">Appendix: Installing the Completed Test Application File</a>.
-        </li>
-        </ul>
-  </li>
-  <li>
-    Navigate to the directory <code>&lt;SDK_path&gt;/samples/android-8</code>.
-  </li>
-  <li>
-    Create a new Android application project using <code>android create project</code>:
-<pre>
-$ android create project -t &lt;APItarget&gt; -k com.android.example.spinner -a SpinnerActivity -n SpinnerActivity -p Spinner
-</pre>
-    <p>
-        The value of <code>&lt;APItarget&gt;</code> should be &quot;3&quot; (API level 3) or higher. If you are already developing with a particular API level, and it is
-        higher than 3, then use that API level.
-    </p>
-    <p>
-        This a new Android project <code>SpinnerActivity</code> in the existing <code>Spinner</code> directory. The existing source and
-        resource files are not touched, but the <code>android</code> tool adds the necessary build files.
-    </p>
-  </li>
-  <li>
-    Create a new Android test project using <code>android create test-project</code>:
-<pre>
-$ android create test-project -m ../Spinner -n SpinnerActivityTest -p SpinnerActivityTest
-</pre>
-    <p>
-        This will create a new Android test project in the <em>new</em> directory <code>SpinnerActivityTest</code>. You do this
-        so that the solution to the tutorial that is in <code>SpinnerTest</code> is left untouched. If you want to use the solution
-        code instead of entering it as you read through the tutorial, refer to the section
-        <a href="#InstallCompletedTestApp">Appendix: Installing the Completed Test Application File</a>.
-    </p>
-    <p class="Note">
-      <strong>Note:</strong> Running <code>android create test-project</code> will automatically create
-      the file <code>AndroidManifest.xml</code> with the correct <code>&lt;instrumentation&gt;</code> element.
-    </p>
-  </li>
-  <li>
-    Build the sample application. If you are building with Ant, then it is easiest to use the command <code>ant debug</code> to build a debug version, since the SDK comes
-    with a debug signing key. The result will be the file <code>Spinner/bin/SpinnerActivity-debug.apk</code>.
-    You can install this to your device or emulator. Attach your device or start the emulator if you haven't already, and run the command:
-<pre>
-$ adb install Spinner/bin/SpinnerActivity-debug.apk
-</pre>
-  </li>
-  <li>
-    To create the test application, create a file <code>SpinnerActivityTest.java</code> in the directory
-    <code>SpinnerActivityTest/src/com/android/example/spinner/test/</code>.
-  </li>
-  <li>
-    Follow the tutorial, starting with the section <a href="#CreateTestCaseClass">Creating the Test Case Class</a>. When you are prompted to
-    run the sample application, go to the Launcher screen in your device or emulator and select SpinnerActivity.
-    When you are prompted to run the test application, return here to continue with the following instructions.
-  </li>
-  <li>
-    Build the test application. If you are building with Ant, then it is easiest to use the command <code>ant debug</code> to build a
-    debug version, since the SDK comes with a debug signing key. The result will be the Android file
-    <code>SpinnerActivityTest/bin/SpinnerActivityTest-debug.apk</code>. You can install this to your device or emulator.
-    Attach your device or start the emulator if you haven't already, and run the command:
-<pre>
-$ adb install SpinnerActivityTest/bin/SpinnerActivityTest-debug.apk
-</pre>
-  </li>
-  <li>
-    In your device or emulator, check that both the main application <code>SpinnerActivity</code> and the test application
-    <code>SpinnerActivityTest</code> are installed.
-  </li>
-  <li>
-    To run the test application, enter the following at the command line:
-<pre>
-$ adb shell am instrument -w com.android.example.spinner.test/android.test.InstrumentationTestRunner
- </pre>
-  </li>
-</ol>
-<p>
-    The result of a successful test looks like this:
-</p>
-<pre>
-com.android.example.spinner.test.SpinnerActivityTest:....
-Test results for InstrumentationTestRunner=....
-Time: 10.098
-OK (4 tests)
-</pre>
-<p>
-    If you force the test to fail, as described in the previous section <a href="#TestFailure">Forcing Some Tests to Fail</a>, then
-    the output looks like this:
-</p>
-<pre>
-com.android.example.spinner.test.SpinnerActivityTest:
-Failure in testPreConditions:
-junit.framework.AssertionFailedError
-  at com.android.example.spinner.test.SpinnerActivityTest.testPreConditions(SpinnerActivityTest.java:104)
-  at java.lang.reflect.Method.invokeNative(Native Method)
-  at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:205)
-  at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:195)
-  at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:175)
-  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
-  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
-  at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
-  at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
-Failure in testSpinnerUI:
-junit.framework.ComparisonFailure: expected:&lt;Result&gt; but was:&lt;Saturn&gt;
-  at com.android.example.spinner.test.SpinnerActivityTest.testSpinnerUI(SpinnerActivityTest.java:153)
-  at java.lang.reflect.Method.invokeNative(Native Method)
-  at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:205)
-  at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:195)
-  at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:175)
-  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
-  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
-  at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
-  at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
-..
-Test results for InstrumentationTestRunner=.F.F..
-Time: 9.377
-FAILURES!!!
-Tests run: 4,  Failures: 2,  Errors: 0
-</pre>
diff --git a/docs/html/tools/testing/activity_testing.jd b/docs/html/tools/testing/activity_testing.jd
deleted file mode 100644
index 8baa35d..0000000
--- a/docs/html/tools/testing/activity_testing.jd
+++ /dev/null
@@ -1,375 +0,0 @@
-page.title=Activity Testing
-parent.title=Testing
-parent.link=index.html
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-  <h2>In this document</h2>
-  <ol>
-    <li>
-      <a href="#ActivityTestAPI">The Activity Testing API</a>
-      <ol>
-        <li>
-            <a href="#ActivityInstrumentationTestCase2">ActivityInstrumentationTestCase2</a>
-        </li>
-        <li>
-            <a href="#ActivityUnitTestCase">ActivityUnitTestCase</a>
-        </li>
-        <li>
-            <a href="#SingleLaunchActivityTestCase">SingleLaunchActivityTestCase</a>
-        </li>
-        <li>
-            <a href="#MockObjectNotes">Mock objects and activity testing</a>
-        </li>
-        <li>
-            <a href="#AssertionNotes">Assertions for activity testing</a>
-        </li>
-      </ol>
-    </li>
-    <li>
-        <a href="#WhatToTest">What to Test</a>
-    </li>
-    <li>
-        <a href="#NextSteps">Next Steps</a>
-    </li>
-    <li>
-      <a href="#UITesting">Appendix: UI Testing Notes</a>
-      <ol>
-        <li>
-          <a href="#RunOnUIThread">Testing on the UI thread</a>
-        </li>
-        <li>
-          <a href="#NotouchMode">Turning off touch mode</a>
-        </li>
-        <li>
-          <a href="#UnlockDevice">Unlocking the Emulator or Device</a>
-        </li>
-        <li>
-          <a href="#UITestTroubleshooting">Troubleshooting UI tests</a>
-        </li>
-      </ol>
-    </li>
-    </ol>
-<h2>Key Classes</h2>
-    <ol>
-      <li>{@link android.test.InstrumentationTestRunner}</li>
-      <li>{@link android.test.ActivityInstrumentationTestCase2}</li>
-      <li>{@link android.test.ActivityUnitTestCase}</li>
-    </ol>
-<h2>Related Tutorials</h2>
-    <ol>
-      <li>
-         <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>
-      </li>
-    </ol>
-<h2>See Also</h2>
-      <ol>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_eclipse.html">
-          Testing from Eclipse with ADT</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_otheride.html">
-          Testing from Other IDEs</a>
-        </li>
-      </ol>
-  </div>
-</div>
-<p>
-    Activity testing is particularly dependent on the Android instrumentation framework.
-    Unlike other components, activities have a complex lifecycle based on callback methods; these
-    can't be invoked directly except by instrumentation. Also, the only way to send events to the
-    user interface from a program is through instrumentation.
-</p>
-<p>
-    This document describes how to test activities using instrumentation and other test
-    facilities. The document assumes you have already read
-    <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    the introduction to the Android testing and instrumentation framework.
-</p>
-<h2 id="ActivityTestAPI">The Activity Testing API</h2>
-<p>
-    The activity testing API base class is {@link android.test.InstrumentationTestCase},
-    which provides instrumentation to the test case subclasses you use for Activities.
-</p>
-<p>
-    For activity testing, this base class provides these functions:
-</p>
-<ul>
-    <li>
-        Lifecycle control: With instrumentation, you can start the activity under test, pause it,
-        and destroy it, using methods provided by the test case classes.
-    </li>
-    <li>
-        Dependency injection: Instrumentation allows you to create mock system objects such as
-        Contexts or Applications and use them to run the activity under test. This
-        helps you control the test environment and isolate it from production systems. You can
-        also set up customized Intents and start an activity with them.
-    </li>
-    <li>
-        User interface interaction: You use instrumentation to send keystrokes or touch events
-        directly to the UI of the activity under test.
-    </li>
-</ul>
-<p>
-    The activity testing classes also provide the JUnit framework by extending
-    {@link junit.framework.TestCase} and {@link junit.framework.Assert}.
-</p>
-<p>
-    The two main testing subclasses are {@link android.test.ActivityInstrumentationTestCase2} and
-    {@link android.test.ActivityUnitTestCase}. To test an Activity that is launched in a mode
-    other than <code>standard</code>, you use {@link android.test.SingleLaunchActivityTestCase}.
-</p>
-<h3 id="ActivityInstrumentationTestCase2">ActivityInstrumentationTestCase2</h3>
-<p>
-    The {@link android.test.ActivityInstrumentationTestCase2} test case class is designed to do
-    functional testing of one or more Activities in an application, using a normal system
-    infrastructure. It runs the Activities in a normal instance of the application under test,
-    using a standard system Context. It allows you to send mock Intents to the activity under
-    test, so you can use it to test an activity that responds to multiple types of intents, or
-    an activity that expects a certain type of data in the intent, or both. Notice, though, that it
-    does not allow mock Contexts or Applications, so you can not isolate the test from the rest of
-    a production system.
-</p>
-<h3 id="ActivityUnitTestCase">ActivityUnitTestCase</h3>
-<p>
-    The {@link android.test.ActivityUnitTestCase} test case class tests a single activity in
-    isolation. Before you start the activity, you can inject a mock Context or Application, or both.
-    You use it to run activity tests in isolation, and to do unit testing of methods
-    that do not interact with Android. You can not send mock Intents to the activity under test,
-    although you can call
-    {@link android.app.Activity#startActivity(Intent) Activity.startActivity(Intent)} and then
-    look at arguments that were received.
-</p>
-<h3 id="SingleLaunchActivityTestCase">SingleLaunchActivityTestCase</h3>
-<p>
-    The {@link android.test.SingleLaunchActivityTestCase} class is a convenience class for
-    testing a single activity in an environment that doesn't change from test to test.
-    It invokes {@link junit.framework.TestCase#setUp() setUp()} and
-    {@link junit.framework.TestCase#tearDown() tearDown()} only once, instead of once per
-    method call. It does not allow you to inject any mock objects.
-</p>
-<p>
-    This test case is useful for testing an activity that runs in a mode other than
-    <code>standard</code>. It ensures that the test fixture is not reset between tests. You
-    can then test that the activity handles multiple calls correctly.
-</p>
-<h3 id="MockObjectNotes">Mock objects and activity testing</h3>
-<p>
-    This section contains notes about the use of the mock objects defined in
-    {@link android.test.mock} with activity tests.
-</p>
-<p>
-    The mock object {@link android.test.mock.MockApplication} is only available for activity
-    testing if you use the {@link android.test.ActivityUnitTestCase} test case class.
-    By default, <code>ActivityUnitTestCase</code>, creates a hidden <code>MockApplication</code>
-    object that is used as the application under test. You can inject your own object using
-    {@link android.test.ActivityUnitTestCase#setApplication(Application) setApplication()}.
-</p>
-<h3 id="AssertionNotes">Assertions for activity testing</h3>
-<p>
-    {@link android.test.ViewAsserts} defines assertions for Views. You use it to verify the
-    alignment and position of View objects, and to look at the state of ViewGroup objects.
-</p>
-<h2 id="WhatToTest">What To Test</h2>
-<ul>
-    <li>
-        Input validation: Test that an activity responds correctly to input values in an
-        EditText View. Set up a keystroke sequence, send it to the activity, and then
-        use {@link android.view.View#findViewById(int)} to examine the state of the View. You can
-        verify that a valid keystroke sequence enables an OK button, while an invalid one leaves the
-        button disabled. You can also verify that the Activity responds to invalid input by
-        setting error messages in the View.
-    </li>
-    <li>
-        Lifecycle events: Test that each of your application's activities handles lifecycle events
-        correctly. In general, lifecycle events are actions, either from the system or from the
-        user, that trigger a callback method such as <code>onCreate()</code> or
-        <code>onClick()</code>. For example, an activity should respond to pause or destroy events
-        by saving its state. Remember that even a change in screen orientation causes the current
-        activity to be destroyed, so you should test that accidental device movements don't
-        accidentally lose the application state.
-    </li>
-    <li>
-        Intents: Test that each activity correctly handles the intents listed in the intent
-        filter specified in its manifest. You can use
-        {@link android.test.ActivityInstrumentationTestCase2} to send mock Intents to the
-        activity under test.
-    </li>
-    <li>
-        Runtime configuration changes: Test that each activity responds correctly to the
-        possible changes in the device's configuration while your application is running. These
-        include a change to the device's orientation, a change to the current language, and so
-        forth. Handling these changes is described in detail in the topic
-        <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Handling Runtime
-        Changes</a>.
-    </li>
-    <li>
-        Screen sizes and resolutions: Before you publish your application, make sure to test it on
-        all of the screen sizes and densities on which you want it to run. You can test the
-        application on multiple sizes and densities using AVDs, or you can test your application
-        directly on the devices that you are targeting. For more information, see the topic
-        <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.
-    </li>
-</ul>
-<h2 id="NextSteps">Next Steps</h2>
-<p>
-    To learn how to set up and run tests in Eclipse, please refer to 
-<a href="{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse with ADT</a>.
-    If you're not working in Eclipse, refer to 
-<a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other IDEs</a>.
-</p>
-<p>
-    If you want a step-by-step introduction to testing activities, try the 
-    <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>, which
-    guides you through a testing scenario that you develop against an activity-oriented application.
-</p>
-<h2 id="UITesting">Appendix: UI Testing Notes</h2>
-<p>
-    The following sections have tips for testing the UI of your Android application, specifically
-    to help you handle actions that run in the UI thread, touch screen and keyboard events, and home
-    screen unlock during testing.
-</p>
-<h3 id="RunOnUIThread">Testing on the UI thread</h3>
-<p>
-    An application's activities run on the application's <strong>UI thread</strong>. Once the
-    UI is instantiated, for example in the activity's <code>onCreate()</code> method, then all
-    interactions with the UI must run in the UI thread. When you run the application normally, it
-    has access to the thread and does not have to do anything special.
-</p>
-<p>
-    This changes when you run tests against the application. With instrumentation-based classes,
-    you can invoke methods against the UI of the application under test. The other test classes
-    don't allow this. To run an entire test method on the UI thread, you can annotate the thread
-    with <code>@UiThreadTest</code>. Notice that this will run <em>all</em> of the method statements
-    on the UI thread.  Methods that do not interact with the UI are not allowed; for example, you
-    can't invoke <code>Instrumentation.waitForIdleSync()</code>.
-</p>
-<p>
-    To run a subset of a test method on the UI thread, create an anonymous class of type
-    <code>Runnable</code>, put the statements you want in the <code>run()</code> method, and
-    instantiate a new instance of the class as a parameter to the method
-    <code><em>appActivity</em>.runOnUiThread()</code>, where <code><em>appActivity</em></code> is
-    the instance of the application you are testing.
-</p>
-<p>
-    For example, this code instantiates an activity to test, requests focus (a UI action) for the
-    Spinner displayed by the activity, and then sends a key to it. Notice that the calls to
-    <code>waitForIdleSync</code> and <code>sendKeys</code> aren't allowed to run on the UI thread:
-</p>
-<pre>
-  private MyActivity mActivity; // MyActivity is the class name of the app under test
-  private Spinner mSpinner;
-
-  ...
-
-  protected void setUp() throws Exception {
-      super.setUp();
-      mInstrumentation = getInstrumentation();
-
-      mActivity = getActivity(); // get a references to the app under test
-
-      /*
-       * Get a reference to the main widget of the app under test, a Spinner
-       */
-      mSpinner = (Spinner) mActivity.findViewById(com.android.demo.myactivity.R.id.Spinner01);
-
-  ...
-
-  public void aTest() {
-      /*
-       * request focus for the Spinner, so that the test can send key events to it
-       * This request must be run on the UI thread. To do this, use the runOnUiThread method
-       * and pass it a Runnable that contains a call to requestFocus on the Spinner.
-       */
-      mActivity.runOnUiThread(new Runnable() {
-          public void run() {
-              mSpinner.requestFocus();
-          }
-      });
-
-      mInstrumentation.waitForIdleSync();
-
-      this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
-</pre>
-
-<h3 id="NotouchMode">Turning off touch mode</h3>
-<p>
-    To control the emulator or a device with key events you send from your tests, you must turn off
-    touch mode. If you do not do this, the key events are ignored.
-</p>
-<p>
-    To turn off touch mode, you invoke
-    <code>ActivityInstrumentationTestCase2.setActivityTouchMode(false)</code>
-    <em>before</em> you call <code>getActivity()</code> to start the activity. You must invoke the
-    method in a test method that is <em>not</em> running on the UI thread. For this reason, you
-    can't invoke the touch mode method from a test method that is annotated with
-    <code>@UIThread</code>. Instead, invoke the touch mode method from <code>setUp()</code>.
-</p>
-<h3 id="UnlockDevice">Unlocking the emulator or device</h3>
-<p>
-    You may find that UI tests don't work if the emulator's or device's home screen is disabled with
-    the keyguard pattern. This is because the application under test can't receive key events sent
-    by <code>sendKeys()</code>. The best way to avoid this is to start your emulator or device
-    first and then disable the keyguard for the home screen.
-</p>
-<p>
-    You can also explicitly disable the keyguard. To do this,
-    you need to add a permission in the manifest file (<code>AndroidManifest.xml</code>) and
-    then disable the keyguard in your application under test. Note, though, that you either have to
-    remove this before you publish your application, or you have to disable it with code in
-    the published application.
-</p>
-<p>
-    To add the permission, add the element
-    <code>&lt;uses-permission android:name="android.permission.DISABLE_KEYGUARD"/&gt;</code>
-    as a child of the <code>&lt;manifest&gt;</code> element. To disable the KeyGuard, add the
-    following code to the <code>onCreate()</code> method of activities you intend to test:
-</p>
-<pre>
-  mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
-  mLock = mKeyGuardManager.newKeyguardLock("<em>activity_classname</em>");
-  mLock.disableKeyguard();
-</pre>
-<p>where <code><em>activity_classname</em></code> is the class name of the activity.</p>
-<h3 id="UITestTroubleshooting">Troubleshooting UI tests</h3>
-<p>
-    This section lists some of the common test failures you may encounter in UI testing, and their
-    causes:
-</p>
-<dl>
-    <dt><code>WrongThreadException</code></dt>
-    <dd>
-      <p><strong>Problem:</strong></p>
-      For a failed test, the Failure Trace contains the following error message:
-      <code>
-        android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created
-        a view hierarchy can touch its views.
-      </code>
-      <p><strong>Probable Cause:</strong></p>
-        This error is common if you tried to send UI events to the UI thread from outside the UI
-        thread. This commonly happens if you send UI events from the test application, but you don't
-        use the <code>@UIThread</code> annotation or the <code>runOnUiThread()</code> method. The
-        test method tried to interact with the UI outside the UI thread.
-      <p><strong>Suggested Resolution:</strong></p>
-        Run the interaction on the UI thread. Use a test class that provides instrumentation. See
-        the previous section <a href="#RunOnUIThread">Testing on the UI Thread</a>
-        for more details.
-    </dd>
-    <dt><code>java.lang.RuntimeException</code></dt>
-    <dd>
-      <p><strong>Problem:</strong></p>
-        For a failed test, the Failure Trace contains the following error message:
-      <code>
-        java.lang.RuntimeException: This method can not be called from the main application thread
-      </code>
-      <p><strong>Probable Cause:</strong></p>
-        This error is common if your test method is annotated with <code>@UiThreadTest</code> but
-        then tries to do something outside the UI thread or tries to invoke
-        <code>runOnUiThread()</code>.
-      <p><strong>Suggested Resolution:</strong></p>
-        Remove the <code>@UiThreadTest</code> annotation, remove the <code>runOnUiThread()</code>
-        call, or re-factor your tests.
-    </dd>
-</dl>
diff --git a/docs/html/tools/testing/contentprovider_testing.jd b/docs/html/tools/testing/contentprovider_testing.jd
deleted file mode 100644
index a6440df..0000000
--- a/docs/html/tools/testing/contentprovider_testing.jd
+++ /dev/null
@@ -1,217 +0,0 @@
-page.title=Content Provider Testing
-parent.title=Testing
-parent.link=index.html
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-  <h2>In this document</h2>
-  <ol>
-    <li>
-        <a href="#DesignAndTest">Content Provider Design and Testing</a>
-    </li>
-    <li>
-      <a href="#ContentProviderTestAPI">The Content Provider Testing API</a>
-      <ol>
-        <li>
-          <a href="#ProviderTestCase2">ProviderTestCase2 </a>
-        </li>
-        <li>
-          <a href="#MockObjects">Mock object classes</a>
-        </li>
-      </ol>
-    </li>
-    <li>
-        <a href="#WhatToTest">What To Test</a>
-    </li>
-    <li>
-        <a href="#NextSteps">Next Steps</a>
-    </li>
-  </ol>
-  <h2>Key Classes</h2>
-    <ol>
-      <li>{@link android.test.InstrumentationTestRunner}</li>
-      <li>{@link android.test.ProviderTestCase2}</li>
-      <li>{@link android.test.IsolatedContext}</li>
-      <li>{@link android.test.mock.MockContentResolver}</li>
-    </ol>
-  <h2>Related Tutorials</h2>
-    <ol>
-        <li>
-            <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>
-        </li>
-    </ol>
-  <h2>See Also</h2>
-      <ol>
-        <li>
-          <a
-          href="{@docRoot}tools/testing/testing_android.html">
-          Testing Fundamentals</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_eclipse.html">
-          Testing From Eclipse with ADT</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_otheride.html">
-          Testing From Other IDEs</a>
-        </li>
-      </ol>
-  </div>
-</div>
-<p>
-    Content providers, which store and retrieve data and make it accessible across applications,
-    are a key part of the Android API. As an application developer you're allowed to provide your
-    own public providers for use by other applications. If you do, then you should test them
-    using the API you publish.
-</p>
-<p>
-    This document describes how to test public content providers, although the information is
-    also applicable to providers that you keep private to your own application. If you aren't
-    familiar with content  providers or the Android testing framework, please read
-    <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>,
-    the guide to developing content providers, and
-    <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    the introduction to the Android testing and instrumentation framework.
-</p>
-<h2 id="DesignAndTest">Content Provider Design and Testing</h2>
-<p>
-    In Android, content providers are viewed externally as data APIs that provide
-    tables of data, with their internals hidden from view. A content provider may have many
-    public constants, but it usually has few if any public methods and no public variables.
-    This suggests that you should write your tests based only on the provider's public members.
-    A content provider that is designed like this is offering a contract between itself and its
-    users.
-</p>
-<p>
-    The base test case class for content providers,
-    {@link android.test.ProviderTestCase2}, allows you to test your content provider in an
-    isolated environment. Android mock objects such as {@link android.test.IsolatedContext} and
-    {@link android.test.mock.MockContentResolver} also help provide an isolated test environment.
-</p>
-<p>
-    As with other Android tests, provider test packages are run under the control of the test
-    runner {@link android.test.InstrumentationTestRunner}. The section
-    <a href="{@docRoot}tools/testing/testing_android.html#InstrumentationTestRunner">
-    Running Tests With InstrumentationTestRunner</a> describes the test runner in
-    more detail. The topic <a href="{@docRoot}tools/testing/testing_eclipse.html">
-    Testing From Eclipse with ADT</a> shows you how to run a test package in Eclipse, and the
-    topic <a href="{@docRoot}tools/testing/testing_otheride.html">
-    Testing From Other IDEs</a>
-    shows you how to run a test package from the command line.
-</p>
-<h2 id="ContentProviderTestAPI">Content Provider Testing API</h2>
-<p>
-    The main focus of the provider testing API is to provide an isolated testing environment. This
-    ensures that tests always run against data dependencies set explicitly in the test case. It
-    also prevents tests from modifying actual user data. For example, you want to avoid writing
-    a test that fails because there was data left over from a previous test, and you want to
-    avoid adding or deleting contact information in a actual provider.
-</p>
-<p>
-    The test case class and mock object classes for provider testing set up this isolated testing
-    environment for you.
-</p>
-<h3 id="ProviderTestCase2">ProviderTestCase2</h3>
-<p>
-    You test a provider with a subclass of {@link android.test.ProviderTestCase2}. This base class
-    extends {@link android.test.AndroidTestCase}, so it provides the JUnit testing framework as well
-    as Android-specific methods for testing application permissions. The most important
-    feature of this class is its initialization, which creates the isolated test environment.
-</p>
-<p>
-    The initialization is done in the constructor for {@link android.test.ProviderTestCase2}, which
-    subclasses call in their own constructors. The {@link android.test.ProviderTestCase2}
-    constructor creates an {@link android.test.IsolatedContext} object that allows file and
-    database operations but stubs out other interactions with the Android system.
-    The file and database operations themselves take place in a directory that is local to the
-    device or emulator and has a special prefix.
-</p>
-<p>
-    The constructor then creates a {@link android.test.mock.MockContentResolver} to use as the
-    resolver for the test. The {@link android.test.mock.MockContentResolver} class is described in
-    detail in the section
-    <a href="{@docRoot}tools/testing/testing_android.html#MockObjectClasses">Mock object
-classes</a>.
-</p>
-<p>
-    Lastly, the constructor creates an instance of the provider under test. This is a normal
-    {@link android.content.ContentProvider} object, but it takes all of its environment information
-    from the {@link android.test.IsolatedContext}, so it is restricted to
-    working in the isolated test environment. All of the tests done in the test case class run
-    against this isolated object.
-</p>
-<h3 id="MockObjects">Mock object classes</h3>
-<p>
-    {@link android.test.ProviderTestCase2} uses {@link android.test.IsolatedContext} and
-    {@link android.test.mock.MockContentResolver}, which are standard mock object classes. To
-    learn more about them, please read
-    <a href="{@docRoot}tools/testing/testing_android.html#MockObjectClasses">
-    Testing Fundamentals</a>.
-</p>
-<h2 id="WhatToTest">What To Test</h2>
-<p>
-    The topic <a href="{@docRoot}tools/testing/what_to_test.html">What To Test</a>
-    lists general considerations for testing Android components.
-    Here are some specific guidelines for testing content providers.
-</p>
-<ul>
-    <li>
-        Test with resolver methods: Even though you can instantiate a provider object in
-        {@link android.test.ProviderTestCase2}, you should always test with a resolver object
-        using the appropriate URI. This ensures that you are testing the provider using the same
-        interaction that a regular application would use.
-    </li>
-    <li>
-        Test a public provider as a contract: If you intent your provider to be public and
-        available to other applications, you should test it as a contract. This includes
-        the following ideas:
-        <ul>
-            <li>
-                Test with constants that your provider publicly exposes. For
-                example, look for constants that refer to column names in one of the provider's
-                data tables. These should always be constants publicly defined by the provider.
-            </li>
-            <li>
-                Test all the URIs offered by your provider. Your provider may offer several URIs,
-                each one referring to a different aspect of the data. The
-                <a href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> sample,
-                for example, features a provider that offers one URI for retrieving a list of notes,
-                another for retrieving an individual note by it's database ID, and a third for
-                displaying notes in a live folder.
-            </li>
-            <li>
-                Test invalid URIs: Your unit tests should deliberately call the provider with an
-                invalid URI, and look for errors. Good provider design is to throw an
-                IllegalArgumentException for invalid URIs.
-
-            </li>
-        </ul>
-    </li>
-    <li>
-        Test the standard provider interactions: Most providers offer six access methods:
-        query, insert, delete, update, getType, and onCreate(). Your tests should verify that all
-        of these methods work. These are described in more detail in the topic
-        <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>.
-    </li>
-    <li>
-        Test business logic: Don't forget to test the business logic that your provider should
-        enforce. Business logic includes handling of invalid values, financial or arithmetic
-        calculations, elimination or combining of duplicates, and so forth. A content provider
-        does not have to have business logic, because it may be implemented by activities that
-        modify the data. If the provider does implement business logic, you should test it.
-    </li>
-</ul>
-<h2 id="NextSteps">Next Steps</h2>
-<p>
-    To learn how to set up and run tests in Eclipse, please refer to 
-<a href="{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse with ADT</a>.
-    If you're not working in Eclipse, refer to 
-<a href="{@docRoot}tools/testing/testing_otheride.html">Testing From Other IDEs</a>.
-</p>
-<p>
-    If you want a step-by-step introduction to testing activities, try the 
-    <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>, which
-    guides you through a testing scenario that you develop against an activity-oriented application.
-</p>
-
diff --git a/docs/html/tools/testing/index.jd b/docs/html/tools/testing/index.jd
index 56de4cf..a454891 100644
--- a/docs/html/tools/testing/index.jd
+++ b/docs/html/tools/testing/index.jd
@@ -1,40 +1,19 @@
 page.title=Testing
 @jd:body
 
-<p> The Android framework includes an integrated testing framework that helps you test all aspects
-of your application and the SDK tools include tools for setting up and running test applications.
-Whether you are working in Eclipse with ADT or working from the command line, the SDK tools help you
-set up and run your tests within an emulator or the device you are targeting. </p>
+<p>Android provides an integrated testing framework that helps you test all aspects
+of your app. The Android <a href="{@docRoot}sdk/installing/index.html">SDK</a> and
+<a href="{@docRoot}tools/testing-support-library/index.html">Testing Support Library</a> include
+tools and APIs for setting up and running test apps within an emulator or on the device you are
+targeting. You can build and execute tests whether you are working in Android Studio or working
+from the command line.</p>
 
-<p>If you aren't yet familiar with the Android testing framework, start by reading <a
-href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>. For a step-by-step
-introduction to Android testing, try the <a
-href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>. </p>
-
-
-
-<div class="landing-docs">
-
-  <div class="col-13" style="margin-left:0">
-    <h3>Blog Articles</h3>
-    
-    <a href="http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html">
-      <h4>New Gingerbread API: StrictMode</h4>
-      <p>StrictMode is a new API in Gingerbread which primarily lets you set a policy on a thread
-declaring what you’re not allowed to do on that thread, and what the penalty is if you violate the
-policy. Implementation-wise, this policy is simply a thread-local integer bitmask.</p>
-    </a>
-    
-    <a href="http://android-developers.blogspot.com/2010/10/traceview-war-story.html">
-      <h4>Traceview War Story</h4>
-      <p>I recently took my first serious look at Traceview, and it occurred to me, first, that
-there are probably a few other Android developers who haven’t used it and, second, that this is an
-opportunity to lecture sternly on one of my favorite subjects: performance improvement and
-profiling.</p>
-    </a>
-  </div>
-
-
-</div>
-
-
+<p>To familiarize yourself with mobile app testing in Android, start by reading these resources:</p>
+<ul>
+  <li><a href="{@docRoot}tools/testing/testing_android.html">Testing Concepts</a>: Learn key
+    concepts related to Android app testing and get an overview of the testing tools and APIs
+    that Google provides.</li>
+  <li><a href="{@docRoot}training/testing/start/index.html">Getting Started with Testing</a>: Learn
+    how to build and run your tests, step-by-step, using the testing APIs and tools that
+    Google provides.</li>
+</ul>
diff --git a/docs/html/tools/testing/service_testing.jd b/docs/html/tools/testing/service_testing.jd
deleted file mode 100644
index ef0e7b6..0000000
--- a/docs/html/tools/testing/service_testing.jd
+++ /dev/null
@@ -1,176 +0,0 @@
-page.title=Service Testing
-parent.title=Testing
-parent.link=index.html
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-  <h2>In this document</h2>
-  <ol>
-    <li>
-        <a href="#DesignAndTest">Service Design and Testing</a>
-    </li>
-    <li>
-        <a href="#ServiceTestCase">ServiceTestCase</a>
-    </li>
-    <li>
-        <a href="#MockObjects">Mock object classes</a>
-    </li>
-    <li>
-        <a href="#TestAreas">What to Test</a>
-    </li>
-  </ol>
-  <h2>Key Classes</h2>
-    <ol>
-      <li>{@link android.test.InstrumentationTestRunner}</li>
-      <li>{@link android.test.ServiceTestCase}</li>
-      <li>{@link android.test.mock.MockApplication}</li>
-      <li>{@link android.test.RenamingDelegatingContext}</li>
-    </ol>
-  <h2>Related Tutorials</h2>
-    <ol>
-        <li>
-            <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>
-        </li>
-    </ol>
-  <h2>See Also</h2>
-      <ol>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_eclipse.html">
-          Testing From Eclipse with ADT</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_otheride.html">
-          Testing From Other IDEs</a>
-        </li>
-      </ol>
-  </div>
-</div>
-<p>
-    Android provides a testing framework for Service objects that can run them in
-    isolation and provides mock objects. The test case class for Service objects is
-    {@link android.test.ServiceTestCase}. Since the Service class assumes that it is separate
-    from its clients, you can test a Service object without using instrumentation.
-</p>
-<p>
-    This document describes techniques for testing Service objects. If you aren't familiar with the
-    Service class, please read the <a href="{@docRoot}guide/components/services.html">
-    Services</a> document. If you aren't familiar with Android testing, please read
-    <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    the introduction to the Android testing and instrumentation framework.
-</p>
-<h2 id="DesignAndTest">Service Design and Testing</h2>
-<p>
-    When you design a Service, you should consider how your tests can examine the various states
-    of the Service lifecycle. If the lifecycle methods that start up your Service, such as
-    {@link android.app.Service#onCreate() onCreate()} or
-    {@link android.app.Service#onStartCommand(Intent, int, int) onStartCommand()} do not normally
-    set a global variable to indicate that they were successful, you may want to provide such a
-    variable for testing purposes.
-</p>
-<p>
-    Most other testing is facilitated by the methods in the {@link android.test.ServiceTestCase}
-    test case class. For example, the {@link android.test.ServiceTestCase#getService()} method
-    returns a handle to the Service under test, which you can test to confirm that the Service is
-    running even at the end of your tests.
-</p>
-<h2 id="ServiceTestCase">ServiceTestCase</h2>
-<p>
-    {@link android.test.ServiceTestCase} extends the JUnit {@link junit.framework.TestCase} class
-    with methods for testing application permissions and for controlling the application and
-    Service under test. It also provides mock application and Context objects that isolate your
-    test from the rest of the system.
-</p>
-<p>
-    {@link android.test.ServiceTestCase} defers initialization of the test environment until you
-    call {@link android.test.ServiceTestCase#startService(Intent) ServiceTestCase.startService()} or
-    {@link android.test.ServiceTestCase#bindService(Intent) ServiceTestCase.bindService()}. This
-    allows you to set up your test environment, particularly your mock objects, before the Service
-    is started.
-</p>
-<p>
-    Notice that the parameters to <code>ServiceTestCase.bindService()</code>are different from
-    those for <code>Service.bindService()</code>. For the <code>ServiceTestCase</code> version,
-    you only provide an Intent. Instead of returning a boolean,
-    <code>ServiceTestCase.bindService()</code> returns an object that subclasses
-    {@link android.os.IBinder}.
-</p>
-<p>
-    The {@link android.test.ServiceTestCase#setUp()} method for {@link android.test.ServiceTestCase}
-    is called before each test. It sets up the test fixture by making a copy of the current system
-    Context before any test methods touch it. You can retrieve this Context by calling
-    {@link android.test.ServiceTestCase#getSystemContext()}. If you override this method, you must
-    call <code>super.setUp()</code> as the first statement in the override.
-</p>
-<p>
-    The methods {@link android.test.ServiceTestCase#setApplication(Application) setApplication()}
-    and {@link android.test.AndroidTestCase#setContext(Context)} setContext()} allow you to set
-    a mock Context or mock Application (or both) for the Service, before you start it. These mock
-    objects are described in <a href="#MockObjects">Mock object classes</a>.
-</p>
-<p>
-    By default, {@link android.test.ServiceTestCase} runs the test method
-    {@link android.test.AndroidTestCase#testAndroidTestCaseSetupProperly()}, which asserts that
-    the base test case class successfully set up a Context before running.
-</p>
-<h2 id="MockObjects">Mock object classes</h2>
-<p>
-    <code>ServiceTestCase</code> assumes that you will use a mock Context or mock Application
-    (or both) for the test environment. These objects isolate the test environment from the
-    rest of the system. If you don't provide your own instances of these objects before you
-    start the Service, then {@link android.test.ServiceTestCase} will create its own internal
-    instances and inject them into the Service. You can override this behavior by creating and
-    injecting your own instances before starting the Service
-</p>
-<p>
-    To inject a mock Application object into the Service under test, first create a subclass of
-    {@link android.test.mock.MockApplication}. <code>MockApplication</code> is a subclass of
-    {@link android.app.Application} in which all the methods throw an Exception, so to use it
-    effectively you subclass it and override the methods you need. You then inject it into the
-    Service with the
-    {@link android.test.ServiceTestCase#setApplication(Application) setApplication()} method.
-    This mock object allows you to control the application values that the Service sees, and
-    isolates it from the real system. In addition, any hidden dependencies your Service has on
-    its application reveal themselves as exceptions when you run the test.
-</p>
-<p>
-    You inject a mock Context into the Service under test with the
-    {@link android.test.AndroidTestCase#setContext(Context) setContext()} method. The mock
-    Context classes you can use are described in more detail in
-    <a href="{@docRoot}tools/testing/testing_android.html#MockObjectClasses">
-    Testing Fundamentals</a>.
-</p>
-<h2 id="TestAreas">What to Test</h2>
-<p>
-    The topic <a href="{@docRoot}tools/testing/what_to_test.html">What To Test</a>
-    lists general considerations for testing Android components.
-    Here are some specific guidelines for testing a Service:
-</p>
-<ul>
-    <li>
-        Ensure that the {@link android.app.Service#onCreate()} is called in response to
-        {@link android.content.Context#startService(Intent) Context.startService()} or
-    {@link android.content.Context#bindService(Intent,ServiceConnection,int) Context.bindService()}.
-        Similarly, you should ensure that {@link android.app.Service#onDestroy()} is called in
-        response to {@link android.content.Context#stopService(Intent) Context.stopService()},
-        {@link android.content.Context#unbindService(ServiceConnection) Context.unbindService()},
-        {@link android.app.Service#stopSelf()}, or
-        {@link android.app.Service#stopSelfResult(int) stopSelfResult()}.
-    </li>
-    <li>
-        Test that your Service correctly handles multiple calls from
-        <code>Context.startService()</code>. Only the first call triggers
-        <code>Service.onCreate()</code>, but all calls trigger a call to
-        <code>Service.onStartCommand()</code>.
-        <p>
-            In addition, remember that <code>startService()</code> calls don't
-            nest, so a single call to <code>Context.stopService()</code> or
-            <code>Service.stopSelf()</code> (but not <code>stopSelf(int)</code>)
-            will stop the Service. You should test that your Service stops at the correct point.
-        </p>
-    </li>
-    <li>
-        Test any business logic that your Service implements. Business logic includes checking for
-        invalid values, financial and arithmetic calculations, and so forth.
-    </li>
-</ul>
diff --git a/docs/html/tools/testing/testing-tools.jd b/docs/html/tools/testing/testing-tools.jd
index 5e0a5bc..c60199f7 100644
--- a/docs/html/tools/testing/testing-tools.jd
+++ b/docs/html/tools/testing/testing-tools.jd
@@ -5,7 +5,7 @@
 <div id="qv">
   <h2>See also</h2>
   <ol>
-    <li><a href="{@docRoot}training/testing.html">Best Practices for Testing</a></li>
+    <li><a href="{@docRoot}training/testing/index.html">Best Practices for Testing</a></li>
   </ol>
 </div>
 </div>
diff --git a/docs/html/tools/testing/testing_android.jd b/docs/html/tools/testing/testing_android.jd
old mode 100644
new mode 100755
index 10843e8..5adb7e9
--- a/docs/html/tools/testing/testing_android.jd
+++ b/docs/html/tools/testing/testing_android.jd
@@ -1,4 +1,4 @@
-page.title=Testing Fundamentals
+page.title=Testing Concepts
 parent.title=Testing
 parent.link=index.html
 @jd:body
@@ -7,14 +7,8 @@
   <div id="qv">
   <h2>In this document</h2>
   <ol>
-    <li>
-        <a href="#TestStructure">Test Structure</a>
-    </li>
-    <li>
-        <a href="#TestProjects">Test Projects</a>
-    </li>
-    <li>
-      <a href="#TestAPI">The Testing API</a>
+    <li><a href="#TestStructure">Test Structure</a></li>
+    <li><a href="#TestAPI">Testing APIs</a>
       <ol>
         <li>
           <a href="#JUnit">JUnit</a>
@@ -23,111 +17,192 @@
           <a href="#Instrumentation">Instrumentation</a>
         </li>
         <li>
-            <a href="#TestCaseClasses">Test case classes</a>
+            <a href="#TestingSupportLibraryClasses">Android Testing Support Library APIs</a>
         </li>
         <li>
           <a href="#AssertionClasses">Assertion classes</a>
         </li>
-        <li>
-          <a href="#MockObjectClasses">Mock object classes</a>
-        </li>
       </ol>
     </li>
     <li>
-        <a href="#InstrumentationTestRunner">Running Tests</a>
-    </li>
-    <li>
-        <a href="#TestResults">Seeing Test Results</a>
-    </li>
-    <li>
-        <a href="#Monkeys">monkey and monkeyrunner</a>
-    </li>
-    <li>
-       <a href="#PackageNames">Working With Package Names</a>
-    </li>
-    <li>
-        <a href="#WhatToTest">What To Test</a>
-    </li>
-    <li>
-        <a href="#NextSteps">Next Steps</a>
+        <a href="#Monkeys">Monkey and Monkeyrunner</a>
     </li>
   </ol>
-  <h2>Key classes</h2>
-    <ol>
-      <li>{@link android.test.InstrumentationTestRunner}</li>
-      <li>{@link android.test}</li>
-      <li>{@link android.test.mock}</li>
-      <li>{@link junit.framework}</li>
-    </ol>
-  <h2>Related tutorials</h2>
-    <ol>
-        <li>
-            <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>
-        </li>
-    </ol>
   <h2>See also</h2>
-      <ol>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_eclipse.html">
-          Testing from Eclipse with ADT</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/testing/testing_otheride.html">
-          Testing from Other IDEs</a>
-        </li>
-        <li>
-          <a href="{@docRoot}tools/help/monkeyrunner_concepts.html">
-          monkeyrunner</a>
-        </li>
-        <li>
-     <a href="{@docRoot}tools/help/monkey.html">UI/Application Exerciser Monkey</a>
-        </li>
-      </ol>
+  <ol>
+      <li><a href="{@docRoot}training/testing/start/index.html">Getting Started with Testing</a></li>
+  </ol>
   </div>
 </div>
+
 <p>
-    The Android testing framework, an integral part of the development environment,
-    provides an architecture and powerful tools that help you test every aspect of your application
-    at every level from unit to framework.
-</p>
-<p>
-    The testing framework has these key features:
-</p>
+This document describes key concepts related to Android app testing. It assumes you have a basic
+knowledge of the <a href="http://junit.org/" class="external-link">JUnit</a> testing framework.</p>
+
+<h2 id="TestStructure">Test Structure</h2>
+<p>Android testing is based on JUnit. In general, a JUnit test is a method whose statements test a
+part of the application. You organize test methods into classes called
+<em>test cases</em>. You can further organize these classes into <em>test suites</em>.</p>
+<p>In JUnit, you build one or more test classes and use a test runner to
+execute them. In Android, you use <a href="{@docRoot}tools/studio/index.html">
+Android Studio </a>(or the <a href="{@docRoot}tools/building/plugin-for-gradle.html">
+Android Plugin for Gradle</a>) to build one or more test source files into an
+<em>Android test app</em>.</p>
+
+<p>From your testing environment, you can run your test in one of the following ways:</p>
 <ul>
-    <li>
-        Android test suites are based on JUnit. You can use plain JUnit to test a class that doesn't
-        call the Android API, or Android's JUnit extensions to test Android components. If you're
-        new to Android testing, you can start with general-purpose test case classes such as {@link
-        android.test.AndroidTestCase} and then go on to use more sophisticated classes.
-    </li>
-    <li>
-        The Android JUnit extensions provide component-specific test case classes. These classes
-        provide helper methods for creating mock objects and methods that help you control the
-        lifecycle of a component.
-    </li>
-    <li>
-        Test suites are contained in test packages that are similar to main application packages, so
-        you don't need to learn a new set of tools or techniques for designing and building tests.
-    </li>
-    <li>
-        The SDK tools for building and tests are available in Eclipse with ADT, and also in
-        command-line form for use with other IDEs. These tools get information from the project of
-        the application under test and use this information to automatically create the build files,
-        manifest file, and directory structure for the test package.
-    </li>
-    <li>
-        The SDK also provides
-  <a href="{@docRoot}tools/help/monkeyrunner_concepts.html">monkeyrunner</a>, an API
-        for testing devices with Python programs, and <a
-        href="{@docRoot}tools/help/monkey.html">UI/Application Exerciser Monkey</a>,
-        a command-line tool for stress-testing UIs by sending pseudo-random events to a device.
-    </li>
+    <li><strong>On your local machine:</strong> Compile the test classes and
+        execute them locally on the Java Virtual Machine (JVM) using the JUnit test runner.</li>
+    <li><strong>On a device or emulator</strong>: Install the test app and the app
+under test to a physical device or emulator, and then execute your tests using an Android-specific
+test runner (such as <a href="{@docRoot}tools/testing-support-library/index.html#AndroidJUnitRunner">
+{@code AndroidJUnitRunner}</a>).</li>
 </ul>
+
+<p>The structure of your test code and the way you build and run the tests in Android Studio depend
+on the type of testing you are performing. The following table summarizes the common testing types
+for Android:</p>
+
+<table>
+<tr><th>Type</th>
+    <th>Subtype</th>
+    <th>Description</th></tr>
+
+<tr><td rowspan="3">Unit tests</td>
+    <tr><td>Local Unit Tests</td>
+        <td>Unit tests that run on your local machine only. These tests are compiled to run locally
+on the JVM to minimize execution time. Use this approach to run unit tests
+that have no dependencies on the Android framework or have dependencies that mock objects can
+satisfy.</td></tr>
+    <tr><td>Instrumented unit tests</td>
+        <td>Unit tests that run on an Android device or emulator. These tests have access to
+{@link android.app.Instrumentation} information, such as the {@link android.content.Context} of the
+app under test. Use this approach to run unit tests that have Android dependencies which mock
+objects cannot easily satisfy.</td></tr>
+
+<tr><td rowspan="3">Integration Tests</td>
+    <tr><td>Components within your app only</td>
+        <td>This type of test verifies that the target app behaves as expected when a user performs
+a specific action or enters a specific input in its activities. For example, it allows you to check
+that the target app returns the correct UI output in response to user interactions in the app’s
+activities. UI testing frameworks like
+<a href="{@docRoot}tools/testing-support-library/index.html#Espresso">Espresso</a> allow you to
+programmatically simulate user actions and test complex intra-app user interactions.</td></tr>
+    <tr><td>Cross-app Components</td>
+    <td>This type of test verifies the correct behavior of interactions between different user
+apps or between user apps and system apps. For example, you might want to test that your app behaves
+correctly when the user performs an action in the Android Settings menu. UI testing frameworks
+that support cross-app interactions, such as UI Automator, allow you to create tests for such
+scenarios.</td></tr>
+</table>
+
+<p>Based on the type of test you want to create, you need to configure the test code source
+location and the project dependencies in Android Studio as described in
+<a href="{@docRoot}training/testing/start/index.html">Getting Started with Testing</a>.</p>
+
+<h2 id="TestAPI">Testing APIs</h2>
+<p>The following list summarizes the common APIs related to app testing for Android.</p>
+
+<h3 id="JUnit">JUnit</h3>
+
+<p>You should write your unit or integration test class as a JUnit 4 test class.
+<a href="http://junit.org/" class="external-link">JUnit</a> is the most popular
+and widely-used unit testing framework for Java. The framework offers a convenient way to perform
+common setup, teardown, and assertion operations in your test.</p>
+
+<p>JUnit 4 allows you to write tests in a cleaner and more
+flexible way than its predecessor versions. Unlike the previous approach to Android unit testing
+based on JUnit 3, with JUnit 4, you do not need to extend the {@code junit.framework.TestCase}
+class. You also do not need to prepend the {@code test} keyword to your test method name, or
+use any classes in the {@code junit.framework} or {@code junit.extensions} package.</p>
+
+<p>A basic JUnit 4 test class is a Java class that contains one or more test methods.
+A test method begins with the {@code &#64;Test} annotation and contains the code to exercise
+and verify a single functionality (that is, a logical <em>unit</em>) in the component that you want
+to test.</p>
+<p>The following snippet shows an example JUnit 4 integration test that uses the Espresso
+APIs to perform a click action on a UI element, then checks to see if an expected string is
+displayed.</p>
+<pre>
+&#64;RunWith(AndroidJUnit4.class)
+&#64;LargeTest
+public class MainActivityInstrumentationTest {
+
+    &#64;Rule
+    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
+            MainActivity.class);
+
+    &#64;Test
+    public void sayHello(){
+        onView(withText("Say hello!")).perform(click());
+
+        onView(withId(R.id.textView)).check(matches(withText("Hello, World!")));
+    }
+}
+</pre>
+<p>In your JUnit 4 test class, you can call out sections in your test code for
+special processing by using the following annotations:</p>
+<ul>
+<li>
+{@code &#64;Before}: Use this annotation to specify a block of code that contains test setup
+operations. The test class invokes this code block before each test. You can have multiple
+{@code &#64;Before} methods but the order in which the test class calls these methods
+is not guaranteed.
+</li>
+<li>
+{@code &#64;After}: This annotation specifies a block of code that contains test
+tear-down operations. The test class calls this code block after every test method. You can define
+multiple {@code &#64;After} operations in your test code. Use this annotation to release any
+resources from memory.
+</li>
+<li>
+{@code &#64;Test}: Use this annotation to mark a test method. A single test class can contain
+multiple test methods, each prefixed with this annotation.
+</li>
+<li>
+{@code &#64;Rule}: Rules allow you to flexibly add or redefine the behavior of each test
+method in a reusable way. In Android testing, use this annotation together with
+one of the test rule classes that the Android Testing Support Library provides, such as
+<a href="{@docRoot}reference/android/support/test/rule/ActivityTestRule.html">
+{@code ActivityTestRule}</a> or
+<a href="{@docRoot}reference/android/support/test/rule/ServiceTestRule.html">
+{@code ServiceTestRule}</a>.
+</li>
+<li>
+{@code &#64;BeforeClass}: Use this annotation to specify static methods for each test class to
+invoke only once. This testing step is useful for expensive operations such as connecting to a
+database.
+</li>
+<li>
+{@code &#64;AfterClass}: Use this annotation to specify static methods for the test class to invoke
+only after all tests in the class have run. This testing step is useful for releasing any
+resources allocated in the {@code &#64;BeforeClass} block.
+</li>
+<li>
+{@code &#64;Test(timeout=&lt;milliseconds&gt;)}: Some annotations support the ability to pass in
+elements for which you can set values. For example, you can specify a timeout period for the test.
+If the test starts but does not complete within the given timeout period, it automatically fails.
+You must specify the timeout period in milliseconds, for example: {@code &#64;Test(timeout=5000)}.
+</li>
+</ul>
+<p>For more annotations, see the documentation for
+<a href="//junit.sourceforge.net/javadoc/org/junit/package-summary.html" class="external-link">
+JUnit annotations</a> and the
+<a href="{@docRoot}android/support/test/annotation/package-summary.html">
+Android-specific annotations</a>.
 <p>
-    This document describes the fundamentals of the Android testing framework, including the
-    structure of tests, the APIs that you use to develop tests, and the tools that you use to run
-    tests and view results. The document assumes you have a basic knowledge of Android application
-    programming and JUnit testing methodology.
+    You use the JUnit {@link junit.framework.Assert} class to verify the correctness of an object's
+    state. The assert methods compare values you expect from a test to the actual results and
+    throw an exception if the comparison fails. <a href="#AssertionClasses">
+    Assertion classes</a> describes these methods in more detail.
+</p>
+
+</p>
+<h3 id="Instrumentation">Instrumentation</h3>
+<p>
+    Android instrumentation is a set of control methods or hooks in the Android system. These
+    hooks control an Android component independently of its normal lifecycle. They also control how
+    Android loads applications.
 </p>
 <p>
     The following diagram summarizes the testing framework:
@@ -138,415 +213,60 @@
         alt="The Android testing framework"/>
 </a>
 </div>
-<h2 id="TestStructure">Test Structure</h2>
 <p>
-    Android's build and test tools assume that test projects are organized into a standard
-    structure of tests, test case classes, test packages, and test projects.
+Normally, an Android component runs in a lifecycle that the system determines. For example, an
+{@link android.app.Activity} object's lifecycle starts when an {@link android.content.Intent}
+activates the {@link android.app.Activity}. The system calls the object's <code>onCreate()</code>
+method, on then the <code>onResume()</code> method. When the user starts another application, the
+system calls the <code>onPause()</code> method. If the {@link android.app.Activity} code calls
+the <code>finish()</code> method, the system calls the <code>onDestroy()</code> method. The Android
+framework API does not provide a way for your code to invoke these callback methods directly, but
+you can do so using instrumentation.
 </p>
 <p>
-    Android testing is based on JUnit. In general, a JUnit test is a method whose
-    statements test a part of the application under test. You organize test methods into classes
-    called test cases (or test suites). Each test is an isolated test of an individual module in
-    the application under test. Each class is a container for related test methods, although it
-    often provides helper methods as well.
+The system runs all the components of an application in the same process. You can allow some
+components, such as content providers, to run in a separate process,
+but you can't force an application to run in the same process as another application that is
+already running.
 </p>
 <p>
-    In JUnit, you build one or more test source files into a class file. Similarly, in Android you
-    use the SDK's build tools to build one or more test source files into class files in an
-    Android test package. In JUnit, you use a test runner to execute test classes. In Android, you
-    use test tools to load the test package and the application under test, and the tools then
-    execute an Android-specific test runner.
+Instrumentation can load both a test package and the app under test into the
+same process. Since the application components and their tests are in the same process, your
+tests can invoke methods in the components, and modify and examine fields in the components.
 </p>
-<h2 id="TestProjects">Test Projects</h2>
+<h3 id="TestingSupportLibraryClasses">Android Testing Support Library APIs</h3>
 <p>
-    Tests, like Android applications, are organized into projects.
-</p>
-<p>
-    A test project is a directory or Eclipse project in which you create the source code, manifest
-    file, and other files for a test package. The Android SDK contains tools for Eclipse with ADT
-    and for the command line that create and update test projects for you. The tools create the
-    directories you use for source code and resources and the manifest file for the test package.
-    The command-line tools also create the Ant build files you need.
-</p>
-<p>
-    You should always use Android tools to create a test project. Among other benefits,
-    the tools:
-</p>
-    <ul>
-        <li>
-            Automatically set up your test package to use
-            {@link android.test.InstrumentationTestRunner} as the test case runner. You must use
-            <code>InstrumentationTestRunner</code> (or a subclass) to run JUnit tests.
-        </li>
-        <li>
-            Create an appropriate name for the test package. If the application
-            under test has a package name of <code>com.mydomain.myapp</code>, then the
-            Android tools set the test package name to <code>com.mydomain.myapp.test</code>. This
-            helps you identify their relationship, while preventing conflicts within the system.
-        </li>
-        <li>
-            Automatically create the proper build files, manifest file, and directory
-            structure for the test project. This helps you to build the test package without
-            having to modify build files and sets up the linkage between your test package and
-            the application under test.
-            The
-        </li>
-    </ul>
-<p>
-    You can create a test project anywhere in your file system, but the best approach is to
-    add the test project so that its root directory <code>tests/</code> is at the same level
-    as the <code>src/</code> directory of the main application's project. This helps you find the
-    tests associated with an application. For example, if your application project's root directory
-    is <code>MyProject</code>, then you should use the following directory structure:
-</p>
-<pre class="classic no-pretty-print">
-  MyProject/
-      AndroidManifest.xml
-      res/
-          ... (resources for main application)
-      src/
-          ... (source code for main application) ...
-      tests/
-          AndroidManifest.xml
-          res/
-              ... (resources for tests)
-          src/
-              ... (source code for tests)
-</pre>
-<h2 id="TestAPI">The Testing API</h2>
-<p>
-    The Android testing API is based on the JUnit API and extended with a instrumentation
-    framework and Android-specific testing classes.
-</p>
-<h3 id="JUnit">JUnit</h3>
-<p>
-    You can use the JUnit {@link junit.framework.TestCase TestCase} class to do unit testing on
-    a class that doesn't call Android APIs. <code>TestCase</code> is also the base class for
-    {@link android.test.AndroidTestCase}, which you can use to test Android-dependent objects.
-    Besides providing the JUnit framework, AndroidTestCase offers Android-specific setup,
-    teardown, and helper methods.
-</p>
-<p>
-    You use the JUnit {@link junit.framework.Assert} class to display test results.
-    The assert methods compare values you expect from a test to the actual results and
-    throw an exception if the comparison fails. Android also provides a class of assertions that
-    extend the possible types of comparisons, and another class of assertions for testing the UI.
-    These are described in more detail in the section <a href="#AssertionClasses">
-    Assertion classes</a>
-</p>
-<p>
-    To learn more about JUnit, you can read the documentation on the
-    <a href="http://www.junit.org">junit.org</a> home page.
-    Note that the Android testing API supports JUnit 3 code style, but not JUnit 4. Also, you must
-    use Android's instrumented test runner {@link android.test.InstrumentationTestRunner} to run
-    your test case classes. This test runner is described in the
-    section <a href="#InstrumentationTestRunner">Running Tests</a>.
-</p>
-<h3 id="Instrumentation">Instrumentation</h3>
-<p>
-    Android instrumentation is a set of control methods or "hooks" in the Android system. These hooks
-    control an Android component independently of its normal lifecycle. They also control how
-    Android loads applications.
-</p>
-<p>
-    Normally, an Android component runs in a lifecycle determined by the system. For example, an
-    Activity object's lifecycle starts when the Activity is activated by an Intent. The object's
-    <code>onCreate()</code> method is called, followed by <code>onResume()</code>. When the user
-    starts another application, the <code>onPause()</code> method is called. If the Activity
-    code calls the <code>finish()</code> method, the <code>onDestroy()</code> method is called.
-    The Android framework API does not provide a way for your code to invoke these callback
-    methods directly, but you can do so using instrumentation.
-</p>
-<p>
-    Also, the system runs all the components of an application into the same
-    process. You can allow some components, such as content providers, to run in a separate process,
-    but you can't force an application to run in the same process as another application that is
-    already running.
-</p>
-<p>
-    With Android instrumentation, though, you can invoke callback methods in your test code.
-    This allows you to run through the lifecycle of a component step by step, as if you were
-    debugging the component. The following test code snippet demonstrates how to use this to
-    test that an Activity saves and restores its state:
-</p>
-<a name="ActivitySnippet"></a>
-<pre>
-    // Start the main activity of the application under test
-    mActivity = getActivity();
-
-    // Get a handle to the Activity object's main UI widget, a Spinner
-    mSpinner = (Spinner)mActivity.findViewById(com.android.example.spinner.R.id.Spinner01);
-
-    // Set the Spinner to a known position
-    mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION);
-
-    // Stop the activity - The onDestroy() method should save the state of the Spinner
-    mActivity.finish();
-
-    // Re-start the Activity - the onResume() method should restore the state of the Spinner
-    mActivity = getActivity();
-
-    // Get the Spinner's current position
-    int currentPosition = mActivity.getSpinnerPosition();
-
-    // Assert that the current position is the same as the starting position
-    assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition);
-</pre>
-<p>
-    The key method used here is
-    {@link android.test.ActivityInstrumentationTestCase2#getActivity()}, which is a
-    part of the instrumentation API. The Activity under test is not started until you call this
-    method. You can set up the test fixture in advance, and then call this method to start the
-    Activity.
-</p>
-<p>
-    Also, instrumentation can load both a test package and the application under test into the
-    same process. Since the application components and their tests are in the same process, the
-    tests can invoke methods in the components, and modify and examine fields in the components.
-</p>
-<h3 id="TestCaseClasses">Test case classes</h3>
-<p>
-    Android provides several test case classes that extend {@link junit.framework.TestCase} and
-    {@link junit.framework.Assert} with Android-specific setup, teardown, and helper methods.
-</p>
-<h4 id="AndroidTestCase">AndroidTestCase</h4>
-<p>
-    A useful general test case class, especially if you are
-    just starting out with Android testing, is {@link android.test.AndroidTestCase}. It extends
-    both {@link junit.framework.TestCase} and {@link junit.framework.Assert}. It provides the
-    JUnit-standard <code>setUp()</code> and <code>tearDown()</code> methods, as well as
-    all of JUnit's Assert methods. In addition, it provides methods for testing permissions, and a
-    method that guards against memory leaks by clearing out certain class references.
-</p>
-<h4 id="ComponentTestCase">Component-specific test cases</h4>
-<p>
-    A key feature of the Android testing framework is its component-specific test case classes.
-    These address specific component testing needs with methods for fixture setup and
-    teardown and component lifecycle control. They also provide methods for setting up mock objects.
-    These classes are described in the component-specific testing topics:
-</p>
+The <a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
+provides a set of APIs that allow you to quickly build and run test code for your apps, including
+JUnit 4 and functional user interface (UI) tests. The library includes the following
+instrumentation-based APIs that are useful when you want to automate your tests:</p>
 <ul>
-    <li>
-        <a href="{@docRoot}tools/testing/activity_testing.html">Activity Testing</a>
+    <li><a href="{@docRoot}tools/testing-support-library/index.html#AndroidJUnitRunner">
+        {@code AndroidJUnitRunner}</a>:
+      JUnit 4-compatible test runner for Android
     </li>
-    <li>
-        <a href="{@docRoot}tools/testing/contentprovider_testing.html">
-        Content Provider Testing</a>
+
+    <li><a href="{@docRoot}tools/testing-support-library/index.html#Espresso">Espresso</a>:
+    UI testing framework; suitable for functional UI testing within an app
     </li>
-    <li>
-        <a href="{@docRoot}tools/testing/service_testing.html">Service Testing</a>
-    </li>
-</ul>
-<p>
-    Android does not provide a separate test case class for BroadcastReceiver. Instead, test a
-    BroadcastReceiver by testing the component that sends it Intent objects, to verify that the
-    BroadcastReceiver responds correctly.
-</p>
-<h4 id="ApplicationTestCase">ApplicationTestCase</h4>
-<p>
-    You use the {@link android.test.ApplicationTestCase} test case class to test the setup and
-    teardown of {@link android.app.Application} objects. These objects maintain the global state of
-    information that applies to all the components in an application package. The test case can
-    be useful in verifying that the &lt;application&gt; element in the manifest file is correctly
-    set up. Note, however, that this test case does not allow you to control testing of the
-    components within your application package.
-</p>
-<h4 id="InstrumentationTestCase">InstrumentationTestCase</h4>
-<p>
-    If you want to use instrumentation methods in a test case class, you must use
-    {@link android.test.InstrumentationTestCase} or one of its subclasses. The
-    {@link android.app.Activity} test cases extend this base class with other functionality that
-    assists in Activity testing.
-</p>
+
+    <li><a href="{@docRoot}tools/testing-support-library/index.html#UIAutomator">UI Automator</a>:
+    UI testing framework; suitable for cross-app functional UI testing across system and installed
+    apps</li>
+  </ul>
 
 <h3 id="AssertionClasses">Assertion classes</h3>
-<p>
-    Because Android test case classes extend JUnit, you can use assertion methods to display the
-    results of tests. An assertion method compares an actual value returned by a test to an
-    expected value, and throws an AssertionException if the comparison test fails. Using assertions
-    is more convenient than doing logging, and provides better test performance.
+<p>Because Android Testing Support Library APIs extend JUnit, you can use assertion methods to
+display the results of tests. An assertion method compares an actual value returned by a test to an
+expected value, and throws an AssertionException if the comparison test fails. Using assertions
+is more convenient than logging, and provides better test performance.
 </p>
-<p>
-    Besides the JUnit {@link junit.framework.Assert} class methods, the testing API also provides
-    the {@link android.test.MoreAsserts} and {@link android.test.ViewAsserts} classes:
-</p>
-<ul>
-    <li>
-        {@link android.test.MoreAsserts} contains more powerful assertions such as
-        {@link android.test.MoreAsserts#assertContainsRegex}, which does regular expression
-        matching.
-    </li>
-    <li>
-        {@link android.test.ViewAsserts} contains useful assertions about Views. For example
-        it contains {@link android.test.ViewAsserts#assertHasScreenCoordinates} that tests if a View
-        has a particular X and Y position on the visible screen. These asserts simplify testing of
-        geometry and alignment in the UI.
-    </li>
-</ul>
-<h3 id="MockObjectClasses">Mock object classes</h3>
-<p>
-    To facilitate dependency injection in testing, Android provides classes that create mock system
-    objects such as {@link android.content.Context} objects,
-    {@link android.content.ContentProvider} objects, {@link android.content.ContentResolver}
-    objects, and {@link android.app.Service} objects. Some test cases also provide mock
-    {@link android.content.Intent} objects. You use these mocks both to isolate tests
-    from the rest of the system and to facilitate dependency injection for testing. These classes
-    are found in the packages {@link android.test} and {@link android.test.mock}.
-</p>
-<p>
-    Mock objects isolate tests from a running system by stubbing out or overriding
-    normal operations. For example, a {@link android.test.mock.MockContentResolver}
-    replaces the normal resolver framework with its own local framework, which is isolated
-    from the rest of the system. MockContentResolver also stubs out the
-    {@link android.content.ContentResolver#notifyChange(Uri, ContentObserver, boolean)} method
-    so that observer objects outside the test environment are not accidentally triggered.
-</p>
-<p>
-    Mock object classes also facilitate dependency injection by providing a subclass of the
-    normal object that is non-functional except for overrides you define. For example, the
-    {@link android.test.mock.MockResources} object provides a subclass of
-    {@link android.content.res.Resources} in which all the methods throw Exceptions when called.
-    To use it, you override only those methods that must provide information.
-</p>
-<p>
-    These are the mock object classes available in Android:
-</p>
-<h4 id="SimpleMocks">Simple mock object classes</h4>
-<p>
-    {@link android.test.mock.MockApplication}, {@link android.test.mock.MockContext},
-    {@link android.test.mock.MockContentProvider}, {@link android.test.mock.MockCursor},
-    {@link android.test.mock.MockDialogInterface}, {@link android.test.mock.MockPackageManager}, and
-    {@link android.test.mock.MockResources} provide a simple and useful mock strategy. They are
-    stubbed-out versions of the corresponding system object class, and all of their methods throw an
-    {@link java.lang.UnsupportedOperationException} exception if called. To use them, you override
-    the methods you need in order to provide mock dependencies.
-</p>
-<p class="Note"><strong>Note:</strong>
-    {@link android.test.mock.MockContentProvider}
-    and {@link android.test.mock.MockCursor} are new as of API level 8.
-</p>
-<h4 id="ResolverMocks">Resolver mock objects</h4>
-<p>
-    {@link android.test.mock.MockContentResolver} provides isolated testing of content providers by
-    masking out the normal system resolver framework. Instead of looking in the system to find a
-    content provider given an authority string, MockContentResolver uses its own internal table. You
-    must explicitly add providers to this table using
-    {@link android.test.mock.MockContentResolver#addProvider(String,ContentProvider)}.
-</p>
-<p>
-    With this feature, you can associate a mock content provider with an authority. You can create
-    an instance of a real provider but use test data in it. You can even set the provider for an
-    authority to <code>null</code>. In effect, a MockContentResolver object isolates your test
-    from providers that contain real data. You can control the
-    function of the provider, and you can prevent your test from affecting real data.
-</p>
-<h3 id="ContextMocks">Contexts for testing</h3>
-<p>
-    Android provides two Context classes that are useful for testing:
-</p>
-<ul>
-    <li>
-        {@link android.test.IsolatedContext} provides an isolated {@link android.content.Context},
-        File, directory, and database operations that use this Context take place in a test area.
-        Though its functionality is limited, this Context has enough stub code to respond to
-        system calls.
-        <p>
-            This class allows you to test an application's data operations without affecting real
-            data that may be present on the device.
-        </p>
-    </li>
-    <li>
-        {@link android.test.RenamingDelegatingContext} provides a Context in which
-        most functions are handled by an existing {@link android.content.Context}, but
-        file and database operations are handled by a {@link android.test.IsolatedContext}.
-        The isolated part uses a test directory and creates special file and directory names.
-        You can control the naming yourself, or let the constructor determine it automatically.
-        <p>
-            This object provides a quick way to set up an isolated area for data operations,
-            while keeping normal functionality for all other Context operations.
-        </p>
-    </li>
-</ul>
-<h2 id="InstrumentationTestRunner">Running Tests</h2>
-<p>
-    Test cases are run by a test runner class that loads the test case class, set ups,
-    runs, and tears down each test. An Android test runner must also be instrumented, so that
-    the system utility for starting applications can control how the test package
-    loads test cases and the application under test. You tell the Android platform
-    which instrumented test runner to use by setting a value in the test package's manifest file.
-</p>
-<p>
-    {@link android.test.InstrumentationTestRunner} is the primary Android test runner class. It
-    extends the JUnit test runner framework and is also instrumented. It can run any of the test
-    case classes provided by Android and supports all possible types of testing.
-</p>
-<p>
-    You specify <code>InstrumentationTestRunner</code> or a subclass in your test package's
-    manifest file, in the 
-<code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></code> 
-    element. Also, <code>InstrumentationTestRunner</code> code resides
-    in the shared library <code>android.test.runner</code>,  which is not normally linked to
-    Android code. To include it, you must specify it in a
-<code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
-    element. You do not have to set up these elements yourself. Both Eclipse with ADT and the
-    <code>android</code> command-line tool construct them automatically and add them to your
-    test package's manifest file.
-</p>
-<p class="Note">
-    <strong>Note:</strong> If you use a test runner other than
-    <code>InstrumentationTestRunner</code>, you must change the &lt;instrumentation&gt;
-    element to point to the class you want to use.
-</p>
-<p>
-    To run {@link android.test.InstrumentationTestRunner}, you use internal system classes called by
-    Android tools. When you run a test in Eclipse with ADT, the classes are called automatically.
-    When you run a test from the command line, you run these classes with
-    <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (adb)</a>.
-</p>
-<p>
-    The system classes load and start the test package, kill any processes that
-    are running an instance of the application under test, and then load a new instance of the
-    application under test. They then pass control to
-    {@link android.test.InstrumentationTestRunner}, which runs
-    each test case class in the test package. You can also control which test cases and
-    methods are run using settings in Eclipse with ADT, or using flags with the command-line tools.
-</p>
-<p>
-    Neither the system classes nor {@link android.test.InstrumentationTestRunner} run
-    the application under test. Instead, the test case does this directly. It either calls methods
-    in the application under test, or it calls its own methods that trigger lifecycle events in
-    the application under test. The application is under the complete control of the test case,
-    which allows it to set up the test environment (the test fixture) before running a test. This
-    is demonstrated in the previous <a href="#ActivitySnippet">code snippet</a> that tests an
-    Activity that displays a Spinner widget.
-</p>
-<p>
-    To learn more about running tests, please read the topics
-    <a href="{@docRoot}tools/testing/testing_eclipse.html">
-    Testing from Eclipse with ADT</a> or
-    <a href="{@docRoot}tools/testing/testing_otheride.html">
-    Testing from Other IDEs</a>.
-</p>
-<h2 id="TestResults">Seeing Test Results</h2>
-<p>
-    The Android testing framework returns test results back to the tool that started the test.
-    If you run a test in Eclipse with ADT, the results are displayed in a new JUnit view pane. If
-    you run a test from the command line, the results are displayed in <code>STDOUT</code>. In
-    both cases, you see a test summary that displays the name of each test case and method that
-    was run. You also see all the assertion failures that occurred. These include pointers to the
-    line in the test code where the failure occurred. Assertion failures also list the expected
-    value and actual value.
-</p>
-<p>
-    The test results have a format that is specific to the IDE that you are using. The test
-    results format for Eclipse with ADT is described in
-    <a href="{@docRoot}tools/testing/testing_eclipse.html#RunTestEclipse">
-    Testing from Eclipse with ADT</a>. The test results format for tests run from the
-    command line is described in
-    <a href="{@docRoot}tools/testing/testing_otheride.html#RunTestsCommand">
-    Testing from Other IDEs</a>.
-</p>
-<h2 id="Monkeys">monkey and monkeyrunner</h2>
+<p>To simplify your test development, we recommend that you use the
+<a href="https://github.com/hamcrest"
+class="external-link">Hamcrest</a> library, which lets you create more flexible tests using the
+Hamcrest matcher APIs.</p>
+
+<h2 id="Monkeys">Monkey and Monkeyrunner</h2>
 <p>
     The SDK provides two tools for functional-level application testing:
 </p>
@@ -569,72 +289,4 @@
             tests. You run programs that use the API with the <code>monkeyrunner</code> command-line
             tool.
         </li>
-    </ul>
-<h2 id="PackageNames">Working With Package names</h2>
-<p>
-    In the test environment, you work with both Android application package names and
-    Java package identifiers. Both use the same naming format, but they represent substantially
-    different entities. You need to know the difference to set up your tests correctly.
-</p>
-<p>
-    An Android package name is a unique system name for a <code>.apk</code> file, set by the
-    &quot;android:package&quot; attribute of the &lt;manifest&gt; element in the package's
-    manifest. The Android package name of your test package must be different from the
-    Android package name of the application under test. By default, Android tools create the
-    test package name by appending ".test" to the package name of the application under test.
-</p>
-<p>
-    The test package also uses an Android package name to target the application package it
-    tests. This is set in the &quot;android:targetPackage&quot; attribute of the
-    &lt;instrumentation&gt; element in the test package's manifest.
-</p>
-<p>
-    A Java package identifier applies to a source file. This package name reflects the directory
-    path of the source file. It also affects the visibility of classes and members to each other.
-</p>
-<p>
-    Android tools that create test projects set up an Android test package name for you.
-    From your input, the tools set up the test package name and the target package name for the
-    application under test. For these tools to work, the application project must already exist.
-</p>
-<p>
-    By default, these tools set the Java package identifier for the test class to be the same
-    as the Android package identifier. You may want to change this if you want to expose
-    members in the application under test by giving them package visibility. If you do this,
-    change only the Java package identifier, not the Android package names, and change only the
-    test case source files. Do not change the Java package name of the generated
-    <code>R.java</code> class in your test package, because it will then conflict with the
-    <code>R.java</code> class in the application under test. Do not change the Android package name
-    of your test package to be the same as the application it tests, because then their names
-    will no longer be unique in the system.
-</p>
-<h2 id="WhatToTest">What to Test</h2>
-<p>
-    The topic <a href="{@docRoot}tools/testing/what_to_test.html">What To Test</a>
-    describes the key functionality you should test in an Android application, and the key
-    situations that might affect that functionality.
-</p>
-<p>
-    Most unit testing is specific to the Android component you are testing.
-    The topics <a href="{@docRoot}tools/testing/activity_testing.html">Activity Testing</a>,
-    <a href="{@docRoot}tools/testing/contentprovider_testing.html">
-    Content Provider Testing</a>, and <a href="{@docRoot}tools/testing/service_testing.html">
-    Service Testing</a> each have a section entitled "What To Test" that lists possible testing
-    areas.
-</p>
-<p>
-    When possible, you should run these tests on an actual device. If this is not possible, you can
-    use the <a href="{@docRoot}tools/devices/emulator.html">Android Emulator</a> with
-    Android Virtual Devices configured for the hardware, screens, and versions you want to test.
-</p>
-<h2 id="NextSteps">Next Steps</h2>
-<p>
-    To learn how to set up and run tests in Eclipse, please refer to 
-<a href="{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse with ADT</a>.
-    If you're not working in Eclipse, refer to 
-<a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other IDEs</a>.
-</p>
-<p>
-    If you want a step-by-step introduction to Android testing, try the
-    <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing Tutorial</a>.
-</p>
+    </ul>
\ No newline at end of file
diff --git a/docs/html/tools/testing/testing_eclipse.jd b/docs/html/tools/testing/testing_eclipse.jd
deleted file mode 100644
index 6c9d55b..0000000
--- a/docs/html/tools/testing/testing_eclipse.jd
+++ /dev/null
@@ -1,535 +0,0 @@
-page.title=Testing from Eclipse with ADT
-parent.title=Testing
-parent.link=index.html
-@jd:body
-<div id="qv-wrapper">
-    <div id="qv">
-        <h2>In this document</h2>
-            <ol>
-                <li><a href="#CreateTestProjectEclipse">Creating a Test Project</a></li>
-                <li><a href="#CreateTestAppEclipse">Creating a Test Package</a></li>
-                <li><a href="#RunTestEclipse">Running Tests</a></li>
-            </ol>
-    </div>
-</div>
-<p>
-    This topic explains how create and run tests of Android applications in Eclipse with ADT.
-    Before you read this topic, you should read about how to create an Android application with the
-    basic processes for creating and running applications with ADT, as described in
-    <a href="{@docRoot}tools/projects/projects-eclipse.html">Managing Projects from
-Eclipse</a>
-    and <a href="{@docRoot}tools/building/building-eclipse.html">Building and Running
-from Eclipse</a>.
-    You may also want to read
-    <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    which provides an overview of the Android testing framework.
-</p>
-<p>
-    ADT provides several features that help you set up and manage your testing environment
-    effectively:
-</p>
-    <ul>
-        <li>
-            It lets you quickly create a test project and link it to the application under test.
-            When it creates the test project, it automatically inserts the necessary
-            <code>&lt;instrumentation&gt;</code> element in the test package's manifest file.
-        </li>
-        <li>
-            It lets you quickly import the classes of the application under test, so that your
-            tests can inspect them.
-        </li>
-        <li>
-            It lets you create run configurations for your test package and include in
-            them flags that are passed to the Android testing framework.
-        </li>
-        <li>
-            It lets you run your test package without leaving Eclipse. ADT builds both the
-            application under test and the test package automatically, installs them if
-            necessary to your device or emulator, runs the test package, and displays the
-            results in a separate window in Eclipse.
-        </li>
-    </ul>
-<p>
-    If you are not developing in Eclipse or you want to learn how to create and run tests from the
-    command line, see
-    <a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other IDEs</a>.
-</p>
-<h2 id="CreateTestProjectEclipse">Creating a Test Project</h2>
-<p>
-    To set up a test environment for your Android application, you must first create a separate
-    project that holds the test code. The new project follows the directory structure
-    used for any Android application. It includes the same types of content and files, such as
-    source code, resources, a manifest file, and so forth. The test package you
-    create is connected to the application under test by an
-    <a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">
-    <code>&lt;instrumentation&gt;</code></a> element in its manifest file.
-</p>
-<p>
-    The <em>New Android Test Project</em> dialog makes it easy for you to generate a
-    new test project that has the proper structure, including the
-    <code>&lt;instrumentation&gt;</code> element in the manifest file. You can use the New
-    Android Test Project dialog to generate the test project at any time. The dialog appears
-    just after you create a new Android main application project, but you can also run it to
-    create a test project for a project that you created previously.
-</p>
-<p>
-    To create a test project in Eclipse with ADT:
-</p>
-<ol>
-    <li>
-        In Eclipse, select <strong>File &gt; New &gt; Other</strong>. This opens the <em>Select a
-        Wizard</em> dialog.
-    </li>
-    <li>
-        In the dialog, in the <em>Wizards</em> drop-down list, find the entry for Android, then
-        click the toggle to the left. Select <strong>Android Test Project</strong>, then at the
-        bottom of the dialog click <strong>Next</strong>. The <em>New Android Test Project</em>
-        wizard appears.
-    </li>
-    <li>
-        Next to <em>Test Project Name</em>, enter a name for the project. You may use any name,
-        but you may want to associate the name with the project name for the application under test.
-        One way to do this is to take the application's project name, append the string "Test" to
-        it, and then use this as the test package project name.
-        <p>
-            The name becomes part of the suggested project path, but you can change this in the
-            next step.
-        </p>
-    </li>
-    <li>
-        In the <em>Content</em> panel, examine the suggested path to the project.
-        If <em>Use default location</em> is set, then the wizard will suggest a path that is
-        a concatenation of the workspace path and the project name you entered. For example,
-        if your workspace path is <code>/usr/local/workspace</code> and your project name is
-        <code>MyTestApp</code>, then the wizard will suggest
-        <code>/usr/local/workspace/MyTestApp</code>. To enter your own
-        choice for a path, unselect <em>Use default location</em>, then enter or browse to the
-        path where you want your project.
-        <p>
-            To learn more about choosing the location of test projects, please read
-            <a href="{@docRoot}tools/testing/testing_android.html#TestProjectPaths">
-            Testing Fundamentals</a>.
-        </p>
-    </li>
-    <li>
-        In the Test Target panel, set An Existing Android Project, click Browse, then select your
-        Android application from the list. You now see that the wizard has completed the Test
-        Target Package, Application Name, and Package Name fields for you (the latter two are in
-        the Properties panel).
-    </li>
-    <li>
-        In the Build Target panel, select the Android SDK platform that the application under test
-        uses.
-    </li>
-    <li>
-        Click Finish to complete the wizard. If Finish is disabled, look for error messages at the
-        top of the wizard dialog, and then fix any problems.
-    </li>
-</ol>
-<h2 id="CreateTestAppEclipse">Creating a Test Package</h2>
-<p>
-    Once you have created a test project, you populate it with a test package. This package does not
-    require an Activity, although you can define one if you wish. Although your test package can
-    combine Activity classes, test case classes, or ordinary classes, your main test case
-    should extend one of the Android test case classes or JUnit classes, because these provide the
-    best testing features.
-</p>
-<p>
-    Test packages do not need to have an Android GUI. When you run the package in
-    Eclipse with ADT, its results appear in the JUnit view. Running tests and seeing the results is
-    described in more detail in the section <a href="#RunTestEclipse">Running Tests</a>.
-</p>
-
-<p>
-    To create a test package, start with one of Android's test case classes defined in
-    {@link android.test android.test}. These extend the JUnit
-    {@link junit.framework.TestCase TestCase} class. The Android test classes for Activity objects
-    also provide instrumentation for testing an Activity. To learn more about test case
-    classes, please read the topic <a href="{@docRoot}tools/testing/testing_android.html">
-    Testing Fundamentals</a>.
-</p>
-<p>
-    Before you create your test package, you choose the Java package identifier you want to use
-    for your test case classes and the Android package name you want to use. To learn more
-    about this, please read
-    <a href="{@docRoot}tools/testing/testing_android.html#PackageNames">
-    Testing Fundamentals</a>.
-</p>
-<p>
-    To add a test case class to your project:
-</p>
-<ol>
-    <li>
-        In the <em>Project Explorer</em> tab, open your test project, then open the <em>src</em>
-        folder.
-    </li>
-    <li>
-        Find the Java package identifier set by the projection creation wizard. If you haven't
-        added classes yet, this node won't have any children, and its icon will not be filled in.
-        If you want to change the identifier value, right-click the identifier and select
-        <strong>Refactor</strong> &gt; <strong>Rename</strong>, then enter the new name.
-    </li>
-    <li>
-        When you are ready, right-click the Java package identifier again and select
-        <strong>New</strong> &gt; <strong>Class</strong>. This displays the <em>New Java Class</em>
-        dialog, with the <em>Source folder</em> and <em>Package</em> values already set.
-    </li>
-    <li>
-        In the <em>Name</em> field, enter a name for the test case class. One way to choose a
-        class name is to append the string "Test" to the class of the component you are testing.
-        For example, if you are testing the class MyAppActivity, your test case class
-        name would be MyAppActivityTest. Leave the modifiers set to <em>public</em>.
-    </li>
-    <li>
-        In the <em>Superclass</em> field, enter the name of the Android test case class you
-        are extending. You can also browse the available classes.
-    </li>
-    <li>
-        In <em>Which method stubs would you like to create?</em>, unset all the options, then
-        click <strong>Finish</strong>. You will set up the constructor manually.
-    </li>
-    <li>
-        Your new class appears in a new Java editor pane.
-    </li>
-</ol>
-<p>
-    You now have to ensure that the constructor is set up correctly. Create a constructor for your
-    class that has no arguments; this is required by JUnit. As the first statement in this
-    constructor, add a call to the base class' constructor. Each base test case class has its
-    own constructor signature. Refer to the class documentation in the documentation for
-    {@link android.test} for more information.
-</p>
-<p>
-    To control your test environment, you will want to override the <code>setUp()</code> and
-    <code>tearDown()</code> methods:
-</p>
-<ul>
-    <li>
-        <code>setUp()</code>: This method is invoked before any of the test methods in the class.
-        Use it to set up the environment for the test (the test fixture. You can use
-        <code>setUp()</code> to instantiate a new Intent with the action <code>ACTION_MAIN</code>.
-        You can then use this intent to start the Activity under test.
-    </li>
-    <li>
-        <code>tearDown()</code>: This method is invoked after all the test methods in the class. Use
-        it to do garbage collection and to reset the test fixture.
-    </li>
-</ul>
-<p>
-    Another useful convention is to add the method <code>testPreconditions()</code> to your test
-    class. Use this method to test that the application under test is initialized correctly. If this
-    test fails, you know that the initial conditions were in error. When this happens, further
-    test results are suspect, regardless of whether or not the tests succeeded.
-</p>
-<p>
-    The Resources tab contains an
-    <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing</a>
-    tutorial with more information about creating test classes and methods.
-</p>
-<h2 id="RunTestEclipse">Running Tests</h2>
-    <div class="sidebox-wrapper">
-        <div class="sidebox">
-            <h2>Running tests from the command line</h2>
-                <p>
-                    If you've created your tests in Eclipse, you can still run your tests and test
-                    suites by using command-line tools included with the Android SDK. You may want
-                    to do this, for example, if you have a large number of tests to run, if you
-                    have a large test case, or if you want a fine level of control over which
-                    tests are run at a particular time.
-                </p>
-                <p>
-                    To run tests created in Eclipse with ADT with command-line tools, you must first
-                    install additional files into the test project using the <code>android</code>
-                    tool's "create test-project" option. To see how to do this, read
-                   <a href="{@docRoot}tools/testing/testing_otheride.html#CreateProject">
-                    Testing in Other IDEs</a>.
-                </p>
-        </div>
-    </div>
-<p>
-    When you run a test package in Eclipse with ADT, the output appears in the Eclipse JUnit view.
-    You can run the entire test package or one test case class. To do run tests, Eclipse runs the
-    <code>adb</code> command for running a test package, and displays the output, so there is no
-    difference between running tests inside Eclipse and running them from the command line.
-</p>
-<p>
-    As with any other package, to run a test package in Eclipse with ADT you must either attach a
-    device to your computer or use the Android emulator. If you use the emulator, you must have an
-    Android Virtual Device (AVD) that uses the same target as the test package.
-</p>
-<p>
-    To run a test in Eclipse, you have two choices:</p>
-<ul>
-    <li>
-        Run a test just as you run an application, by selecting
-        <strong>Run As... &gt; Android JUnit Test</strong> from the project's context menu or
-        from the main menu's <strong>Run</strong> item.
-    </li>
-    <li>
-        Create an Eclipse run configuration for your test project. This is useful if you want
-        multiple test suites, each consisting of selected tests from the project. To run
-        a test suite, you run the test configuration.
-        <p>
-            Creating and running test configurations is described in the next section.
-        </p>
-    </li>
-</ul>
-<p>
-    To create and run a test suite using a run configuration:
-</p>
-<ol>
-    <li>
-        In the Package Explorer, select the test project, then from the main menu, select
-        <strong>Run &gt; Run Configurations...</strong>. The Run Configurations dialog appears.
-    </li>
-    <li>
-        In the left-hand pane, find the Android JUnit Test entry. In the right-hand pane, click the
-        Test tab. The Name: text box shows the name of your project. The Test class: dropdown box
-        shows one of the test classes in your project.
-    </li>
-    <li>
-        To run one test class, click  Run a single test, then enter your project name in the
-        Project: text box and the class name in the Test class: text box.
-        <p>
-            To run all the test classes, click Run all tests in the selected project or package,
-            then enter the project or package name in the text box.
-        </p>
-    </li>
-    <li>
-        Now click the Target tab.
-        <ul>
-            <li>
-                Optional: If you are using the emulator, click Automatic, then in the Android
-                Virtual Device (AVD) selection table, select an existing AVD.
-            </li>
-            <li>
-                In the Emulator Launch Parameters pane, set the Android emulator flags you want to
-                use. These are documented in the topic
-                <a href="{@docRoot}tools/help/emulator.html#startup-options">
-                Android Emulator</a>.
-            </li>
-        </ul>
-    </li>
-    <li>
-        Click the Common tab. In the Save As pane, click Local to save this run configuration
-        locally, or click Shared to save it to another project.
-    </li>
-    <li>
-        Optional: Add the configuration to the Run toolbar and the <strong>Favorites</strong>
-        menu: in the Display in Favorites pane click the checkbox next to Run.
-    </li>
-    <li>
-        Optional: To add this configuration to the <strong>Debug</strong> menu and toolbar, click
-        the checkbox next to Debug.
-    </li>
-    <li>
-        To save your settings, click Close.<br/>
-        <p class="note"><strong>Note:</strong>
-            Although you can run the test immediately by clicking Run, you should save the test
-            first and then run it by selecting it from the Eclipse standard toolbar.
-        </p>
-    </li>
-    <li>
-        On the Eclipse standard toolbar, click the down arrow next to the green Run arrow. This
-        displays a menu of saved Run and Debug configurations.
-    </li>
-    <li>
-        Select the test run configuration you just created. The test starts.
-    </li>
-</ol>
-<p>
-    The progress of your test appears in the Console view as a series of messages. Each message is
-    preceded by a timestamp and the <code>.apk</code> filename to which it applies. For example,
-    this message appears when you run a test to the emulator, and the emulator is not yet started:
-</p>
-<div class="sidebox-wrapper">
-    <div class="sidebox">
-        <h2>Message Examples</h2>
-        <p>
-            The examples shown in this section come from the
-            <a href="{@docRoot}resources/samples/SpinnerTest/index.html">SpinnerTest</a>
-            sample test package, which tests the
-            <a href="{@docRoot}resources/samples/Spinner/index.html">Spinner</a>
-            sample application. This test package is also featured in the
-            <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing</a>
-            tutorial.
-        </p>
-    </div>
-</div>
-<pre>
-    [<em>yyyy-mm-dd hh:mm:ss</em> - <em>testfile</em>] Waiting for HOME ('android.process.acore') to be launched...
-</pre>
-<p>
-    In the following description of these messages, <code><em>devicename</em></code> is the name of
-    the device or emulator you are using to run the test, and <code><em>port</em></code> is the
-    port number for the device. The name and port number are in the format used by the
-    <code><a href="{@docRoot}tools/help/adb.html#devicestatus">adb devices</a></code>
-    command. Also, <code><em>testfile</em></code> is the <code>.apk</code> filename of the test
-    package you are running, and <em>appfile</em> is the filename of the application under test.
-</p>
-<ul>
-    <li>
-        If you are using an emulator and you have not yet started it, then Eclipse
-        first starts the emulator. When this is complete, you see
-        the message:
-        <p>
-            <code>HOME is up on device '<em>devicename</em>-<em>port</em>'</code>
-        </p>
-    </li>
-    <li>
-        If you have not already installed your test package, then you see
-        the message:
-        <p>
-            <code>Uploading <em>testfile</em> onto device '<em>devicename</em>-<em>port</em>'
-            </code>
-        </p>
-        <p>
-            then the message <code>Installing <em>testfile</em></code>.
-        </p>
-        <p>
-            and finally the message <code>Success!</code>
-        </p>
-    </li>
-</ul>
-<p>
-    The following lines are an example of this message sequence:
-</p>
-<code>
-[2010-07-01 12:44:40 - MyTest] HOME is up on device 'emulator-5554'<br>
-[2010-07-01 12:44:40 - MyTest] Uploading MyTest.apk onto device 'emulator-5554'<br>
-[2010-07-01 12:44:40 - MyTest] Installing MyTest.apk...<br>
-[2010-07-01 12:44:49 - MyTest] Success!<br>
-</code>
-<br>
-<ul>
-    <li>
-        Next, if you have not yet installed the application under test to the device or
-        emulator, you see the message
-        <p>
-        <code>Project dependency found, installing: <em>appfile</em></code>
-        </p>
-        <p>
-            then the message <code>Uploading <em>appfile</em></code> onto device
-            '<em>devicename</em>-<em>port</em>'
-        </p>
-        <p>
-            then the message <code>Installing <em>appfile</em></code>
-        </p>
-        <p>
-            and finally the message <code>Success!</code>
-        </p>
-    </li>
-</ul>
-<p>
-    The following lines are an example of this message sequence:
-</p>
-<code>
-[2010-07-01 12:44:49 - MyTest] Project dependency found, installing: MyApp<br>
-[2010-07-01 12:44:49 - MyApp] Uploading MyApp.apk onto device 'emulator-5554'<br>
-[2010-07-01 12:44:49 - MyApp] Installing MyApp.apk...<br>
-[2010-07-01 12:44:54 - MyApp] Success!<br>
-</code>
-<br>
-<ul>
-    <li>
-        Next, you see the message
-        <code>Launching instrumentation <em>instrumentation_class</em> on device
-        <em>devicename</em>-<em>port</em></code>
-        <p>
-            <code>instrumentation_class</code> is the fully-qualified class name of the
-            instrumentation test runner you have specified (usually
-            {@link android.test.InstrumentationTestRunner}.
-        </p>
-    </li>
-    <li>
-        Next, as {@link android.test.InstrumentationTestRunner} builds a list of tests to run,
-        you see the message
-        <p>
-            <code>Collecting test information</code>
-        </p>
-        <p>
-            followed by
-        </p>
-        <p>
-            <code>Sending test information to Eclipse</code>
-        </p>
-    </li>
-    <li>
-        Finally, you see the message <code>Running tests</code>, which indicates that your tests
-        are running. At this point, you should start seeing the test results in the JUnit view.
-        When the tests are finished, you see the console message <code>Test run complete</code>.
-        This indicates that your tests are finished.
-    </li>
-</ul>
-<p>
-    The following lines are an example of this message sequence:
-</p>
-<code>
-[2010-01-01 12:45:02 - MyTest] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554<br>
-[2010-01-01 12:45:02 - MyTest] Collecting test information<br>
-[2010-01-01 12:45:02 - MyTest] Sending test information to Eclipse<br>
-[2010-01-01 12:45:02 - MyTest] Running tests...<br>
-[2010-01-01 12:45:22 - MyTest] Test run complete<br>
-</code>
-<br>
-<p>
-    The test results appear in the JUnit view. This is divided into an upper summary pane,
-    and a lower stack trace pane.
-</p>
-<p>
-    The upper pane contains test information. In the pane's header, you see the following
-    information:
-</p>
-<ul>
-    <li>
-        Total time elapsed for the test package (labeled Finished after <em>x</em> seconds).
-    </li>
-    <li>
-        Number of runs (Runs:) - the number of tests in the entire test class.
-    </li>
-    <li>
-        Number of errors (Errors:) - the number of program errors and exceptions encountered
-        during the test run.
-    </li>
-    <li>
-        Number of failures (Failures:) - the number of test failures encountered during the test
-        run. This is the number of assertion failures. A test can fail even if the program does
-        not encounter an error.
-    </li>
-    <li>
-        A progress bar. The progress bar extends from left to right as the tests run. If all the
-        tests succeed, the bar remains green. If a test fails, the bar turns from green to red.
-    </li>
-</ul>
-<p>
-    The body of the upper pane contains the details of the test run. For each test case class
-    that was run, you see a line with the class name. To look at the results for the individual
-    test methods in that class, you click the left arrow to expand the line. You now see a
-    line for each test method in the class, and to its right the time it took to run.
-    If you double-click the method name, Eclipse opens the test class source in an editor view
-    pane and moves the focus to the first line of the test method.
-</p>
-<p>
-    The results of a successful test are shown in figure 1.
-</p>
-<a href="{@docRoot}images/testing/eclipse_test_results.png">
-    <img src="{@docRoot}images/testing/eclipse_test_results.png"
-         alt="Messages for a successful test" height="327px" id="TestResults"/>
-</a>
-<p class="img-caption">
-    <strong>Figure 1.</strong> Messages for a successful test.
-</p>
-<p>
-    The lower pane is for stack traces. If you highlight a failed test in the upper pane, the
-    lower pane contains a stack trace for the test. If a line corresponds to a point in your
-    test code, you can double-click it to display the code in an editor view pane, with the
-    line highlighted. For a successful test, the lower pane is empty.
-</p>
-<p>The results of a failed test are shown in figure 2.</p>
-<a href="{@docRoot}images/testing/eclipse_test_run_failure.png">
-    <img src="{@docRoot}images/testing/eclipse_test_run_failure.png"
-         alt="" height="372px" id="TestRun"/>
-</a>
-<p class="img-caption">
-    <strong>Figure 2.</strong> Messages for a test failure.
-</p>
diff --git a/docs/html/tools/testing/testing_otheride.jd b/docs/html/tools/testing/testing_otheride.jd
old mode 100644
new mode 100755
index a774087..4b2a6b1
--- a/docs/html/tools/testing/testing_otheride.jd
+++ b/docs/html/tools/testing/testing_otheride.jd
@@ -1,6 +1,5 @@
-page.title=Testing from Other IDEs
-parent.title=Testing
-parent.link=index.html
+page.title=Testing from the Command-Line
+
 @jd:body
 
 <div id="qv-wrapper">
@@ -8,27 +7,13 @@
         <h2>In this document</h2>
             <ol>
                 <li>
-                    <a href="#CreateTestProjectCommand">Working with Test Projects</a>
-                    <ol>
-                        <li>
-                            <a href="#CreateTestProject">Creating a test project</a>
-                        </li>
-                        <li>
-                            <a href="#UpdateTestProject">Updating a test project</a>
-                        </li>
-                    </ol>
-                </li>
-                <li>
-                    <a href="#CreateTestApp">Creating a Test Package</a>
-                </li>
-                <li>
                     <a href="#RunTestsCommand">Running Tests</a>
                     <ol>
                         <li>
-                            <a href="#RunTestsAnt">Quick build and run with Ant</a>
+                            <a href="#RunTestsGradle">Running unit tests with Gradle</a>
                         </li>
                         <li>
-                            <a href="#RunTestsDevice">Running tests on a device or emulator</a>
+                            <a href="#RunTestsDevice">Running tests with adb</a>
                         </li>
                     </ol>
                 </li>
@@ -47,290 +32,84 @@
         <h2>See Also</h2>
             <ol>
                 <li>
-                    <a href="{@docRoot}tools/testing/testing_android.html">
-                        Testing Fundamentals</a>
-                </li>
-                <li>
                     <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a>
                 </li>
             </ol>
     </div>
 </div>
 <p>
-    This document describes how to create and run tests directly from the command line.
-    You can use the techniques described here if you are developing in an IDE other than Eclipse
-    or if you prefer to work from the command line. This document assumes that you already know how
-    to create a Android application in your programming environment. Before you start this
-    document, you should read the topic
-    <a href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    which provides an overview of Android testing.
-</p>
-<p>
-    If you are developing in Eclipse with ADT, you can set up and run your tests
-    directly in Eclipse. For more information, please read
-    <a href="{@docRoot}tools/testing/testing_eclipse.html">
-    Testing from Eclipse with ADT</a>.
-</p>
-<h2 id="CreateTestProjectCommand">Working with Test Projects</h2>
-<p>
-    You use the <code>android</code> tool to create test projects.
-    You also use <code>android</code> to convert existing test code into an Android test project,
-    or to add the <code>test</code> Ant target to an existing Android test project.
-    These operations are described in more detail in the section <a href="#UpdateTestProject">
-    Updating a test project</a>. The <code>test</code> target is described in
-    <a href="#RunTestsAnt">Quick build and run with Ant</a>.
-</p>
-<h3 id="CreateTestProject">Creating a test project</h3>
-<p>
-    To create a test project with the <code>android</code> tool, enter:
-</p>
-<pre>
-android create test-project -m &lt;main_path&gt; -n &lt;project_name&gt; -p &lt;test_path&gt;
-</pre>
-<p>
-    You must supply all the flags. The following table explains them in detail:
-</p>
-<table>
-    <tr>
-        <th>Flag</th>
-        <th>Value</th>
-        <th>Description</th>
-    </tr>
-    <tr>
-        <td><code>-m, --main</code></td>
-        <td>
-            Path to the project of the application under test, relative to the test package
-            directory.
-        </td>
-        <td>
-            For example, if the application under test is in <code>source/HelloAndroid</code>, and
-            you want to create the test project in <code>source/HelloAndroidTest</code>, then the
-            value of <code>--main</code> should be <code>../HelloAndroid</code>.
-        <p>
-            To learn more about choosing the location of test projects, please read
-            <a href="{@docRoot}tools/testing/testing_android.html#TestProjects">
-            Testing Fundamentals</a>.
-        </p>
-        </td>
-    </tr>
-    <tr>
-        <td><code>-n, --name</code></td>
-        <td>Name that you want to give the test project.</td>
-        <td>&nbsp;</td>
-    </tr>
-    <tr>
-        <td><code>-p, --path</code></td>
-        <td>Directory in which you want to create the new test project.</td>
-        <td>
-            The <code>android</code> tool creates the test project files and directory structure
-            in this directory. If the directory does not exist, <code>android</code> creates it.
-        </td>
-    </tr>
-</table>
-<p>
-    If the operation is successful, <code>android</code> lists to STDOUT the names of the files
-    and directories it has created.
-</p>
-<p>
-    This creates a new test project with the appropriate directories and build files. The directory
-    structure and build file contents are identical to those in a regular Android application
-    project. They are described in detail in the topic
-    <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
-</p>
-<p>
-    The operation also creates an <code>AndroidManifest.xml</code> file with instrumentation
-    information. When you run the test, Android uses this information to load the application you
-    are testing and control it with instrumentation.
-</p>
-<p>
-    For example, suppose you create a project in the directory <code>~/source/HelloAndroid</code>,
-with the package name <code>com.example.helloandroid</code>,
-    and the activity name <code>HelloAndroid</code>. You can to create the test for this in
-    <code>~/source/HelloAndroidTest</code>. To do so, you enter:
-</p>
-<pre>
-$ cd ~/source
-$ android create test-project -m ../HelloAndroid -n HelloAndroidTest -p HelloAndroidTest
-</pre>
-<p>
-    This creates a directory called <code>~/src/HelloAndroidTest</code>. In the new directory you
-    see the file <code>AndroidManifest.xml</code>. This file contains the following
-    instrumentation-related elements and attributes:
-</p>
-<ul>
-    <li>
-        <code>&lt;application&gt;</code>: to contain the
-        <code>&lt;uses-library&gt;</code> element.
-    </li>
-    <li>
-        <code>&lt;uses-library android:name=&quot;android.test.runner&quot;</code>:
-        specifies this testing application uses the <code>android.test.runner</code> library.
-    </li>
-    <li>
-        <code>&lt;instrumentation&gt;</code>: contains attributes that control Android
-        instrumentation. The attributes are:
-        <ul>
-            <li>
-                <code>android:name=&quot;android.test.InstrumentationTestRunner&quot;</code>:
-                {@link android.test.InstrumentationTestRunner} runs test cases. It extends both
-                JUnit test case runner classes and Android instrumentation classes.
-            </li>
-            <li>
-                <code>android:targetPackage=&quot;com.example.helloandroid&quot;</code>: specifies
-                that the tests in HelloAndroidTest should be run against the application with the
-                <em>Android</em> package name <code>com.example.helloandroid</code>.
-            </li>
-            <li>
-                <code>android:label=&quot;Tests for .HelloAndroid&quot;</code>: specifies a
-                user-readable label for the instrumentation class. By default,
-                the <code>android</code> tool gives it the value &quot;Tests for &quot; plus
-                the name of the main Activity of the application under test.
-            </li>
-        </ul>
-    </li>
-</ul>
-<h3 id="UpdateTestProject">Updating a test project</h3>
-<p>
-    You use the <code>android</code> tool when you need to change the path to the
-    project of the application under test. If you are changing an existing test project created in
-    Eclipse with ADT so that you can also build and run it from the command line, you must use the
-    "create" operation. See the section <a href="#CreateTestProject">Creating a test project</a>.
-</p>
-<p class="note">
-    <strong>Note:</strong> If you change the Android package name of the application under test,
-    you must <em>manually</em> change the value of the <code>&lt;android:targetPackage&gt;</code>
-    attribute within the <code>AndroidManifest.xml</code> file of the test package.
-    Running <code>android update test-project</code> does not do this.
-</p>
-<p>
-  To update a test project with the <code>android</code> tool, enter:
-</p>
-<pre>android update test-project -m &lt;main_path&gt; -p &lt;test_path&gt;</pre>
-
-<table>
-    <tr>
-        <th>Flag</th>
-        <th>Value</th>
-        <th>Description</th>
-    </tr>
-    <tr>
-        <td><code>-m, --main</code></td>
-        <td>The path to the project of the application under test, relative to the test project</td>
-        <td>
-            For example, if the application under test is in <code>source/HelloAndroid</code>, and
-            the test project is in <code>source/HelloAndroidTest</code>, then the value for
-            <code>--main</code> is <code>../HelloAndroid</code>.
-        </td>
-    </tr>
-    <tr>
-        <td><code>-p, --path</code></td>
-        <td>The of the test project.</td>
-        <td>
-            For example, if the test project is in <code>source/HelloAndroidTest</code>, then the
-            value for <code>--path</code> is <code>HelloAndroidTest</code>.
-        </td>
-    </tr>
-</table>
-<p>
-    If the operation is successful, <code>android</code> lists to STDOUT the names of the files
-    and directories it has created.
-</p>
-<h2 id="CreateTestApp">Creating a Test Package</h2>
-<p>
-    Once you have created a test project, you populate it with a test package.
-    The application does not require an {@link android.app.Activity Activity},
-    although you can define one if you wish. Although your test package can
-    combine Activities, Android test class extensions, JUnit extensions, or
-    ordinary classes, you should extend one of the Android test classes or JUnit classes,
-    because these provide the best testing features.
-</p>
-<p>
-    If you run your tests with {@link android.test.InstrumentationTestRunner}
-    (or a related test runner), then it will run all the methods in each class. You can modify
-    this behavior by using the {@link junit.framework.TestSuite TestSuite} class.
+    This document describes how to create and run tests directly from the command line. This
+    document assumes that you already know how to create a Android application in your programming
+    environment.
 </p>
 
-<p>
-    To create a test package, start with one of Android's test classes in the Java package
-    {@link android.test android.test}. These extend the JUnit
-    {@link junit.framework.TestCase TestCase} class. With a few exceptions, the Android test
-    classes also provide instrumentation for testing.
-</p>
-<p>
-    For test classes that extend {@link junit.framework.TestCase TestCase}, you probably want to
-    override the <code>setUp()</code> and <code>tearDown()</code> methods:
-</p>
-<ul>
-    <li>
-        <code>setUp()</code>: This method is invoked before any of the test methods in the class.
-        Use it to set up the environment for the test. You can use <code>setUp()</code>
-        to instantiate a new <code>Intent</code> object with the action <code>ACTION_MAIN</code>.
-        You can then use this intent to start the Activity under test.
-        <p class="note">
-            <strong>Note:</strong> If you override this method, call
-            <code>super.setUp()</code> as the first statement in your code.
-        </p>
-    </li>
-    <li>
-        <code>tearDown()</code>: This method is invoked after all the test methods in the class. Use
-        it to do garbage collection and re-setting before moving on to the next set of tests.
-        <p class="note"><strong>Note:</strong> If you override this method, you must call
-        <code>super.tearDown()</code> as the <em>last</em> statement in your code.</p>
-    </li>
-</ul>
-<p>
-    Another useful convention is to add the method <code>testPreConditions()</code> to your test
-    class. Use this method to test that the application under test is initialized correctly. If this
-    test fails, you know that the initial conditions were in error. When this happens, further
-    test results are suspect, regardless of whether or not the tests succeeded.
-</p>
-<p>
-    To learn more about creating test packages, see the topic <a
-    href="{@docRoot}tools/testing/testing_android.html">Testing Fundamentals</a>,
-    which provides an overview of Android testing. If you prefer to follow a tutorial,
-    try the <a href="{@docRoot}tools/testing/activity_test.html">Activity Testing</a>
-    tutorial, which leads you through the creation of tests for an actual Android application.
-</p>
 <h2 id="RunTestsCommand">Running Tests</h2>
 <p>
-    You run tests from the command line, either with Ant or with an
+    You can run tests from the command-line, either with Gradle or with an
     <a href="{@docRoot}tools/help/adb.html">
     Android Debug Bridge (adb)</a> shell.
 </p>
-<h3 id="RunTestsAnt">Quick build and run with Ant</h3>
+<h3 id="RunTestsGradle">Running unit tests with Gradle</h3>
+
+<p>The <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plugin for Gradle</a>
+lets you run unit tests from your Gradle project via the command-line. For more information on
+how to build unit tests for your app, see
+<a href="{@docRoot}training/testing/unit-testing/index.html">Building Effective Unit Tests</a>.</p>
+
+<p>The table below summarizes how to run your unit tests with Gradle:</p>
+<table>
+    <tr>
+        <th>Unit Test Type</th>
+        <th>Command To Run</th>
+        <th>Test Result Location</th>
+    </tr>
+    <tr>
+        <td>Local unit test</td>
+        <td>Call the {@code test} task:
+<pre>
+./gradlew test
+</pre></td>
+        <td>
+HTML test result files:
+{@code &lt;path_to_your_project&gt;/app/build/reports/tests/} directory.
+<p>XML test result files:
+{@code &lt;path_to_your_project&gt;/app/build/test-results/} directory.
+</p></td>
+    </tr>
+    <tr>
+        <td>Instrumented unit test</td>
+        <td>Call the {@code connectedAndroidTest} (or {@code cAT}) task:
+<pre>
+./gradlew cAT
+</pre>
+        </td>
+        <td>
+HTML test result files:
+{@code &lt;path_to_your_project&gt;/app/build/outputs/reports/androidTests/connected/} directory.
+<p>XML test result files:
+{@code &lt;path_to_your_project&gt;/app/build/outputs/androidTest-results/connected/} directory.
+</p></td>
+    </tr>
+</table>
+
+<h3 id="RunTestsDevice">Running tests with ADB</h3>
 <p>
-    You can use Ant to run all the tests in your test project, using the target
-    <code>test</code>, which is created automatically when you create a test project with
-    the <code>android</code> tool.
-</p>
-<p>
-    This target re-builds your main project and test project if necessary, installs the test
-    application to the current AVD or device, and then runs all the test classes in the test
-    application. The results are directed to <code>STDOUT</code>.
-</p>
-<p>
-    You can update an existing test project to use this feature. To do this, use the
-    <code>android</code> tool with the <code>update test-project</code> option. This is described
-    in the section <a href="#UpdateTestProject">Updating a test project</a>.
-</p>
-<h3 id="RunTestsDevice">Running tests on a device or emulator</h3>
-<p>
-    When you run tests from the command line with
+    When you run tests from the command-line with
     <a href="{@docRoot}tools/help/adb.html">
     Android Debug Bridge (adb)</a>, you get more options for choosing the tests
     to run than with any other method. You can select individual test methods, filter tests
     according to their annotation, or specify testing options. Since the test run is controlled
-    entirely from a command line, you can customize your testing with shell scripts in various ways.
+    entirely from a command-line, you can customize your testing with shell scripts in various ways.
 </p>
 <p>
-    To run a test from the command line, you run <code>adb shell</code> to start a command-line
+    To run a test from the command-line, you run <code>adb shell</code> to start a command-line
     shell on your device or emulator, and then in the shell run the <code>am instrument</code>
     command. You control <code>am</code> and your tests with command-line flags.
 </p>
 <p>
     As a shortcut, you can start an <code>adb</code> shell, call <code>am instrument</code>, and
     specify command-line flags all on one input line. The shell opens on the device or emulator,
-    runs your tests, produces output, and then returns to the command line on your computer.
+    runs your tests, produces output, and then returns to the command-line on your computer.
 </p>
 <p>
     To run a test with <code>am instrument</code>:
@@ -343,7 +122,7 @@
         Install your test package and main application Android package files
         (<code>.apk</code> files) to your current Android device or emulator</li>
     <li>
-        At the command line, enter:
+        At the command-line, enter:
 <pre>
 $ adb shell am instrument -w &lt;test_package_name&gt;/&lt;runner_class&gt;
 </pre>
@@ -353,7 +132,9 @@
             runner class you are using. The Android package name is the value of the
             <code>package</code> attribute of the <code>manifest</code> element in the manifest file
             (<code>AndroidManifest.xml</code>) of your test package. The Android test runner
-            class is usually {@link android.test.InstrumentationTestRunner}.
+            class is usually
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a>.
         </p>
         <p>
             Your test results appear in <code>STDOUT</code>.
@@ -371,7 +152,7 @@
     The general syntax of the <code>am instrument</code> command is:
 </p>
 <pre>
-    am instrument [flags] &lt;test_package&gt;/&lt;runner_class&gt;
+am instrument [flags] &lt;test_package&gt;/&lt;runner_class&gt;
 </pre>
 <p>
     The main input parameters to <code>am instrument</code> are described in the following table:
@@ -408,10 +189,13 @@
             The class name of the instrumented test runner you are using.
         </td>
         <td>
-            This is usually {@link android.test.InstrumentationTestRunner}.
+            This is usually
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a>.
         </td>
     </tr>
 </table>
+
 <p>
     The flags for <code>am instrument</code> are described in the following table:
 </p>
@@ -467,12 +251,11 @@
             <code>am instrument</code> tool passes these to the specified instrumentation class
             via its <code>onCreate()</code> method. You can specify multiple occurrences of
             <code>-e &lt;test_options&gt;</code>. The keys and values are described in the
-            section <a href="#AMOptionsSyntax">am instrument options</a>.
-            <p>
-                The only instrumentation class that uses these key-value pairs is
-                {@link android.test.InstrumentationTestRunner} (or a subclass). Using them with
-                any other class has no effect.
-            </p>
+            section <a href="#AMOptionsSyntax">am instrument options</a>. You can only use these
+            key-value pairs with
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> or with {@link android.test.InstrumentationTestRunner} and its
+subclasses. Using them with any other class has no effect.
         </td>
     </tr>
 </table>
@@ -480,25 +263,24 @@
 <h3 id="AMOptionsSyntax">am instrument options</h3>
 <p>
     The <code>am instrument</code> tool passes testing options to
-    <code>InstrumentationTestRunner</code> or a subclass in the form of key-value pairs,
-    using the <code>-e</code> flag, with this syntax:
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> or {@link android.test.InstrumentationTestRunner} in the form of
+key-value pairs, using the <code>-e</code> flag, with this syntax:
 </p>
 <pre>
-    -e &lt;key&gt; &lt;value&gt;
+-e &lt;key&gt; &lt;value&gt;
 </pre>
 <p>
     Some keys accept multiple values. You specify multiple values in a comma-separated list.
-    For example, this invocation of <code>InstrumentationTestRunner</code> provides multiple
-    values for the <code>package</code> key:
+    For example, this invocation of
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> provides multiple values for the <code>package</code> key:
 </p>
 <pre>
 $ adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \
-&gt; com.android.test/android.test.InstrumentationTestRunner
+&gt; com.android.test/android.support.test.runner.AndroidJUnitRunner
 </pre>
-<p>
-    The following table describes the key-value pairs and their result. Please review the
-    <strong>Usage Notes</strong> following the table.
-</p>
+<p>The following table lists the key-value pairs you can use with your test runner.</p>
 <table>
     <tr>
         <th>Key</th>
@@ -556,8 +338,8 @@
             [<code>small</code> | <code>medium</code> | <code>large</code>]
         </td>
         <td>
-            Runs a test method annotated by size. The  annotations are <code>@SmallTest</code>,
-            <code>@MediumTest</code>, and <code>@LargeTest</code>.
+            Runs a test method annotated by size. The annotations are <code>&#64;SmallTest</code>,
+            <code>&#64;MediumTest</code>, and <code>&#64;LargeTest</code>.
         </td>
     </tr>
     <tr>
@@ -591,8 +373,9 @@
         <td><code>true</code></td>
         <td>
             Runs an EMMA code coverage analysis and writes the output to
-            <code>/data//coverage.ec</code> on the device. To override the file location, use the
-            <code>coverageFile</code> key that is described in the following entry.
+            <code>/data/&lt;app_package&gt;/coverage.ec</code> on the device. To override the
+            file location, use the <code>coverageFile</code> key that is described in the
+            following entry.
             <p class="note">
                 <strong>Note:</strong> This option requires an EMMA-instrumented build of the test
                 application, which you can generate with the <code>coverage</code> target.
@@ -634,24 +417,16 @@
         The test package has the Android package name <code>com.android.demo.app.tests</code>
     </li>
     <li>
-        There are three test classes:
+        Two instrumented test classes:
         <ul>
-            <li>
-                <code>UnitTests</code>, which contains the methods
-                <code>testPermissions</code> and <code>testSaveState</code>.
-            </li>
-            <li>
-                <code>FunctionTests</code>, which contains the methods
-                <code>testCamera</code>, <code>testXVGA</code>, and <code>testHardKeyboard</code>.
-            </li>
-            <li>
-                <code>IntegrationTests</code>,
-                which contains the method <code>testActivityProvider</code>.
-            </li>
+            <li>{@code Foo1} which contains the test method {@code bar1}, and</li>
+            <li>{@code Foo2} which contains test methods {@code bar2} and {@code bar3}</li>
         </ul>
     </li>
     <li>
-        The test runner is {@link android.test.InstrumentationTestRunner}.
+        The test runner is
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a>.
     </li>
 </ul>
 <h4>Running the entire test package</h4>
@@ -659,7 +434,7 @@
     To run all of the test classes in the test package, enter:
 </p>
 <pre>
-$ adb shell am instrument -w com.android.demo.app.tests/android.test.InstrumentationTestRunner
+$ adb shell am instrument -w com.android.demo.app.tests/android.support.test.runner.AndroidJUnitRunner
 </pre>
 <h4>Running all tests in a test case class</h4>
 <p>
@@ -667,8 +442,8 @@
 </p>
 <pre>
 $ adb shell am instrument -w  \
-&gt; -e class com.android.demo.app.tests.UnitTests \
-&gt; com.android.demo.app.tests/android.test.InstrumentationTestRunner
+&gt; -e class com.android.demo.app.tests.Foo \
+&gt; com.android.demo.app.tests/android.support.test.runner.AndroidJUnitRunner
 </pre>
 <p>
   <code>am instrument</code> gets the value of the <code>-e</code> flag, detects the
@@ -676,15 +451,11 @@
 </p>
 <h4>Selecting a subset of tests</h4>
 <p>
-    To run all of the tests in <code>UnitTests</code>, and the <code>testCamera</code> method in
-    <code>FunctionTests</code>, enter:
+    To run all of the tests in <code>Foo1</code>, and the <code>bar3</code> method in
+    <code>Foo2</code>, enter:
 </p>
 <pre>
 $ adb shell am instrument -w \
-&gt; -e class com.android.demo.app.tests.UnitTests,com.android.demo.app.tests.FunctionTests#testCamera \
-&gt; com.android.demo.app.tests/android.test.InstrumentationTestRunner
+&gt; -e class com.android.demo.app.tests.Foo1,com.android.demo.app.tests.Foo2#bar3 \
+&gt; com.android.demo.app.tests/android.support.test.runner.AndroidJUnitRunner
 </pre>
-<p>
-    You can find more examples of the command in the documentation for
-    {@link android.test.InstrumentationTestRunner}.
-</p>
diff --git a/docs/html/tools/testing/testing_ui.jd b/docs/html/tools/testing/testing_ui.jd
deleted file mode 100644
index 4318a21..0000000
--- a/docs/html/tools/testing/testing_ui.jd
+++ /dev/null
@@ -1,356 +0,0 @@
-page.title=UI Testing
-parent.title=Testing
-parent.link=index.html
-@jd:body
-
-<div id="qv-wrapper">
-  <div id="qv">
-     <h2>In this document</h2>
-  <ol>
-     <li><a href="#overview">Overview</a></li>
-        <ul>
-        <li><a href="#workflow">Workflow</a></li>
-        </ul>
-     <li><a href="#uianalysis">Analyzing Your UI</a></li>
-     <li><a href="#prepare">Preparing to Test</a>
-        <ul>
-        <LI><a href="#loading">Load the App</a></LI>
-        <LI><a href="#identifyUI">Identify UI Components</a></LI>
-        <LI><a href="#accessibility">Ensure Accessibility</a></LI>
-        <LI><a href="#configure">Configure Development Environment</a></LI>
-        </ul>
-     </li>
-     <li><a href="#creating">Creating Tests</a>
-       <ul>
-       <LI><a href="#classes">uiautomator API</a></LI>
-        <li><a href="#sample">Sample Test Case</a>
-       </ul>
-     </li>
-     <li><a href="#builddeploy">Building and Deploying Tests</a></li>
-     <li><a href="#running">Running Tests</a></li>
-     <li><a href="#bestpractices">Best Practices</a></li>
-  </ol>
-     <h2>Key classes</h2>
-    <ol>
-      <li><a href="{@docRoot}tools/help/uiautomator/IAutomationSupport.html">IAutomationSupport</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">UiAutomatorTestCase</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiCollection.html">UiCollection</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiDevice.html">UiDevice</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiObject.html">UiObject</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">UiScrollable</a></li>
-      <li><a href="{@docRoot}tools/help/uiautomator/UiSelector.html">UiSelector</a></li>
-    </ol>
-    <h2>See Also</h2>
-      <ol>
-        <li>
-            <a href="{@docRoot}tools/help/uiautomator/index.html">uiautomator (reference)</a>
-        </li>
-      </ol>
-  </div>
-</div>
-
-<p>
-In addition to unit testing the individual components that make up your Android application (such as activities, services, and content providers), it is also important that you test the behavior of your application’s user interface (UI) when it is running on a device. UI testing ensures that your application returns the correct UI output in response to a sequence of user actions on a device, such as entering keyboard input or pressing toolbars, menus, dialogs, images, and other UI controls.
-</p>
-<p>
-Functional or black-box UI testing does not require testers to know the internal implementation details of the app, only its expected output when a user performs a specific action or enters a specific input. This approach allows for better separation of development and testing roles in your organization.
-</p>
-<p>One common approach to UI testing is to run tests manually and verify that the app is behaving as expected. However, this approach can be time-consuming, tedious, and error-prone. A more efficient and reliable approach is to automate the UI testing with a software testing framework. Automated testing involves creating programs to perform testing tasks (test cases) to cover specific usage scenarios, and then using the testing framework to run the test cases automatically and in a repeatable manner.</p>
-
-<h2 id="overview">Overview</h2>
-<p>The Android SDK provides the following tools to support automated, functional UI testing on your application:
-<ul>
-<LI>{@code uiautomatorviewer} - A GUI tool to scan and analyze the UI components of an Android application.</LI>
-<LI>{@code uiautomator} - A Java library containing APIs to create customized functional UI tests, and an execution engine to automate and run the tests.</LI>
-</ul></p>
-
-<p>To use these tools, you must have the following versions of the Android development tools installed:
-<ul>
-<LI>Android SDK Tools, Revision 21 or higher</LI>
-<LI>Android SDK Platform, API 16 or higher</LI>
-</ul>
-</p>
-
-<h3 id="workflow">Workflow for the the uiautomator testing framework</h3>
-<p>Here's a short overview of the steps required to automate UI testing:
-<ol>
-<LI>Prepare to test by installing the app on a test device, analyzing the app’s UI components, and ensuring that your application is accessible by the test automation framework.</LI>
-<li>Create automated tests to simulate specific user interactions on your application.</li>
-<li>Compile your test cases into a JAR file and install it on your test device along with your app.</li>
-<li>Run the tests and view the test results.</li>
-<li>Correct any bugs or defects discovered in testing.</li>
-</ol>
-</p>
-
-<h2 id="uianalysis">Analyzing Your Application's UI</h2>
-<p>Before you start writing your test cases, it's helpful to familiarize yourself with the UI components (including the views and controls) of the targeted application. You can use the {@code uiautomatorviewer} tool to take a snapshot of the foreground UI screen on any Android device that is connected to your development machine.  The {@code uiautomatorviewer} tool provides a convenient visual interface to inspect the layout hierarchy and view the properties of the individual UI components that are displayed on the test device.  Using this information, you can later create {@code uiautomator} tests with selector objects that target specific UI components to test.</p>
-
-<a href="{@docRoot}images/testing/UIAutomatorViewer.png">
-    <img src="{@docRoot}images/testing/UIAutomatorViewer.png"
-         alt="User interface of uiautomatorviewer tool" height="327px" id="figure1"/>
-</a>
-<p class="img-caption">
-    <strong>Figure 1.</strong> The {@code uiautomatorviewer} showing the captured interface of a test device.
-</p>
-
-<p>To analyze the UI components of the application that you want to test:</p>
-<ol>
-<li>Connect your Android device to your development machine.</li>
-<li>Open a terminal window and navigate to {@code &lt;android-sdk&gt;/tools/}.</li>
-<LI>Run the tool with this command:<pre>$ uiautomatorviewer</pre></LI>
-<li><p>To capture a screen for analysis, click the <strong>Device Screenshot</strong> button in the GUI of the {@code uiautomatorviewer} tool.</p>
-<p class="note"><strong>Note: </strong>If you have more than one device connected, specify the device for screen capture by setting the {@code ANDROID_SERIAL} environment variable:  
-   <ol type="a">
-   <li>Find the serial numbers for your connected devices by running this command:<pre>$ adb devices</pre> </li>
-   <li>Set the {@code ANDROID_SERIAL}  environment variable to select the device to test:
-      <ul>
-      <li>In Windows: <pre>set ANDROID_SERIAL=&lt;device serial number&gt;</pre></li>
-      <li>In UNIX: <pre>export ANDROID_SERIAL=&lt;device serial number&gt;</pre></li>
-      </ul>
-   </li>
-   </ol>
-If you are connected to only a single device, you do not need to set the ANDROID_SERIAL environment variable.</p>
-</li>
-<li>View the UI properties for your application:
-  <ul>
-  <LI>Hover over the snapshot in the left-hand panel to see the UI components identified by the {@code uiautomatorviewer} tool. You can view the component’s properties listed in the lower right-hand panel, and the layout hierarchy in the upper right-hand panel.</LI>
-  <li>Optionally, click on the <strong>Toggle NAF Nodes</strong> button to see UI components that are not accessible to the {@code uiautomator} testing framework. Only limited information may be available for these components.</li>
-  </ul>
-</li>
-</ol>
-
-<h2 id="prepare">Preparing to Test</h2>
-<p>Before using the {@code uiautomator} testing framework, complete these pre-flight tasks:
-</p>
-<h3 id="loading">Load the application to a device</h3>
-<p>If you are reading this document, chances are that the Android application that you want to test has not been published yet. If you have a copy of the APK file, you can install the APK onto a test device by using the {@code adb} tool. To learn how to install an APK file using the {@code adb} tool, see the <a href="{@docRoot}tools/help/adb.html#move">{@code adb}</a> documentation. </p>
-
-<h3 id="identifyUI">Identify the application’s UI components</h3>
-<p>Before writing your {@code uiautomator} tests, first identify the UI components in the application that you want to test. Typically, good candidates for testing are UI components that are visible and that users can interact with. The UI components should also have visible text labels, <a href="{@docRoot}reference/android/view/View.html#attr_android:contentDescription">{@code android:contentDescription}</a> values, or both. 
-
-<p>You can inspect the visible screen objects in an application conveniently by using the {@code uiautomatorviewer} tool. For more information about how to analyze an application screen with this tool, see the section <a href="#uianalaysis">Analyzing Your Application’s UI</a>.  For more information about the common types of UI components provided by Android, see <a href="{@docRoot}guide/topics/ui/index.html">User Interface</a>.</p>
-
-<h3 id="accessibility">Ensure that the application is accessible</h3>
-<p>This step is required because the {@code uiautomator} tool depends on the accessibility features of the Android framework to execute your functional UI tests. You should include these minimum optimizations to support the {@code uiautomator} tool:
-<ul>
-<LI>Use the <a href="{@docRoot}reference/android/view/View.html#attr_android:contentDescription">{@code android:contentDescription}</a> attribute to label the {@link android.widget.ImageButton}, {@link android.widget.ImageView}, {@link android.widget.CheckBox} and other user interface controls.</LI>
-<li>Provide an <a href="{@docRoot}reference/android/widget/TextView.html#attr_android:hint">{@code android:hint}</a>  attribute <em>instead</em> of a content description for {@link android.widget.EditText} fields</li>
-<li>Associate an <a href="{@docRoot}reference/android/widget/TextView.html#attr_android:hint">{@code android:hint}</a> attribute with any graphical icons used by controls that provide feedback to the user (for example, status or state information).</li>
-<li>Make sure that all the user interface elements are accessible with a directional controller, such as a trackball or D-pad.</li>
-<li>Use the {@code uiautomatorviewer} tool to ensure that the UI component is accessible to the testing framework. You can also test the application by turning on accessibility services like TalkBack and Explore by Touch, and try using your application using only directional controls. </li>
-</ul>
-</p>
-
-<p>For more information about implementing and testing accessibility, see <a href="{@docRoot}guide/topics/ui/accessibility/apps.html">Making Applications Accessible</a>.</p>
-
-<p class="note"><strong>Note: </strong>To identify the non-accessible components in the UI, click on the <strong>Toggle NAF Nodes</strong> option in the {@code uiautomatorviewer} tool.</p>
-
-<p>Generally, Android application developers get accessibility support for free, courtesy of the {@link android.view.View} and {@link android.view.ViewGroup} classes. However, some applications use custom view components to provide a richer user experience. Such custom components won't get the accessibility support that is provided by the standard Android UI components. If this applies to your application, ensure that the application developer exposes the custom drawn UI components to Android accessibility services, by implementing the {@link android.view.accessibility.AccessibilityNodeProvider} class. For more information about making custom view components accessible, see <a href="{@docRoot}guide/topics/ui/accessibility/apps.html#custom-views">Making Applications Accessible</a>.</p>
-
-<h3 id="configure">Configure your development environment</h3>
-<p>If you're developing in Eclipse, the Android SDK provides additional tools that help you write test cases using {@code uiautomator} and buiild your JAR file. In order to set up Eclipse to assist you, you need to create a project that includes the {@code uiautomator} client library, along with the Android SDK library. To configure Eclipse:</p>
-<ol>
-<li>Create a new Java project in Eclipse, and give your project a name that is relevant to the tests you’re about to create (for example, "MyAppNameTests"). In the project, you will create the test cases that are specific to the application that you want to test.</li>
-<li>From the <strong>Project Explorer</strong>, right-click on the new project that you created, then select <strong>Properties > Java Build Path</strong>, and do the following:
-  <ol type="a">
-  <LI>Click <strong>Add Library > JUnit</strong> then select <strong>JUnit3</strong> to add JUnit support.</LI>
-  <li>Click <strong>Add External JARs...</strong> and navigate to the SDK directory. Under the platforms directory, select the latest SDK version and add both the {@code uiautomator.jar} and {@code android.jar} files.</li>
-  </ol>
-</li>
-</ol>
-<p>If you did not configure Eclipse as your development environment, make sure that the {@code uiautomator.jar} and {@code android.jar} files from the {@code &lt;android-sdk&gt;/platforms/&lt;sdk&gt;} directory are in your Java class path.</p>
-<p>Once you have completed these prerequisite tasks, you're almost ready to start creating your {@code uiautomator} tests. </li>
-
-<h2 id="creating">Creating uiautomator Tests</h2>
-<p>To build a test that runs in the {@code uiautomator} framework, create a test case that extends the <a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">{@code UiAutomatorTestCase}</a> class. In Eclipse, the test case file goes under the {@code src} directory in your project.  Later, you will build the test case as a JAR file, then copy this file to the test device. The test JAR file is not an APK file and resides separately from the application that you want to test on the device.</p>
-
-<p>Because the <a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">{@code UiAutomatorTestCase}</a> class extends {@code junit.framework.TestCase}, you can use the JUnit {@code Assert} class to test that UI components in the app return the expected results. To learn more about JUnit, you can read the documentation on the <a href="http://www.junit.org/">junit.org</a> home page.</p>
-
-<p>The first thing your test case should do is access the device that contains the target app. It’s also good practice to start the test from the Home screen of the device. From the Home screen (or some other starting location you’ve chosen in the target app), you can use the classes provided by the {@code uiautomator} API to simulate user actions and to test specific UI components. For an example of how to put together a {@code uiautomator} test case, see the <a href="#sample">sample test case</a>.</p>
-
-<h3 id="classes">uiautomator API</h3>
-<p>The {@code uiautomator} API is bundled in the {@code uiautomator.jar} file under the {@code &lt;android-sdk&gt;/platforms/} directory.  The API includes these key classes that allow you to capture and manipulate UI components on the target app:</p>
-<dl>
-<DT><a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a></DT>
-<dd><p>Represents the device state.  In your tests, you can call methods on the <a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a> instance to check for the state of various properties, such as current orientation or display size. Your tests also can use the <a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a> instance to perform device level actions, such as forcing the device into a specific rotation, pressing the d-pad hardware button, or pressing the Home and Menu buttons.</p>
-<p>To get an instance of <a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a> and simulate a Home button press:
-<pre>
-getUiDevice().pressHome();
-</pre></p></dd>
-
-<dt><a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a></dt>
-<dd>Represents a search criteria to query and get a handle on specific elements in the currently displayed UI. 	
-If more than one matching element is found, the first matching element in the layout hierarchy is returned as the target {@code UiObject}.  When constructing a <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a>, you can chain together multiple properties to refine your search. If no matching UI element is found, a <a href="{@docRoot}tools/help/uiautomator/UiAutomatorObjectNotFoundException.html">{@code UiAutomatorObjectNotFoundException}</a> is thrown. You can use the <a href="{@docRoot}tools/help/uiautomator/UiSelector.html#childSelector(com.android.uiautomator.core.UiSelector)">{@code childSelector()}</a> method to nest multiple <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a> instances. For example, the following code example shows how to specify a search to find the first {@link android.widget.ListView} in the currently displayed UI, then search within that {@link android.widget.ListView} to find a UI element with the text property {@code Apps}.
-<pre>
-UiObject appItem = new UiObject(new UiSelector()
-   .className("android.widget.ListView").instance(1)
-   .childSelector(new UiSelector().text("Apps")));
-</pre>
-</dd>
-
-<dt><a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a></dt>
-<dd>Represents a UI element. To create a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instance, use a {@code UiSelector} that describes how to search for, or select, the UI element.
-<p>The following code example shows how to construct <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instances that represent a <strong>Cancel</strong> button and a <strong>OK</strong> button in your application.</p>
-<pre>
-UiObject cancelButton = new UiObject(new UiSelector().text("Cancel"));
-UiObject okButton = new UiObject(new UiSelector().text("OK"));
-</pre>
-<p>You can reuse the <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instances that you have created in other parts of your app testing, as needed.  Note that the {@code uiautomator} test framework searches the current display for a match every time your test uses a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instance to click on a UI element or query a property.</p>
-<p>In the following code example, the {@code uiautomator} test framework searches for a UI element with the text property {@code OK}. If a match is found and if the element is enabled, the framework simulates a user click action on the element.</p>
-<pre>
-if(okButton.exists() && okButton.isEnabled()) 
-{
-  okButton.click();
-}
-</pre>
-<p>You can also restrict the search to find only elements of a specific class. For example, to find matches of the {@link android.widget.Button} class:</p>
-<pre>
-UiObject cancelButton = new UiObject(new UiSelector().text("Cancel")
-   .className("android.widget.Button"));
-UiObject okButton = new UiObject(new UiSelector().text("OK")
-   .className("android.widget.Button"));
-</pre>
-</dd>
-
-<dt><a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a></dt>
-<dd>Represents a collection of items, for example songs in a music album or a list of emails in an inbox. Similar to a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a>, you construct a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> instance by specifying a <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a>. The <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a> for a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> should search for a UI element that is a container or wrapper of other child UI elements (such as  a layout view that contains child UI elements).  For example, the following code snippet  shows how to construct a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> to represent a video album that is displayed within a {@link android.widget.FrameLayout}:
-<pre>
-UiCollection videos = new UiCollection(new UiSelector()
-   .className("android.widget.FrameLayout"));
-</pre>
-<p>If the videos are listed within a {@link android.widget.LinearLayout} view, and you want to to retrieve the number of videos in this collection:</p>
-<pre>
-int count = videos.getChildCount(new UiSelector()
-   .className("android.widget.LinearLayout"));
-</pre>
-<p>If you want to find a specific video that is labeled with the text element {@code Cute Baby Laughing} from the collection and simulate a user-click on the video:</p>
-<pre>
-UiObject video = videos.getChildByText(new UiSelector()
-   .className("android.widget.LinearLayout"), "Cute Baby Laughing");
-video.click();
-</pre>
-<p>Similarly, you can simulate other user actions on the UI object.  For example, if you want 
-to simulate selecting a checkbox that is associated with the video:</p>
-<pre>
-UiObject checkBox = video.getChild(new UiSelector()
-   .className("android.widget.Checkbox"));
-if(!checkBox.isSelected()) checkbox.click();
-</pre>
-</dd>
-
-<dt><a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">{@code UiScrollable}</a></dt>
-<dd>Represents a scrollable collection of UI elements.  You can use the <a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">{@code UiScrollable}</a> class to simulate vertical or horizontal scrolling across a display. This technique is helpful when a UI element is positioned off-screen and you need to scroll to bring it into view.
-<p>For example, the following code shows how to simulate scrolling down the Settings menu and clicking on an <strong>About tablet</strong> option:</p>
-<pre>
-UiScrollable settingsItem = new UiScrollable(new UiSelector()
-   .className("android.widget.ListView"));
-UiObject about = settingsItem.getChildByText(new UiSelector()
-   .className("android.widget.LinearLayout"), "About  tablet");
-about.click()
-</pre>
-</dd>
-</dl>
-<p>For more information about these APIs, see the <a href="{@docRoot}tools/help/uiautomator/index.html">{@code uiautomator}</a> reference.</p>
-
-<h3 id="sample">A sample uiautomator test case</h3>
-<p>The following code example shows a simple test case which simulates a user bringing up the Settings app in a stock Android device.  The test case mimics all the steps that a user would typically take to perform this task, including opening the Home screen, launching the <strong>All Apps</strong> screen, scrolling to the <strong>Settings</strong> app icon, and clicking on the icon to enter the Settings app.</p>
-<pre>
-package com.uia.example.my;
-
-// Import the uiautomator libraries
-import com.android.uiautomator.core.UiObject;
-import com.android.uiautomator.core.UiObjectNotFoundException;
-import com.android.uiautomator.core.UiScrollable;
-import com.android.uiautomator.core.UiSelector;
-import com.android.uiautomator.testrunner.UiAutomatorTestCase;
-
-public class LaunchSettings extends UiAutomatorTestCase {   
-
-   public void testDemo() throws UiObjectNotFoundException {   
-      
-      // Simulate a short press on the HOME button.
-      getUiDevice().pressHome();
-      
-      // We’re now in the home screen. Next, we want to simulate 
-      // a user bringing up the All Apps screen.
-      // If you use the uiautomatorviewer tool to capture a snapshot 
-      // of the Home screen, notice that the All Apps button’s 
-      // content-description property has the value “Apps”.  We can 
-      // use this property to create a UiSelector to find the button. 
-      UiObject allAppsButton = new UiObject(new UiSelector()
-         .description("Apps"));
-      
-      // Simulate a click to bring up the All Apps screen.
-      allAppsButton.clickAndWaitForNewWindow();
-      
-      // In the All Apps screen, the Settings app is located in 
-      // the Apps tab. To simulate the user bringing up the Apps tab,
-      // we create a UiSelector to find a tab with the text 
-      // label “Apps”.
-      UiObject appsTab = new UiObject(new UiSelector()
-         .text("Apps"));
-      
-      // Simulate a click to enter the Apps tab.
-      appsTab.click();
-
-      // Next, in the apps tabs, we can simulate a user swiping until
-      // they come to the Settings app icon.  Since the container view 
-      // is scrollable, we can use a UiScrollable object.
-      UiScrollable appViews = new UiScrollable(new UiSelector()
-         .scrollable(true));
-      
-      // Set the swiping mode to horizontal (the default is vertical)
-      appViews.setAsHorizontalList();
-      
-      // Create a UiSelector to find the Settings app and simulate      
-      // a user click to launch the app. 
-      UiObject settingsApp = appViews.getChildByText(new UiSelector()
-         .className(android.widget.TextView.class.getName()), 
-         "Settings");
-      settingsApp.clickAndWaitForNewWindow();
-      
-      // Validate that the package name is the expected one
-      UiObject settingsValidation = new UiObject(new UiSelector()
-         .packageName("com.android.settings"));
-      assertTrue("Unable to detect Settings", 
-         settingsValidation.exists());   
-  }   
-}
-</pre>
-
-<h2 id="builddeploy">Building and Deploying Your uiautomator Tests</h2>
-<p>Once you have coded your test, follow these steps to build and deploy your test JAR to your target Android test device:</p>
-<ol>
-<li>Create the required build configuration files to build the output JAR. To generate the build configuration files, open a terminal and run the following command:
-<pre>&lt;android-sdk&gt;/tools/android create uitest-project -n &lt;name&gt; -t 1 -p &lt;path&gt;</pre>
-The {@code &lt;name&gt;} is the name of the project that contains your {@code uiautomator} test source files, and the {@code &lt;path&gt;} is the path to the corresponding project directory. 
-</li>
-<LI>From the command line, set the {@code ANDROID_HOME} variable: 
-<ul>
-<li>In Windows: 
-<pre>set ANDROID_HOME=&lt;path_to_your_sdk&gt;</pre>
-</li>
-<li>In UNIX: 
-<pre>export ANDROID_HOME=&lt;path_to_your_sdk&gt;</pre>
-</li>
-</ul>
-</LI>
-<li>Go to the project directory where your {@code build.xml} file is located and build your test JAR. <pre>ant build</pre></li>
-<li>Deploy your generated test JAR file to the test device by using the {@code adb push} command: <pre>adb push &lt;path_to_output_jar&gt; /data/local/tmp/</pre>
-<p>Here’s an example: <pre>adb push ~/dev/workspace/LaunchSettings/bin/LaunchSettings.jar /data/local/tmp/</pre></p>
-</li>
-</ol>
-
-<h2 id="running">Running uiautomator Tests</h2>
-<p>Here’s an example of how to run a test that is implemented in the {@code LaunchSettings.jar} file. The tests are bundled in the {@code com.uia.example.my} package:</p>
-<pre>adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings</pre>
-<p>To learn more about the syntax, subcommands, and options for {@code uiautomator}, see the <a href="{@docRoot}tools/help/uiautomator/index.html">{@code uiautomator}</a> reference.</p>
-
-
-<h2 id="bestpractices">Best Practices</h2>
-<p>Here are some best practices for functional UI testing with the {@code uiautomator} framework: </p>
-<ul>
-<LI>Ensure that you validate the same UI functions on your application across the various types of devices that your application might run on (for example, devices with different screen densities).</LI>
-<li>You should also test your UI against common scenarios such as in-coming phone calls, network interruptions, and user-initiated switching to other applications on the device.</li>
-</ul>
-
diff --git a/docs/html/tools/testing/what_to_test.jd b/docs/html/tools/testing/what_to_test.jd
deleted file mode 100644
index 77ae211..0000000
--- a/docs/html/tools/testing/what_to_test.jd
+++ /dev/null
@@ -1,86 +0,0 @@
-page.title=What To Test
-parent.title=Testing
-parent.link=index.html
-@jd:body
-<p>
-    As you develop Android applications, knowing what to test is as important as knowing how to
-    test. This document lists some most common Android-related situations that you should consider
-    when you test, even at the unit test level. This is not an exhaustive list, and you consult the
-    documentation for the features that you use for more ideas. The
-    <a href="http://groups.google.com/group/android-developers">android-developers</a> Google Groups
-    site is another resource for information about testing.
-</p>
-<h2 id="Tests">Ideas for Testing</h2>
-<p>
-    The following sections are organized by behaviors or situations that you should test. Each
-    section contains a scenario that further illustrates the situation and the test or tests you
-    should do.
-</p>
-<h4>Change in orientation</h4>
-<p>
-    For devices that support multiple orientations, Android detects a change in orientation when
-    the user turns the device so that the display is "landscape" (long edge is horizontal) instead
-    of "portrait" (long edge is vertical).
-</p>
-<p>
-    When Android detects a change in orientation, its default behavior is to destroy and then
-    re-start the foreground Activity. You should consider testing the following:
-</p>
-<ul>
-    <li>
-        Is the screen re-drawn correctly? Any custom UI code you have should handle changes in the
-        orientation.
-    </li>
-    <li>
-        Does the application maintain its state? The Activity should not lose anything that the
-        user has already entered into the UI. The application should not "forget" its place in the
-        current transaction.
-    </li>
-</ul>
-<h4>Change in configuration</h4>
-<p>
-    A situation that is more general than a change in orientation is a change in the device's
-    configuration, such as a change in the availability of a keyboard or a change in system
-    language.
-</p>
-<p>
-    A change in configuration also triggers the default behavior of destroying and then restarting
-    the foreground Activity. Besides testing that the application maintains the UI and its
-    transaction state, you should also test that the application updates itself to respond
-    correctly to the new configuration.
-</p>
-<h4>Battery life</h4>
-<p>
-    Mobile devices primarily run on battery power. A device has finite "battery budget", and when it
-    is gone, the device is useless until it is recharged. You need to write your application to
-    minimize battery usage, you need to test its battery performance, and you need to test the
-    methods that manage battery usage.
-</p>
-<p>
-    Techniques for minimizing battery usage were presented at the 2010 Google I/O conference in the
-    presentation
-    <a href="http://code.google.com/events/io/2009/sessions/CodingLifeBatteryLife.html">
-    Coding for Life -- Battery Life, That Is</a>. This presentation describes the impact on battery
-    life of various operations, and the ways you can design your application to minimize these
-    impacts. When you code your application to reduce battery usage, you also write the
-    appropriate unit tests.
-</p>
-<h4>Dependence on external resources</h4>
-<p>
-    If your application depends on network access, SMS, Bluetooth, or GPS, then you should
-    test what happens when the resource or resources are not available.
-</p>
-<p>
-    For example, if your application uses the network,it can notify the user if access is
-    unavailable, or disable network-related features, or do both. For GPS, it can switch to
-    IP-based location awareness. It can also wait for WiFi access before doing large data transfers,
-    since WiFi transfers maximize battery usage compared to transfers over 3G or EDGE.
-</p>
-<p>
-    You can use the emulator to test network access and bandwidth. To learn more, please see
-    <a href="{@docRoot}tools/help/emulator.html#netspeed">Network Speed Emulation</a>.
-    To test GPS, you can use the emulator console and {@link android.location.LocationManager}. To
-    learn more about the emulator console, please see
-    <a href="{@docRoot}tools/help/emulator.html#console">
-    Using the Emulator Console</a>.
-</p>
diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs
index b7595ce..04ed705 100644
--- a/docs/html/tools/tools_toc.cs
+++ b/docs/html/tools/tools_toc.cs
@@ -17,7 +17,7 @@
 
  <li class="nav-section">
     <div class="nav-section-header">
-      <a href="<?cs var:toroot?>tools/studio/index.html">Android Studio</a>
+      <a href="<?cs var:toroot?>tools/studio/index.html"><span class="en">Android Studio</span></a>
     </div>
     <ul>
       <li><a href="<?cs var:toroot ?>tools/studio/studio-config.html">
@@ -26,6 +26,15 @@
           Features</a></li>
       <li><a href="<?cs var:toroot ?>sdk/installing/studio-tips.html">
           Tips and Tricks</a></li>
+      <li class="nav-section">
+        <div class="nav-section-header"><a href="<?cs var:toroot ?>sdk/installing/migrate.html">
+        <span class="en">
+          Migrating from Eclipse ADT</span></a></div>
+          <ul>
+            <li><a href="<?cs var:toroot ?>tools/studio/eclipse-transition-guide.html">
+            <span class="en">Transition Guide</span></a></li>
+          </ul>
+      </li>
     </ul>
 
  </li><!-- End of Android Studio menu -->
@@ -39,7 +48,9 @@
     </div>
     <ul>
       <li class="nav-section">
-        <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/devices/index.html"><span class="en">Setting Up Virtual Devices</span></a></div>
+        <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/devices/index.html">
+        <span class="en">
+        Setting Up Virtual Devices</span></a></div>
         <ul>
           <li><a href="<?cs var:toroot ?>tools/devices/managing-avds.html"><span class="en">With AVD Manager</span></a></li>
           <li><a href="<?cs var:toroot ?>tools/devices/managing-avds-cmdline.html"><span class="en">From the Command Line</span></a></li>
@@ -72,56 +83,11 @@
           <li><a href="<?cs var:toroot ?>tools/building/building-studio.html">
             <span class="en">From Android Studio</span></a></li>
           <li><a href="<?cs var:toroot ?>tools/building/building-cmdline.html">
-            <span class="en">From the Command Line</span></a></li>
+            <span class="en">From the Command-Line</span></a></li>
         </ul>
       </li>
 
-
-  <li class="nav-section">
-        <div class="nav-section-header"><a href="<?cs var:toroot?>tools/testing/index.html">
-            <span class="en">Testing</span>
-          </a></div>
-        <ul>
-          <li>
-            <a href="<?cs var:toroot?>tools/testing/testing_android.html">
-            <span class="en">Fundamentals</span></a>
-          </li>
-          <li><a href="<?cs var:toroot ?>tools/testing/testing_eclipse.html">
-            <span class="en">From Eclipse</span></a>
-          </li>
-          <li><a href="<?cs var:toroot ?>tools/testing/testing_otheride.html">
-            <span class="en">From Other IDEs</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot?>tools/testing/activity_testing.html">
-            <span class="en">Activity Testing</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot?>tools/testing/service_testing.html">
-            <span class="en">Service Testing</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot?>tools/testing/contentprovider_testing.html">
-            <span class="en">Content Provider Testing</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot?>tools/testing/testing_accessibility.html">
-            <span class="en">Accessibility Testing</span></a>
-          </li>
-           <li>
-            <a href="<?cs var:toroot?>tools/testing/testing_ui.html">
-            <span class="en">UI Testing</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot ?>tools/testing/what_to_test.html">
-            <span class="en">What To Test</span></a>
-          </li>
-          <li>
-            <a href="<?cs var:toroot ?>tools/testing/activity_test.html">
-            <span class="en">Activity Testing Tutorial</span></a>
-          </li>
-        </ul>
-  </li><!-- end of testing -->
+  <li><a href="<?cs var:toroot?>tools/testing/index.html"><span class="en">Testing</span></a></li>
 
   <li class="nav-section">
     <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/debugging/index.html"><span class="en">Debugging</span></a></div>
@@ -157,6 +123,27 @@
     <ul>
       <li><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/android.html">android</a></li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>tools/help/android-monitor.html">Android Monitor</a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>tools/help/am-logcat.html"><span
+            class="en">logcat Monitor</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/help/am-memory.html"><span
+            class="en">Memory Monitor</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/help/am-cpu.html"><span
+            class="en">CPU Monitor</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/help/am-gpu.html"><span
+            class="en">GPU Monitor</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/help/am-network.html"><span
+            class="en">Network Monitor</span></a>
+          </li>
+        </ul>
+      </li>
       <li><a href="<?cs var:toroot ?>tools/help/avd-manager.html">AVD Manager</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/bmgr.html">bmgr</a>
       <li><a href="<?cs var:toroot ?>tools/help/monitor.html">Device Monitor</a></li>
@@ -168,16 +155,22 @@
       <li><a href="<?cs var:toroot ?>tools/help/hierarchy-viewer.html">Hierarchy Viewer</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/hprof-conv.html">hprof-conv</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/jobb.html">jobb</a></li>
+      <li><a href="<?cs var:toroot ?>sdk/installing/studio-layout.html">Layout Editor</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/help/lint.html">lint</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/help/logcat.html">logcat</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/mksdcard.html">mksdcard</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/proguard.html" zh-cn-lang="ProGuard">ProGuard</a></li>
+       <li><a href="<?cs var:toroot ?>tools/help/project-mgmt.html">Project Structure Management</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/sdk-manager.html">SDK Manager</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/systrace.html">Systrace</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/theme-editor.html">Theme Editor</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/gltracer.html">Tracer for OpenGL ES</a></li>
+       <li>
+           <a href="<?cs var:toroot ?>tools/help/translations-editor.html">Translations Editor</a>
+       </li>
        <li><a href="<?cs var:toroot ?>tools/help/traceview.html">Traceview</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/vector-asset-studio.html">Vector Asset Studio</a></li>
+       <li><a href="<?cs var:toroot ?>tools/help/image-asset-studio.html">Image Asset Studio</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/zipalign.html">zipalign</a></li>
 
     </ul>
@@ -269,15 +262,23 @@
   <!-- Testing Tools menu-->
 
   <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing/testing-tools.html"><span class="en">Testing Tools</span></a></div>
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing/testing-tools.html">
+    <span class="en">Testing Tools</span></a></div>
     <ul>
+      <li><a href="<?cs var:toroot ?>tools/testing/testing_android.html">Testing Concepts</a></li>
       <li class="nav-section">
-         <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing-support-library/index.html"><span
+         <div class="nav-section-header">
+         <a href="<?cs var:toroot ?>tools/testing-support-library/index.html"><span
 class="en">Testing Support Library</span></a></div>
          <ul>
-            <li><a href="<?cs var:toroot ?>reference/android/support/test/package-summary.html">API Reference</a></li>
+            <li><a href="<?cs var:toroot ?>reference/android/support/test/package-summary.html">
+            API Reference</a></li>
          </ul>
       </li>
+      <li><a href="<?cs var:toroot ?>training/testing/start/index.html">
+      Testing with Android Studio</a></li>
+      <li><a href="<?cs var:toroot ?>tools/testing/testing_otheride.html">
+      Testing from the Command-Line</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/monkey.html">monkey</a></li>
       <li class="nav-section">
         <div class="nav-section-header"><a href="<?cs var:toroot
@@ -354,38 +355,6 @@
     </ul>
   </li> -->
 
-
-<!-- Eclipse ADT menu-->
-
-  <li class="nav-section">
-    <div class="nav-section-header">
-    <a href="<?cs var:toroot ?>tools/help/adt.html">
-      <span class="en">Eclipse with ADT</span></a>
-    </div>
-    <ul>
-        <li class="nav-section">
-        <div class="nav-section-header"><a href="<?cs var:toroot ?>sdk/installing/migrate.html">
-          <span class="en">Migrating to Android Studio</span></a></div>
-         <ul>
-            <li><a href="<?cs var:toroot ?>tools/studio/eclipse-transition-guide.html">
-            Transition Guide</span></a> </li>
-         </ul>
-        </li>
-
-    <li><a href="<?cs var:toroot ?>sdk/installing/installing-adt.html">
-        <span class="en">Installing the Eclipse Plugin</span></a></li>
-    <li><a href="<?cs var:toroot ?>tools/projects/projects-eclipse.html">Managing Projects</a></li>
-    <li><a href="<?cs var:toroot ?>tools/building/building-eclipse.html">Building and Running</a></li>
-    <li><a href="<?cs var:toroot ?>tools/building/building-cmdline-ant.html">Building with Ant</a></li>
-    <li><a href="<?cs var:toroot ?>tools/testing/testing_eclipse.html">Testing</a></li>
-    <li><a href="<?cs var:toroot ?>tools/debugging/debugging-projects.html">Debugging</a></li>
-    <li><a href="<?cs var:toroot ?>tools/publishing/app-signing-eclipse.html">Signing Your Apps</a></li>
-    </ul>
-  </li><!-- end of Eclipse  -->
-
-
-</ul><!-- nav -->
-
 <script type="text/javascript">
 <!--
     buildToggleLists();
diff --git a/docs/html/tools/workflow.jd b/docs/html/tools/workflow.jd
old mode 100644
new mode 100755
index 4eb5ada..edf7400
--- a/docs/html/tools/workflow.jd
+++ b/docs/html/tools/workflow.jd
@@ -2,14 +2,13 @@
 @jd:body
 
 <p>Developing applications for Android devices is facilitated by a group of tools that are
-  provided with the SDK. You can access these tools through an Eclipse plugin called ADT (Android
-  Development Tools) or from the command line. Developing with Eclipse is the preferred method because
+  provided with the SDK. You can access these tools through Android Studio or from the command line. Developing with Android Studio is the preferred method because
   it can directly invoke the tools that you need while developing applications.</p>
 
   <p>However, you may choose to develop with another IDE or a simple text editor and invoke the
   tools on the command line or with scripts. This is a less streamlined way to develop because you
   will sometimes have to call command line tools manually, but you will have access to the same
-  number of features that you would have in Eclipse.</p>
+  number of features that you would have in Android Studio.</p>
 
 <div class="figure" style="width:461px">
   <img src="{@docRoot}images/developing/developing_overview.png"
@@ -20,7 +19,7 @@
   </p>
 </div>
 
-<p>The basic steps for developing applications (with or without Eclipse) are shown in figure 1. The
+<p>The basic steps for developing applications (with or without Android Studio) are shown in figure 1. The
 development steps encompass four development phases, which include:</p>
 
 <ul>
@@ -39,13 +38,14 @@
   </li>
   <li><strong>Debugging and Testing</strong>
     <p>During this phase you build your project into a debuggable <code>.apk</code> package that you
-    can install and run on the emulator or an Android-powered device. If you are using Eclipse,
-    builds are generated each time you project is saved. If you're using another IDE,
-    you can build your project using Ant and install it on a device using
-    <a href="{@docRoot}tools/help/adb.html">adb</a>. For more information, see
+    can install and run on the emulator or an Android-powered device. Android Studio uses
+    a build system based on <a href="http://www.gradle.org/" target="_android">Gradle</a>
+    that provides flexibility, customized build variants, dependency resolution, and much more.
+    If you're using another IDE, you can build your project using Gradle and install it on a device
+    using <a href="{@docRoot}tools/help/adb.html">adb</a>. For more information, see
     <a href="{@docRoot}tools/building/index.html">Build and run your application</a>.</p>
     <p>Next, you debug your application using a JDWP-compliant debugger along with the debugging
-    and logging tools that are provided with the Android SDK. Eclipse already comes packaged with
+    and logging tools that are provided with the Android SDK. Android Studio already comes packaged with
     a compatible debugger. For more information see,
     <a href="{@docRoot}tools/debugging/index.html">Debug your application with the
       SDK debugging and logging tools</a>.</p>
@@ -62,7 +62,7 @@
 
 <h2 id="EssentialTools">Essential command line tools</h2>
 
-  <p>When developing in IDEs or editors other than Eclipse, be familiar with
+  <p>When developing in IDEs or editors other than Android Studio, be familiar with
   all of the tools below, because you will have to run them from the command line.</p>
 
   <dl>
@@ -84,7 +84,7 @@
   source and third-party tools:</p>
 
   <dl>
-    <dt>Ant</dt>
+    <a href="http://www.gradle.org/">Gradle</a> 
 
     <dd>To compile and build your Android project into an installable .apk file.</dd>
 
@@ -99,13 +99,13 @@
     JDK.</dd>
   </dl>
 
-  <p>If you are using Eclipse and ADT, tools such as <code>adb</code> and <code>android</code>
-  are automatically called by Eclipse and ADT so you don't have to manually invoke these tools.
+  <p>If you are using Android Studio, tools such as <code>adb</code> and <code>android</code>
+  are automatically called by Android Studio, so you don't have to manually invoke these tools.
   You need to be familiar with <code>adb</code>, however, because certain functions are not
 accessible from
-  Eclipse, such as the <code>adb</code> shell commands. You might also need to call Keytool and
+  Android Studio, such as the <code>adb</code> shell commands. You might also need to call Keytool and
 Jarsigner to
-  sign your applications, but you can set up Eclipse to do this automatically as well.</p>
+  sign your applications, but you can set up Android Studio to do this automatically as well.</p>
 
 <p>For more information on the tools provided with the Android SDK, see the
   <a href="{@docRoot}tools/index.html">Tools</a> section of the documentation.</p>
@@ -147,4 +147,3 @@
     	<a href="http://wiki.jetbrains.net/intellij/Android">IntelliJ IDEA Android Tutorials</a>
 	</li>
 </ul>
-
diff --git a/docs/html/training/accessibility/index.jd b/docs/html/training/accessibility/index.jd
index ea54dc4..7a5d6d7 100644
--- a/docs/html/training/accessibility/index.jd
+++ b/docs/html/training/accessibility/index.jd
@@ -50,5 +50,7 @@
     and uses that information to communicate with the user.  The example will
     use a text-to-speech engine to speak to the user.</dd>
 
+    <dt><b><a href="testing.html">Accessibility Checklist</a></b></dt>
+    <dd>Learn how to test your app for accessibility.</dd>
 </dl>
 
diff --git a/docs/html/tools/testing/testing_accessibility.jd b/docs/html/training/accessibility/testing.jd
similarity index 97%
rename from docs/html/tools/testing/testing_accessibility.jd
rename to docs/html/training/accessibility/testing.jd
index 20948fa..6563f4e 100644
--- a/docs/html/tools/testing/testing_accessibility.jd
+++ b/docs/html/training/accessibility/testing.jd
@@ -1,11 +1,13 @@
 page.title=Accessibility Testing Checklist
-parent.title=Testing
-parent.link=index.html
+page.tags=testing,accessibility
+
+trainingnavtop=true
+startpage=true
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
-  <h2>In this document</h2>
+<div id="tb-wrapper">
+  <div id="tb">
+  <h2>Checklist sections</h2>
   <ol>
     <li><a href="#goals">Testing Goals</a></li>
     <li><a href="#requirements">Testing Requirements</a></li>
@@ -20,7 +22,7 @@
     </li>
   </ol>
 
-  <h2>See Also</h2>
+  <h2>You should also read</h2>
     <ol>
       <li>
         <a href="{@docRoot}guide/topics/ui/accessibility/checklist.html">
diff --git a/docs/html/training/activity-testing/activity-basic-testing.jd b/docs/html/training/activity-testing/activity-basic-testing.jd
deleted file mode 100644
index 016289d..0000000
--- a/docs/html/training/activity-testing/activity-basic-testing.jd
+++ /dev/null
@@ -1,227 +0,0 @@
-page.title=Creating and Running a Test Case
-trainingnavtop=true
-
-@jd:body
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-  <li><a href="#testcase">Create a Test Case for Activity Testing</a>
-      <ol>
-      <li><a href="#fixture">Set Up Your Test Fixture</a></li>
-      <li><a href="#preconditions">Add Test Preconditions</a></li>
-      <li><a href="#test_method">Add Test Methods to Verify Your Activity</a></li>
-      </ol>
-  </li>
-  <li><a href="#build_run">Build and Run Your Test</a></li>
-</ol>
-
-<h2>You should also read</h2>
-<ul>
-<li><a href="{@docRoot}tools/testing/testing_android.html">Testing
-Fundamentals</a></li>
-</ul>
-
-</div>
-</div>
-<p>In order to verify that there are no regressions in the layout design and
-functional behavior in your application, it's important to
-create a test for each {@link android.app.Activity} in your application. For
-each test, you need to create the individual parts of a test case, including
-the test fixture, preconditions test method, and {@link android.app.Activity}
-test methods. You can then run your test to get a test report. If any test
-method fails, this might indicate a potential defect in your code.</p>
-<p class="note"><strong>Note:</strong> In the Test-Driven Development (TDD)
-approach, instead of writing most or all of your app code up-front and then
-running tests later in the development cycle, you would progressively write
-just enough production code to satisfy your test dependencies, update your
-test cases to reflect new functional requirements, and iterate repeatedly this
-way.</p>
-
-<h2 id="testcase">Create a Test Case</h2>
-<p>{@link android.app.Activity} tests are written in a structured way.
-Make sure to put your tests in a separate package, distinct from the code under
-test.</p>
-<p>By convention, your test package name should follow the same name as the
-application package, suffixed with <strong>".tests"</strong>. In the test package
-you created, add the Java class for your test case. By convention, your test case
-name should also follow the same name as the Java or Android class that you
-want to test, but suffixed with <strong>“Test”</strong>.</p>
-<p>To create a new test case in Eclipse:</p>
-<ol type="a">
-   <li>In the Package Explorer, right-click on the {@code /src} directory for
-your test project and select <strong>New &gt; Package</strong>.</li>
-   <li>Set the <strong>Name</strong> field to
-{@code &lt;your_app_package_name&gt;.tests} (for example,
-{@code com.example.android.testingfun.tests}) and click
-<strong>Finish</strong>.</li>
-   <li>Right-click on the test package you created, and select
-<strong>New &gt; Class</strong>.</li>
-    <li>Set the <strong>Name</strong> field to
-{@code &lt;your_app_activity_name&gt;Test} (for example,
-{@code MyFirstTestActivityTest}) and click <strong>Finish</strong>.</li>
-</ol>
-
-<h3 id="fixture">Set Up Your Test Fixture</h3>
-<p>A <em>test fixture</em> consists of objects that must be initialized for
-running one or more tests. To set up the test fixture, you can override the
-{@link junit.framework.TestCase#setUp()} and
-{@link junit.framework.TestCase#tearDown()} methods in your test. The
-test runner automatically runs {@link junit.framework.TestCase#setUp()} before
-running any other test methods, and {@link junit.framework.TestCase#tearDown()}
-at the end of each test method execution. You can use these methods to keep
-the code for test initialization and clean up separate from the tests methods.
-</p>
-<p>To set up your test fixture in Eclipse:</p>
-<ol>
-<li>In the Package Explorer, double-click on the test case that you created
-earlier to bring up the Eclipse Java editor, then modify your test case class
-to extend one of the sub-classes of {@link android.test.ActivityTestCase}.
-<p>For example:</p>
-<pre>
-public class MyFirstTestActivityTest
-        extends ActivityInstrumentationTestCase2&lt;MyFirstTestActivity&gt; {
-</pre>
-</li>
-<li>Next, add the constructor and {@link junit.framework.TestCase#setUp()}
-methods to your test case, and add variable declarations for the
-{@link android.app.Activity} that you want to test.</p>
-<p>For example:</p>
-<pre>
-public class MyFirstTestActivityTest
-        extends ActivityInstrumentationTestCase2&lt;MyFirstTestActivity&gt; {
-
-    private MyFirstTestActivity mFirstTestActivity;
-    private TextView mFirstTestText;
-
-    public MyFirstTestActivityTest() {
-        super(MyFirstTestActivity.class);
-    }
-
-    &#64;Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mFirstTestActivity = getActivity();
-        mFirstTestText =
-                (TextView) mFirstTestActivity
-                .findViewById(R.id.my_first_test_text_view);
-    }
-}
-</pre>
-<p>The constructor is invoked by the test runner to instantiate the test
-class, while the {@link junit.framework.TestCase#setUp()} method is invoked by
-the test runner before it runs any tests in the test class.</p>
-</li>
-</ol>
-
-<p>Typically, in the {@link junit.framework.TestCase#setUp()} method, you
-should:</p>
-<ul>
-<li>Invoke the superclass constructor for
-{@link junit.framework.TestCase#setUp()}, which is required by JUnit.</li>
-<li>Initialize your test fixture state by:
-   <ul>
-   <li>Defining the instance variables that store the state of the fixture.</li>
-   <li>Creating and storing a reference to an instance of the
-{@link android.app.Activity} under test.</li>
-   <li>Obtaining a reference to any UI components in the
-{@link android.app.Activity} that you want to test.</li>
-   </ul>
-</ul>
-
-<p>You can use the
-{@link android.test.ActivityInstrumentationTestCase2#getActivity()} method to
-get a reference to the {@link android.app.Activity} under test.</p>
-
-<h3 id="preconditions">Add Test Preconditions</h3>
-<p>As a sanity check, it is good practice to verify that the test fixture has
-been set up correctly, and the objects that you want to test have been correctly
-instantiated or initialized. That way, you won’t have to see
-tests failing because something was wrong with the setup of your test fixture.
-By convention, the method for verifying your test fixture is called
-{@code testPreconditions()}.</p>
-
-<p>For example, you might want to add a {@code testPreconditons()} method like
-this to your test case:</p>
-
-<pre>
-public void testPreconditions() {
-    assertNotNull(“mFirstTestActivity is null”, mFirstTestActivity);
-    assertNotNull(“mFirstTestText is null”, mFirstTestText);
-}
-</pre>
-
-<p>The assertion methods are from the JUnit {@link junit.framework.Assert}
-class. Generally, you can use assertions to
-verify if a specific condition that you want to test is true.
-<ul>
-<li>If the condition is false, the assertion method throws an
-{@link android.test.AssertionFailedError} exception, which is then typically
-reported by the test runner. You can provide a string in the first argument of
-your assertion method to give some contextual details if the assertion fails.</li>
-<li>If the condition is true, the test passes.</li>
-</ul>
-<p>In both cases, the test runner proceeds to run the other test methods in the
-test case.</p>
-
-<h3 id="test_method">Add Test Methods to Verify Your Activity</h3>
-<p>Next, add one or more test methods to verify the layout and functional
-behavior of your {@link android.app.Activity}.</p>
-<p>For example, if your {@link android.app.Activity} includes a
-{@link android.widget.TextView}, you can add a test method like this to check
-that it has the correct label text:</p>
-<pre>
-public void testMyFirstTestTextView_labelText() {
-    final String expected =
-            mFirstTestActivity.getString(R.string.my_first_test);
-    final String actual = mFirstTestText.getText().toString();
-    assertEquals(expected, actual);
-}
-</pre>
-
-<p>The {@code testMyFirstTestTextView_labelText()} method simply checks that the
-default text of the {@link android.widget.TextView} that is set by the layout
-is the same as the expected text defined in the {@code strings.xml} resource.</p>
-<p class="note"><strong>Note:</strong> When naming test methods, you can use
-an underscore to separate what is being tested from the specific case being
-tested. This style makes it easier to see exactly what cases are being tested.</p>
-<p>When doing this type of string value comparison, it’s good practice to read
-the expected string from your resources, instead of hardcoding the string in
-your comparison code. This prevents your test from easily breaking whenever the
-string definitions are modified in the resource file.</p>
-<p>To perform the comparison, pass both the expected and actual strings as
-arguments to the
-{@link junit.framework.Assert#assertEquals(java.lang.String, java.lang.String) assertEquals()}
-method. If the values are not the same, the assertion will throw an
-{@link junit.framework.AssertionFailedError} exception.</p>
-<p>If you added a {@code testPreconditions()} method, put your test methods
-after the {@code testPreconditions()} definition in your Java class.</p>
-<p>For a complete test case example, take a look at
-{@code MyFirstTestActivityTest.java} in the sample app.</p>
-
-<h2 id="build_run">Build and Run Your Test</h2>
-<p>You can build and run your test easily from the Package Explorer in
-Eclipse.</p>
-<p>To build and run your test:</p>
-<ol>
-<li>Connect an Android device to your machine. On the device or emulator, open
-the <strong>Settings</strong> menu, select <strong>Developer options</strong>
-and make sure that USB debugging is enabled.</li>
-<li>In the Project Explorer, right-click on the test class that you created
-earlier and select <strong>Run As &gt; Android Junit Test</strong>.</li>
-<li>In the Android Device Chooser dialog, select the device that you just
-connected, then click <strong>OK</strong>.</li>
-<li>In the JUnit view, verify that the test passes with no errors or failures.</li>
-</ol>
-<p>For example, if the test case passes with no errors, the result should look
-like this:</p>
-<img src="{@docRoot}images/training/activity-testing_lesson2_MyFirstTestActivityTest_result.png" alt="" />
-<p class="img-caption">
-  <strong>Figure 1.</strong> Result of a test with no errors.
-</p>
-
-
-
diff --git a/docs/html/training/activity-testing/activity-functional-testing.jd b/docs/html/training/activity-testing/activity-functional-testing.jd
deleted file mode 100644
index 7c8ff1d..0000000
--- a/docs/html/training/activity-testing/activity-functional-testing.jd
+++ /dev/null
@@ -1,166 +0,0 @@
-page.title=Creating Functional Tests
-trainingnavtop=true
-@jd:body
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-   <li><a href="#test_methods">Add Test Method to Validate Functional Behavior</a>
-   <ol>
-      <li><a href="#activitymonitor">Set Up an ActivityMonitor</a></li>
-      <li><a href="#keyinput">Send Keyboard Input Using Instrumentation</a></li>
-   </ol>
-   </li>
-</ol>
-
-<h2>Try it out</h2>
-<div class="download-box">
- <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
-class="button">Download the demo</a>
- <p class="filename">AndroidTestingFun.zip</p>
-</div>
-
-</div>
-</div>
-<p>Functional testing involves verifying that individual application
-components work together as expected by the user. For example, you can create a
-functional test to verify that an {@link android.app.Activity} correctly
-launches a target {@link android.app.Activity} when the user performs a UI
-interaction.</p>
-
-<p>To create a functional test for your {@link android.app.Activity}, your test
-class should extend {@link android.test.ActivityInstrumentationTestCase2}.
-Unlike {@link android.test.ActivityUnitTestCase},
-tests in {@link android.test.ActivityInstrumentationTestCase2} can
-communicate with the Android system and send keyboard input and click events to
-the UI.</p>
-
-<p>For a complete test case example, take a look at
-{@code SenderActivityTest.java} in the sample app.</p>
-
-<h2 id="test_methods">Add Test Method to Validate Functional Behavior</h2>
-<p id="test_goals">Your functional testing goals might include:</p>
-<ul>
-<li>Verifying that a target {@link android.app.Activity} is started when a
-UI control is pushed in the sender {@link android.app.Activity}.</li>
-<li>Verifying that the target {@link android.app.Activity} displays the
-correct data based on the user's input in the sender
-{@link android.app.Activity}.</li>
-</ul>
-<p>You might implement your test method like this:</p>
-
-<pre>
-&#64;MediumTest
-public void testSendMessageToReceiverActivity() {
-    final Button sendToReceiverButton = (Button) 
-            mSenderActivity.findViewById(R.id.send_message_button);
-
-    final EditText senderMessageEditText = (EditText) 
-            mSenderActivity.findViewById(R.id.message_input_edit_text);
-
-    // Set up an ActivityMonitor
-    ...
-
-    // Send string input value
-    ...
-
-    // Validate that ReceiverActivity is started
-    ...
-
-    // Validate that ReceiverActivity has the correct data
-    ...
-
-    // Remove the ActivityMonitor
-    ...
-}
-</pre>
-<p>The test waits for an {@link android.app.Activity} that matches this monitor,
-otherwise returns null after a timeout elapses. If {@code ReceiverActivity} was
-started, the {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}
-that you set
-up earlier receives a hit. You can use the assertion methods to verify that
-the {@code ReceiverActivity} is indeed started, and that the hit count on the
-{@link android.app.Instrumentation.ActivityMonitor ActivityMonitor} incremented
-as expected.</p>
-
-<h2 id="activitymonitor">Set up an ActivityMonitor</h2>
-<p>To monitor a single {@link android.app.Activity} in your application, you
-can register an {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}.
-The {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor} is
-notified by the system whenever an {@link android.app.Activity} that matches your criteria is started.
-If a match is found, the monitor’s hit count is updated.</p>
-<p>Generally, to use an
-{@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}, you should:</p>
-<ol>
-<li>Retrieve the {@link android.app.Instrumentation} instance for your test
-case by using the
-{@link android.test.InstrumentationTestCase#getInstrumentation()} method.</li>
-<li>Add an instance of {@link android.app.Instrumentation.ActivityMonitor} to
-the current instrumentation using one of the {@link android.app.Instrumentation}
-{@code addMonitor()} methods. The match criteria can be specified as an
-{@link android.content.IntentFilter} or a class name string.</li>
-<li>Wait for the {@link android.app.Activity} to start.</li>
-<li>Verify that the monitor hits were incremented.</li>
-<li>Remove the monitor.</li>
-</ol>
-<p>For example:</p>
-<pre>
-// Set up an ActivityMonitor
-ActivityMonitor receiverActivityMonitor =
-        getInstrumentation().addMonitor(ReceiverActivity.class.getName(),
-        null, false);
-
-// Validate that ReceiverActivity is started
-TouchUtils.clickView(this, sendToReceiverButton);
-ReceiverActivity receiverActivity = (ReceiverActivity) 
-        receiverActivityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS);
-assertNotNull("ReceiverActivity is null", receiverActivity);
-assertEquals("Monitor for ReceiverActivity has not been called",
-        1, receiverActivityMonitor.getHits());
-assertEquals("Activity is of wrong type",
-        ReceiverActivity.class, receiverActivity.getClass());
-
-// Remove the ActivityMonitor
-getInstrumentation().removeMonitor(receiverActivityMonitor);
-</pre>
-
-<h2 id="keyinput">Send Keyboard Input Using Instrumentation</h2>
-<p>If your {@link android.app.Activity} has an {@link android.widget.EditText}
-field, you might want to test that users can enter values into the
-{@link android.widget.EditText} object.</p>
-<p>Generally, to send a string input value to an {@link android.widget.EditText}
-object in {@link android.test.ActivityInstrumentationTestCase2}, you should:</p>
-<ol>
-<li>Use the {@link android.app.Instrumentation#runOnMainSync(java.lang.Runnable) runOnMainSync()}
-method to run the {@link android.view.View#requestFocus()} call synchronously
-in a loop. This way, the UI thread is blocked until focus is received.</li>
-<li>Call {@link android.app.Instrumentation#waitForIdleSync()} method to wait
-for the main thread to become idle (that is, have no more events to process).</li>
-<li>Send a text string to the {@link android.widget.EditText} by calling
-{@link android.app.Instrumentation#sendStringSync(java.lang.String)
-sendStringSync()} and pass your input string as the parameter.</p>
-</ol>
-<p>For example:</p>
-<pre>
-// Send string input value
-getInstrumentation().runOnMainSync(new Runnable() {
-    &#64;Override
-    public void run() {
-        senderMessageEditText.requestFocus();
-    }
-});
-getInstrumentation().waitForIdleSync();
-getInstrumentation().sendStringSync("Hello Android!");
-getInstrumentation().waitForIdleSync();
-</pre>
-
-
-
-
-
-
-
-
diff --git a/docs/html/training/activity-testing/activity-ui-testing.jd b/docs/html/training/activity-testing/activity-ui-testing.jd
deleted file mode 100644
index 644f3ca..0000000
--- a/docs/html/training/activity-testing/activity-ui-testing.jd
+++ /dev/null
@@ -1,216 +0,0 @@
-page.title=Testing UI Components
-trainingnavtop=true
-
-@jd:body
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-  <li><a href="#testcase">Create a Test Case for UI Testing with Instrumentation</a>
-  <li><a href="#test_method">Add Test Methods to Verify UI Behavior</a>
-     <ol>
-     <li><a href="#verify_button_display">Verify Button Layout Parameters</a></li>
-     <li><a href="#verify_TextView">Verify TextView Layout Parameters</a></li>
-     <li><a href="#verify_button_behavior">Verify Button Behavior</a></li>
-     </ol>
-  </li>
-  <li><a href="#annotations">Apply Test Annotations</a></li>
-</ol>
-
-<h2>Try it out</h2>
-<div class="download-box">
- <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
-class="button">Download the demo</a>
- <p class="filename">AndroidTestingFun.zip</p>
-</div>
-
-</div>
-</div>
-
-<p>Typically, your {@link android.app.Activity} includes user interface
-components (such as buttons, editable text fields, checkboxes, and pickers) to
-allow users to interact with your Android application. This lesson shows how
-you can test an {@link android.app.Activity} with a simple push-button UI. You
-can use the same general steps to test other, more sophisticated types of UI
-components.</p>
-
-<p class="note"><strong>Note:</strong> The type of UI testing in this lesson is
-called <em>white-box testing</em> because you have the
-source code for the application that you want to test. The Android
-<a href="{@docRoot}tools/testing/testing_android.html#Instrumentation">Instrumentation</a>
-framework is suitable for creating white-box tests for UI components within an
-application. An alternative type of UI testing is <em>black-box testing</em>,
-where you may not have access to the application source. This type of testing
-is useful when you want to test how your app interacts with other apps or with
-the system. Black-box testing is not covered in this training. To learn more
-about how to perform black-box testing on your Android apps, see the
-<a href="{@docRoot}tools/testing/testing_ui.html">UI Testing guide</a>.
-<p>For a complete test case example, take a look at
-{@code ClickFunActivityTest.java} in the sample app.</p>
-
-<h2 id="testcase">Create a Test Case for UI Testing with Instrumentation</h2>
-<p>When testing an {@link android.app.Activity} that has a user interface (UI),
-the {@link android.app.Activity} under test runs in the UI thread. However, the
-test application itself runs in a separate thread in the same process as the
-application under test. This means that your test app can reference objects
-from the UI thread, but if it attempts to change properties on those objects or
-send events to the UI thread, you will usually get a {@code WrongThreadException}
-error.</p>
-<p>To safely inject {@link android.content.Intent} objects into your
-{@link android.app.Activity} or run test methods on the UI thread, you can
-extend your test class to use {@link android.test.ActivityInstrumentationTestCase2}.
-To learn more about how to run test methods on the UI thread, see
-<a href="{@docRoot}tools/testing/activity_testing.html#RunOnUIThread">Testing
-on the UI thread</a>.</p>
-
-<h3 id="fixture">Set Up Your Test Fixture</h3>
-<p>When setting up the test fixture for UI testing, you should specify the
-<a href="{@docRoot}guide/topics/ui/ui-events.html#TouchMode">touch mode</a>
-in your {@link junit.framework.TestCase#setUp()} method. Setting the touch mode
-to {@code true} prevents the UI control from taking focus when you click it
-programmatically in the test method later (for example, a button UI will just
-fire its on-click listener). Make sure that you call
-{@link android.test.ActivityInstrumentationTestCase2#setActivityInitialTouchMode(boolean) setActivityInitialTouchMode()}
-before calling {@link android.test.ActivityInstrumentationTestCase2#getActivity()}.
-</p>
-<p>For example:</ap>
-<pre>
-public class ClickFunActivityTest
-        extends ActivityInstrumentationTestCase2<ClickFunActivity> {
-    ...
-    &#64;Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        setActivityInitialTouchMode(true);
-
-        mClickFunActivity = getActivity();
-        mClickMeButton = (Button) 
-                mClickFunActivity
-                .findViewById(R.id.launch_next_activity_button);
-        mInfoTextView = (TextView) 
-                mClickFunActivity.findViewById(R.id.info_text_view);
-    }
-}
-</pre>
-
-<h2 id="test_methods">Add Test Methods to Validate UI Behavior</h2>
-<p id="test_goals">Your UI testing goals might include:</p>
-<ul>
-<li>Verifying that a button is displayed with the correct layout when the
-{@link android.app.Activity} is launched.</li>
-<li>Verifying that a {@link android.widget.TextView} is initially hidden.</li>
-<li>Verifying that a {@link android.widget.TextView} displays the expected string
-when a button is pushed.</li>
-</ul>
-<p>The following section demonstrates how you can implement test methods
-to perform these verifications.</p>
-
-<h3 id="verify_button_display">Verify Button Layout Parameters</h3>
-<p>You might add a test method like this to verify that a button is displayed
-correctly in your {@link android.app.Activity}:</p>
-<pre>
-&#64;MediumTest
-public void testClickMeButton_layout() {
-    final View decorView = mClickFunActivity.getWindow().getDecorView();
-
-    ViewAsserts.assertOnScreen(decorView, mClickMeButton);
-
-    final ViewGroup.LayoutParams layoutParams =
-            mClickMeButton.getLayoutParams();
-    assertNotNull(layoutParams);
-    assertEquals(layoutParams.width, WindowManager.LayoutParams.MATCH_PARENT);
-    assertEquals(layoutParams.height, WindowManager.LayoutParams.WRAP_CONTENT);
-}
-</pre>
-
-<p>In the {@link android.test.ViewAsserts#assertOnScreen(android.view.View,android.view.View) assertOnScreen()}
-method call, you should pass in the root view and the view that you are
-expecting to be present on the screen. If the expected view is not found in the
-root view, the assertion method throws an {@link junit.framework.AssertionFailedError}
-exception, otherwise the test passes.</p>
-<p>You can also verify that the layout of a {@link android.widget.Button} is
-correct by getting a reference to its {@link android.view.ViewGroup.LayoutParams}
-object, then call assertion methods to verify that the
-{@link android.widget.Button} object's width and height attributes match the
-expected values.</p>
-<p>The {@code &#64;MediumTest} annotation specifies how the test is categorized,
-relative to its absolute execution time. To learn more about using test size
-annotations, see <a href="#annotations">Apply Test Annotations</a>.</p>
-
-<h3 id="verify_TextView">Verify TextView Layout Parameters</h3>
-<p>You might add a test method like this to verify that a
-{@link android.widget.TextView} initially appears hidden in
-your {@link android.app.Activity}:</p>
-<pre>
-&#64;MediumTest
-public void testInfoTextView_layout() {
-    final View decorView = mClickFunActivity.getWindow().getDecorView();
-    ViewAsserts.assertOnScreen(decorView, mInfoTextView);
-    assertTrue(View.GONE == mInfoTextView.getVisibility());
-}
-</pre>
-<p>You can call {@link android.view.Window#getDecorView()} to get a reference
-to the decor view for the {@link android.app.Activity}. The decor view is the
-top-level ViewGroup ({@link android.widget.FrameLayout}) view in the layout
-hierarchy.</p>
-
-<h3 id="verify_button_behavior">Verify Button Behavior</h3>
-<p>You can use a test method like this to verify that a
-{@link android.widget.TextView} becomes visible when a
-{@link android.widget.Button} is pushed:</p>
-
-<pre>
-&#64;MediumTest
-public void testClickMeButton_clickButtonAndExpectInfoText() {
-    String expectedInfoText = mClickFunActivity.getString(R.string.info_text);
-    TouchUtils.clickView(this, mClickMeButton);
-    assertTrue(View.VISIBLE == mInfoTextView.getVisibility());
-    assertEquals(expectedInfoText, mInfoTextView.getText());
-}
-</pre>
-
-<p>To programmatically click a {@link android.widget.Button} in your
-test, call {@link android.test.TouchUtils#clickView(android.test.InstrumentationTestCase,android.view.View) clickView()}.
-You must pass in a reference to the test case that is being run and a reference
-to the {@link android.widget.Button} to manipulate.</p>
-
-<p class="note"><strong>Note: </strong>The {@link android.test.TouchUtils}
-helper class provides convenience methods for simulating touch interactions
-with your application. You can use these methods to simulate clicking, tapping,
-and dragging of Views or the application screen.</p>
-<p class="caution"><strong>Caution: </strong>The {@link android.test.TouchUtils}
-methods are designed to send events to the UI thread safely from the test thread.
-You should not run {@link android.test.TouchUtils} directly in the UI thread or
-any test method annotated with {@code &#64;UIThread}. Doing so might
-raise the {@code WrongThreadException}.</p>
-
-<h2 id="annotations">Apply Test Annotations</h2>
-<p>The following annotations can be applied to indicate the size of a test
-method:</p>
-<dl>
-<dt>{@link
-android.test.suitebuilder.annotation.SmallTest &#64;SmallTest}</dt>
-<dd>Marks a test that should run as part of the small tests.</dd>
-<dt>{@link
-android.test.suitebuilder.annotation.MediumTest &#64;MediumTest}</dt>
-<dd>Marks a test that should run as part of the medium tests.</dd>
-<dt>{@link android.test.suitebuilder.annotation.LargeTest &#64;LargeTest}</dt>
-<dd>Marks a test that should run as part of the large tests.</dd>
-</dl>
-<p>Typically, a short running test that take only a few milliseconds should be
-marked as a {@code &#64;SmallTest}. Longer running tests (100 milliseconds or
-more) are usually marked as {@code &#64;MediumTest}s or {@code &#64;LargeTest}s,
-depending on whether the test accesses resources on the local system only or
-remote resources over a network. For guidance on using test size annotations,
-see this <a href="https://plus.sandbox.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8">Android Tools Protip</a>.</p>
-<p>You can mark up your test methods with other test annotations to control
-how the tests are organized and run. For more information on other annotations,
-see the {@link java.lang.annotation.Annotation} class reference.</p>
-
-
-
-
diff --git a/docs/html/training/activity-testing/activity-unit-testing.jd b/docs/html/training/activity-testing/activity-unit-testing.jd
deleted file mode 100644
index 74dcda9..0000000
--- a/docs/html/training/activity-testing/activity-unit-testing.jd
+++ /dev/null
@@ -1,134 +0,0 @@
-page.title=Creating Unit Tests
-trainingnavtop=true
-@jd:body
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-  <li><a href="#testcase">Create a Test Case for Activity Unit Testing</a>
-  <li><a href="#test_method">Validate Launch of Another Activity</a>
-</ol>
-
-<h2>Try it out</h2>
-<div class="download-box">
- <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
-class="button">Download the demo</a>
- <p class="filename">AndroidTestingFun.zip</p>
-</div>
-
-</div>
-</div>
-
-<p>An {@link android.app.Activity} unit test is an excellent way to quickly
-verify the state of an {@link android.app.Activity} and its interactions with
-other components in isolation (that is, disconnected from the rest of the
-system). A unit test generally tests the smallest possible unit of code
-(which could be a method, class, or component), without dependencies on system
-or network resources. For example, you can write a unit test to check
-that an {@link android.app.Activity} has the correct layout or that it
-triggers an {@link android.content.Intent} object correctly.</p>
-<p>Unit tests are generally not suitable for testing complex UI interaction
-events with the system. Instead, you should use
-the {@link android.test.ActivityInstrumentationTestCase2} class, as described
-in <a href="activity-ui-testing.html">Testing UI Components</a>.</p>
-<p>This lesson shows how you can write a unit test to verify that an
-{@link android.content.Intent} is triggered to launch another
-{@link android.app.Activity}.
-Since the test runs in an isolated environment, the
-{@link android.content.Intent}
-is not actually sent to the Android system, but you can inspect that the
-{@link android.content.Intent} object's payload data is accurate.</p>
-<p>For a complete test case example, take a look at
-{@code LaunchActivityTest.java} in the sample app.</p>
-
-<p class="note"><strong>Note: </strong>To test against system or external
-dependencies, you can use mock objects from a mocking
-framework and inject them into your unit tests. To learn more about the mocking
-framework provided by Android, see
-<a href="{@docRoot}tools/testing/testing_android.html#MockObjectClasses}">Mock
-Object Classes</a>.</p>
-
-<h2 id="testcase">Create a Test Case for Activity Unit Testing</h2>
-<p>The {@link android.test.ActivityUnitTestCase} class provides support for
-isolated testing of a single {@link android.app.Activity}. To create a unit
-test for your {@link android.app.Activity}, your test class should extend
-{@link android.test.ActivityUnitTestCase}.</p>
-
-<p>The {@link android.app.Activity} in an {@link android.test.ActivityUnitTestCase}
-is not automatically started by Android Instrumentation. To start the
-{@link android.app.Activity} in isolation, you need to explicitly call the
-{@link android.test.ActivityUnitTestCase#startActivity(android.content.Intent, android.os.Bundle, java.lang.Object) startActivity()}
-method, and pass in the {@link android.content.Intent} to
-launch your target {@link android.app.Activity}.</p>
-
-<p>For example:</p>
-<pre>
-public class LaunchActivityTest
-        extends ActivityUnitTestCase&lt;LaunchActivity&gt; {
-    ...
-
-    &#64;Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mLaunchIntent = new Intent(getInstrumentation()
-                .getTargetContext(), LaunchActivity.class);
-        startActivity(mLaunchIntent, null, null);
-        final Button launchNextButton =
-                (Button) getActivity()
-                .findViewById(R.id.launch_next_activity_button);
-    }
-}
-</pre>
-
-<h2 id="test_method">Validate Launch of Another Activity</h2>
-<p id="test_goals">Your unit testing goals might include:</p>
-<ul>
-<li>Verifying that {@code LaunchActivity} fires an
-{@link android.content.Intent} when a button is pushed clicked.</li>
-<li>Verifying that the launched {@link android.content.Intent} contains the
-correct payload data.</li>
-</ul>
-
-<p>To verify if an {@link android.content.Intent} was triggered
-following the {@link android.widget.Button} click, you can use the
-{@link android.test.ActivityUnitTestCase#getStartedActivityIntent()} method.
-By using assertion methods, you can verify that the returned
-{@link android.content.Intent} is not null, and that it contains the expected
-string value to launch the next {@link android.app.Activity}. If both assertions
-evaluate to {@code true}, you've successfully verified that the
-{@link android.content.Intent} was correctly sent by your
-{@link android.app.Activity}.</p>
-
-<p>You might implement your test method like this:</p>
-<pre>
-&#64;MediumTest
-public void testNextActivityWasLaunchedWithIntent() {
-    startActivity(mLaunchIntent, null, null);
-    final Button launchNextButton =
-            (Button) getActivity()
-            .findViewById(R.id.launch_next_activity_button);
-    launchNextButton.performClick();
-
-    final Intent launchIntent = getStartedActivityIntent();
-    assertNotNull("Intent was null", launchIntent);
-    assertTrue(isFinishCalled());
-
-    final String payload =
-            launchIntent.getStringExtra(NextActivity.EXTRAS_PAYLOAD_KEY);
-    assertEquals("Payload is empty", LaunchActivity.STRING_PAYLOAD, payload);
-}
-</pre>
-<p>Because {@code LaunchActivity} runs in isolation, you cannot use the
-{@link android.test.TouchUtils} library to manipulate UI controls. To directly
-click a {@link android.widget.Button}, you can call the
-{@link android.view.View#performClick()} method instead.</p>
-
-
-
-
-
-
-
diff --git a/docs/html/training/activity-testing/index.jd b/docs/html/training/activity-testing/index.jd
deleted file mode 100644
index efa67a2..0000000
--- a/docs/html/training/activity-testing/index.jd
+++ /dev/null
@@ -1,68 +0,0 @@
-page.title=Testing Your Android Activity
-page.tags=testing
-
-trainingnavtop=true
-startpage=true
-
-@jd:body
-
-<div id="tb-wrapper">
-<div id="tb">
-
-<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
-<h2>Dependencies and prerequisites</h2>
-<ul>
-  <li>Android 2.2 (API Level 8) or higher.</li>
-</ul>
-
-<h2>You Should Also Read</h2>
-<ul>
-<li><a href="{@docRoot}tools/testing/index.html">Testing
-(Developer's Guide)</a></li>
-</ul>
-
-</div>
-</div>
-
-<p>You should be writing and running tests as part of your Android application
-development cycle. Well-written tests can help you to catch bugs early in
-development and give you confidence in your code.</p>
-
-<p>A <em>test case</em> defines a set of objects and methods to run multiple
-tests independently from each other. Test cases can be organized into
-<em>test suites</em> and run programmatically, in a repeatable manner, with
-a <em>test runner</em> provided by a testing framework.</p>
-
-<p>The lessons in this class teaches you how to use the Android's custom
-testing framework that is based on the popular JUnit framework. You can
-write test cases to verify specific behavior in your application, and check for
-consistency across different Android devices. Your test cases also serve as a
-form of internal code documentation by describing the expected behavior of
-app components.</p>
-
-<h2>Lessons</h2>
-
-<!-- Create a list of the lessons in this class along with a short description
-of each lesson. These should be short and to the point. It should be clear from
-reading the summary whether someone will want to jump to a lesson or not.-->
-
-<dl>
-  <dt><b><a href="preparing-activity-testing.html">Setting Up Your Test
-Environment</a></b></dt>
-    <dd>Learn how to create your test project.</dd>
-  <dt><b><a href="activity-basic-testing.html">Creating and Running a Test 
-Case</a></b></dt>
-    <dd>Learn how to write test cases to verify the
-expected properties of your {@link android.app.Activity}, and run the test
-cases with the {@code Instrumentation} test runner provided by the Android
-framework.</dd>
-  <dt><b><a href="activity-ui-testing.html">Testing UI Components</a></b></dt>
-    <dd>Learn how to test the behavior of specific UI
-components in your {@link android.app.Activity}.</dd>
-  <dt><b><a href="activity-unit-testing.html">Creating Unit Tests</a></b></dt>
-    <dd>Learn how to perform unit testing to
-verify the behavior of an Activity in isolation.</dd>
-  <dt><b><a href="activity-functional-testing.html">Creating Functional Tests</a></b></dt>
-    <dd>Learn how to perform functional testing to
-verify the interaction of multiple Activities.</dd>
-
diff --git a/docs/html/training/activity-testing/preparing-activity-testing.jd b/docs/html/training/activity-testing/preparing-activity-testing.jd
deleted file mode 100644
index c43c9ed..0000000
--- a/docs/html/training/activity-testing/preparing-activity-testing.jd
+++ /dev/null
@@ -1,95 +0,0 @@
-page.title=Setting Up Your Test Environment
-trainingnavtop=true
-
-@jd:body
-
-<!-- This is the training bar -->
-<div id="tb-wrapper">
-<div id="tb">
-
-<h2>This lesson teaches you to</h2>
-<ol>
-  <li><a href="#eclipse">Set Up Eclipse for Testing</a></li>
-  <li><a href="#cmdline">Set Up the Command Line Interface for Testing</a></li>
-</ol>
-
-<h2>You should also read</h2>
-<ul>
-<li><a href="{@docRoot}sdk/index.html">Getting the SDK Bundle</a></li>
-<li><a href="{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse
-with ADT</a></li>
-<li><a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other
-IDEs</a></li>
-</ul>
-
-<h2>Try it out</h2>
-<div class="download-box">
- <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
-class="button">Download the demo</a>
- <p class="filename">AndroidTestingFun.zip</p>
-</div>
-
-</div>
-</div>
-
-<p>Before you start writing and running your tests, you should set up your test
-development environment. This lesson teaches you how to set up the Eclipse
-IDE to build and run tests, and how to
-build and run tests with the Gradle framework by using the command line
-interface.</p>
-
-<p class="note"><strong>Note:</strong> To help you get started, the lessons are
-based on Eclipse with the ADT plugin. However, for your own test development, you
-are free to use the IDE of your choice or the command-line.</p>
-
-<h2 id="eclipse">Set Up Eclipse for Testing</h2>
-<p>Eclipse with the Android Developer Tools (ADT) plugin provides an integrated
-development environment for you to create, build, and run Android application
-test cases from a graphical user interface (GUI). A convenient feature that
-Eclipse provides is the ability to auto-generate a new test project that
-corresponds with your Android application project</a>.
-
-<p>To set up your test environment in Eclipse:</p>
-
-<ol>
-<li><a href="{@docRoot}sdk/installing/bundle.html">Download and install the
-Eclipse ADT plugin</a>, if you haven’t installed it yet.</li>
-<li>Import or create the Android application project that you want to test
-against.</li>
-<li>Generate a test project that corresponds to the application project under
-test. To generate a test project for the app project that you imported:</p>
-   <ol type="a">
-   <li>In the Package Explorer, right-click on your app project, then
-select <strong>Android Tools</strong> &gt; <strong>New Test Project</strong>.</li>
-   <li>In the New Android Test Project wizard, set the property
-values for your test project then click <strong>Finish</strong>.</li>
-   </ol>
-</li>
-</ol>
-<p>You should now be able to create, build, and run test
-cases from your Eclipse environment. To learn how to perform these tasks in
-Eclipse, proceed to <a href="activity-basic-testing.html">Creating and Running 
-a Test Case</a>.</p>
-
-<h2 id="cmdline">Set Up the Command Line Interface for Testing</h2>
-<p>If you are using Gradle version 1.6 or higher as your build environment, you
-can build and run your Android application tests from the command line by using
-the Gradle Wrapper. Make sure that in your {@code gradle.build} file, the
-<a href={@docRoot}guide/topics/manifest/uses-sdk-element.html#min>minSdkVersion</a>
-attribute in the {@code defaultConfig} section is set to 8 or higher. You can
-refer to the sample {@code gradle.build} file that is
-included in the download bundle for this training class.</p>
-<p>To run your tests with the Gradle Wrapper:</p>
-<ol>
-   <li>Connect a physical Android device to your machine or launch the Android
-Emulator.</li>
-   <li>Run the following command from your project directory:
-      <pre>./gradlew build connectedCheck</pre>
-   </li>
-</ol>
-<p>To learn more about using Gradle for Android testing, see the
-<a href="//tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing">Gradle Plugin User Guide</a>.</p>
-<p>To learn more about using command line tools other than Gradle for test
-development, see
-<a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other IDEs</a>.</p>
-
diff --git a/docs/html/training/animation/cardflip.jd b/docs/html/training/animation/cardflip.jd
index 48fbbd8..721a9a3 100644
--- a/docs/html/training/animation/cardflip.jd
+++ b/docs/html/training/animation/cardflip.jd
@@ -2,98 +2,105 @@
 trainingnavtop=true
 
 @jd:body
-    <div id="tb-wrapper">
-      <div id="tb">
-        <h2>
-          This lesson teaches you to
-        </h2>
-        <ol>
-          <li>
-            <a href="#animators">Create the Animators</a>
-          </li>
-          <li>
-            <a href="#views">Create the Views</a>
-          </li>
-          <li>
-            <a href="#fragment">Create the Fragment</a>
-          </li>
-          <li>
-            <a href="#animate">Animate the Card Flip</a>
-          </li>
-        </ol>
-        <h2>
-          Try it out
-        </h2>
-        <div class="download-box">
-          <a href="{@docRoot}shareables/training/Animations.zip" class=
-          "button">Download the sample app</a>
-          <p class="filename">
-            Animations.zip
-          </p>
-        </div>
-      </div>
-    </div>
-    <p> This lesson shows you how to do a card flip
-      animation with custom fragment animations.
-      Card flips animate between views of content by showing an animation that emulates
-      a card flipping over. 
-    </p>
-    <p>Here's what a card flip looks like:
-    </p>
-
-    <div class="framed-galaxynexus-land-span-8">
-      <video class="play-on-hover" autoplay>
-        <source src="anim_card_flip.mp4" type="video/mp4">
-        <source src="anim_card_flip.webm" type="video/webm">
-        <source src="anim_card_flip.ogv" type="video/ogg">
-      </video>
-    </div>
-    <div class="figure-caption">
-      Card flip animation
-      <div class="video-instructions">&nbsp;</div>
-    </div>
-
-    <p>
-      If you want to jump ahead and see a full working example,
-      <a href="{@docRoot}shareables/training/Animations.zip">download</a> and
-      run the sample app and select the Card Flip example. See the following
-      files for the code implementation:
-    </p>
-    <ul>
-      <li>
-        <code>src/CardFlipActivity.java</code>
-      </li>
-      <li>
-        <code>animator/card_flip_right_in.xml</code>
-      </li>
-      <li>
-        <code>animator/card_flip_right_out.xml</code>
-      </li>
-      <li>
-        <code>animator/card_flip_left_in.xml</code>
-      </li>
-      <li>
-        <code>animator/card_flip_left_out.xml</code>
-      </li>
-      <li>
-        <code>layout/fragment_card_back.xml</code>
-      </li>
-      <li>
-        <code>layout/fragment_card_front.xml</code>
-      </li>
-    </ul>
-
-    <h2 id="animate">
-      Create the Animators
+<div id="tb-wrapper">
+  <div id="tb">
+    <h2>
+      This lesson teaches you to
     </h2>
-    <p>
-      Create the animations for the card flips. You'll need two animators for when the front
-      of the card animates out and to the left and in and from the left. You'll also need two animators
-      for when the back of the card animates in and from the right and out and to the right.
-    </p>
-    <h4>
-      card_flip_left_in.xml
-    </h4>
+    <ol>
+      <li>
+        <a href="#animators">Create the Animators</a>
+      </li>
+      <li>
+        <a href="#views">Create the Views</a>
+      </li>
+      <li>
+        <a href="#fragment">Create the Fragment</a>
+      </li>
+      <li>
+        <a href="#animate">Animate the Card Flip</a>
+      </li>
+    </ol>
+    <h2>
+      Try it out
+    </h2>
+    <div class="download-box">
+      <a href="{@docRoot}shareables/training/Animations.zip" class=
+      "button">Download the sample app</a>
+      <p class="filename">
+        Animations.zip
+      </p>
+    </div>
+  </div>
+</div>
+
+<p> This lesson shows you how to do a card flip
+  animation with custom fragment animations.
+  Card flips animate between views of content by showing an animation that emulates
+  a card flipping over.
+</p>
+
+<p>Here's what a card flip looks like:
+</p>
+
+<div class="framed-galaxynexus-land-span-8">
+  <video class="play-on-hover" autoplay>
+    <source src="anim_card_flip.mp4" type="video/mp4">
+    <source src="anim_card_flip.webm" type="video/webm">
+    <source src="anim_card_flip.ogv" type="video/ogg">
+  </video>
+</div>
+<div class="figure-caption">
+  Card flip animation
+  <div class="video-instructions">&nbsp;</div>
+</div>
+
+<p>
+  If you want to jump ahead and see a full working example,
+  <a href="{@docRoot}shareables/training/Animations.zip">download</a> and
+  run the sample app and select the Card Flip example. See the following
+  files for the code implementation:
+</p>
+
+<ul>
+  <li>
+    <code>src/CardFlipActivity.java</code>
+  </li>
+  <li>
+    <code>animator/card_flip_right_in.xml</code>
+  </li>
+  <li>
+    <code>animator/card_flip_right_out.xml</code>
+  </li>
+  <li>
+    <code>animator/card_flip_left_in.xml</code>
+  </li>
+  <li>
+    <code>animator/card_flip_left_out.xml</code>
+  </li>
+  <li>
+    <code>layout/fragment_card_back.xml</code>
+  </li>
+  <li>
+    <code>layout/fragment_card_front.xml</code>
+  </li>
+</ul>
+
+<h2 id="animate">
+  Create the Animators
+</h2>
+
+<p>
+  Create the animations for the card flips. You'll need two animators for when the front
+  of the card animates out and to the left and in and from the left. You'll also need two
+  animators for when the back of the card animates in and from the right and out and to the
+  right.
+</p>
+
+<h4 id="left-in">
+  card_flip_left_in.xml
+</h4>
+
 <pre>
 &lt;set xmlns:android="http://schemas.android.com/apk/res/android"&gt;
     &lt;!-- Before rotating, immediately set the alpha to 0. --&gt;
@@ -120,10 +127,12 @@
         android:duration="1" /&gt;
 &lt;/set&gt;
 </pre>
-    <h4>
-      card_flip_left_out.xml
-    </h4>
-    <pre>
+
+<h4 id="left-out">
+  card_flip_left_out.xml
+</h4>
+
+<pre>
 &lt;set xmlns:android="http://schemas.android.com/apk/res/android"&gt;
     &lt;!-- Rotate. --&gt;
     &lt;objectAnimator
@@ -141,11 +150,13 @@
         android:startOffset="@integer/card_flip_time_half"
         android:duration="1" /&gt;
 &lt;/set&gt;
-    </pre>
-    <h4>
-      card_flip_right_in.xml
-    </h4>
-    <pre>
+</pre>
+
+<h4 id="right-in">
+  card_flip_right_in.xml
+</h4>
+
+<pre>
 &lt;set xmlns:android="http://schemas.android.com/apk/res/android"&gt;
     &lt;!-- Before rotating, immediately set the alpha to 0. --&gt;
     &lt;objectAnimator
@@ -169,13 +180,14 @@
         android:propertyName="alpha"
         android:startOffset="@integer/card_flip_time_half"
         android:duration="1" /&gt;
-</set>
-
+&lt;/set&gt;
 </pre>
-    <h4>
-      card_flip_right_out.xml
-    </h4>
-    <pre>
+
+<h4  id="right-out">
+  card_flip_right_out.xml
+</h4>
+
+<pre>
 &lt;set xmlns:android="http://schemas.android.com/apk/res/android"&gt;
     &lt;!-- Rotate. --&gt;
     &lt;objectAnimator
@@ -194,17 +206,18 @@
         android:duration="1" /&gt;
 &lt;/set&gt;
 </pre>
-    <h2 id="views">
-      Create the Views
-    </h2>
-    <p>
-      Each side of the "card" is a separate layout that can contain any content you want,
-      such as two screens of text, two images, or any combination of views to flip between. You'll then
-      use the two layouts in the fragments that you'll later animate. The following layouts
-      create one side of a card that shows text:
-    </p>
 
-    <pre>
+<h2 id="views">
+  Create the Views
+</h2>
+<p>
+  Each side of the "card" is a separate layout that can contain any content you want,
+  such as two screens of text, two images, or any combination of views to flip between. You'll then
+  use the two layouts in the fragments that you'll later animate. The following layouts
+  create one side of a card that shows text:
+</p>
+
+<pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -232,9 +245,11 @@
 
 &lt;/LinearLayout&gt;
 </pre>
+
 <p>
 and the other side of the card that displays an {@link android.widget.ImageView}:
 </p>
+
 <pre>
 &lt;ImageView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
@@ -243,17 +258,20 @@
     android:scaleType="centerCrop"
     android:contentDescription="@string/description_image_1" /&gt;
 </pre>
-    <h2 id="fragment">
-      Create the Fragment
-    </h2>
-    <p>
-      Create fragment classes for the front and back of the card. These classes return the layouts
-      that you created previously in the {@link android.app.Fragment#onCreateView onCreateView()} method
-      of each fragment. You can then create instances of this fragment in the parent activity
-      where you want to show the card. The following example shows nested fragment classes inside
-      of the parent activity that uses them:
-    </p>
-    <pre>
+
+<h2 id="fragment">
+  Create the Fragment
+</h2>
+
+<p>
+  Create fragment classes for the front and back of the card. These classes return the layouts
+  that you created previously in the {@link android.app.Fragment#onCreateView onCreateView()} method
+  of each fragment. You can then create instances of this fragment in the parent activity
+  where you want to show the card. The following example shows nested fragment classes inside
+  of the parent activity that uses them:
+</p>
+
+<pre>
 public class CardFlipActivity extends Activity {
     ...
     /**
@@ -279,28 +297,27 @@
     }
 }
 </pre>
-    <h2 id="animate">
-      Animate the Card Flip
-    </h2>
 
-    <p> Now, you'll need to display the fragments inside of a parent activity.
-    To do this, first create the layout for your activity. The following example creates a
-    {@link android.widget.FrameLayout} that you
-    can add fragments to at runtime:</p>
+<h2 id="animate">
+  Animate the Card Flip
+</h2>
 
-    <pre>
+<p> Now, you'll need to display the fragments inside of a parent activity.
+To do this, first create the layout for your activity. The following example creates a
+{@link android.widget.FrameLayout} that you
+can add fragments to at runtime:</p>
+
+<pre>
 &lt;FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/container"
     android:layout_width="match_parent"
     android:layout_height="match_parent" /&gt;
 </pre>
 
-    <p>In the activity code, set the content view to be the layout that you just created. It's also
-      good idea to show a default fragment when the activity is created, so the following example
-      activity shows you how to display the front of the card by default:
-    </p>
-
-
+<p>In the activity code, set the content view to be the layout that you just created. It's also
+  good idea to show a default fragment when the activity is created, so the following example
+  activity shows you how to display the front of the card by default:
+</p>
 
 <pre>
 public class CardFlipActivity extends Activity {
@@ -320,22 +337,25 @@
     ...
 }
 </pre>
-    <p>
-      Now that you have the front of the card showing, you can show the back of the card
-      with the flip animation at an appropriate time. Create a method to show the other
-      side of the card that does the following things:
-    </p>
-    <ul>
-      <li>Sets the custom animations that you created earlier for the fragment transitions.
-      </li>
-      <li>Replaces the currently displayed fragment with a new fragment and animates this event
-      with the custom animations that you created.
-      </li>
-      <li>Adds the previously displayed fragment to the fragment back stack
-      so when the user presses the <em>Back</em> button, the card flips back over.
-      </li>
-    </ul>
-    <pre>
+
+<p>
+  Now that you have the front of the card showing, you can show the back of the card
+  with the flip animation at an appropriate time. Create a method to show the other
+  side of the card that does the following things:
+</p>
+
+<ul>
+  <li>Sets the custom animations that you created earlier for the fragment transitions.
+  </li>
+  <li>Replaces the currently displayed fragment with a new fragment and animates this event
+  with the custom animations that you created.
+  </li>
+  <li>Adds the previously displayed fragment to the fragment back stack
+  so when the user presses the <em>Back</em> button, the card flips back over.
+  </li>
+</ul>
+
+<pre>
 private void flipCard() {
     if (mShowingBack) {
         getFragmentManager().popBackStack();
@@ -346,27 +366,30 @@
 
     mShowingBack = true;
 
-    // Create and commit a new fragment transaction that adds the fragment for the back of
-    // the card, uses custom animations, and is part of the fragment manager's back stack.
+    // Create and commit a new fragment transaction that adds the fragment for
+    // the back of the card, uses custom animations, and is part of the fragment
+    // manager's back stack.
 
     getFragmentManager()
             .beginTransaction()
 
-            // Replace the default fragment animations with animator resources representing
-            // rotations when switching to the back of the card, as well as animator
-            // resources representing rotations when flipping back to the front (e.g. when
-            // the system Back button is pressed).
+            // Replace the default fragment animations with animator resources
+            // representing rotations when switching to the back of the card, as
+            // well as animator resources representing rotations when flipping
+            // back to the front (e.g. when the system Back button is pressed).
             .setCustomAnimations(
-                    R.animator.card_flip_right_in, R.animator.card_flip_right_out,
-                    R.animator.card_flip_left_in, R.animator.card_flip_left_out)
+                    R.animator.card_flip_right_in,
+                    R.animator.card_flip_right_out,
+                    R.animator.card_flip_left_in,
+                    R.animator.card_flip_left_out)
 
-            // Replace any fragments currently in the container view with a fragment
-            // representing the next page (indicated by the just-incremented currentPage
-            // variable).
+            // Replace any fragments currently in the container view with a
+            // fragment representing the next page (indicated by the
+            // just-incremented currentPage variable).
             .replace(R.id.container, new CardBackFragment())
 
-            // Add this transaction to the back stack, allowing users to press Back
-            // to get to the front of the card.
+            // Add this transaction to the back stack, allowing users to press
+            // Back to get to the front of the card.
             .addToBackStack(null)
 
             // Commit the transaction.
diff --git a/docs/html/training/app-indexing/deep-linking.jd b/docs/html/training/app-indexing/deep-linking.jd
index 2679937..4ee7424 100644
--- a/docs/html/training/app-indexing/deep-linking.jd
+++ b/docs/html/training/app-indexing/deep-linking.jd
@@ -66,10 +66,10 @@
               android:host="www.example.com"
               android:pathPrefix="/gizmos" /&gt;
         &lt;!-- note that the leading "/" is required for pathPrefix--&gt;
-        &lt;!-- Accepts URIs that begin with "example://gizmos”
+        &lt;!-- Accepts URIs that begin with "example://gizmos” --&gt;
         &lt;data android:scheme="example"
               android:host="gizmos" /&gt;
-        --&gt;
+        
     &lt;/intent-filter&gt;
 &lt;/activity&gt;
 </pre>
diff --git a/docs/html/training/articles/keystore.jd b/docs/html/training/articles/keystore.jd
index 5323e20..a1563a7 100644
--- a/docs/html/training/articles/keystore.jd
+++ b/docs/html/training/articles/keystore.jd
@@ -1,8 +1,8 @@
 page.title=Android Keystore System
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
     <h2>In this document</h2>
     <ol>
       <li><a href="#SecurityFeatures">Security Features</a></li>
diff --git a/docs/html/training/articles/user-data-ids.jd b/docs/html/training/articles/user-data-ids.jd
new file mode 100644
index 0000000..5a4648b
--- /dev/null
+++ b/docs/html/training/articles/user-data-ids.jd
@@ -0,0 +1,741 @@
+page.title=Best Practices for Unique Identifiers
+page.metaDescription=How to manage unique identifiers the right way for users.
+page.tags=ids, user data
+meta.tags="ids", "user data"
+page.image=images/cards/card-user-ids_2x.png
+
+page.article=true
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+    <h2>In this document</h2>
+    <ol>
+      <li><a href="#tenets_of_working_with_android_identifiers">Tenets of Working with
+      Android Identifiers</a></li>
+      <li><a href="#version_specific_details_identifiers_in_m">Identifiers in Android 6.0+</a></li>
+      <li><a href="#working_with_advertising_ids">Working with Advertising IDs</a></li>
+      <li><a href="#working_with_instance_ids_&_guids">Working with Instance IDs and GUIDs</a></li>
+      <li><a href="#understand_identifier_characteristics">Understanding Identifier
+      Characteristics</a>
+      <ol>
+        <li><a href="#scope">Scope</a></li>
+        <li><a href="#resettability_&_persistence">Resettability &amp; persistence</a></li>
+        <li><a href="#uniqueness">Uniqueness</h3>
+        <li><a href="#integrity_protection_and_non-repudiability">Integrity protection and
+        non-repudiability</a></li>
+      </ol>
+      </li>
+      <li><a href="#use_appropriate_identifiers">Common Use Cases and the Identifier to Use</a>
+      <ol>
+        <li><a href="#a_track_signed-out_user_preferences">Tracking signed-out user
+        preferences</a></li>
+        <li><a href="#b_track_signed-out_user_behavior">Tracking signed-out user behavior</a></li>
+        <li><a href="#c_generate_signed-out_anonymous_user_analytics">Generating
+        signed-out/anonymous user analytics</a></li>
+        <li><a href="#d_track_signed-out_user_conversion">Tracking signed-out user
+        conversion</a></li>
+        <li><a href="#e_handle_multiple_installations">Handling multiple installations</a></li>
+        <li><a href="#f_anti-fraud_enforcing_free_content_limits_detecting_sybil_attacks">Anti-fraud:
+        Enforcing free content limits / detecting Sybil attacks</a></li>
+        <li><a href="#g_manage_telephony_&_carrier_functionality">Managing telephony and carrier
+        functionality</a></li>
+        <li><a href="#h_abuse_detection_identifying_bots_and_ddos_attacks">Abuse detection:
+        Identifying bots and DDoS attacks</a></li>
+        <li><a href="#i_abuse_detection_detecting_high_value_stolen_credentials">Abuse detection:
+        Detecting high value stolen credentials</a></li>
+      </ol>
+      </li>
+    </ol>
+  </div>
+</div>
+
+<p>
+  While there are valid reasons why your application may need to identify a
+  device rather than an instance of the application or an authenticated user on
+  the device, for the vast majority of applications, the ultimate goal is to
+  identify a particular <em>installation</em> of your app (not the actual
+  physical device).
+</p>
+
+<p>
+  Fortunately, identifying an installation on Android is straightforward using
+  an Instance ID or by creating your own GUID at install time. This document
+  provides guidance for selecting appropriate identifiers for your application,
+  based on your use-case.
+</p>
+
+<p>
+  For a general look at Android permissions, please see <a href=
+  "{@docRoot}training/articles/user-data-overview.html">Permissions
+  and User Data</a>. For specific best practices for
+  working with Android permissions, please see <a href=
+  "{@docRoot}training/articles/user-data-permissions.html">Best Practices for
+  App Permissions</a>.
+</p>
+
+
+<h2 id="tenets_of_working_with_android_identifiers">Tenets of Working with Android Identifiers</h2>
+
+<p>
+  We recommend that you follow these tenets when working with Android
+  identifiers:
+</p>
+
+<p>
+  <em><strong>#1: Avoid using hardware identifiers.</strong></em> Hardware
+  identifiers such as SSAID (Android ID) and IMEI can be avoided in most
+  use-cases without limiting required functionality.
+</p>
+
+<p>
+  <em><strong>#2: Only use Advertising ID for user profiling or ads
+  use-cases.</strong></em> When using an <a href=
+  "https://support.google.com/googleplay/android-developer/answer/6048248?hl=en">
+  Advertising ID</a>, always respect the <a href=
+  "https://play.google.com/about/developer-content-policy.html#ADID">Limit Ad
+  Tracking</a> flag, ensure the identifier cannot be connected to personally
+  identifiable information (PII) and avoid bridging Advertising ID resets.
+</p>
+
+<p>
+  <em><strong>#3: Use an Instance ID or a privately stored GUID whenever
+  possible for all other use-cases except payment fraud prevention and
+  telephony.</strong></em> For the vast majority of non-ads use-cases, an
+  instance ID or GUID should be sufficient.
+</p>
+
+<p>
+  <em><strong>#4: Use APIs that are appropriate to your use-case to minimize
+  privacy risk.</strong></em> Use the
+  <a href="http://source.android.com/devices/drm.html">DRM
+  API</a> API for high value content
+  protection and the <a href="{@docRoot}training/safetynet/index.html">SafetyNet
+  API</a> for abuse prevention. The Safetynet API is
+  the easiest way to determine whether a device is genuine without incurring
+  privacy risk.
+</p>
+
+<p>
+  The remaining sections of this guide elaborate on these rules in the context
+  of developing Android applications.
+</p>
+
+<h2 id="version_specific_details_identifiers_in_m">Identifiers in Android 6.0+</h2>
+
+<p>
+  MAC addresses are globally unique, not user-resettable and survive factory
+  reset. It is generally not recommended to use MAC address for any form of
+  user identification. As a result, as of Android M, local device MAC addresses
+  (for example, Wifi and Bluetooth) <em><strong>are not available via third party
+  APIs</strong></em>. The {@link android.net.wifi.WifiInfo#getMacAddress WifiInfo.getMacAddress()}
+  method and the {@link android.bluetooth.BluetoothAdapter#getAddress
+  BluetoothAdapter.getDefaultAdapter().getAddress()} method will
+  both return <code>02:00:00:00:00:00</code>..
+</p>
+
+<p>
+  Additionally, you must hold the following permissions to access MAC addresses
+  of nearby external devices available via Bluetooth and Wifi scans:
+</p>
+
+<table>
+ <tr>
+    <th><strong>Method/Property</strong></td>
+    <th><strong>Permissions Required</strong></td>
+ </tr>
+ <tr>
+    <td>
+      <code><a href="{@docRoot}reference/android/net/wifi/WifiManager.html#getScanResults()">WifiManager.getScanResults()</a></code>
+    </td>
+    <td>
+      <code>ACCESS_FINE_LOCATION</code> or <code>ACCESS_COARSE_LOCATION</code>
+    </td>
+ </tr>
+ <tr>
+    <td>
+      <code><a href="{@docRoot}reference/android/bluetooth/BluetoothDevice.html#ACTION_FOUND">BluetoothDevice.ACTION_FOUND</a></code>
+    </td>
+    <td>
+      <code>ACCESS_FINE_LOCATION</code> or <code>ACCESS_COARSE_LOCATION</code>
+    </td>
+ </tr>
+ <tr>
+    <td>
+      <code><a href="{@docRoot}reference/android/bluetooth/le/BluetoothLeScanner.html#startScan(android.bluetooth.le.ScanCallback)">BluetoothLeScanner.startScan(ScanCallback)</a></code>
+    </td>
+    <td>
+      <code>ACCESS_FINE_LOCATION</code> or <code>ACCESS_COARSE_LOCATION</code>
+    </td>
+ </tr>
+</table>
+
+
+<h2 id="working_with_advertising_ids">Working with Advertising IDs</h2>
+
+<p>
+  Advertising ID is a user-resettable identifier and is appropriate for Ads
+  use-cases, but there are some key points to bear in mind when using it:
+</p>
+
+<p>
+  <em><strong>Always respect the user’s intention in resetting the advertising
+  ID</strong></em>. Do not bridge user resets by using a more persistent device
+  identifier or fingerprint to link subsequent Advertising IDs together without
+  the user’s consent. The <a href=
+  "https://play.google.com/about/developer-content-policy.html">Google Play
+  Developer Content Policy</a> states:
+</p>
+
+<div style="padding:.5em 2em;">
+<div style="border-left:4px solid #999;padding:0 1em;font-style:italic;">
+<p>...upon reset, a new advertising
+  identifier must not be connected to a previous advertising identifier or data
+  derived from a previous advertising identifier without the explicit consent
+  of the user</span></p>
+</div>
+</div>
+
+<p>
+  <em><strong>Always respect the associated Interest Based Advertising
+  flag</strong></em>. Advertising IDs are configurable in that users can limit
+  the amount of tracking associated with the ID. Always use the <code><a href=
+  "https://developers.google.com/android/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html#isLimitAdTrackingEnabled()">
+  AdvertisingIdClient.Info.isLimitAdTrackingEnabled()</a></code> method to
+  ensure you are not circumventing your users' wishes. The <a href=
+  "https://play.google.com/about/developer-content-policy.html">Google Play
+  Developer Content Policy</a> states:
+</p>
+
+
+<div style="padding:.5em 2em;">
+<div style="border-left:4px solid #999;padding:0 1em;font-style:italic;">
+<p>...you must abide by a user’s ‘opt out of
+  interest-based advertising’ setting. If a user has enabled this setting, you
+  may not use the advertising identifier for creating user profiles for
+  advertising purposes or for targeting users with interest-based advertising.
+  Allowed activities include contextual advertising, frequency capping,
+  conversion tracking, reporting and security and fraud detection.</span></p>
+</div>
+</div>
+
+<p>
+  <em><strong>Be aware of any privacy or security policies associated with SDKs
+  you use that are related to Advertising ID use.</strong></em> For example, if
+  you are using the Google Analytics SDK
+  <code><a href=
+  "https://developers.google.com/android/reference/com/google/android/gms/analytics/Tracker.html#enableAdvertisingIdCollection(boolean)">mTracker.enableAdvertisingIdCollection(true)</a></code>
+  method, make sure to review and adhere to all applicable <a href=
+  "https://developers.google.com/analytics/devguides/collection/android/v4/policy">
+  Analytics SDK policies</a>.
+</p>
+
+<p>
+  Also, be aware that the <a href=
+  "https://play.google.com/about/developer-content-policy.html">Google Play
+  Developer Content Policy</a> requires that the Advertising ID “must not be
+  connected to personally-identifiable information or associated with any
+  persistent device identifier (for example: SSAID, MAC address, IMEI, etc.,)
+  without the explicit consent of the user.”
+</p>
+
+<p>
+  As an example, suppose you want to collect information to populate database
+  tables with the following columns:
+</p>
+
+<table>
+ <tr>
+    <td>
+      <table>
+       <tr>
+          <td class="tab2">
+      <code>timestamp</code></td>
+          <td class="tab2">
+      <code>ad_id</code></td>
+          <td>
+      <code><strong>account_id</strong></code></td>
+          <td class="tab2">
+      <code>clickid</code></td>
+       </tr>
+      </table>
+
+      <p>TABLE-01</p>
+    </td>
+    <td>
+      <table>
+       <tr>
+          <td>
+      <code><strong>account_id</strong></code></td>
+          <td class="tab2">
+      <code>name</code></td>
+          <td class="tab2">
+      <code>dob</code></td>
+          <td class="tab2">
+      <code>country</code></td>
+       </tr>
+      </table>
+      <p>TABLE-02</p>
+    </td>
+ </tr>
+</table>
+
+
+<p>
+  In this example, the <code>ad_id</code> column could be joined to PII via the
+  <code>account_id</code> column in both tables, which would be a violation of
+  the <a href=
+  "https://play.google.com/about/developer-content-policy.html">Google Play
+  Developer Content Policy</a>.
+</p>
+
+<p>
+  Keep in mind that links between Advertiser ID and PII aren't always this
+  explicit. It's possible to have “quasi-identifiers” that appear in both PII
+  and Ad ID keyed tables, which also cause problems. For example, assume we
+  change TABLE-01 and TABLE-02 as follows:
+</p>
+
+<table>
+ <tr>
+    <td><table>
+ <tr>
+    <td>
+      <code><strong>timestamp</strong></code></td>
+          <td class="tab2">
+      <code>ad_id</code></td>
+          <td>
+      <code>clickid</code></td>
+          <td>
+      <code><strong>dev_model</strong></code></td>
+       </tr>
+      </table>
+
+      </pre>
+      <p>TABLE-01</p>
+    </td>
+    <td>
+      <table>
+       <tr>
+          <td>
+      <code><strong>timestamp</strong></code></td>
+          <td class="tab2">
+      <code>demo</code></td>
+          <td class="tab2">
+      <code>account_id</code></td>
+          <td>
+      <code><strong>dev_model</strong></code></td>
+          <td class="tab2">
+      <code>name</code></td>
+       </tr>
+      </table>
+      <p>TABLE-02</p>
+    </td>
+ </tr>
+</table>
+
+
+<p>
+  In this case, with sufficiently rare click events, it's still possible to
+  join between the Advertiser ID TABLE-01 and the PII contained in TABLE-2
+  using the timestamp of the event and the device model.
+</p>
+
+<p>
+  While it is often difficult to guarantee that no such quasi-identifiers exist
+  in a dataset, the most obvious join risks can be prevented by generalizing
+  unique data where possible. In the example, this would mean reducing the
+  accuracy of the timestamp so that multiple devices with the same model appear
+  for every timestamp.
+</p>
+
+<p>
+  Other solutions include:
+</p>
+
+<ul>
+<li><em><strong>Not designing tables that explicitly link PII with Advertising
+IDs</strong></em>. In the first example above this would mean not including the
+account_id column in TABLE-01.</li>
+
+<li><em><strong>Segregating and monitoring access control lists for users or roles
+that have access to both the Advertising ID keyed data and PII</strong></em>. If the
+ability to access both sources simultaneously (for example, to perform
+a join between two tables) is tightly controlled and audited, it reduces the
+risk of association between the Advertising ID and PII. Generally speaking,
+controlling access means:
+
+<ol>
+  <li> Keeping access control lists (ACLs) for Advertiser ID keyed data and PII disjoint to
+  minimize the number of individuals or roles that are in both ACLs, and</li>
+  <li> Implementing access logging and auditing to detect and manage any exceptions to
+  this rule.</li>
+</ol>
+</li>
+</ul>
+
+<p>
+  For more information on working responsibly with Advertising IDs, please see
+  the <a href=
+  "https://support.google.com/googleplay/android-developer/answer/6048248?hl=en">
+  Advertising ID</a> help center article.
+</p>
+
+<h2 id="working_with_instance_ids_&_guids">Working with Instance IDs and GUIDs</h2>
+
+<p>
+  The most straightforward solution to identifying an application instance
+  running on a device is to use an Instance ID, and this is the recommended
+  solution in the majority of non-ads use-cases. Only the app instance for
+  which it was provisioned can access this identifier, and it's (relatively)
+  easily resettable because it only persists as long as the app is installed.
+</p>
+
+<p>
+  As a result, Instance IDs provide better privacy properties compared to
+  non-resettable, device-scoped hardware IDs. They also come with a key-pair
+  for message signing (and similar actions) and are available on Android, iOS
+  and Chrome. Please see the <a href=
+  "https://developers.google.com/instance-id/">What is Instance ID?</a> help
+  center document for more information.
+</p>
+
+<p>
+  In cases where an Instance ID isn't practical, custom globally unique IDs
+  (GUIDs) can also be used to uniquely identify an app instance. The simplest
+  way to do so is by generating your own GUID using the following code.
+</p>
+
+<pre>String uniqueID = UUID.randomUUID().toString();</pre>
+
+<p>
+  Because the identifier is globally unique, it can be used to identify a
+  specific app instance. To avoid concerns related to linking the identifier
+  across applications, GUIDs should be stored in internal storage rather than
+  external (shared) storage. Please see <a href=
+  "{@docRoot}guide/topics/data/data-storage.html">Storage Options</a> guide for
+  more information.
+</p>
+
+
+<h2 id="understand_identifier_characteristics">Understanding Identifier Characteristics</h2>
+
+<p>
+  The Android Operating system offers a number of IDs with different behavior
+  characteristics and which ID you should use depends on how those following
+  characteristics work with your use-case. But these characteristics also come
+  with privacy implications so it's important to understand how these
+  characteristics play together.
+</p>
+
+<h3 id="scope">Scope</h3>
+
+<p>
+  Identifier scope explains which systems can access the identifier. Android
+  identifier scope generally comes in three flavors:
+</p>
+
+<ul>
+  <li> <em>Single app</em>.  the ID is internal to the app and not accessible to other apps.
+  <li> <em>Group of apps</em> - the ID is accessible to a pre-defined group of related apps.
+  <li> <em>Device</em> - the ID is accessible to all apps installed on the device.
+</ul>
+
+<p>
+  The wider the scope granted to an identifier, the greater the risk of it
+  being used for tracking purposes. Conversely, if an identifier can only be
+  accessed by a single app instance, it can’t be used to track a device across
+  transactions in different apps.
+</p>
+<h3 id="resettability_&_persistence">Resettability and persistence</h3>
+
+<p>
+  Resettability and persistence define the lifespan of the identifier and
+  explain how it can be reset. Common reset triggers are: in-app resets, resets
+  via System Settings, resets on launch, and resets on installation. Android
+  Identifiers can have varying lifespans, but the lifespan is usually related
+  to how the ID is reset:
+</p>
+<ul>
+  <li> <em>Session-only</em> - a new ID is used every time the user restarts the app.
+  <li> <em>Install-reset</em> - a new ID is used every time user uninstalls and reinstalls the app.
+  <li> <em>FDR-reset</em> - a new ID is used every time the user factory-resets the device.
+  <li> <em>FDR-persistent</em> - the ID survives factory reset.
+</ul>
+
+<p>
+  Resettability gives users the ability to create a new ID that is
+  disassociated from any existing profile information. This is important
+  because the longer, and more reliably, an identifier persists (e.g. across
+  factory resets etc.), the greater the risk that the user may be subjected to
+  long-term tracking. If the identifier is reset upon app reinstall, this
+  reduces the persistence and provides a means for the ID to be reset, even if
+  there is no explicit user control to reset it from within the app or the
+  System Settings.
+</p>
+<h3 id="uniqueness">Uniqueness</h3>
+
+<p>
+  Uniqueness establishes the likelihood that identical identifiers exist within
+  the associated scope. At the highest level, a globally unique identifier will
+  never have a collision - even on other devices/apps. Otherwise, the level of
+  uniqueness depends on the size of the identifier and the source of randomness
+  used to create it. For example, the chance of a collision is much higher for
+  random identifiers seeded with the calendar date of installation (e.g.,
+  2015-01-05) than for identifiers seeded with the Unix timestamp of
+  installation (e.g., 1445530977).
+</p>
+
+<p>
+  In general, user account identifiers can be considered unique (i.e., each
+  device/account combo has a unique ID). On the other hand, the less unique
+  an identifier is within a population (e.g. of devices), the greater the
+  privacy protection because it's less useful for tracking an individual user.
+</p>
+
+<h3 id="integrity_protection_and_non-repudiability">Integrity protection and
+non-repudiability</h3>
+
+<p>
+  An identifier that is difficult to spoof or replay can be used to prove that
+  the associated device or account has certain properties (e.g. it’s not a
+  virtual device used by a spammer). Difficult to spoof identifiers also
+  provide <em>non-repudiability</em>. If the device signs a message with a
+  secret key, it is difficult to claim someone else’s device sent the message.
+  Non-repudiability could be something a user wants (e.g. authenticating a
+  payment) or it could be an undesirable property (e.g. sending a message they
+  regret).
+</p>
+
+
+<h2 id="use_appropriate_identifiers">Common Use Cases and the Identifier to Use</h2>
+
+<p>
+  This section provides alternatives to using hardware IDs such as IMEI or
+  SSAID for the majority of use-cases. Relying on hardware IDs is discouraged
+  because the user cannot reset them and generally has limited control over
+  their collection.
+</p>
+
+<h3 id="a_track_signed-out_user_preferences">Tracking signed-out user preferences</h3>
+
+<p>
+  <em>In this case, you are saving per-device state on the server side.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Instance ID or a GUID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  Persisting information through reinstalls is not recommended because users
+  may want to reset their preferences by reinstalling the app.
+</p>
+
+<h3 id="b_track_signed-out_user_behavior">Tracking signed-out user behavior</h3>
+
+<p>
+  <em>In this case, you have created a profile of a user based on their
+  behavior across different apps/sessions on the same device.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Advertising ID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  Use of the Advertising ID is mandatory for Advertising use-cases per the
+  <a href="https://play.google.com/about/developer-content-policy.html">Google
+  Play Developer Content Policy</a> because the user can reset it.
+</p>
+
+<h3 id="c_generate_signed-out_anonymous_user_analytics">Generating signed-out/anonymous user analytics</h3>
+
+<p>
+  <em>In this case, you are measuring usage statistics and analytics for
+  signed-out or anonymous users.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Instance ID; if an Instance ID is
+  insufficient, you can also use a GUID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  An Instance ID or a GUID is scoped to the app that creates it, which prevents
+  it from being used to track users across apps. It is also easily reset by
+  clearing app data or reinstalling the app. Creating Instance IDs and GUIDs is
+  straightforward:
+</p>
+
+<ul>
+  <li> Creating an Instance ID: <code>String iid = InstanceID.getInstance(context).getId()</code>
+  <li> Creating a GUID: <code>String uniqueID = UUID.randomUUID().toString</code>
+</ul>
+
+<p>
+  Be aware that if you have told the user that the data you are collecting is
+  anonymous, you should <em><strong>ensure you are not connecting the
+  identifier to PII</strong></em> or other identifiers that may be linked to
+  PII.
+</p>
+
+<p>
+  You can also use Google Analytics for Mobile Apps, which offers a solution
+  for per-app analytics.
+</p>
+
+<h3 id="d_track_signed-out_user_conversion">Tracking signed-out user conversion</h3>
+
+<p>
+  <em>In this case, you are tracking conversions to detect if your marketing
+  strategy was successful.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Advertising ID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  This is an ads-related use-case which may require an ID that is available
+  across different apps so using an Advertising ID is the most appropriate
+  solution.
+</p>
+
+<h3 id="e_handle_multiple_installations">Handling multiple installations</h3>
+
+<p>
+  <em>In this case, you need to identify the correct instance of the app when
+  it's installed on multiple devices for the same user.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Instance ID or GUID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  Instance ID is designed explicitly for this purpose; its scope is limited to
+  the app so that it cannot be used to track users across different apps and it
+  is reset upon app reinstall. In the rare cases where an Instance ID is
+  insufficient, you can also use a GUID.
+</p>
+
+<h3 id="f_anti-fraud_enforcing_free_content_limits_detecting_sybil_attacks">Anti-fraud: Enforcing free content limits / detecting Sybil attacks</h3>
+
+<p>
+  <em>In this case, you want to limit the number of free content (e.g.
+  articles) a user can see on a device.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: Instance ID or GUID.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  Using a GUID or Instance ID forces the user to reinstall the app in order to
+  overcome the content limits, which is a sufficient burden to deter most
+  people. If this is not sufficient protection, Android provides a
+  <a href="http://source.android.com/devices/drm.html">DRM API</a>
+  which can be used to limit access to content.
+</p>
+
+<h3 id="g_manage_telephony_&_carrier_functionality">Managing telephony and carrier functionality</h3>
+
+<p>
+  <em>In this case, your app is interacting with the device's phone and texting
+  functionality.</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: IMEI, IMSI, and Line1 (requires <code>PHONE</code>
+  permission group in Android 6.0 (API level 23) and higher).
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  Leveraging hardware identifiers is acceptable if it is required for
+  telephony/carrier related functionality; for example, switching between
+  cellular carriers/SIM slots or delivering SMS messages over IP (for Line1) -
+  SIM-based user accounts. But it's important to note that in Android 6.0+
+  these identifiers can only be used via a runtime permission and that users
+  may toggle off this permission so your app should handle these exceptions
+  gracefully.
+</p>
+
+<h3 id="h_abuse_detection_identifying_bots_and_ddos_attacks">Abuse detection:
+Identifying bots and DDoS attacks</h3>
+
+<p>
+  <em>In this case, you are trying to detect multiple fake devices attacking
+  your backend services.</em>
+</p>
+
+<p>
+  <strong>We Recommend:</strong> The Safetynet API.
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  An identifier in isolation does little to indicate that a device is genuine.
+  You can verify that a request comes from a genuine Android device (as opposed
+  to an emulator or other code spoofing another device) using the Safetynet
+  API's <code>SafetyNet.SafetyNetApi.attest(mGoogleApiClient, nonce)</code>
+  method to verify the integrity of a device making a request. For more
+  detailed information, please see <a href=
+  "{@docRoot}training/safetynet/index.html">Safetynet's API documentation</a>.
+</p>
+
+<h3 id="i_abuse_detection_detecting_high_value_stolen_credentials">Abuse detection:
+Detecting high value stolen credentials</h3>
+
+<p>
+  <em>In this case, you are trying to detect if a single device is being used
+  multiple times with high-value, stolen credentials (e.g. to make fraudulent
+  payments).</em>
+</p>
+
+<p>
+  <strong>We Recommend</strong>: IMEI/IMSI (requires <code>PHONE</code>
+  permission group in Android 6.0 (API level 23) and higher.)
+</p>
+
+<p>
+  <strong>Why this Recommendation?</strong>
+</p>
+
+<p>
+  With stolen credentials, devices can be used to monetize multiple high value
+  stolen credentials (such as tokenized credit cards). In these scenarios,
+  software IDs can be reset to avoid detection, so hardware identifiers may be
+  used.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/articles/user-data-overview.jd b/docs/html/training/articles/user-data-overview.jd
new file mode 100644
index 0000000..8715d36
--- /dev/null
+++ b/docs/html/training/articles/user-data-overview.jd
@@ -0,0 +1,269 @@
+page.title=Permissions and User Data
+page.metaDescription=An overview of permissions on Android and how to manage them.
+page.tags="user data","permissions","identifiers"
+page.image=images/cards/card-user_2x.png
+
+page.article=true
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+    <h2>In this document</h2>
+    <ol>
+      <li><a href="#introduction">Introduction</a></li>
+      <li><a href="#permission_groups">Permission Groups</a></li>
+      <li><a href="#permission_requests_and_app_downloads">Permission
+      Requests and App Downloads</a></li>
+      <li><a href="#permission_requests_trend_downward">Permission Requests
+      Trend Downward</a></li>
+    </ol>
+    <h2>You should also read</h2>
+    <ol>
+      <li><a href="{@docRoot}guide/topics/security/permissions.html">System Permissions</a></li>
+      <li><a href="{@docRoot}training/permissions/index.html">Working with System
+      Permissions</a></li>
+    </ol>
+  </div>
+</div>
+
+<p>
+  Permissions protect sensitive information available from a device and should
+  only be used when access to information is necessary for the functioning of
+  your app.
+</p>
+
+<p>
+  This document provides a high-level overview on how permissions work in
+  Android so you can make better, more informed decisions about the permissions
+  you're requesting. The information in this document is not use-case specific
+  and avoids complex, low-level discussions of the underlying code.
+</p>
+
+<p>
+  For specific recommendations on how to manage permissions, please see
+  <a href="{@docRoot}training/articles/user-data-permissions.html">Best
+  Practices for App Permissions</a>. For best practices on using unique
+  identifiers on Android, please see <a href=
+  "{@docRoot}training/articles/user-data-ids.html">Best Practices for Unique
+  Identifiers</a>. For details on how to work with permissions in your code,
+  see <a href="{@docRoot}training/permissions/index.html">Working with System
+  Permissions</a>.
+</p>
+
+
+<h2 id="introduction">Introduction</h2>
+
+<p>
+  Every Android application must have a <em>manifest file</em> that presents
+  essential information about the app to the Android system. The Android system
+  also requires apps to request permission when they want to access sensitive
+  device or user information, and these requests must be documented in advance
+  as a part of your app's manifest. Moreover, accessing sensitive information
+  can affect user behavior, so it's important to make sure you are only making
+  permission requests when that information is necessary for the functioning of
+  your app.
+</p>
+
+
+<h2 id="permission_groups">Permission Groups</h2>
+
+<p>
+  Permissions in Android are organized into <code><a href=
+  "{@docRoot}guide/topics/security/permissions.html#perm-groups">permission
+  groups</a></code> that organize, and group, permissions related to a device's
+  capabilities or features. Under this system, permission requests are handled
+  at the group level and a <em><strong>single permission group</strong></em>
+  corresponds to <em><strong>several permission declarations</strong></em> in
+  the app manifest; for example, the SMS group includes both the
+  <code>READ_SMS</code> and the <code>RECEIVE_SMS</code> declarations.
+</p>
+
+
+<div class="wrap">
+   <img src="{@docRoot}images/training/articles/user-data-overview-permissions-flow01.jpg">
+</div>
+
+<p>
+  This arrangement is simpler and more informative for users; once an app is
+  granted permission to access the group, it can use API calls within that
+  group and users with auto-update enabled will not be asked for additional
+  permissions because they have already granted access to the group. Grouping
+  permissions in this way enables the user to make more meaningful and informed
+  choices, without being overwhelmed by complex and technical permission
+  requests.
+</p>
+
+<p>
+  This also means that when you request access to a particular API call or
+  query a content provider behind a permission, the user will be presented with
+  a request to grant permission for the whole group rather than the specific
+  API call. For example, if you request the <code>WRITE_CALL_LOG</code>
+  permission, the user will be asked to grant access to the <em>PHONE</em>
+  group (in API level 23 and higher), which is composed of the
+  <code>READ_PHONE_STATE</code>, <code>CALL_PHONE</code>,
+   <code>READ_CALL_LOG</code>, <code>WRITE_CALL_LOG</code>,
+  <code>ADD_VOICEMAIL</code>,  <code>USE_SIP</code>, and
+  <code>PROCESS_OUTGOING_CALLS</code> permissions, and
+  all their associated methods.
+</p>
+
+<div class="wrap">
+   <img src="{@docRoot}images/training/articles/user-data-overview-permissions-flow02.png">
+</div>
+
+<p>
+  One consequence of grouping permissions is that a single API call within your
+  app can have a multiplying effect in terms of the number of permissions
+  requested by your app.
+</p>
+
+<ol>
+<li>API Call →</li>
+<li stydle="margin-left:.5em;">Triggers a specific <em>Permission Group</em> access
+request →</li>
+<li stydle="margin-left:1em;">Successful request grants access to all permissions in
+group (if auto-update
+enabled) →</li>
+<li stydle="margin-left:1.5em;">Each permission grants access to all APIs under that
+permission</li>
+</ol>
+
+<p>
+  As another example, let's assume your application uses one or more <a href=
+  "{@docRoot}reference/android/telephony/TelephonyManager.html"><code>TelephonyManager</code></a>
+  methods, such as:
+</p>
+
+<pre class="prettyprint">
+TelephonyManager.getDeviceId()
+TelephonyManager.getSubscriberId()
+TelephonyManager.getSimSerialNumber()
+TelephonyManager.getLine1Number()
+TelephonyManager.getVoiceMailNumber()
+</pre>
+
+<p>
+  To use these methods, the <code>READ_PHONE_STATE</code> permission must be
+  declared in the app's manifest, and the associated permission group,
+  <em>PHONE</em>, will be surfaced to the user. This
+  is important, because it means the user will be asked to grant permission for
+  the relevant group and all its associated permissions and API calls, rather
+  than for the specific API call you're requesting.
+</p>
+
+<p>For a full mapping between permissions and their associated permission groups,
+please refer to the appropriate version-specific documentation below:</p>
+
+<ul>
+  <!--<li> <a href="">pre-M Android OS versions</a>.</li> -->
+  <li> <a href="{@docRoot}guide/topics/security/permissions.html#perm-groups">Permission
+  groups, Android 6.0 Marshmallow (API level 23) and later</a>.</li>
+</ul>
+
+
+<h2 id="permission_requests_and_app_downloads">Permission Requests and App Downloads</h2>
+
+<div style="padding:.5em 2em;">
+<div style="border-left:4px solid #999;padding:0 1em;font-style:italic;">
+<p><em>I'm currently using the READ_PHONE_STATE permission in Android to pause my
+media player when there's a call, and to resume playback when the call is over.
+The permission seems to scare a lot of people</em>...<span
+style="font-size:.8em;color:#777"><sup><em><a
+href="#references" style="color:#777;padding-left:.1em;">1</a></em></sup></span></p>
+</div>
+</div>
+
+<p>
+  Research shows that among apps that are otherwise identical (e.g.,
+  functionality, brand recognition), requesting fewer permissions leads to more
+  downloads. Publicly available sources exist that assign grades to apps based
+  on their permissions usage and allow users to compare related apps by score;
+  such grades exist for many of the current Android apps and users pay close
+  attention to the related rankings.
+</p>
+
+<p>
+  One study<span style="font-size:.8em;color:#777"><sup><em><a href=
+  "#references" style=
+  "color:#777;padding-left:.1em;">2</a></em></sup></span>, in which users
+  were shown two unbranded apps with similar ratings that had the same
+  functionality but different sets of permission requests, showed that users
+  were, on average, 3 times more likely to install the app with fewer
+  permissions requests. And a similar study <span style=
+  "font-size:.8em;color:#777"><sup><em><a href="#references" style=
+  "color:#777;padding-left:.1em;">3</a></em></sup></span> showed that users are 1.7
+  times more likely, on average, to select the application with fewer
+  permission requests.
+</p>
+
+<p>
+  Finally, permissions usage is not evenly distributed across apps within
+  a similar category of Play apps. For example, 39.3% of arcade game apps in
+  the Play store request no permissions that are surfaced to the user while
+  only 1.5% of arcade games request the Phone permission group (see Figure
+  1).
+</p>
+
+<div class="wrap">
+  <div class="cols">
+    <div class="col-16of16">
+   <img src="{@docRoot}images/training/articles/user-data-overview-permissions-groups.png">
+    <p class="figure-caption"><strong>Figure 1.</strong> Distribution of
+    permission groups use across Arcade Games category.</p>
+    </div>
+  </div>
+</div>
+
+<p>
+  Users comparing your app to other similar apps may determine that it is
+  making unusual permission requests for that category - in this case, Arcade
+  Games apps accessing the <em>Phone</em> permission group. As a result, they
+  may install a similar app in that category that avoids those
+  requests.<span style="font-size:.8em;color:#777"><sup><em><a href=
+  "#references" style="color:#777;padding-left:.1em;">4</a></em></sup></span>
+</p>
+
+
+<h2 id="permission_requests_trend_downward">Permission Requests Trend Downward</h2>
+
+<p>
+  A recent analysis of Play store apps over time indicated that many developers
+  trim permissions after first publishing their apps, suggesting that they may
+  be employing more caution around which permission groups they declare.
+</p>
+
+<div class="wrap">
+  <div class="cols">
+    <div class="col-16of16">
+   <img src="{@docRoot}images/training/articles/user-data-overview-permissions-usage.jpg">
+    <p class="figure-caption"><strong>Figure 2.</strong> Developer usage of popular
+    permissions has decreased over time.</p>
+    </div>
+  </div>
+</div>
+
+<p>
+  The graph in <em>Figure 2</em> illustrates this trend. There has been a
+  steady decrease in the average percentage of developers' apps requesting at
+  least one of the three most popular permissions in the Play store
+  (<code>READ_PHONE_STATE</code>, <code>ACCESS_FINE_LOCATION</code>, and
+  <code>ACCESS_COARSE_LOCATION</code>). These results indicate that developers
+  are reducing the permissions their apps request in response to user behavior.
+</p>
+
+<p>
+  The bottom line is that providing the same functionality to the user with
+  minimal access to sensitive information means more downloads for your app.
+  For specific recommendations on how to achieve this, please see <a href=
+  "{@docRoot}training/articles/user-data-permissions.html">Best Practices for
+  Application Permissions</a>.
+</p>
+
+
+<h2 id="references">References</h2>
+
+<p>[1] Developer quote on StackOverflow. <em>(<a
+    href="http://stackoverflow.com/questions/24374701/alternative-to-read-phone-state-permission-for-getting-notified-of-call">source</a>)</em></p>
+<p>[2] <em>Using Personal Examples to Improve Risk Communication for Security and Privacy Decisions</em>, by M. Harbach, M. Hettig, S. Weber, and M. Smith. In Proceedings of ACM CHI 2014.</p>
+<p>[3] <em>Modeling Users’ Mobile App Privacy Preferences: Restoring Usability in a Sea of Permission Settings</em>, by J. Lin B. Liu, N. Sadeh and J. Hong. In Proceedings of SOUPS 2014.</p>
+<p>[4] <em>Teens and Mobile Apps Privacy. (<a href="http://www.pewinternet.org/files/old-media/Files/Reports/2013/PIP_Teens%20and%20Mobile%20Apps%20Privacy.pdf">source</a>)</em></p> 
diff --git a/docs/html/training/articles/user-data-permissions.jd b/docs/html/training/articles/user-data-permissions.jd
new file mode 100644
index 0000000..edc7558
--- /dev/null
+++ b/docs/html/training/articles/user-data-permissions.jd
@@ -0,0 +1,381 @@
+page.title=Best Practices for App Permissions
+page.metaDescription=How to manage permissions to give users context and control.
+page.tags=permissions, user data
+meta.tags="permissions", "user data"
+page.image=images/cards/card-user-permissions_2x.png
+
+page.article=true
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+    <h2>In this document</h2>
+    <ol>
+      <li><a href="#tenets_of_working_with_android_permissions">Tenets</a></li>
+      <li><a href="#version_specific_details_permissions_in_m">Permissions in Android
+      6.0+</h2></a></li>
+      <li><a href="#avoid_requesting_unnecessary_permissions">Avoid Requesting
+Unnecessary Permissions</h2></a>
+      <ol>
+        <li><a href="#a_camera_contact_access_with_real-time_user_requests">Camera/Contact
+        access with realtime user requests</a></li>
+        <li><a href="#b_running_in_the_background_after_losing_audio_focus">Running in
+the background after losing audio focus</a></li>
+        <li><a href="#c_determine_the_device_your_instance_is_running_on">Determine the
+device your instance is running on</a></li>
+        <li><a href="#d_create_a_unique_identifier_for_advertising_or_user_analytics">
+Create a unique identifier for advertising or user analytics</a></li>
+      </ol>
+      </li>
+      <li><a href="#know_the_libraries_you're_working_with">Know the Libraries You're
+Working With</a></li>
+      <li><a href="#be_transparent">Be Transparent</a></li>
+    </ol>
+    <h2>You should also read</h2>
+    <ol>
+      <li><a href="{@docRoot}guide/topics/security/permissions.html">System Permissions</a></li>
+      <li><a href="{@docRoot}training/permissions/index.html">Working with System
+      Permissions</a></li>
+    </ol>
+  </div>
+</div>
+
+<p>
+  Permission requests protect sensitive information available from a device and
+  should only be used when access to information is necessary for the
+  functioning of your app. This document provides tips on ways you might be
+  able to achieve the same (or better) functionality without requiring access
+  to such information; it is not an exhaustive discussion of how permissions
+  work in the Android operating system.
+</p>
+
+<p>
+  For a more general look at Android permissions, please see <a href=
+  "{@docRoot}training/articles/user-data-overview.html">Permissions
+  and User Data</a>. For details on how to work with permissions in your code,
+  see <a href="{@docRoot}training/permissions/index.html">Working with System Permissions</a>.
+  For best practices for working with unique identifiers, please see <a href=
+  "{@docRoot}training/articles/user-data-ids.html">Best Practices for
+  Unique Identifiers</a>. 
+</p>
+
+<h2 id="tenets_of_working_with_android_permissions">Tenets of Working
+with Android Permissions</h2>
+
+<p>
+  We recommend following these tenets when working with Android permissions:
+</p>
+
+<p>
+  <em><strong>#1: Only use the permissions necessary for your app to
+  work</strong></em>. Depending on how you are using the permissions, there may
+  be another way to do what you need (system intents, identifiers,
+  backgrounding for phone calls) without relying on access to sensitive
+  information.
+</p>
+
+<p>
+  <em><strong>#2: Pay attention to permissions required by
+  libraries.</strong></em> When you include a library, you also inherit its
+  permission requirements. You should be aware of what you're including, the
+  permissions they require, and what those permissions are used for.
+</p>
+
+<p>
+  <em><strong>#3: Be transparent.</strong></em> When you make a permissions
+  request, be clear about what you’re accessing, and why, so users can make
+  informed decisions. Make this information available alongside the permission
+  request including install, runtime, or update permission dialogues.
+</p>
+
+<p>
+  <em><strong>#4: Make system accesses explicit.</strong></em> Providing
+  continuous indications when you access sensitive capabilities (for example, the
+  camera or microphone) makes it clear to users when you’re collecting data and
+  avoids the perception that you're collecting data surreptitiously.
+</p>
+
+<p>
+  The remaining sections of this guide elaborate on these rules in the context
+  of developing Android applications.
+</p>
+
+<h2 id="version_specific_details_permissions_in_m">Permissions in Android 6.0+</h2>
+
+<p>
+  Android 6.0 Marshmallow introduced a <a href=
+  "{@docRoot}training/permissions/requesting.html">new permissions model</a> that
+  lets apps request permissions from the user at runtime, rather than prior to
+  installation. Apps that support the new model request permissions when the app
+  actually requires the services or data protected by the services. While this
+  doesn't (necessarily) change overall app behavior, it does create a few
+  changes relevant to the way sensitive user data is handled:
+</p>
+
+<p>
+  <em><strong>Increased situational context</strong></em>: Users are
+  prompted at runtime, in the context of your app, for permission to access the
+  functionality covered by those permission groups. Users are more sensitive to
+  the context in which the permission is requested, and if there’s a mismatch
+  between what you are requesting and the purpose of your app, it's even
+  more important to provide detailed explanation to the user as to why you’re
+  requesting the permission; whenever possible, you should provide an
+  explanation of your request both at the time of the request and in a
+  follow-up dialog if the user denies the request.
+</p>
+
+<p>
+  <em><strong>Greater flexibility in granting permissions</strong></em>: Users
+  can deny access to individual permissions at the time they’re requested
+  <em>and</em> in settings, but they may still be surprised when functionality is
+  broken as a result. It’s a good idea to monitor how many users are denying
+  permissions (e.g. using Google Analytics) so that you can either refactor
+  your app to avoid depending on that permission or provide a better
+  explanation of why you need the permission for your app to work properly. You
+  should also make sure that your app handles exceptions created when users
+  deny permission requests or toggle off permissions in settings.
+</p>
+
+<p>
+  <em><strong>Increased transactional burden</strong></em>: Users will be asked
+  to grant access for permission groups individually and not as a set. This
+  makes it extremely important to minimize the number of permissions you’re
+  requesting because it increases the user burden for granting permissions and
+  increases the probability that at least one of the requests will be denied.
+</p>
+
+<h2 id="avoid_requesting_unnecessary_permissions">Avoid Requesting
+Unnecessary Permissions</h2>
+
+<p>
+  This section provides alternatives to common use-cases that will help you
+  limit the number of permission requests you make. Since the number and type
+  of user-surfaced permissions requested affects downloads compared to other
+  similar apps requesting fewer permissions, it’s best to avoid requesting
+  permissions for unnecessary functionality.
+</p>
+
+<h3 id="a_camera_contact_access_with_real-time_user_requests">Camera/contact
+access with realtime user requests</h3>
+
+<p>
+  <em>In this case, you need occasional access to the device's camera or
+  contact information and don’t mind the user being asked every time you need
+  access.</em>
+</p>
+
+<p>
+  If your requirement for access to user data is infrequent &mdash; in other
+  words, it's not unacceptably disruptive for the user to be presented with a
+  runtime dialogue each time you need to access data &mdash; you can use an
+  <em>intent based request</em>. Android provides some system intents that
+  applications can use without requiring permissions because the user chooses
+  what, if anything, to share with the app at the time the intent based request
+  is issued.
+</p>
+
+<p>
+  For example, an intent action type of <code><a href=
+  "{@docRoot}reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE">MediaStore.ACTION_IMAGE_CAPTURE</a></code>
+  or <code><a href=
+  "{@docRoot}reference/android/provider/MediaStore.html#ACTION_VIDEO_CAPTURE">MediaStore.ACTION_VIDEO_CAPTURE</a></code>
+  can be used to capture images or videos without directly using the <a href=
+  "{@docRoot}reference/android/hardware/Camera.html">Camera</a> object (or
+  requiring the permission). In this case, the system intent will ask for the
+  user’s permission on your behalf every time an image is captured.
+</p>
+
+<h3 id="b_running_in_the_background_after_losing_audio_focus">Running in
+the background after losing audio focus</h3>
+
+<p>
+  <em>In this case, your application needs to go into the background when the
+  user gets a phone call and refocus only once the call stops.</em>
+</p>
+
+<p>
+  The common approach in these cases - for example, a media player muting or
+  pausing during a phone call - is to listen for changes in the call state
+  using <code>PhoneStateListener</code> or listening for the broadcast of
+  <code>android.intent.action.PHONE_STATE</code>. The problem with this
+  solution is that it requires the <code>READ_PHONE_STATE</code> permission,
+  which forces the user to grant access to a wide cross section of sensitive
+  data such as their device and SIM hardware IDs and the phone number of the
+  incoming call.
+</p>
+
+<p>
+  You can avoid this by requesting <code>AudioFocus</code> for your app, which
+  doesn't require explicit permissions (because it does not access sensitive
+  information). Simply put the code required to background your audio in the
+  <code><a href=
+  "{@docRoot}reference/android/media/AudioManager.OnAudioFocusChangeListener.html#onAudioFocusChange(int)">
+  onAudioFocusChange()</a></code> event handler and it will run automatically
+  when the OS shifts its audio focus. More detailed documentation on how to do
+  this can be found <a href=
+  "{@docRoot}training/managing-audio/audio-focus.html">here</a>.
+</p>
+
+<h3 id="c_determine_the_device_your_instance_is_running_on">Determine the
+device your instance is running on</h3>
+
+<p>
+  <em>In this case, you need a unique identifier to determine which device the
+  instance of your app is running on.</em>
+</p>
+
+<p>
+  Applications may have device-specific preferences or messaging (e.g., saving
+  a device-specific playlist for a user in the cloud so that they can have a
+  different playlist for their car and at home). A common solution is to
+  leverage device identifiers such as <code>Device IMEI</code>, but this
+  requires the <code>Device ID and call information</code>
+  permission group (<code>PHONE</code> in M+). It also uses an identifier which
+  cannot be reset and is shared across all apps.
+</p>
+
+<p>
+  There are two alternatives to using these types of identifiers:
+</p>
+
+<ol>
+  <li> Use the <code>com.google.android.gms.iid</code> InstanceID API.
+  <code>getInstance(Context context).getID()<strong></code> </strong>will return a
+  unique device identifier for your application instance. The
+result is an app instance scoped identifier that can be used as a key when
+storing information about the app and is reset if the user re-installs the app.
+  <li> Create your own identifier that’s scoped to your app’s storage using basic
+  system functions like <a
+  href="{@docRoot}reference/java/util/UUID.html#randomUUID()"><code>randomUUID()</code></a>.</li>
+</ol>
+
+<h3 id="d_create_a_unique_identifier_for_advertising_or_user_analytics">Create a unique
+identifier for advertising or user analytics</h3>
+
+<p>
+  <em>In this case, you need a unique identifier for building a profile for
+  users who are not signed in to your app (e.g., for ads targeting or measuring
+  conversions).</em>
+</p>
+
+<p>
+  Building a profile for advertising and user analytics sometimes requires an
+  identifier that is shared across other applications. Common solutions for
+  this involve leveraging device identifiers such as <code>Device IMEI</code>,
+  which requires the <code>Device ID</code> <code>and call information</code>
+  permission group (<code>PHONE</code> in API level 23+) and cannot be reset by
+  the user. In any of these cases, in addition to using a non-resettable
+  identifier and requesting a permission that might seem unusual to users, you
+  will also be in violation of the <a href=
+  "https://play.google.com/about/developer-content-policy.html">Play Developer
+  Program Policies</a>.
+</p>
+
+<p>
+  Unfortunately, in these cases using the
+  <code>com.google.android.gms.iid</code> InstanceID API or system functions to
+  create an app-scoped ID are not appropriate solutions because the ID may need
+  to be shared across apps. An alternative solution is to use the
+  <code>Advertising Identifier</code> available from the <code><a href=
+  "{@docRoot}reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html">
+  AdvertisingIdClient.Info</a></code> class via the <code>getId()</code>
+  method. You can create an <code>AdvertisingIdClient.Info</code> object using
+  the <code>getAdvertisingIdInfo(Context)</code> method and call the
+  <code>getId()</code> method to use the identifier. <em><strong>Note that this
+  method is blocking</strong></em>, so you should not call it from the main
+  thread; a detailed explanation of this method is available <a href=
+  "{@docRoot}google/play-services/id.html">here</a>.
+</p>
+
+<h2 id="know_the_libraries_you're_working_with">Know the Libraries You're
+Working With</h2>
+
+<p>
+  Sometimes permissions are required by the libraries you use in your app. For
+  example, ads and analytics libraries may require access to the
+  <code>Location</code> or <code>Identity</code> permissions groups to
+  implement the required functionality. But from the user’s point of view, the
+  permission request comes from your app, not the library.
+</p>
+
+<p>
+  Just as users select apps that use fewer permissions for the same
+  functionality, developers should review their libraries and select
+  third-party SDKs that are not using unnecessary permissions. For example, try
+  to avoid libraries that require the <code>Identity</code> permission group
+  unless there is a clear user-facing reason why the app needs those permissions.
+  In particular, for libraries that provide location functionality, make sure you
+  are not required to request the <code>FINE_LOCATION</code> permission unless
+  you are using location-based targeting functionality.
+</p>
+
+<h2 id="be_transparent">Be Transparent</h2>
+
+<p>You should inform your users about what you’re accessing and why. Research shows
+that users are much less uncomfortable with permissions requests if they know
+why the app needs them. A user study showed that:</p>
+
+<div style="padding:.5em 2em;">
+<div style="border-left:4px solid #999;padding:0 1em;font-style:italic;">
+<p>...a user’s willingness to grant a given permission to a given mobile app is
+strongly influenced by the purpose associated with such a permission. For
+instance a user’s willingness to grant access to his or her location will vary
+based on whether the request is required to support the app’s core
+functionality or whether it is to share this information with an advertising
+network or an analytics company.<span
+style="font-size:.8em;color:#777"><sup><em><a
+  href="#references" style="color:#777;padding-left:.1em;">1</a></em></sup></span></p>
+</div>
+</div>
+
+<p>
+  Based on his group’s research, Professor Jason Hong from CMU concluded that,
+  in general:
+</p>
+
+<div style="padding:.5em 2em;">
+<div style="border-left:4px solid #999;padding:0 1em;font-style:italic;">
+<p>...when people know why an app is using something as sensitive as their location &mdash;
+for example, for targeted advertising &mdash; it makes them more comfortable than
+when simply told an app is using their location.<span
+style="font-size:.8em;color:#777"><sup><em><a
+  href="#references" style="color:#777;padding-left:.1em;">1</a></em></sup></span></p>
+</div>
+</div>
+
+<p>
+  As a result, if you’re only using a fraction of the API calls that fall under
+  a permission group, it helps to explicitly list which of those permissions
+  you're using, and why. For example:
+</p>
+
+<ul>
+  <li> If you’re only using coarse location, let the user know this in your app
+  description or in help articles about your app. </li>
+  <li> If you need access to SMS messages to receive authentication codes that
+  protect the user from fraud, let the user know this in your app description
+  and/or the first time you access the data.</li>
+</ul>
+
+<p>
+  Under certain conditions, it's also advantageous to let users know about
+  sensitive data accesses in real-time. For example, if you’re accessing the
+  camera or microphone, it’s usually a good idea to let the user know with a
+  notification icon somewhere in your app, or in the notification tray (if the
+  application is running in the background), so it doesn't seem like you're
+  collecting data surreptitiously.
+</p>
+
+<p>
+  Ultimately, if you need to request a permission to make something in your app
+  work, but the reason is not clear to the user, find a way to let the user
+  know why you need the most sensitive permissions.
+</p>
+
+<h2 id="references">References</h2>
+
+<p>
+  [1] <em>Modeling Users’ Mobile App Privacy Preferences: Restoring Usability
+  in a Sea of Permission Settings</em>, by J. Lin B. Liu, N. Sadeh and J. Hong.
+  In Proceedings of SOUPS 2014.
+</p>
diff --git a/docs/html/training/auto/audio/index.jd b/docs/html/training/auto/audio/index.jd
index d183f11..75974e4 100644
--- a/docs/html/training/auto/audio/index.jd
+++ b/docs/html/training/auto/audio/index.jd
@@ -210,6 +210,34 @@
 <p class="note"><strong>Note:</strong> The icon you provide should have transparency enabled, so the
 icon's background gets filled in with the app's primary color.</p>
 
+<h2 id=isconnected">Determine if Your App is Connected</h2>
+<p>
+It is possible to determine if your app is selected as the current media app.</p>
+<p>
+Android Auto broadcasts an intent with <code>com.google.android.gms.car.media.
+STATUS</code> action when a user connects or disconnects from a media app. The broadcast intent is
+scoped to the package name of the media app selected. You can register a broadcast receiver in your
+app, preferably in your <a href="{@docRoot}reference/android/service/media/MediaBrowserService.html">
+MediaBrowserService</a> implementation and listen for this intent
+and adjust advertisements, metadata, and UI buttons in your app to operate safely in a vehicle.</p>
+
+<p>The broadcasted intent has a String extra <code>media_connection_status</code>, that
+contains either <code>media_connected</code> or <code>media_disconnected</code> string that represents
+ the current connection status. </p>
+
+<pre>
+IntentFilter filter = new IntentFilter("com.google.android.gms.car.media.STATUS");
+BroadcastReceiver receiver = new BroadcastReceiver() {
+    ...
+    public void onReceive(Context context, Intent intent) {
+        String status = intent.getStringExtra("media_connection_status");
+        boolean isConnectedToCar = "media_connected".equals(status);
+        // adjust settings based on the connection status
+    }
+};
+registerReceiver(receiver, filter);
+</pre>
+
 
 <h2 id="implement_browser">Build a Browser Service</h2>
 
diff --git a/docs/html/training/basics/firstapp/building-ui.jd b/docs/html/training/basics/firstapp/building-ui.jd
index dcf3a16..a1e5783 100644
--- a/docs/html/training/basics/firstapp/building-ui.jd
+++ b/docs/html/training/basics/firstapp/building-ui.jd
@@ -71,10 +71,10 @@
 <h2 id="LinearLayout">Create a Linear Layout</h2>
 
 <ol>
-<li>In Android Studio, from the <code>res/layout</code> directory, open the <code>activity_my.xml</code>
+<li>In Android Studio, from the <code>res/layout</code> directory, open the {@code content_my.xml}
 file.
 <p>The BlankActivity template you chose when you created this project includes the
-<code>activity_my.xml</code> file with a {@link android.widget.RelativeLayout} root view and a
+<code>content_my.xml</code> file with a {@link android.widget.RelativeLayout} root view and a
 {@link android.widget.TextView} child view.</p>
 </li>
 <li>In the <strong>Preview</strong> pane, click the Hide icon <img src="{@docRoot}images/tools/as-hide-side.png"
@@ -92,14 +92,15 @@
 
 </p>The result looks like this:</p>
 
-<p class="code-caption">res/layout/activity_my.xml</p>
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="horizontal"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="horizontal" >
-&lt;/LinearLayout>
+    app:layout_behavior="@string/appbar_scrolling_view_behavior"
+    tools:showIn="@layout/activity_my"&gt;
 </pre>
 
 <p>{@link android.widget.LinearLayout} is a view group (a subclass of {@link
@@ -131,7 +132,7 @@
 the {@link android.widget.EditText} object's properties.</p>
 
 <ol>
-<li>In the <code>activity_my.xml</code> file, within the
+<li>In the <code>content_my.xml</code> file, within the
 {@link android.widget.LinearLayout &lt;LinearLayout>} element, define an
 {@link android.widget.EditText &lt;EditText>} element with the <code>id</code> attribute
 set to <code>@+id/edit_message</code>.</li>
@@ -142,7 +143,6 @@
 
 <p>The {@link android.widget.EditText &lt;EditText>} element should read as follows:</p>
 
-<p class="code-caption">res/layout/activity_my.xml</p>
 <pre>
 &lt;EditText android:id="@+id/edit_message"
     android:layout_width="wrap_content"
@@ -232,12 +232,10 @@
 <li>Add a line for a string named <code>"button_send"</code> with the value, "Send".
 <p>You'll create the button that uses this string in the next section.</p>
 </li>
-<li>Remove the line for the <code>"hello world"</code> string.</li>
 </ol>
 
 <p>The result for <code>strings.xml</code> looks like this:</p>
 
-<p class="code-caption">res/values/strings.xml</p>
 <pre>
 &lt;?xml version="1.0" encoding="utf-8"?>
 &lt;resources>
@@ -245,7 +243,6 @@
     &lt;string name="edit_message">Enter a message&lt;/string>
     &lt;string name="button_send">Send&lt;/string>
     &lt;string name="action_settings">Settings&lt;/string>
-    &lt;string name="title_activity_main">MainActivity&lt;/string>
 &lt;/resources>
 </pre>
 
@@ -264,7 +261,7 @@
 <h2 id="Button">Add a Button</h2>
 
 <ol>
-<li>In Android Studio, from the <code>res/layout</code> directory, edit the <code>activity_my.xml</code>
+<li>In Android Studio, from the <code>res/layout</code> directory, edit the <code>content_my.xml</code>
 file.</li>
 <li>Within the
 {@link android.widget.LinearLayout &lt;LinearLayout>} element, define a
@@ -280,21 +277,23 @@
 
 <p>Your {@link android.widget.LinearLayout &lt;LinearLayout>} should look like this:</p>
 
-<p class="code-caption">res/layout/activity_my.xml</p>
 <pre>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="horizontal"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="horizontal" &gt;
-      &lt;EditText android:id="@+id/edit_message"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:hint="@string/edit_message" /&gt;
-      &lt;Button
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/button_send" /&gt;
+    app:layout_behavior="@string/appbar_scrolling_view_behavior"
+    tools:showIn="@layout/activity_my"&gt;
+        &lt;EditText android:id="@+id/edit_message"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:hint="@string/edit_message" /&gt;
+        &lt;Button
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="@string/button_send" /&gt;
 &lt;/LinearLayout&gt;
 </pre>
 
@@ -303,8 +302,8 @@
 attribute, because it won't be referenced from the activity code.</p>
 
 <p>The layout is currently designed so that both the {@link android.widget.EditText} and {@link
-android.widget.Button} widgets are only as big as necessary to fit their content, as shown in
-figure 2.</p>
+android.widget.Button} widgets are only as big as necessary to fit their content, as Figure 2 shows.
+</p>
 
 <img src="{@docRoot}images/training/firstapp/edittext_wrap.png" />
 <p class="img-caption"><strong>Figure 2.</strong> The {@link android.widget.EditText} and {@link
@@ -339,13 +338,12 @@
 the following:</p>
 
 <ol>
-<li>In the <code>activity_my.xml</code> file, assign the
+<li>In the <code>content_my.xml</code> file, assign the
 {@link android.widget.EditText &lt;EditText>} element's <code>layout_weight</code> attribute a value
 of <code>1</code>.</li>
 <li>Also, assign {@link android.widget.EditText &lt;EditText>} element's <code>layout_width</code>
 attribute a value of <code>0dp</code>.
 
-<p class="code-caption">res/layout/activity_my.xml</p>
 <pre>
 &lt;EditText
     android:layout_weight="1"
@@ -371,16 +369,18 @@
 </li>
 </ol>
 
-<p>Here’s how your complete <code>activity_my.xml</code>layout file should now look:</p>
+<p>Here’s how your complete <code>content_my.xml</code>layout file should now look:</p>
 
-<p class="code-caption">res/layout/activity_my.xml</p>
 <pre>
 &lt;?xml version="1.0" encoding="utf-8"?>
 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="horizontal">
+   xmlns:app="http://schemas.android.com/apk/res-auto"
+   xmlns:tools="http://schemas.android.com/tools"
+   android:orientation="horizontal"
+   android:layout_width="match_parent"
+   android:layout_height="match_parent"
+   app:layout_behavior="@string/appbar_scrolling_view_behavior"
+   tools:showIn="@layout/activity_my"&gt;
     &lt;EditText android:id="@+id/edit_message"
         android:layout_weight="1"
         android:layout_width="0dp"
@@ -405,9 +405,9 @@
     style="vertical-align:baseline;margin:0; max-height:1em" />.</li>
   <li>Or from a command line, change directories to the root of your Android project and
 execute:
-<pre>
-ant debug
-adb install bin/MyFirstApp-debug.apk
+<pre class="no-pretty-print">
+$ ant debug
+adb install -r app/build/outputs/apk/app-debug.apk
 </pre></li>
 </ul>
 
diff --git a/docs/html/training/basics/firstapp/creating-project.jd b/docs/html/training/basics/firstapp/creating-project.jd
index 4bd92ee..be7c6124 100644
--- a/docs/html/training/basics/firstapp/creating-project.jd
+++ b/docs/html/training/basics/firstapp/creating-project.jd
@@ -53,16 +53,11 @@
       <li>If you don't have a project opened, in the <strong>Welcome</strong> screen, click <strong>
         New Project</strong>.</li>
       <li>If you have a project opened, from the <strong>File</strong> menu, select <strong>New
-        Project</strong>.</li>
+        Project</strong>. The <em>Create New Project</em> screen appears.</li>
     </ul>
   </li>
-  <div class="figure" style="width:420px">
-    <img src="{@docRoot}images/training/firstapp/studio-setup-1.png" alt="" />
-    <p class="img-caption"><strong>Figure 1.</strong> Configuring a new project in Android Studio.</p>
-  </div>
-  <li>Under <strong>Configure your new project</strong>, fill in the fields as shown in figure 1
-    and click <strong>Next</strong>.
-    <p>It will probably be easier to follow these lessons if you use the same values as shown.</p>
+  <li>Fill out the fields on the screen, and click <strong>Next</strong>.
+    <p>It is easier to follow these lessons if you use the same values as shown.</p>
     <ul>
       <li><strong>Application Name</strong> is the app name that appears to users.
           For this project, use "My First App."</li>
@@ -102,10 +97,10 @@
   </div>
   <li>Under <strong>Add an activity to &lt;<em>template</em>&gt;</strong>, select <strong>Blank
     Activity</strong> and click <strong>Next</strong>.</li>
-  <li>Under <strong>Choose options for your new file</strong>, change the
+  <li>Under <strong>Customize the Activity</strong>, change the
     <strong>Activity Name</strong> to <em>MyActivity</em>. The <strong>Layout Name</strong> changes
     to <em>activity_my</em>, and the <strong>Title</strong> to <em>MyActivity</em>. The
-    <strong>Menu Resource Name</strong> is <em>menu_my</em>. 
+    <strong>Menu Resource Name</strong> is <em>menu_my</em>.
    <li>Click the <strong>Finish</strong> button to create the project.</li>
 </ol>
 
@@ -114,10 +109,18 @@
 
 <dl>
   <dt><code>app/src/main/res/layout/activity_my.xml</code></dt>
-  <dd>This is the XML layout file for the activity you added when you created the project with Android
-    Studio. Following the New Project workflow, Android Studio presents this file with both a text
-    view and a preview of the screen UI. The file includes some default settings and a <code>TextView</code>
-    element that displays the message, "Hello world!"</dd>
+  <dd>This XML layout file is for the activity you added when you created the project
+  with Android Studio. Following the New Project workflow, Android Studio presents this file
+  with both a text
+    view and a preview of the screen UI. The file contains some default interface elements
+    from the material design library, including the
+    <a href="{@docRoot}training/appbar/index.html">app bar</a> and a floating action button.
+    It also includes a separate layout file with the main content.</dd>
+
+  <dt><code>app/src/main/res/layout/content_my.xml</code></dt>
+  <dd>This XML layout file resides in {@code activity_my.xml}, and contains some settings and
+  a {@code TextView} element that displays the message, "Hello world!".</dd>
+
   <dt><code>app/src/main/java/com.mycompany.myfirstapp/MyActivity.java</code></dt>
   <dd>A tab for this file appears in Android Studio when the New Project workflow finishes. When you
     select the file you see the class definition for the activity you created. When you build and
@@ -159,59 +162,24 @@
 <p>Note also the <code>/res</code> subdirectories that contain the
 <a href="{@docRoot}guide/topics/resources/overview.html">resources</a> for your application:</p>
 <dl>
-  <dt><code>drawable<em>&lt;density&gt;</em>/</code></dt>
-    <dd>Directories for drawable objects (such as bitmaps) that are designed for various densities,
-    such as medium-density (mdpi) and high-density (hdpi) screens. Other drawable directories
-    contain assets designed for other screen densities.
-    Here you'll find the ic_launcher.png that appears when you run the default app.</dd>
+  <dt><code>drawable<em>-&lt;density&gt;</em>/</code></dt>
+    <dd>Directories for <a href="{@docRoot}guide/topics/resources/drawable-resource.html">
+    drawable resources</a>, other than launcher icons, designed
+    for various <a href="{@docRoot}training/multiscreen/screendensities.html">densities</a>.
+</dd>
   <dt><code>layout/</code></dt>
-    <dd>Directory for files that define your app's user interface like activity_my.xml,
-      discussed above, which describes a basic layout for the MyActivity class.</dd>
+    <dd>Directory for files that define your app's user interface like {@code activity_my.xml},
+      discussed above, which describes a basic layout for the {@code MyActivity}
+      class.</dd>
   <dt><code>menu/</code></dt>
     <dd>Directory for files that define your app's menu items.</dd>
+  <dt><code>mipmap/</code></dt>
+    <dd>Launcher icons reside in the {@code mipmap/} folder rather than the
+    {@code drawable/} folders. This folder contains the {@code ic_launcher.png} image
+    that appears when you run the default app.</dd>
   <dt><code>values/</code></dt>
     <dd>Directory for other XML files that contain a collection of resources, such as
-      string and color definitions. The strings.xml file defines the "Hello world!" string that
-      displays when you run the default app.</dd>
+      string and color definitions.</dd>
 </dl>
 
 <p>To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
-
-<h2 id="CommandLine">Create a Project with Command Line Tools</h2>
-
-<p>If you're not using the Android Studio IDE, you can instead create your project
-using the SDK tools from a command line:</p>
-
-<ol>
-  <li>Change directories into the Android SDK’s <code>sdk/</code> path.</li>
-  <li>Execute:
-<pre class="no-pretty-print">tools/android list targets</pre>
-<p>This prints a list of the available Android platforms that you’ve downloaded for your SDK. Find
-the platform against which you want to compile your app. Make a note of the target ID. We
-recommend that you select the highest version possible. You can still build your app to
-support older versions, but setting the build target to the latest version allows you to optimize
-your app for the latest devices.</p>
-<p>If you don't see any targets listed, you need to
-install some using the Android SDK
-Manager tool. See <a href="{@docRoot}sdk/installing/adding-packages.html">Adding SDK
-  Packages</a>.</p></li>
-  <li>Execute:
-<pre class="no-pretty-print">
-android create project --target &lt;target-id> --name MyFirstApp \
---path &lt;path-to-workspace>/MyFirstApp --activity MyActivity \
---package com.example.myfirstapp
-</pre>
-<p>Replace <code>&lt;target-id></code> with an ID from the list of targets (from the previous step)
-and replace
-<code>&lt;path-to-workspace></code> with the location in which you want to save your Android
-projects.</p></li>
-</ol>
-
-<p class="note"><strong>Tip:</strong> Add the <code>platform-tools/</code> as well as the
-<code>tools/</code> directory to your <code>PATH</code> environment variable.</p>
-
-<p>Your Android project is now a basic "Hello World" app that contains some default files.
-To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
-
-
-
diff --git a/docs/html/training/basics/firstapp/running-app.jd b/docs/html/training/basics/firstapp/running-app.jd
index 6e4605f..74ec48d 100644
--- a/docs/html/training/basics/firstapp/running-app.jd
+++ b/docs/html/training/basics/firstapp/running-app.jd
@@ -88,7 +88,7 @@
   using the Gradle wrapper script (<code>gradlew assembleRelease</code>).
 
   <p>This creates your debug <code>.apk</code> file inside the module <code>build/</code>
-  directory, named <code>MyFirstApp-debug.apk</code>.  </p>
+  directory, named <code>app-debug.apk</code>.  </p>
 
   <p>On Windows platforms, type this command:</p>
 
@@ -112,7 +112,7 @@
 
   <p>Make sure the Android SDK <code>platform-tools/</code> directory is included in your
   <code>PATH</code> environment variable, then execute:
-  <pre class="no-pretty-print">adb install app/build/outputs/MyFirstApp-debug.apk</pre><p>
+  <pre class="no-pretty-print">$ adb install app/build/outputs/apk/app-debug.apk</pre><p>
   <p>On your device, locate <em>MyFirstApp</em> and open it.</p>
 
 <p>That's how you build and run your Android app on a device!
@@ -134,7 +134,9 @@
   <li>Launch the Android Virtual Device Manager:
     <ul>
       <li>In Android Studio, select <strong>Tools &gt; Android &gt; AVD Manager</strong>, or click
-  the AVD Manager icon <img src="{@docRoot}images/tools/avd-manager-studio.png" style="vertical-align:bottom;margin:0;height:19px"> in the toolbar.</li>
+  the AVD Manager icon <img src="{@docRoot}images/tools/avd-manager-studio.png"
+  style="vertical-align:bottom;margin:0;height:19px"> in the toolbar. The
+  <em>AVD Manager</em> screen appears.</li>
       <li>Or, from the command line, change directories to
       <code>sdk/</code> and execute:
         <pre class="no-pretty-print">tools/android avd</pre>
@@ -144,12 +146,8 @@
         </li>
     </ul>
 
-  <img src="{@docRoot}images/studio-avdmgr-firstscreen.png" alt=""
-  style="margin-top:1em">
-  <p class="img-caption"><strong>Figure 1.</strong> The AVD Manager main screen shows your current virtual devices.</p>
-
   </li>
-  <li>On the AVD Manager main screen (figure 1), click <strong>Create Virtual Device</strong>.</li>
+  <li>On the AVD Manager main screen, click <strong>Create Virtual Device</strong>.</li>
   <li>In the Select Hardware window, select a device configuration, such as Nexus 6,
   then click <strong>Next</strong>.
   </li>
@@ -183,8 +181,8 @@
   <code>PATH</code> environment variable.</li>
   <li>Execute this command:
    <p>
-   <pre class="no-pretty-print">adb install app/build/outputs/MyFirstApp-debug.apk</pre>
-   </p> 
+   <pre class="no-pretty-print">$ adb install app/build/outputs/apk/apk-debug.apk</pre>
+   </p>
   </li>
   <li>On the emulator, locate <em>MyFirstApp</em> and open it.</li>
  </ol>
diff --git a/docs/html/training/basics/firstapp/starting-activity.jd b/docs/html/training/basics/firstapp/starting-activity.jd
index 041d06f..b67effa 100644
--- a/docs/html/training/basics/firstapp/starting-activity.jd
+++ b/docs/html/training/basics/firstapp/starting-activity.jd
@@ -47,13 +47,13 @@
 <h2 id="RespondToButton">Respond to the Send Button</h2>
 
 <ol>
-<li>In Android Studio, from the <code>res/layout</code> directory, edit the <code>activity_my.xml</code>
+<li>In Android Studio, from the <code>res/layout</code> directory, edit the <code>content_my.xml</code>
 file.</li>
-<li>To the {@link android.widget.Button &lt;Button>} element, add the <a
+<li>Add the <a
 href="{@docRoot}reference/android/view/View.html#attr_android:onClick">{@code android:onClick}</a>
-attribute.
+attribute to the {@link android.widget.Button &lt;Button&gt;} element.
 
-<p class="code-caption">res/layout/activity_my.xml</p>
+<p class="code-caption">res/layout/content_my.xml</p>
 <pre>
 &lt;Button
     android:layout_width="wrap_content"
@@ -253,13 +253,9 @@
 
 <h3>Create a new activity using Android Studio</h3>
 
-<div class="figure" style="width:400px">
-<img src="{@docRoot}images/training/firstapp/studio-new-activity.png" alt="" />
-<p class="img-caption"><strong>Figure 1.</strong> The new activity wizard in Android Studio.</p>
-</div>
-
 <p>Android Studio includes a stub for the
-{@link android.app.Activity#onCreate onCreate()} method when you create a new activity.</p>
+{@link android.app.Activity#onCreate onCreate()} method when you create a new activity. The
+<em>New Android Activity</em> window appears.</p>
 
 <ol>
   <li>In Android Studio, in the <code>java</code> directory, select the package,
@@ -279,10 +275,8 @@
 <li>Open the {@code DisplayMessageActivity.java} file.
 
 <p>The class already includes an implementation of the required
-{@link android.app.Activity#onCreate onCreate()} method. You will update the implementation of this
-method later. It also includes an implementation of
-{@link android.app.Activity#onOptionsItemSelected onOptionsItemSelected()}, which handles the app
-bar's <em>Up</em> behavior. Keep these two methods as they are for now.</p>
+{@link android.app.Activity#onCreate onCreate()} method. You update the implementation of this
+method later.</p>
 
 <!-- Android Studio does not create a Fragment placeholder
 <p>Also, the file includes a <code>PlaceholderFragment</code> class that extends
@@ -294,10 +288,6 @@
 </p>
 -->
 </li>
-
-<li> Remove the {@link android.app.Activity#onCreateOptionsMenu onCreateOptionsMenu()} method.
-<p>You won't need it for this app.</p>
-</li>
 </ol>
 
 <!-- Not needed for Android Studio
@@ -437,10 +427,6 @@
 <ol>
 <li>In the <code>java/com.mycompany.myfirstapp</code> directory, edit the
   {@code DisplayMessageActivity.java} file.</li>
-<li>In the {@link android.app.Activity#onCreate onCreate()} method, remove the following line:
-<pre>
-  setContentView(R.layout.activity_display_message);
-</pre>
 <li>Get the intent and assign it to a local variable.
 <pre>
 Intent intent = getIntent();
@@ -460,6 +446,19 @@
 <h2 id="DisplayMessage">Display the Message</h2>
 
 <ol>
+<li>In the res/layout directory, edit the {@code content_display_message.xml} file.</li>
+<li>Add an {@code android:id} attribute to the {@code RelativeLayout}.
+You need this attribute to reference the object from your app code.</li>
+
+<pre>
+&lt; RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+...
+android:id="@+id/content"&gt;
+&lt;/RelativeLayout&gt;
+</pre>
+<li>Switch back to editing {@code DisplayMessageActivity.java}.</li>
+
+
 <li>In the {@link android.app.Activity#onCreate onCreate()} method, create a {@link android.widget.TextView} object.
 <pre>
 TextView textView = new TextView(this);
@@ -471,10 +470,11 @@
 textView.setText(message);
 </pre>
 </li>
-<li>Then add the {@link android.widget.TextView} as the root view of the activity’s layout by
-passing it to {@link android.app.Activity#setContentView setContentView()}.
+<li>Add the {@link android.widget.TextView} to the {@link android.widget.RelativeLayout}
+identified by {@code R.id.content}.
 <pre>
-setContentView(textView);
+RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
+layout.addView(textView);
 </pre>
 </li>
 <li>At the top of the file, import the {@link android.widget.TextView} class.
@@ -487,29 +487,36 @@
 
 <pre>
 &#64;Override
-public void onCreate(Bundle savedInstanceState) {
-    super.onCreate(savedInstanceState);
+protected void onCreate(Bundle savedInstanceState) {
+   super.onCreate(savedInstanceState);
+   setContentView(R.layout.activity_display_message);
+   Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+   setSupportActionBar(toolbar);
 
-    // Get the message from the intent
-    Intent intent = getIntent();
-    String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);
+   FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+   fab.setOnClickListener(new View.OnClickListener() {
+       &#64;Override
+       public void onClick(View view) {
+           Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+                   .setAction("Action", null)
+                   .show();
+       }
+   });
+   getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 
-    // Create the text view
-    TextView textView = new TextView(this);
-    textView.setTextSize(40);
-    textView.setText(message);
+   Intent intent = getIntent();
+   String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);
+   TextView textView = new TextView(this);
+   textView.setTextSize(40);
+   textView.setText(message);
 
-    // Set the text view as the activity layout
-    setContentView(textView);
-}
+   RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
+   layout.addView(textView);
 </pre>
 
-<p>You can now run the app. When it opens, type a message in the text field, click Send,
-  and the message appears on the second activity.</p>
-
-<img src="{@docRoot}images/training/firstapp/firstapp.png" />
-<p class="img-caption"><strong>Figure 2.</strong> Both activities in the final app, running
-on Android 4.4.
+<p>You can now run the app. When it opens, type a message in the text field, and click
+<strong>Send</strong>. The second activity replaces the first one on the screen, showing
+the message you entered in the first activity.</p>
 
 <p>That's it, you've built your first Android app!</p>
 
diff --git a/docs/html/training/best-permissions-ids.jd b/docs/html/training/best-permissions-ids.jd
new file mode 100644
index 0000000..e98c095
--- /dev/null
+++ b/docs/html/training/best-permissions-ids.jd
@@ -0,0 +1,9 @@
+page.title=Best Practices for Permissions and Identifiers
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>The articles below highlight key guidelines for using permissions
+and identifiers properly in your apps.</p>
\ No newline at end of file
diff --git a/docs/html/training/contacts-provider/retrieve-names.jd b/docs/html/training/contacts-provider/retrieve-names.jd
old mode 100644
new mode 100755
index d97b81b..49d6e95
--- a/docs/html/training/contacts-provider/retrieve-names.jd
+++ b/docs/html/training/contacts-provider/retrieve-names.jd
@@ -230,7 +230,7 @@
     {@link android.provider.ContactsContract.Contacts#DISPLAY_NAME_PRIMARY
     Contacts.DISPLAY_NAME_PRIMARY} requires Android 3.0 (API version 11) or later, setting your
     app's <code>minSdkVersion</code> to 10 or below generates an Android Lint warning in
-    Eclipse with ADK. To turn off this warning, add the annotation
+    Android Studio. To turn off this warning, add the annotation
     <code>@SuppressLint("InlinedApi")</code> before the definition of <code>FROM_COLUMNS</code>.
 </p>
 <h3 id="InitializeFragment">Initialize the Fragment</h3>
diff --git a/docs/html/training/custom-views/create-view.jd b/docs/html/training/custom-views/create-view.jd
old mode 100644
new mode 100755
index d9eebf5..1b26ddf
--- a/docs/html/training/custom-views/create-view.jd
+++ b/docs/html/training/custom-views/create-view.jd
@@ -61,8 +61,7 @@
     existing view
     subclasses, such as {@link android.widget.Button}.</p>
 
-<p>To allow the <a href="{@docRoot}guide/developing/tools/adt.html">Android Developer Tools
-</a> to interact with your view, at a minimum you must provide a constructor that takes a
+<p>To allow Android Studio to interact with your view, at a minimum you must provide a constructor that takes a
 {@link android.content.Context} and an {@link android.util.AttributeSet} object as parameters.
 This constructor allows the layout editor to create and edit an instance of your view.</p>
 
@@ -146,16 +145,10 @@
         <p>In order to avoid having to repeat the long namespace URI, the sample uses an {@code
             xmlns} directive. This
             directive assigns the alias {@code custom} to the namespace {@code
-            http://schemas.android.com/apk/res-auto}. You can choose any alias
+            http://schemas.android.com/apk/res/com.example.customviews}. You can choose any alias
             you want for your
             namespace.</p>
 
-<p class="note"><strong>Note:</strong> If you are not using Gradle to build
-your project, your {@code xlmns} URI cannot include {@code res-auto}.
-Instead, the URI must contain the fully qualified name of your project. In
-this example, the non-Gradle URI would be:
-{@code http://schemas.android.com/apk/res/com.example.customviews}.</p> 
-
         <p>Notice the name of the XML tag that adds the custom view to the layout. It is the fully
             qualified name of the
             custom view class. If your view class is an inner class, you must further qualify it with the name of the view's outer class.
diff --git a/docs/html/training/custom-views/index.jd b/docs/html/training/custom-views/index.jd
old mode 100644
new mode 100755
index 87cd0b0..f732adb
--- a/docs/html/training/custom-views/index.jd
+++ b/docs/html/training/custom-views/index.jd
@@ -48,7 +48,7 @@
 <dl>
 <dt><b><a href="create-view.html">Creating a View Class</a></b></dt>
 <dd>Create a class that acts like a built-in view, with custom
-    attributes and support from the <a href="http://developer.android.com/sdk/eclipse-adt.html">ADT</a> layout editor.
+    attributes and support from the <a href="http://developer.android.com/sdk/installing/studio-layout.html">Android Studio</a> layout editor.
 </dd>
 
 <dt><b><a href="custom-drawing.html">Custom Drawing</a></b></dt>
diff --git a/docs/html/training/design-navigation/wireframing.jd b/docs/html/training/design-navigation/wireframing.jd
old mode 100644
new mode 100755
index 1801f91..201d9e4
--- a/docs/html/training/design-navigation/wireframing.jd
+++ b/docs/html/training/design-navigation/wireframing.jd
@@ -78,9 +78,6 @@
   <li>What's the learning curve? Professional vector illustration tools may have a steep learning curve, while tools designed for wireframing may offer a smaller set of features that are more relevant to the task.</li>
 </ul>
 
-<p>Lastly, the XML Layout Editor that comes with the <a href="{@docRoot}tools/help/adt.html">Android Development Tools (ADT)</a> plugin for Eclipse can often be used for prototyping. However, you should be careful to focus more on the high-level layout and less on visual design details at this point.</p>
-
-
 <h2 id="wireframe-digital">Create Digital Wireframes</h2>
 
 <p>After sketching out layouts on paper and choosing a digital wireframing tool that works for you, you can create the digital wireframes that will serve as the starting point for your application's visual design. Below are example wireframes for our news application, corresponding one-to-one with our screen maps from earlier in this lesson.</p>
diff --git a/docs/html/training/enterprise/work-policy-ctrl.jd b/docs/html/training/enterprise/work-policy-ctrl.jd
index 5854e65..8225ea3 100644
--- a/docs/html/training/enterprise/work-policy-ctrl.jd
+++ b/docs/html/training/enterprise/work-policy-ctrl.jd
@@ -1,5 +1,6 @@
-page.title=Building a Work Policy Controller
-page.metaDescription=Learn how to develop a Work Policy Controller to create and administer a managed profile on an employee's device.
+page.title=Building a Device Policy Controller
+page.metaDescription=Learn how to develop a device policy controller to create and administer a managed profile on an employee's device.
+page.tags="work policy controller,WPC,device policy controller,DPC"
 @jd:body
 
 <div id="tb-wrapper">
@@ -54,8 +55,9 @@
 </p>
 
 <p>
-  To handle these tasks, an enterprise develops and deploys a Work Policy
-  Controller app. This app is installed on each employee's device. The
+  To handle these tasks, an enterprise develops and deploys
+  a <em>device policy controller</em> app (previously known as a
+  <em>work policy controller</em>). This app is installed on each employee's device. The
   controller app installed on each employee's device and creates a work user
   profile, which accesses enterprise apps and data separately from the user's
   personal account. The controller app also acts as the
@@ -66,7 +68,7 @@
 </p>
 
 <p>
-  This lesson describes how to develop a Work Policy Controller app for devices
+  This lesson describes how to develop a device policy controller app for devices
   in an Android for Work deployment. The lesson describes how to create a work
   user profile, how to set device policies, and how to apply
   restrictions to other apps running on the managed profile.
@@ -85,13 +87,13 @@
   policies to control the behavior of employees' devices and apps. The
   enterprise administrator sets these policies with software provided by their
   Enterprise Mobility Management (EMM) provider. The EMM software communicates
-  with a Work Policy Controller on each device. The Work Policy Controller, in
+  with a device policy controller on each device. The device policy controller, in
   turn, manages the settings and behavior of the work user profile on each
   individual’s device.
 </p>
 
 <p class="note">
-  <strong>Note:</strong> A Work Policy Controller is built on the existing
+  <strong>Note:</strong> A device policy controller is built on the existing
   model used for device administration applications, as described in <a href=
   "{@docRoot}guide/topics/admin/device-admin.html">Device Administration</a>.
   In particular, your app needs to create a subclass of {@link
@@ -177,7 +179,7 @@
   <li>Removes non-required applications from the managed profile.
   </li>
 
-  <li>Copies the Work Policy Controller application into the managed profile and
+  <li>Copies the device policy controller app into the managed profile and
     sets it as the profile owner.
   </li>
 </ul>
@@ -209,9 +211,8 @@
 
 <h3 id="after_creating_profile">After Creating the Managed Profile</h3>
 
-<p>When the profile has been provisioned, the system calls the Work Policy
-Controller app's {@link
-android.app.admin.DeviceAdminReceiver#onProfileProvisioningComplete
+<p>When the profile has been provisioned, the system calls the device policy
+controller app's {@link android.app.admin.DeviceAdminReceiver#onProfileProvisioningComplete
 DeviceAdminReceiver.onProfileProvisioningComplete()} method. Override this
 callback method to finish enabling the managed profile.</p>
 
@@ -257,7 +258,7 @@
 <h2 id="set_up_policies">Set Up Device Policies</h2>
 
 <p>
-  The Work Policy Controller app is responsible for applying the enterprise's
+  The device policy controller app is responsible for applying the enterprise's
   device policies. For example, a particular enterprise might require that all
   devices become locked after a certain number of failed attempts to enter the
   device password. The controller app queries the EMM to find out what
@@ -273,13 +274,12 @@
 
 <h2 id="apply_restrictions">Apply App Restrictions</h2>
 
-<p>Enterprise environments may require that approved apps implement apps
-implement security or feature restrictions. App developers must implement these
-restrictions and declare them for use by enterprise administrators, as described
-in <a href="{@docRoot}training/enterprise/app-restrictions.html">Implementing
-App Restrictions</a>. The Work Policy Controller receives restriction changes
-from the enterprise administrator, and forwards those restriction changes to the
-apps.</p>
+<p>Enterprise environments may require that approved apps implement security
+or feature restrictions. App developers must implement these restrictions
+and declare them for use by enterprise administrators, as described in
+<a href="{@docRoot}training/enterprise/app-restrictions.html">Implementing
+App Restrictions</a>. The device policy controller receives restriction changes
+from the enterprise administrator, and forwards those restriction changes to the apps.</p>
 
 <p>For example, a particular news app might have a restriction setting that
 controls whether the app is allowed to download videos over a cellular
@@ -287,9 +287,9 @@
 notification to the controller app. The controller app, in turn,
 notifies the news app that the restriction setting has changed.</p>
 
-<p class="note"><strong>Note:</strong> This document covers how the Work Policy
-Controller app changes the restriction settings for the other apps on the
-managed profile. Details on how the Work Policy Controller app communicates with
+<p class="note"><strong>Note:</strong> This document covers how the device policy
+controller app changes the restriction settings for the other apps on the
+managed profile. Details on how the device policy controller app communicates with
 the EMM are out of scope for this document.</p>
 
 <p>To change an app's restrictions, call the {@link
@@ -308,7 +308,7 @@
 a cellular network; it must use a Wi-Fi network instead.</p>
 
 <p>
-  If your Work Policy Controller app needs to turn off cellular downloads, it
+  If your device policy controller app needs to turn off cellular downloads, it
   would first fetch the device policy service object, as described above. It
   then assembles a restrictions bundle and passes this bundle to {@link
   android.app.admin.DevicePolicyManager#setApplicationRestrictions
diff --git a/docs/html/training/in-app-billing/preparing-iab-app.jd b/docs/html/training/in-app-billing/preparing-iab-app.jd
old mode 100644
new mode 100755
index ca33008..2c6e9a0
--- a/docs/html/training/in-app-billing/preparing-iab-app.jd
+++ b/docs/html/training/in-app-billing/preparing-iab-app.jd
@@ -84,9 +84,9 @@
 <p>To add the In-app Billing Version 3 library to your new In-app Billing project:</p>
 <ol>
 <li>Copy the {@code TrivialDrive} sample files into your Android project.</li>
-<li>Modify the package name in the files you copied to use the package name for your project. In Eclipse, you can use this shortcut: right-click the package name, then  select <strong>Refactor</strong> > <strong>Rename</strong>.</li>
+<li>Modify the package name in the files you copied to use the package name for your project. In Android Studio, you can use this shortcut: right-click the package name, then  select <strong>Refactor</strong> > <strong>Rename</strong>.</li>
 <li>Open the {@code AndroidManifest.xml} file and update the package attribute value to use the package name for your project.</li>
-<li>Fix import statements as needed so that your project compiles correctly.  In Eclipse, you can use this shortcut: press <strong>Ctrl+Shift+O</strong> in each file showing errors.</li>
+<li>Fix import statements as needed so that your project compiles correctly.  In Android Studio, you can use this shortcut: press <strong>Ctrl+Shift+O</strong> in each file showing errors.</li>
 <li>Modify the sample to create your own application. Remember to copy the Base64 public license key for your application from the Developer Console over to your {@code MainActivity.java}.</li>
 </ol>
 
@@ -98,7 +98,6 @@
   <li>In Android Studio: Create a directory named {@code aidl} under {@code src/main}, add a new
   package {@code com.android.vending.billing} in this directory, and import the
   {@code IInAppBillingService.aidl} file into this package.</li>
-  <li>In Eclipse: Import the {@code IInAppBillingService.aidl} file into your {@code /src} directory.</li>
   <li>In other dev environments: Create the following directory {@code /src/com/android/vending/billing} and copy the {@code IInAppBillingService.aidl} file into this directory.</li>
   </ul>
 </li>
diff --git a/docs/html/training/index.jd b/docs/html/training/index.jd
index 16658b9..7673a37 100644
--- a/docs/html/training/index.jd
+++ b/docs/html/training/index.jd
@@ -27,10 +27,10 @@
   </div>
 </div>
 
-<div style="clear:left"></div>
-</div>
+<div style="clear:left" id="classes"></div>
 
-  <div><h2 class="norule">Online video courses</h2>
+<section class="dac-section dac-small" id="latest-games"><div class="wrap">
+  <h2 class="norule">Online video courses</h2>
   <p>If you prefer to learn through interactive video training,
     check out these free courses.</p>
   <div class="resource-widget resource-flow-layout col-16"
@@ -38,5 +38,7 @@
        data-sortOrder="random"
        data-cardSizes="6x6"
        data-maxResults="24"
+       data-items-per-page="24"
        data-initial-results="6"></div>
-</div>
\ No newline at end of file
+  </div>
+</section>
\ No newline at end of file
diff --git a/docs/html/training/location/change-location-settings.jd b/docs/html/training/location/change-location-settings.jd
new file mode 100644
index 0000000..70733eb
--- /dev/null
+++ b/docs/html/training/location/change-location-settings.jd
@@ -0,0 +1,251 @@
+page.title=Changing Location Settings
+trainingnavtop=true
+@jd:body
+
+<div id="tb-wrapper">
+  <div id="tb">
+
+  <h2>This lesson teaches you how to</h2>
+  <ol>
+    <li><a href="#connect">Connect to Location Services</a></li>
+    <li><a href="#location-request">Set Up a Location Request</a></li>
+    <li><a href="#get-settings">Get Current Location Settings</a></li>
+    <li><a href="#prompt">Prompt the User to Change Location Settings</a></li>
+  </ol>
+
+  <h2>You should also read</h2>
+  <ul>
+    <li>
+      <a href="https://developers.google.com/android/guides/setup"
+      class="external-link">Setting up Google Play Services</a>
+    </li>
+    <li>
+      <a href="retrieve-current.html">Getting the Last Known Location</a>
+    </li>
+   </ul>
+  </div>
+</div>
+
+<p>If your app needs to request location or receive permission updates, the
+  device needs to enable the appropriate system settings, such as GPS or Wi-Fi
+  scanning. Rather than directly enabling services such as the device's GPS,
+  your app specifies the required level of accuracy/power consumption and
+  desired update interval, and the device automatically makes the appropriate
+  changes to system settings. These settings are defined by the
+  <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest"
+  class="external-link">{@code LocationRequest}</a>
+  data object. </p>
+
+<p>This lesson shows you how to use the
+  <a href="https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi">Settings API</a>
+  to check which settings are enabled, and present the Location Settings
+  dialog for the user to update their settings with a single tap.</p>
+
+<h2 id="connect">Connect to Location Services</h2>
+
+<p>In order to use the location services provided by Google Play Services and
+  the fused location provider, connect your app using the
+  <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient">Google API Client</a>,
+  then check the current location settings and prompt the user to enable the
+  required settings if needed. For details on connecting with the
+  Google API client, see <a href="retrieve-current.html">Getting the Last Known Location</a>.</p>
+
+<p>Apps that use location services must request location permissions. For this
+  lesson, coarse location detection is sufficient. Request this permission
+  with the <code>uses-permission</code> element in your app manifest, as shown
+  in the following example:</p>
+
+<pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+  package="com.google.android.gms.location.sample.locationupdates" &gt;
+
+  &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
+&lt;/manifest&gt;
+</code></pre>
+
+<p>If the device is running Android 6.0 or higher, and your app's target
+  SDK is 23 or higher, the app has to list the permissions in the manifest
+  <em>and</em> request those permissions at run time. For more information, see
+<a href="{@docRoot}training/permissions/requesting.html">Requesting Permissions at Run Time</a>.</p>
+
+<h2 id="location-request">Set Up a Location Request</h2>
+
+<p>To store parameters for requests to the fused location provider, create a
+  <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html">{@code LocationRequest}</a>.
+  The parameters determine the level of accuracy for location requests. For
+  details of all available location request options, see the
+  <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html">{@code LocationRequest}</a>
+  class reference. This lesson sets the update interval, fastest update
+  interval, and priority, as described below:</p>
+
+<dl>
+  <dt>
+    Update interval
+  </dt>
+  <dd>
+    <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)">{@code setInterval()}</a>
+    - This method sets the rate in milliseconds at which your app prefers to
+    receive location updates. Note that the location updates may be faster than
+    this rate if another app is receiving updates at a faster rate, or slower
+    than this rate, or there may be no updates at all (if the device has no
+    connectivity, for example).
+  </dd>
+  <dt>
+    Fastest update interval
+  </dt>
+  <dd>
+    <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setFastestInterval(long)">{@code setFastestInterval()}</a>
+    - This method sets the <strong>fastest</strong> rate in milliseconds at which
+    your app can handle location updates. You need to set this rate because
+    other apps also affect the rate at which updates are sent. The Google Play
+    services location APIs send out updates at the fastest rate that any app
+    has requested with
+    <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)">{@code setInterval()}</a>.
+    If this rate is faster
+    than your app can handle, you may encounter problems with UI flicker or data
+    overflow. To prevent this, call
+    <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setFastestInterval(long)">{@code setFastestInterval()}</a>
+    to set an upper limit to the update rate.
+  </dd>
+  <dt>Priority</dt>
+  <dd>
+    <p>
+      <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">{@code setPriority()}</a>
+      - This method sets the priority of the request, which gives the Google Play
+      services location services a strong hint about which location sources to use.
+      The following values are supported:</p>
+      <ul>
+        <li>
+          <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_BALANCED_POWER_ACCURACY">{@code PRIORITY_BALANCED_POWER_ACCURACY}</a>
+          - Use this setting to request location precision to within a city
+          block, which is an accuracy of approximately 100 meters. This is
+          considered a coarse level of accuracy, and is likely to consume less
+          power. With this setting, the location services are likely to use WiFi
+          and cell tower positioning. Note, however, that the choice of location
+          provider depends on many other factors, such as which sources are
+          available.</li>
+        <li>
+          <a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_HIGH_ACCURACY">{@code PRIORITY_HIGH_ACCURACY}</a>
+          - Use this setting to request the most precise location possible. With
+          this setting, the location services are more likely to use GPS
+          to determine the location.</li>
+        <li><a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_LOW_POWER">{@code PRIORITY_LOW_POWER}</a>
+          - Use this setting to request city-level precision, which is
+          an accuracy of approximately 10 kilometers. This is considered a
+          coarse level of accuracy, and is likely to consume less power.</li>
+        <li><a href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_NO_POWER">{@code PRIORITY_NO_POWER}</a>
+          - Use this setting if you need negligible impact on power consumption,
+          but want to receive location updates when available. With this
+          setting, your app does not trigger any location updates, but
+          receives locations triggered by other apps.</li>
+      </ul>
+  </dd>
+</dl>
+
+<p>Create the location request and set the parameters as shown in this
+  code sample:</p>
+
+<pre>
+protected void createLocationRequest() {
+    LocationRequest mLocationRequest = new LocationRequest();
+    mLocationRequest.setInterval(10000);
+    mLocationRequest.setFastestInterval(5000);
+    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
+}
+</pre>
+
+<p>The priority of
+  <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_HIGH_ACCURACY">{@code PRIORITY_HIGH_ACCURACY}</a>,
+  combined with the
+  {@link android.Manifest.permission#ACCESS_FINE_LOCATION ACCESS_FINE_LOCATION}
+  permission setting that you've defined in the app manifest, and a fast update
+  interval of 5000 milliseconds (5 seconds), causes the fused location
+  provider to return location updates that are accurate to within a few feet.
+  This approach is appropriate for mapping apps that display the location in
+  real time.</p>
+
+<p class="note"><strong>Performance hint:</strong> If your app accesses the
+  network or does other long-running work after receiving a location update,
+  adjust the fastest interval to a slower value. This adjustment prevents your
+  app from receiving updates it can't use. Once the long-running work is done,
+  set the fastest interval back to a fast value.</p>
+
+<h2 id="get-settings">Get Current Location Settings</h2>
+
+<p>Once you have connected to Google Play services and the location services
+    API, you can get the current location settings of a user's device. To do
+    this, create a
+    <a href="{@docRoot}reference/com/google/android/gms/location/LocationSettingsRequest.Builder"><code>LocationSettingsRequest.Builder</code></a>,
+    and add one or more location requests. The following code snippet shows how
+    to add the location request that was created in the previous step:</p>
+
+<pre>LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
+     .addLocationRequest(mLocationRequest);
+</pre>
+
+<p>Next check whether the current location settings are satisfied:</p>
+
+<pre>PendingResult&lt;LocationSettingsResult&gt; result =
+         LocationServices.SettingsApi.checkLocationSettings(mGoogleClient,
+                 builder.build());</pre>
+
+<p>When the <a href="{@docRoot}reference/com/google/android/gms/common/api/PendingResult"><code>PendingResult</code></a>
+  returns, your app can check the location settings by looking at the status
+  code from the <a href="{@docRoot}reference/com/google/android/gms/location/LocationSettingsResult"><code>LocationSettingsResult</code></a>
+  object. To get even more details about the the current state of the relevant
+  location settings, your app can call the
+  <a href="{@docRoot}reference/com/google/android/gms/location/LocationSettingsResult">{@code LocationSettingsResult}</a>
+  object's
+  <a href="{@docRoot}reference/com/google/android/gms/location/LocationSettingsResult#getLocationSettingsStates"><code>getLocationSettingsStates()</code></a>
+  method.</p>
+
+<h2 id="prompt">Prompt the User to Change Location Settings</h2>
+
+<p>To determine whether the location settings are appropriate for the location
+  request, check the status code from the
+  <a href="{@docRoot}reference/com/google/android/gms/location/LocationSettingsResult">{@code LocationSettingsResult}</a>
+  object. A status code of <code>RESOLUTION_REQUIRED</code> indicates that the
+  settings must be changed. To prompt the user for permission to modify the
+  location settings, call
+  <a href="{@docRoot}reference/com/google/android/gms/common/api/Status#startResolutionForResult(android.app.Activity, int)">
+            {@code startResolutionForResult(Activity, int)}</a>.
+  This method brings up a dialog asking for the user's permission to modify
+  location settings. The following code snippet shows how to check the location
+  settings, and how to call {@code startResolutionForResult(Activity, int)}.
+</p>
+
+<pre>result.setResultCallback(new ResultCallback&lt;LocationSettingsResult&gt;()) {
+     &#64;Override
+     public void onResult(LocationSettingsResult result) {
+         final Status status = result.getStatus();
+         final LocationSettingsStates = result.getLocationSettingsStates();
+         switch (status.getStatusCode()) {
+             case LocationSettingsStatusCodes.SUCCESS:
+                 // All location settings are satisfied. The client can
+                 // initialize location requests here.
+                 ...
+                 break;
+             case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
+                 // Location settings are not satisfied, but this can be fixed
+                 // by showing the user a dialog.
+                 try {
+                     // Show the dialog by calling startResolutionForResult(),
+                     // and check the result in onActivityResult().
+                     status.startResolutionForResult(
+                         OuterClass.this,
+                         REQUEST_CHECK_SETTINGS);
+                 } catch (SendIntentException e) {
+                     // Ignore the error.
+                 }
+                 break;
+             case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
+                 // Location settings are not satisfied. However, we have no way
+                 // to fix the settings so we won't show the dialog.
+                 ...
+                 break;
+         }
+     }
+ });</pre>
+
+  <p>The next lesson,
+    <a href="receive-location-updates.html">Receiving Location Updates</a>, shows
+    you how to receive periodic location updates.</p>
diff --git a/docs/html/training/location/geofencing.jd b/docs/html/training/location/geofencing.jd
index 13dd790..1cf89fd 100644
--- a/docs/html/training/location/geofencing.jd
+++ b/docs/html/training/location/geofencing.jd
@@ -113,8 +113,8 @@
 <h3>Create geofence objects</h3>
 
 <p>
-    First, use <code><a href="{@docRoot}reference/com/google/android/gms/location/Geofence.Builder.
-    html">Geofence.Builder</a></code> to create a geofence, setting the desired radius, duration, and
+    First, use <code><a href="{@docRoot}reference/com/google/android/gms/location/Geofence.Builder.html">
+    Geofence.Builder</a></code> to create a geofence, setting the desired radius, duration, and
     transition types for the geofence. For example, to populate a list object named
     {@code mGeofenceList}:
     </p>
diff --git a/docs/html/training/location/index.jd b/docs/html/training/location/index.jd
index 8ed2071..dd6825c 100644
--- a/docs/html/training/location/index.jd
+++ b/docs/html/training/location/index.jd
@@ -79,6 +79,10 @@
      Learn how to retrieve the last known location of an Android device, which
      is usually equivalent to the user's current location.
   </dd> <dt>
+    <b><a href="change-location-settings.html">Changing Location Settings</a></b>
+  <dt> <dd>
+    Learn how to detect and apply system settings for location features.
+  </dd> <dt>
     <b><a href="receive-location-updates.html">Receiving Location
     Updates</a></b>
   </dt> <dd>
diff --git a/docs/html/training/location/receive-location-updates.jd b/docs/html/training/location/receive-location-updates.jd
index 208dc17..d82905f 100644
--- a/docs/html/training/location/receive-location-updates.jd
+++ b/docs/html/training/location/receive-location-updates.jd
@@ -7,8 +7,7 @@
 
   <h2>This lesson teaches you how to</h2>
   <ol>
-    <li><a href="#connect">Connect to Location Services</a></li>
-    <li><a href="#location-request">Set Up a Location Request</a></li>
+    <li><a href="#get-last-location">Get the Last Known Location</a></li>
     <li><a href="#updates">Request Location Updates</a></li>
     <li><a href="#callback">Define the Location Update Callback</a></li>
     <li><a href="#stop-updates">Stop Location Updates</a></li>
@@ -19,7 +18,7 @@
   <ul>
     <li>
       <a href="{@docRoot}google/play-services/setup.html">Setting up Google Play
-      Services</a>
+    Services</a>
     </li>
     <li>
       <a href="retrieve-current.html">Getting the Last Known Location</a>
@@ -64,16 +63,7 @@
   <a href="{@docRoot}reference/com/google/android/gms/location/FusedLocationProviderApi.html#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.location.LocationRequest, com.google.android.gms.location.LocationListener)">{@code requestLocationUpdates()}</a>
   method in the fused location provider.
 
-<h2 id="connect">Connect to Location Services</h2>
-
-<p>Location services for apps are provided through Google Play services and the
-  fused location provider. In order to use these services, you connect your app
-  using the Google API Client and then request location updates. For details on
-  connecting with the
-  <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code GoogleApiClient}</a>,
-  follow the instructions in
-  <a href="retrieve-current.html">Getting the Last Known Location</a>, including
-  requesting the current location.</p>
+<h2 id="get-last-location">Get the Last Known Location</h2>
 
 <p>The last known location of the device provides a handy base from which to
   start, ensuring that the app has a known location before starting the
@@ -101,112 +91,13 @@
 &lt;/manifest&gt;
 </pre>
 
-<h2 id="location-request">Set Up a Location Request</h2>
-
-<p>To store parameters for requests to the fused location provider, create a
-  <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html">{@code LocationRequest}</a>.
-  The parameters determine the levels of accuracy requested. For details of all
-  the options available in the location request, see the
-  <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html">{@code LocationRequest}</a>
-  class reference. This lesson sets the update interval, fastest update
-  interval, and priority, as described below:</p>
-
-<dl>
-  <dt>
-    Update interval
-  </dt>
-  <dd>
-    <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)">{@code setInterval()}</a>
-    - This method sets the rate in milliseconds at which your app prefers to
-    receive location updates. Note that the location updates may be faster than
-    this rate if another app is receiving updates at a faster rate, or slower
-    than this rate, or there may be no updates at all (if the device has no
-    connectivity, for example).
-  </dd>
-  <dt>
-    Fastest update interval
-  </dt>
-  <dd>
-    <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setFastestInterval(long)">{@code setFastestInterval()}</a>
-    - This method sets the <strong>fastest</strong> rate in milliseconds at which
-    your app can handle location updates. You need to set this rate because
-    other apps also affect the rate at which updates are sent. The Google Play
-    services location APIs send out updates at the fastest rate that any app
-    has requested with
-    <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)">{@code setInterval()}</a>.
-    If this rate is faster
-    than your app can handle, you may encounter problems with UI flicker or data
-    overflow. To prevent this, call
-    <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setFastestInterval(long)">{@code setFastestInterval()}</a>
-    to set an upper limit to the update rate.
-  </dd>
-  <dt>Priority</dt>
-  <dd>
-    <p>
-      <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">{@code setPriority()}</a>
-      - This method sets the priority of the request, which gives the Google Play
-      services location services a strong hint about which location sources to use.
-      The following values are supported:</p>
-      <ul>
-        <li>
-          <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_BALANCED_POWER_ACCURACY">{@code PRIORITY_BALANCED_POWER_ACCURACY}</a>
-          - Use this setting to request location precision to within a city
-          block, which is an accuracy of approximately 100 meters. This is
-          considered a coarse level of accuracy, and is likely to consume less
-          power. With this setting, the location services are likely to use WiFi
-          and cell tower positioning. Note, however, that the choice of location
-          provider depends on many other factors, such as which sources are
-          available.</li>
-        <li>
-          <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_HIGH_ACCURACY">{@code PRIORITY_HIGH_ACCURACY}</a>
-          - Use this setting to request the most precise location possible. With
-          this setting, the location services are more likely to use GPS
-          (Global Positioning System) to determine the location.</li>
-        <li><a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_LOW_POWER">{@code PRIORITY_LOW_POWER}</a>
-          - Use this setting to request city-level precision, which is
-          an accuracy of approximately 10 kilometers. This is considered a
-          coarse level of accuracy, and is likely to consume less power.</li>
-        <li><a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_NO_POWER">{@code PRIORITY_NO_POWER}</a>
-          - Use this setting if you need negligible impact on power consumption,
-          but want to receive location updates when available. With this
-          setting, your app does not trigger any location updates, but
-          receives locations triggered by other apps.</li>
-      </ul>
-  </dd>
-</dl>
-
-<p>Create the location request and set the parameters as shown in this
-  code sample:</p>
-
-<pre>
-protected void createLocationRequest() {
-    LocationRequest mLocationRequest = new LocationRequest();
-    mLocationRequest.setInterval(10000);
-    mLocationRequest.setFastestInterval(5000);
-    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
-}
-</pre>
-
-<p>The priority of
-  <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_HIGH_ACCURACY">{@code PRIORITY_HIGH_ACCURACY}</a>,
-  combined with the
-  {@link android.Manifest.permission#ACCESS_FINE_LOCATION ACCESS_FINE_LOCATION}
-  permission setting that you've defined in the app manifest, and a fast update
-  interval of 5000 milliseconds (5 seconds), causes the fused location
-  provider to return location updates that are accurate to within a few feet.
-  This approach is appropriate for mapping apps that display the location in
-  real time.</p>
-
-<p class="note"><strong>Performance hint:</strong> If your app accesses the
-  network or does other long-running work after receiving a location update,
-  adjust the fastest interval to a slower value. This adjustment prevents your
-  app from receiving updates it can't use. Once the long-running work is done,
-  set the fastest interval back to a fast value.</p>
-
 <h2 id="updates">Request Location Updates</h2>
 
-<p>Now that you've set up a location request containing your app's requirements
-  for the location updates, you can start the regular updates by calling
+<p>Before requesting location updates, your app must connect to location
+  services and make a location request. The lesson on
+  <a href="change-location-settings.html">Changing Location Settings</a>
+  shows you how to do this. Once a location request is in place you can start
+  the regular updates by calling
   <a href="{@docRoot}reference/com/google/android/gms/location/FusedLocationProviderApi.html#requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.location.LocationRequest, com.google.android.gms.location.LocationListener)">{@code requestLocationUpdates()}</a>.
   Do this in the
   <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">{@code onConnected()}</a>
diff --git a/docs/html/training/location/retrieve-current.jd b/docs/html/training/location/retrieve-current.jd
index 5bac3fa..c49b666 100644
--- a/docs/html/training/location/retrieve-current.jd
+++ b/docs/html/training/location/retrieve-current.jd
@@ -71,13 +71,13 @@
   block.</p>
 
 <p>This lesson requires only coarse location. Request this permission with the
-  {@code uses-permission} element in your app manifest, as shown in the
-  following example:
+  {@code uses-permission} element in your app manifest, as the following code
+  snippet shows:
 
 <pre>
 &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.google.android.gms.location.sample.basiclocationsample" &gt;
-  
+
   &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
 &lt;/manifest&gt;
 </pre>
@@ -92,18 +92,15 @@
 </p>
 
 <p>In your activity's {@link android.app.Activity#onCreate onCreate()} method,
-  create an instance of Google API Client using
-  <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">{@code GoogleApiClient.Builder}</a>.
-  Use the builder to add the
-  <a href="{@docRoot}reference/com/google/android/gms/location/LocationServices.html">{@code LocationServices}</a>
-  API.</p>
-
-<p>The sample app defines a {@code buildGoogleApiClient()} method, called from
-  the activity's {@link android.app.Activity#onCreate onCreate()} method,
-  which includes the following code.</p>
+  create an instance of Google API Client, using the
+  <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">{@code GoogleApiClient.Builder}</a> class to add the
+  <a href="{@docRoot}reference/com/google/android/gms/location/LocationServices.html">
+  {@code LocationServices}</a>
+  API, as the following code snippet shows.</p>
 
 <pre>
-protected synchronized void buildGoogleApiClient() {
+// Create an instance of GoogleAPIClient.
+if (mGoogleApiClient == null) {
     mGoogleApiClient = new GoogleApiClient.Builder(this)
         .addConnectionCallbacks(this)
         .addOnConnectionFailedListener(this)
@@ -112,6 +109,31 @@
 }
 </pre>
 
+<p>To connect, call
+<a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient#connect()">
+  {@code connect()}</a>
+  from the activity's
+  <a href="{@docRoot}reference/android/app/Activity.html#onStart()">{@code onStart()}</a>
+  method. To disconnect, call
+  <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient#disconnect()">
+  {@code disconnect()}</a> from the activity's
+  <a href="{@docRoot}reference/android/app/Activity.html#onStop()">
+  {@code onStop()}</a> method. The following snippet shows an example of how
+  to use both of these methods.
+  </p>
+
+<pre>
+protected void onStart() {
+    mGoogleApiClient.connect();
+    super.onStart();
+}
+
+protected void onStop() {
+    mGoogleApiClient.disconnect();
+    super.onStop();
+}
+</pre>
+
 <h2 id="last-known">Get the Last Known Location</h2>
 
 <p>Once you have connected to Google Play services and the location services
@@ -130,7 +152,7 @@
   object. Do this in the
   <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">{@code onConnected()}</a>
   callback provided by Google API Client, which is called when the client is
-  ready. The following code sample illustrates the request and a simple
+  ready. The following code snippet illustrates the request and a simple
   handling of the response:</p>
 
 <pre>
@@ -158,5 +180,6 @@
   when the location is not available.</p>
 
 <p>The next lesson,
-  <a href="receive-location-updates.html">Receiving Location Updates</a>, shows
-  you how to receive periodic location updates.</p>
+  <a href="change-location-settings.html">Changing Location Settings</a>, shows
+  you how to detect the current location settings, and prompt the user to
+  change settings as appropriate for your app's requirements.</p>
diff --git a/docs/html/training/material/animations.jd b/docs/html/training/material/animations.jd
index 6f263db..a29354f 100644
--- a/docs/html/training/material/animations.jd
+++ b/docs/html/training/material/animations.jd
@@ -85,7 +85,7 @@
 int cy = myView.getHeight() / 2;
 
 // get the final radius for the clipping circle
-int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
+float finalRadius = (float) Math.hypot(cx, cy);
 
 // create the animator for this view (the start radius is zero)
 Animator anim =
@@ -107,7 +107,7 @@
 int cy = myView.getHeight() / 2;
 
 // get the initial radius for the clipping circle
-int initialRadius = myView.getWidth();
+float initialRadius = (float) Math.hypot(cx, cy);
 
 // create the animation (the final radius is zero)
 Animator anim =
@@ -194,16 +194,16 @@
   <strong>Figure 2</strong> - A scene transition with one shared element.
 </p>
 
-<h3>Specify custom transitions</h3>
+<h3 id="custom-trans">Specify custom transitions</h3>
 
-<p>First, enable window content transitions with the <code>android:windowContentTransitions</code>
+<p>First, enable window content transitions with the <code>android:windowActivityTransitions</code>
 attribute when you define a style that inherits from the material theme. You can also specify
 enter, exit, and shared element transitions in your style definition:</p>
 
 <pre>
 &lt;style name="BaseAppTheme" parent="android:Theme.Material">
   &lt;!-- enable window content transitions -->
-  &lt;item name="android:windowContentTransitions">true&lt;/item>
+  &lt;item name="android:android:windowActivityTransitions">true&lt;/item>
 
   &lt;!-- specify enter and exit transitions -->
   &lt;item name="android:windowEnterTransition">@transition/explode&lt;/item>
diff --git a/docs/html/training/material/drawables.jd b/docs/html/training/material/drawables.jd
index da8bea8..eb9d273 100644
--- a/docs/html/training/material/drawables.jd
+++ b/docs/html/training/material/drawables.jd
@@ -15,6 +15,7 @@
   <li><a href="http://www.google.com/design/spec">Material design specification</a></li>
   <li><a href="{@docRoot}design/material/index.html">Material design on Android</a></li>
   <li><a href="{@docRoot}tools/help/vector-asset-studio.html">Vector Asset Studio</a></li>
+  <li><a href="{@docRoot}tools/help/image-asset-studio.html">Image Asset Studio</a></li>
 </ul>
 </div>
 </div>
diff --git a/docs/html/training/monitoring-device-state/doze-standby.jd b/docs/html/training/monitoring-device-state/doze-standby.jd
index 50c3d11..8038e38 100644
--- a/docs/html/training/monitoring-device-state/doze-standby.jd
+++ b/docs/html/training/monitoring-device-state/doze-standby.jd
@@ -32,7 +32,7 @@
         <li><a href="#testing_your_app_with_app_standby">Testing your app with App Standby</a></li>
       </ol>
       </li>
-      <li><a href="#whitelisting-cases">Example Use Cases for Whitelisting</a></li>
+      <li><a href="#whitelisting-cases">Acceptable Use Cases for Whitelisting</a></li>
     </ol>
   </div>
 </div>
@@ -422,7 +422,7 @@
 </ol>
 
 
-<h2 id="whitelisting-cases">Example Use Cases for Whitelisting</h2>
+<h2 id="whitelisting-cases">Acceptable Use Cases for Whitelisting</h2>
 
 <p>The table below highlights the acceptable use cases for requesting or being on
    the Battery Optimizations exceptions whitelist. In general, your app should not be on the
@@ -456,13 +456,22 @@
 
  <tr>
     <td rowspan="1">Instant messaging, chat, or calling app;
-    enterprise VOIP apps</td>
+    enterprise VOIP apps.</td>
     <td>No, can not use GCM because of technical dependency on another messaging
     service or Doze and App Standby break the core function of the app.</td>
     <td style="color:green">Acceptable</td>
     <td></td>
  </tr>
 
+  <tr>
+    <td rowspan="1">Task automation app</td>
+    <td>App's core function is scheduling automated actions, such as for instant
+    messaging, voice calling, new photo management, or location actions.</td>
+    <td>If applicable.</td>
+    <td style="color:green">Acceptable</td>
+    <td></td>
+ </tr>
+
 </table>
 
 
diff --git a/docs/html/training/multiple-apks/api.jd b/docs/html/training/multiple-apks/api.jd
old mode 100644
new mode 100755
index f43dcae..504b4e3
--- a/docs/html/training/multiple-apks/api.jd
+++ b/docs/html/training/multiple-apks/api.jd
@@ -153,11 +153,11 @@
 their creation at the following links:</p>
 <ul>
 <li><a
-href="{@docRoot}tools/projects/projects-eclipse.html#SettingUpLibraryProject">Setting up
-a library project (Eclipse)</a></li>
+href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">Managing Projects
+from Android Studio</a></li>
 <li><a
-href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Setting up
-a library project (Command line)</a></li>
+href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Managing Projects
+from the Command Line</a></li>
 </ul>
 
 
@@ -176,7 +176,7 @@
 
 <h2 id="CreateAPKs">Create New APK Projects</h2>
 <p>There should be a separate Android project for each APK you’re going to release.  For easy
-organization, place the library project and all related APK projects under the same parent folder. 
+organization, place the library project and all related APK projects under the same parent folder.
 Also remember that each APK needs to have the same package name, although they don’t necessarily
 need to share the package name with the library.  If you were to have 3 APKs following the scheme
 described earlier, your root directory might look like this:</p>
@@ -278,7 +278,7 @@
 </table>
 
 <p>
-Now, let’s further assume that the Red APK has some requirement on it that the other two don’t.  
+Now, let’s further assume that the Red APK has some requirement on it that the other two don’t.
 <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> page of
 the Android Developer guide has a whole list of possible culprits.  For the
 sake of example, let’s assume that red requires a front-facing camera.  In fact, the entire point of
diff --git a/docs/html/training/multiple-apks/multiple.jd b/docs/html/training/multiple-apks/multiple.jd
old mode 100644
new mode 100755
index ccee397..2501564
--- a/docs/html/training/multiple-apks/multiple.jd
+++ b/docs/html/training/multiple-apks/multiple.jd
@@ -169,7 +169,7 @@
 easier to ask your cubie than "Have we tested  the 3-to-10 xlarge APK against the Xoom?"  Print this
 chart out and hand it to every person working on your codebase.  Life just got a lot easier.</p>
 
-<h2 id="CreateLibrary">Put All Common Code and Resources in a Library Project.</h2>
+<h2 id="CreateLibrary">Put All Common Code and Resources in a Library Project</h2>
 
 <p>Whether you’re modifying an existing Android application or starting one from scratch, this is
 the first thing that you should do to the codebase, and by the far the most important.  Everything
@@ -182,11 +182,11 @@
 their creation at the following links:</p>
 <ul>
 <li><a
-href="{@docRoot}tools/projects/projects-eclipse.html#SettingUpLibraryProject">Setting up
-a library project (Eclipse)</a></li>
+href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">Managing Projects
+from Android Studio</a></li>
 <li><a
-href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Setting up
-a library project (Command line)</a></li>
+href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Managing Projects
+from the Command Line</a></li>
 </ul>
 
 <p>If you’re converting an existing application to use multiple APK support,
@@ -204,7 +204,7 @@
 
 <h2 id="CreateAPKs">Create New APK Projects</h2>
 <p>There should be a separate Android project for each APK you’re going to release.  For easy
-organization, place the library project and all related APK projects under the same parent folder. 
+organization, place the library project and all related APK projects under the same parent folder.
 Also remember that each APK needs to have the same package name, although they don’t necessarily
 need to share the package name with the library.  If you were to have 3 APKs following the scheme
 described earlier, your root directory might look like this:</p>
diff --git a/docs/html/training/multiple-apks/screensize.jd b/docs/html/training/multiple-apks/screensize.jd
old mode 100644
new mode 100755
index c7941c4..a482f67
--- a/docs/html/training/multiple-apks/screensize.jd
+++ b/docs/html/training/multiple-apks/screensize.jd
@@ -58,7 +58,7 @@
 though multiple APK support is the best solution, but this often isn’t the case.  The <a
 href="{@docRoot}google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK
 Instead</a> section of the multiple APK developer guide includes some useful information on how to
-accomplish this with a single APK, including use of our support library. You should also read the 
+accomplish this with a single APK, including use of our support library. You should also read the
 guide to <a href="{@docRoot}guide/practices/screens_support.html">supporting multiple screens</a>,
 and there’s even a <a
 href="http://android-developers.blogspot.com/2011/03/fragments-for-all.html">support library</a> you
@@ -118,7 +118,7 @@
 now simply refer to each APK as "blue", "green", or "red", no matter how many different screen types
 it covers.</p>
 
-<h2 id="CreateLibrary">Put All Common Code and Resources in a Library Project.</h2>
+<h2 id="CreateLibrary">Put All Common Code and Resources in a Library Project</h2>
 <p>Whether you’re modifying an existing Android application or starting one from scratch, this is
 the first thing that you should do to the codebase, and by the far the most important.  Everything
 that goes into the library project only needs to be updated once (think language-localized strings,
@@ -130,11 +130,11 @@
 their creation at the following links:</p>
 <ul>
 <li><a
-href="{@docRoot}tools/projects/projects-eclipse.html#SettingUpLibraryProject">Setting up
-a library project (Eclipse)</a></li>
+href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">Managing Projects
+from Android Studio</a></li>
 <li><a
-href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Setting up
-a library project (Command line)</a></li>
+href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Managing Projects
+from the Command Line</a></li>
 </ul>
 
 
@@ -156,7 +156,7 @@
 
 <h2 id="CreateAPKs">Create New APK Projects</h2>
 <p>There should be a separate Android project for each APK you’re going to release.  For easy
-organization, place the library project and all related APK projects under the same parent folder. 
+organization, place the library project and all related APK projects under the same parent folder.
 Also remember that each APK needs to have the same package name, although they don’t necessarily
 need to share the package name with the library.  If you were to have 3 APKs following the scheme
 described earlier, your root directory might look like this:</p>
@@ -295,7 +295,7 @@
 Also note that instead of taking advantage of the default values (small and
 normal are always true by default), the manifests explicitly set the value for
 each screen size.  This can save you headaches down the line.  For instance, a manifest with a
-target SDK of &lt; 9 will have xlarge automatically set to false, since that size didn’t exist yet. 
+target SDK of &lt; 9 will have xlarge automatically set to false, since that size didn’t exist yet.
 So be explicit!
 </p>
 
diff --git a/docs/html/training/multiple-apks/texture.jd b/docs/html/training/multiple-apks/texture.jd
old mode 100644
new mode 100755
index c49cc95..3ffd64f
--- a/docs/html/training/multiple-apks/texture.jd
+++ b/docs/html/training/multiple-apks/texture.jd
@@ -73,7 +73,7 @@
 
 
 <h2 id="ChartReqs">Chart Your Requirements</h2>
- 
+
 <p>The Android Developer Guide provides a handy reference of some of common supported textures on
 the <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">supports-gl-texture
 page</a>.  This page also contains some hints as to which phones (or families of phones) support
@@ -113,11 +113,11 @@
 their creation at the following links:</p>
 <ul>
 <li><a
-href="{@docRoot}tools/projects/projects-eclipse.html#SettingUpLibraryProject">Setting up
-a library project (Eclipse)</a></li>
+href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">Managing Projects
+from Android Studio</a></li>
 <li><a
-href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Setting up
-a library project (Command line)</a></li>
+href="{@docRoot}tools/projects/projects-cmdline.html#SettingUpLibraryProject">Managing Projects
+from the Command Line</a></li>
 </ul>
 
 <p>If you’re converting an existing application to use multiple APK support,
@@ -135,7 +135,7 @@
 
 <h2 id="CreateAPKs">Create New APK Projects</h2>
 <p>There should be a separate Android project for each APK you’re going to release.  For easy
-organization, place the library project and all related APK projects under the same parent folder. 
+organization, place the library project and all related APK projects under the same parent folder.
 Also remember that each APK needs to have the same package name, although they don’t necessarily
 need to share the package name with the library.  If you were to have 3 APKs following the scheme
 described earlier, your root directory might look like this:</p>
@@ -194,7 +194,7 @@
     <tr>
       <td class="blueCell">ETC1</td>
       <td class="blueCell">ETC1</td>
-      <td class="blueCell">ETC1</td>      
+      <td class="blueCell">ETC1</td>
     </tr>
     <tr>
       <td></td>
@@ -290,7 +290,7 @@
 supports-screens and compatible-screens, and that you don’t have unintended "uses-feature" values
 that were added as a result of permissions you set in the manifest. In the example above, the APK
 will be invisible to most, if not all devices.</p>
-<p>Why?  By adding the required permission SEND_SMS, the feature requirement of android.hardware.telephony was implicitly added.  Since most (if not all) xlarge devices are tablets without telephony hardware in them, Google Play will filter out this APK in these cases, until future devices come along which are both large enough to report as xlarge screen size, and possess telephony hardware.  
+<p>Why?  By adding the required permission SEND_SMS, the feature requirement of android.hardware.telephony was implicitly added.  Since most (if not all) xlarge devices are tablets without telephony hardware in them, Google Play will filter out this APK in these cases, until future devices come along which are both large enough to report as xlarge screen size, and possess telephony hardware.
 </p>
 <p>Fortunately this is easily fixed by adding the following to your manifest:</p>
 <pre>
diff --git a/docs/html/training/permissions/best-practices.jd b/docs/html/training/permissions/best-practices.jd
index b22c8b0..dcdaf94 100644
--- a/docs/html/training/permissions/best-practices.jd
+++ b/docs/html/training/permissions/best-practices.jd
@@ -222,7 +222,9 @@
   {@link android.Manifest.permission#ACCESS_FINE_LOCATION ACCESS_FINE_LOCATION}
   in its manifest. You should test the app with each of these permissions
   turned on and off, to make sure the app can handle all permission
-  configurations gracefully.
+  configurations gracefully. Remember, beginning with Android 6.0 the user can
+  turn permissions on or off for <em>any</em> app, even an app that targets API
+  level 22 or lower.
   </li>
 
   <li>Use the <a href="{@docRoot}tools/help/adb.html">adb</a> tool to manage
diff --git a/docs/html/training/permissions/requesting.jd b/docs/html/training/permissions/requesting.jd
index 03f46e2..e173daf 100644
--- a/docs/html/training/permissions/requesting.jd
+++ b/docs/html/training/permissions/requesting.jd
@@ -1,7 +1,7 @@
 page.title=Requesting Permissions at Run Time
 page.tags="runtime permissions",androidm,marshmallow
 page.image=images/permissions_check.png
-page.metaDescription=Learn about runtime permissions and how they make it easier for users to install and upgrade your apps. 
+page.metaDescription=Learn about runtime permissions and how they make it easier for users to install and upgrade your apps.
 @jd:body
 
 <div id="tb-wrapper">
@@ -80,13 +80,13 @@
 </p>
 
 <ul>
-  <li>If the device is running Android 5.1 or lower, or your app's target SDK
+  <li>If the device is running Android 5.1 or lower, <strong>or</strong> your app's target SDK
   is 22 or lower: If you list a dangerous permission in your manifest, the user
   has to grant the permission when they install the app; if they do not grant
   the permission, the system does not install the app at all.
   </li>
 
-  <li>If the device is running Android 6.0 or higher, and your app's target SDK
+  <li>If the device is running Android 6.0 or higher, <strong>and</strong> your app's target SDK
   is 23 or higher: The app has to list the permissions in the manifest,
   <em>and</em> it must request each dangerous permission it needs while the app
   is running. The user can grant or deny each permission, and the app can
@@ -96,14 +96,11 @@
 </ul>
 
 <p class="note">
-  <strong>Note:</strong> This lesson describes how you implement permissions
-  requests on apps that target API level
-  23 or higher, <em>and</em> are running on a device that's running Android 6.0
-  (API level 23) or higher. If the device or the app's
-  <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target"
-  ><code>targetSdkVersion</code></a>
-  is 22 or lower, the system prompts the user to grant all dangerous
-  permissions when they install or update the app.
+  <strong>Note:</strong> Beginning with Android 6.0 (API level 23), users can
+  revoke permissions from any app at any time, even if the app targets a lower
+  API level. You should test your app to verify that it behaves properly when
+  it's missing a needed permission, regardless of what API level your app
+  targets.
 </p>
 
 <p>
diff --git a/docs/html/training/sync-adapters/creating-sync-adapter.jd b/docs/html/training/sync-adapters/creating-sync-adapter.jd
index 9bd17ba..a790b87 100644
--- a/docs/html/training/sync-adapters/creating-sync-adapter.jd
+++ b/docs/html/training/sync-adapters/creating-sync-adapter.jd
@@ -416,7 +416,7 @@
          * Add the account and account type, no password or user data
          * If successful, return the Account object, otherwise report an error.
          */
-        if (accountManager.addAccountExplicitly(newAccount, null, null))) {
+        if (accountManager.addAccountExplicitly(newAccount, null, null)) {
             /*
              * If you don't set android:syncable="true" in
              * in your &lt;provider&gt; element in the manifest,
diff --git a/docs/html/training/testing/index.jd b/docs/html/training/testing/index.jd
new file mode 100644
index 0000000..d6405c8
--- /dev/null
+++ b/docs/html/training/testing/index.jd
@@ -0,0 +1,72 @@
+page.title=Best Practices for Testing
+page.article=true
+page.image=images/testing/hwtest_junit_success.png
+
+meta.tags="testing"
+page.tags="testing"
+
+page.metaDescription=Starting point for testing Android apps, with guidelines, information, and examples.
+
+@jd:body
+
+<img src="/images/testing/testing-icon.png"
+style="float:right; margin:0 0 20px 30px" width="245" height="229" />
+
+<p>
+  Testing your app is an integral part of the app development process. Testing allows you to verify
+  the correctness, functional behavior, and usability of your app before it is released publicly.
+</p>
+<br>
+<br>
+
+<h2 id="start">Get Started</h2>
+
+<p>
+  Learn the basics of testing your app, with information about building and running your tests with
+  Android Studio:
+</p>
+
+<div class="resource-widget resource-flow-layout col-12"
+  data-query="collection:training/testing/overview"
+  data-cardSizes="6x3"
+  data-maxresults="3">
+</div>
+
+
+<h2 id="tools">Testing Tools and APIs</h2>
+
+<p>
+  Learn about the tools provided by the Android platform that help you test every aspect of your app
+  at every level:
+</p>
+
+<div class="resource-widget resource-flow-layout landing col-12"
+  data-query="collection:training/testing/tools"
+  data-cardSizes="15x3, 9x2, 9x2, 9x2, 9x2"
+  data-maxResults="5">
+</div>
+
+
+<h2 id="techniques">App Testing Techniques</h2>
+
+<p>
+  Learn techniques for testing your apps:
+</p>
+
+<div class="resource-widget resource-flow-layout landing col-12"
+  data-query="collection:training/testing/techniques"
+  data-cardSizes="6x3
+  data-maxResults="3">
+</div>
+
+<h2 id="resources">Other Resources</h2>
+
+<p>
+  More resources for app testing:
+</p>
+
+<div class="resource-widget resource-flow-layout landing col-12"
+  data-query="collection:training/testing/resources"
+  data-cardSizes="9x3"
+  data-maxResults="6">
+</div>
\ No newline at end of file
diff --git a/docs/html/training/testing/integration-testing/content-provider-testing.jd b/docs/html/training/testing/integration-testing/content-provider-testing.jd
new file mode 100644
index 0000000..75869d9
--- /dev/null
+++ b/docs/html/training/testing/integration-testing/content-provider-testing.jd
@@ -0,0 +1,174 @@
+page.title=Testing Your Content Provider
+page.tags=testing, content provider
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Dependencies and Prerequisites</h2>
+
+  <ul>
+    <li>Android 2.2 (API level 8) or higher</li>
+    <li><a href="{@docRoot}tools/testing-support-library/index.html">
+      Android Testing Support Library</a></li>
+    <li><a href="{@docRoot}tools/studio/index.html">Android Studio 1.4.1 or higher</a>.</li>
+  </ul>
+
+  <h2>This lesson teaches you to</h2>
+
+  <ol>
+    <li><a href="#build">Create Integration Tests for Content Providers</a></li>
+    <li><a href="#WhatToTest">What to Test</a></li>
+  </ol>
+
+  <h2>You should also read</h2>
+  <ul>
+      <li><a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>
+      </li>
+  </ul>
+</div>
+</div>
+
+<p>
+    If you are implementing a <a href="{@docRoot}guide/topics/providers/content-providers.html">
+    content provider</a> to store and retrieve data or to make data
+    accessible to other apps, you should test your provider to ensure that it doesn't behave in an
+    unexpected way. This lesson describes how to test public content providers, and is also
+    applicable to providers that you keep private to your own app.
+</p>
+<h2 id="build">Create Integration Tests for Content Providers</h2>
+<p>
+In Android, apps view content providers as data APIs that provide
+tables of data, with their internals hidden from view. A content provider may have many
+public constants, but it usually has few if any public methods and no public variables.
+For this reason, you should write your tests based only on the provider's public members.
+A content provider that is designed like this is offering a contract between itself and its users.
+</p>
+<p>
+Content providers let you access actual user data, so it's important to ensure
+that you test the content provider in an isolated testing environment. This approach allows you to
+only run against data dependencies set explicitly in the test case. It also means that your tests
+do not modify actual user data. For example, you should avoid writing a test that fails because
+there was data left over from a previous test. Similarly, your test should avoid adding or deleting
+actual contact information in a provider.
+</p>
+
+<p>
+To test your content provider in isolation, use the {@link android.test.ProviderTestCase2} class.
+This class allows you to use Android mock object classes such as {@link android.test.IsolatedContext}
+and {@link android.test.mock.MockContentResolver} to access file and database information without
+affecting the actual user data.
+</p>
+
+<p>Your integration test should be written as a JUnit 4 test class. To learn more about creating
+JUnit 4 test classes and using JUnit 4 assertions, see
+<a href="{@docRoot}training/testing/unit-testing/local-unit-tests.html#build">
+Create a Local Unit Test Class</a>.</p>
+
+<p>To create an integration test for your content provider, you must perform these steps:</p>
+<ul>
+    <li>Create your test class as a subclass of {@link android.test.ProviderTestCase2}.</li>
+    <li>Add the
+{@code &#64;RunWith(AndroidJUnit4.class)} annotation at the beginning of your test class
+definition.</li>
+    <li>Specify the
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> class that the
+<a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
+provides as your default test runner. This step is described in more detail in
+<a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</a>.</li>
+    <li>Set the {@link android.content.Context} object from the
+<a href="{@docRoot}reference/android/support/test/InstrumentationRegistry.html">
+{@code InstrumentationRegistry}</a> class. See the snippet below for an example.
+    <pre>
+&#64;Override
+protected void setUp() throws Exception {
+    setContext(InstrumentationRegistry.getTargetContext());
+    super.setUp();
+}</pre>
+    </li>
+</ul>
+
+<h3 id="ProviderTestCase2">How ProviderTestCase2 works</h3>
+<p>
+    You test a provider with a subclass of {@link android.test.ProviderTestCase2}. This base class
+    extends {@link android.test.AndroidTestCase}, so it provides the JUnit testing framework as well
+    as Android-specific methods for testing application permissions. The most important
+    feature of this class is its initialization, which creates the isolated test environment.
+</p>
+<p>
+    The initialization is done in the constructor for {@link android.test.ProviderTestCase2}, which
+    subclasses call in their own constructors. The {@link android.test.ProviderTestCase2}
+    constructor creates an {@link android.test.IsolatedContext} object that allows file and
+    database operations but stubs out other interactions with the Android system.
+    The file and database operations themselves take place in a directory that is local to the
+    device or emulator and has a special prefix.
+</p>
+<p>
+    The constructor then creates a {@link android.test.mock.MockContentResolver} to use as the
+    resolver for the test.
+</p>
+<p>
+    Lastly, the constructor creates an instance of the provider under test. This is a normal
+    {@link android.content.ContentProvider} object, but it takes all of its environment information
+    from the {@link android.test.IsolatedContext}, so it is restricted to
+    working in the isolated test environment. All of the tests done in the test case class run
+    against this isolated object.
+</p>
+
+<p>
+You run integration tests for content providers the same way as instrumented unit tests. To run the
+integration test for your content provider, follow the steps described in <a
+href="{@docRoot}training/testing/unit-testing/instrumented-unit-tests.html#run">
+Run Instrumented Unit Tests</a>.
+</p>
+
+<h2 id="WhatToTest">What to Test</h2>
+<p>
+Here are some specific guidelines for testing content providers.
+</p>
+<ul>
+    <li>
+        Test with resolver methods: Even though you can instantiate a provider object in
+        {@link android.test.ProviderTestCase2}, you should always test with a resolver object
+        using the appropriate URI. Doing so ensures that you are testing the provider by performing
+        the same interaction that a regular application would use.
+    </li>
+    <li>
+        Test a public provider as a contract: If you intend your provider to be public and
+        available to other applications, you should test it as a contract. Some examples of how to
+        do so are as follows:
+        <ul>
+            <li>
+                Test with constants that your provider publicly exposes. For
+                example, look for constants that refer to column names in one of the provider's
+                data tables. These should always be constants publicly defined by the provider.
+            </li>
+            <li>
+                Test all the URIs that your provider offers. Your provider may offer several URIs,
+                each one referring to a different aspect of the data.
+            </li>
+            <li>
+                Test invalid URIs: Your unit tests should deliberately call the provider with an
+                invalid URI, and look for errors. A good provider design is to throw an
+                {@code IllegalArgumentException} for invalid URIs.
+
+            </li>
+        </ul>
+    </li>
+    <li>
+        Test the standard provider interactions: Most providers offer six access methods:
+        {@code query()}, {@code insert()}, {@code delete()}, {@code update()},
+        {@code getType()}, and {@code onCreate()}. Your tests should verify that all
+        of these methods work. These methods are described in more detail in the topic
+        <a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a>.
+    </li>
+    <li>
+        Test business logic: If the content provider implements business logic, you should test it.
+        Business logic includes handling of invalid values, financial or arithmetic calculations,
+        elimination or combining of duplicates.
+    </li>
+</ul>
\ No newline at end of file
diff --git a/docs/html/training/testing/integration-testing/index.jd b/docs/html/training/testing/integration-testing/index.jd
new file mode 100644
index 0000000..d7ce899
--- /dev/null
+++ b/docs/html/training/testing/integration-testing/index.jd
@@ -0,0 +1,55 @@
+page.title=Testing App Component Integrations
+page.tags=testing,integration
+
+trainingnavtop=true
+startpage=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+        <h2>
+          You should also read
+        </h2>
+        <ul>
+          <li>
+            <a href="{@docRoot}tools/testing-support-library/index.html">Testing Support Library</a>
+          </li>
+        </ul>
+</div>
+</div>
+
+<p>
+If your app uses components that users do not directly interact with, such as
+a <a href="{@docRoot}guide/components/services.html">Service</a> or
+<a href="{@docRoot}guide/topics/providers/content-providers.html">Content Provider</a>, you
+should validate that these components behave in a correct way with your app.</p>
+<p>When developing such components, you should get into the habit of writing
+<em>integration tests</em> in order to validate the component's behavior when your app runs on a
+device or an emulator.</p>
+
+<p class="note"><strong>Note:</strong> Android does not provide a separate test case class for
+{@link android.content.BroadcastReceiver}. To verify that a
+{@link android.content.BroadcastReceiver} responds correctly, you can test the component that sends
+it an {@link android.content.Intent} object. Alternatively, you can create an instance of your
+{@link android.content.BroadcastReceiver} by calling
+<a href="{@docRoot}reference/android/support/test/InstrumentationRegistry.html#getContext()">
+{@code InstrumentationRegistry.getTargetContext()}</a>, then call the
+{@link android.content.BroadcastReceiver} method that you want to test (usually, this is
+the
+{@link android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
+onReceive()} method).</p>
+
+<p>This class teaches you to build automated integration tests using the testing APIs and tools
+that the Android platform provides.</p>
+<h2>Lessons</h2>
+<dl>
+  <dt><strong><a href="service-testing.html">
+Testing Your Service</a></strong></dt>
+    <dd>Learn how to build integration tests to verify that a service works correctly with your
+    app.</dd>
+  <dt><strong><a href="content-provider-testing.html">
+Testing Your Content Provider</a></strong></dt>
+    <dd>Learn how to build integration tests to verify that a content provider works correctly with
+    your app.</dd>
+</dl>
\ No newline at end of file
diff --git a/docs/html/training/testing/integration-testing/service-testing.jd b/docs/html/training/testing/integration-testing/service-testing.jd
new file mode 100644
index 0000000..7b420ac
--- /dev/null
+++ b/docs/html/training/testing/integration-testing/service-testing.jd
@@ -0,0 +1,140 @@
+page.title=Testing Your Service
+page.tags=testing, service
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Dependencies and Prerequisites</h2>
+
+  <ul>
+    <li>Android 2.2 (API level 8) or higher</li>
+    <li><a href="{@docRoot}tools/testing-support-library/index.html">
+      Android Testing Support Library</a></li>
+    <li><a href="{@docRoot}tools/studio/index.html">Android Studio 1.4.1 or higher</a>.</li>
+  </ul>
+
+  <h2>This lesson teaches you to</h2>
+
+  <ol>
+    <li><a href="#setup">Set Up Your Testing Environment</a></li>
+    <li><a href="#build">Create an Integrated Test for Services</a></li>
+    <li><a href="#run">Run Integration Tests for Services</a></li>
+  </ol>
+
+  <h2>You should also read</h2>
+  <ul>
+      <li><a href="{@docRoot}guide/components/services.html">Services</a></li>
+  </ul>
+
+  <h2>Try it out</h2>
+
+  <ul>
+    <li>
+<a href="https://github.com/googlesamples/android-testing/tree/master/integration/ServiceTestRuleSample"
+class="external-link">Service Test Code Samples</a></li>
+  </ul>
+</div>
+</div>
+
+<p>
+If you are implementing a local {@link android.app.Service} as a component of
+your app, you should test the {@link android.app.Service} to ensure that it doesn't behave in an
+unexpected way. You can create
+<a href="{@docRoot}training/testing/unit-testing/instrumented-unit-tests.html">
+instrumented unit tests</a> to verify that the behavior in the {@link android.app.Service}
+is correct; for example, the service stores and returns valid data values and performs
+data operations correctly.
+</p>
+
+<p>
+The <a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
+provides an API for testing your {@link android.app.Service} objects in isolation.
+The
+<a href="{@docRoot}reference/android/support/test/rule/ServiceTestRule.html">ServiceTestRule</a>
+class is a JUnit 4 rule that starts your service before your unit test methods
+run, and shuts down the service after tests complete. By using this test rule, you ensure that the
+connection to the service is always established before your test method runs. To
+learn more about JUnit 4 rules, see the <a href="https://github.com/junit-team/junit/wiki/Rules"
+class="external-link">JUnit documentation</a>.
+</p>
+
+<p style="note">
+<strong>Note</strong>: The
+<a href="{@docRoot}reference/android/support/test/rule/ServiceTestRule.html">ServiceTestRule</a>
+class does not support testing of {@link android.app.IntentService} objects.
+If you need to test a {@link android.app.IntentService} object, you should encapsulate the logic
+in a separate class and create a corresponding unit test instead.
+</p>
+
+<h2 id="setup">Set Up Your Testing Environment</h2>
+<p>Before building your integration test for the service, make sure to configure your project for
+  instrumented tests, as described in
+<a href="{@docRoot}training/testing/start/index.html#config-instrumented-tests">
+Getting Started with Testing</a>.</p>
+
+<h2 id="build">Create an Integration Test for Services</h2>
+<p>Your integration test should be written as a JUnit 4 test class. To learn more about creating
+JUnit 4 test classes and using JUnit 4 assertion methods, see
+<a href="{@docRoot}training/testing/unit-testing/instrumented-unit-tests.html#build">
+Create an Instrumented Unit Test Class</a>.</p>
+
+<p>To create an integration test for your service, add the {@code &#64;RunWith(AndroidJUnit4.class)}
+annotation at the beginning of your test class definition. You also need to specify the
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> class that the Android Testing Support Library provides as your
+default test runner. This step is described in more detail in
+<a href="{@docRoot}training/testing/unit-testing/instrumented-unit-tests.html#run">
+Run Instrumented Unit Tests</a>.</p>
+
+<p>Next, create a
+<a href="{@docRoot}reference/android/support/test/rule/ServiceTestRule.html">ServiceTestRule</a>
+instance in your test by using the {@code &#64;Rule} annotation.</p>
+
+<pre>
+&#64;Rule
+public final ServiceTestRule mServiceRule = new ServiceTestRule();
+</pre>
+
+<p>The following example shows how you might implement an integration test for a service.
+The test method {@code testWithBoundService} verifies that the app binds successfully to a
+local service and that the service interface behaves correctly.</p>
+
+<pre>
+&#64;Test
+public void testWithBoundService() throws TimeoutException {
+    // Create the service Intent.
+    Intent serviceIntent =
+            new Intent(InstrumentationRegistry.getTargetContext(),
+                LocalService.class);
+
+    // Data can be passed to the service via the Intent.
+    serviceIntent.putExtra(LocalService.SEED_KEY, 42L);
+
+    // Bind the service and grab a reference to the binder.
+    IBinder binder = mServiceRule.bindService(serviceIntent);
+
+    // Get the reference to the service, or you can call
+    // public methods on the binder directly.
+    LocalService service =
+            ((LocalService.LocalBinder) binder).getService();
+
+    // Verify that the service is working correctly.
+    assertThat(service.getRandomInt(), is(any(Integer.class)));
+}
+</pre>
+
+<h2 id="run">Run Integration Tests for Services</h2>
+<p>
+You can run integration tests from <a href="{@docRoot}sdk/index.html">Android Studio</a> or
+from the command-line. Make sure to specify
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+  {@code AndroidJUnitRunner}</a> as the default instrumentation runner in your project.
+</p>
+<p>
+To run the integration test for your service, follow the steps for running instrumented tests
+described in <a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</a>.
+</p>
diff --git a/docs/html/training/testing/performance.jd b/docs/html/training/testing/performance.jd
index 2b968b3..8592c0f 100644
--- a/docs/html/training/testing/performance.jd
+++ b/docs/html/training/testing/performance.jd
@@ -28,6 +28,7 @@
           </ul>
         </li>
       </ol>
+
   </div>
 </div>
 
diff --git a/docs/html/training/testing/start/index.jd b/docs/html/training/testing/start/index.jd
new file mode 100644
index 0000000..a4b4aea
--- /dev/null
+++ b/docs/html/training/testing/start/index.jd
@@ -0,0 +1,252 @@
+page.title=Getting Started with Testing
+page.tags="testing"
+page.article=true
+page.image=images/tools/studio-main-screen.png
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
+<h2>Dependencies and prerequisites</h2>
+<ul>
+  <li><a href="{@docRoot}tools/studio/index.html">Android Studio (latest version)</a>.</li>
+</ul>
+
+<h2>This lesson teaches you to</h2>
+<ol>
+<li><a href="#setup">Set Up Your Testing Environment</a></li>
+<li><a href="#build">Build and Run Your Tests</a></li>
+</ol>
+
+<h2>You Should Also Read</h2>
+<ul>
+<li><a href="{@docRoot}tools/testing/testing_android.html">Testing Concepts</a></li>
+<li><a href="https://github.com/googlesamples/android-testing"
+  class="external-link">Android Testing Samples</a></li>
+<li><a href="{@docRoot}about/dashboards/index.html">Android Dashboards</a></li>
+</ul>
+
+</div>
+</div>
+
+<p>You should be writing and running tests as part of your Android app development cycle.
+Well-written tests can help you catch bugs early in development and give you confidence in your
+code.</p>
+
+<p>To verify specific behavior in your app, and to check for consistency across different Android
+devices, you can write a <a href="//en.wikipedia.org/wiki/Test_case"
+class="external-link">test case</a>. This lesson teaches you how to build a test case using the
+JUnit 4 framework and the testing APIs and tools provided by Google, and how to run your
+tests.</p>
+
+<h2 id="setup">Set Up Your Testing Environment</h2>
+
+<p>Before you start writing and running your tests, you must set up your test
+development environment. Android Studio provides an integrated development environment for you to
+create, build, and run Android app test cases from a graphical user interface (GUI).</p>
+
+<p>You must first download the prerequisite Android development tools before proceeding:
+<ul>
+<li><a href="{@docRoot}sdk/index.html">Android Studio</a> (latest version).</li>
+<li>The latest Android Support Repository using the
+  <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>. </li>
+</ul>
+
+<p>Based on the type of test you want to create, configure the test code source location and the
+  project dependencies in Android Studio as described in the following sections.</p>
+
+<h3 id="config-local-tests">Configure Your Project for Local Unit Tests</h3>
+<p><em>Local unit tests</em> are tests that run on your local machine, without needing access to the
+Android framework or an Android device. To learn how to develop local units tests, see
+<a href="{@docRoot}training/testing/unit-testing/local-unit-tests.html">
+Building Local Unit Tests</a>.</p>
+<p>In your Android Studio project, you must store the source files for local unit tests under a
+specific source directory ({@code src/test/java}). This feature improves your project organization
+by letting you group your unit tests together into a single source set.</p>
+<p>As with production code, you can create local unit tests for a
+<a href="http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants"
+class="external-link">specific flavor or build type</a>. Keep your unit tests in a test
+source tree location that corresponds to your production source tree, such as:</p>
+
+<table>
+<tr>
+<th>Path to Production Class</th>
+<th>Path to Local Unit Test Class</th>
+</tr>
+<tr>
+<td>{@code src/main/java/Foo.java}</td>
+<td>{@code src/test/java/FooTest.java}</td>
+</tr>
+<tr>
+<td>{@code src/debug/java/Foo.java}</td>
+<td>{@code src/testDebug/java/FooTest.java}</td>
+</tr>
+<tr>
+<td>{@code src/myFlavor/java/Foo.java}</td>
+<td>{@code src/testMyFlavor/java/FooTest.java}</td>
+</tr>
+</table>
+
+<p>You'll need to configure the testing dependencies for your project to use the
+  standard APIs provided by the JUnit 4 framework. To simplify your local unit test development,
+  we recommend that you include the <a href="https://github.com/mockito/mockito"
+  class="external-link">Mockito</a> library if your test needs to interact with Android
+  dependencies. To learn more about using mock objects in your local unit tests, see
+<a href="{@docRoot}training/testing/unit-testing/local-unit-tests.html#mocking-dependencies">
+  Mocking Android dependencies</a>.</p>
+<p>In the {@code build.gradle} file of your Android app module, specify your dependencies like
+this:</p>
+
+<pre>
+dependencies {
+    // Required -- JUnit 4 framework
+    testCompile 'junit:junit:4.12'
+    // Optional -- Mockito framework
+    testCompile 'org.mockito:mockito-core:1.10.19'
+}
+</pre>
+
+<h3 id="config-instrumented-tests">Configure Your Project for Instrumented Tests</h3>
+<p><em>Instrumented tests</em> are tests that run on an Android device or emulator. These tests
+have access to {@link android.app.Instrumentation} information, such as the
+{@link android.content.Context} for the app under test. Instrumented tests can be used for unit,
+user interface (UI), or app component integration testing. To learn how to develop instrumented
+tests for your specific needs, see these additional topics:
+<ul>
+<li><a href="{@docRoot}training/testing/unit-testing/instrumented-unit-tests.html">
+    Building Instrumented Unit Tests</a> - Build more complex unit tests that have Android
+    dependencies which cannot be easily filled by using mock objects.</li>
+<li><a href="{@docRoot}training/testing/ui-testing/index.html">
+    Automating User Interface Tests</a> - Create tests to verify that the user interface behaves
+    correctly for user interactions within a single app or for interactions across multiple apps.</li>
+<li><a href="{@docRoot}training/testing/integration-testing/index.html">
+    Testing App Component Integrations</a> - Verify the behavior of components that users do not
+directly interact with, such as a <a href="{@docRoot}guide/components/services.html">Service</a> or
+a <a href="guide/topics/providers/content-providers.html">Content Provider</a>.</li>
+</ul>
+</p>
+<p>
+In your Android Studio project, you must place the source code for your instrumentated tests under
+a specific directory (<code>src/androidTest/java</code>).
+</p>
+<p>
+Download the Android Testing Support Library, which provides APIs that allow you to quickly build and
+run instrumented test code for your apps. The Testing Support Library includes a JUnit 4 test runner
+(<a href="{@docRoot}tools/testing-support-library/index.html#AndroidJUnitRunner">AndroidJUnitRunner
+</a>) and APIs for functional UI tests
+(<a href="{@docRoot}tools/testing-support-library/index.html#Espresso">Espresso</a> and
+<a href="{@docRoot}tools/testing-support-library/index.html#UIAutomator">UI Automator</a>). To
+learn how to install the library, see
+<a href="{@docRoot}tools/testing-support-library/index.html#setup">Testing Support Library Setup</a>.
+</p>
+<p>You'll need to configure the Android testing dependencies for your project to use the test runner
+and the rules APIs provided by the Testing Support Library. To simplify your test development,
+we also recommend that you include the <a href="https://github.com/hamcrest"
+class="external-link">Hamcrest</a> library, which lets you create more flexible assertions using the
+Hamcrest matcher APIs.</p>
+<p>In the {@code build.gradle} file of your Android app module, specify your dependencies like
+this:</p>
+<pre>
+dependencies {
+    androidTestCompile 'com.android.support:support-annotations:23.0.1'
+    androidTestCompile 'com.android.support.test:runner:0.4.1'
+    androidTestCompile 'com.android.support.test:rules:0.4.1'
+    // Optional -- Hamcrest library
+    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
+    // Optional -- UI testing with Espresso
+    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
+    // Optional -- UI testing with UI Automator
+    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
+}
+</pre>
+
+<h2 id="build">Build and Run Your Tests</h2>
+
+<p>You can run build and run your tests in a similar way to how you run your Android apps --
+  graphically in Android Studio or from the command-line using the
+<a href="{@docRoot}tools/building/plugin-for-gradle.html">
+Android Plugin for Gradle</a>.</p>
+
+<h3 id="run-local-tests">Run Local Unit Tests</h3>
+<p>
+The Android Plugin for Gradle compiles the local unit test code located in the default directory
+({@code src/test/java}), builds a test app, and executes it locally
+using the default test runner class.
+</p>
+<p>
+To run local unit tests in your Gradle project from Android Studio:
+</p>
+<ol>
+<li>In the <strong>Project</strong> window, right click on the project and synchronize your project.
+</li>
+<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then change the
+test artifact to <em>Unit Tests</em>.
+</li>
+<li>In the <strong>Project</strong> window, drill down to your unit test class or method,
+then right-click and run it. To run all tests in the unit test directory, select the directory then
+right-click and press <strong>Run tests</strong>.
+</li>
+</ol>
+
+<p>Android Studio displays the results of the unit test execution in the <strong>Run</strong>
+window.</p>
+
+<p>To run local unit tests in your Gradle project from the command-line, call the {@code test} task
+command.</p>
+
+<pre>
+./gradlew test
+</pre>
+
+<p>If there are failing tests, the command will display links to HTML reports (one per build
+variant). You can find the generated HTML test result reports in the
+{@code &lt;path_to_your_project&gt;/app/build/reports/tests/} directory, and the corresponding XML
+files in the {@code &lt;path_to_your_project&gt;/app/build/test-results/} directory.</p>
+
+<h3 id="run-instrumented-tests">Run Instrumented Tests</h3>
+<p>
+The Android Plugin for Gradle compiles the instrumented test code located in the default directory
+({@code src/androidTest/java}), builds a test APK and production APK, installs both APKs on the
+connected device or emulator, and executes the tests.</p>
+
+<p>Make sure to specify
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> as the default test instrumentation runner in your project. To do
+this, add the following setting in your {@code build.gradle} file:</p>
+
+<pre>
+android {
+    defaultConfig {
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+}
+</pre>
+
+<p>To run your instrumented tests in Android Studio:</p>
+<ol>
+<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then set the
+test artifact to <em>Android Instrumentation Tests</em>.
+</li>
+<li>In the <strong>Project</strong> window, drill down to your instrumented test class or method,
+  then right-click and run it using the Android Test configuration. To run all tests in the
+instrumented test directory, select the directory then right-click and press
+<strong>Run tests</strong>.
+</li>
+</ol>
+
+<p>Android Studio displays the results of the instrumented test execution in the
+<strong>Run</strong> window.</p>
+
+<p>To run your instrumented tests from the command-line via Gradle, call the
+  {@code connectedAndroidTest} (or {@code cAT}) task:</p>
+
+<pre>
+./gradlew cAT
+</pre>
+
+<p>You can find the generated HTML test result reports in the
+{@code &lt;path_to_your_project&gt;/app/build/outputs/reports/androidTests/connected/} directory,
+and the corresponding XML files in the
+{@code &lt;path_to_your_project&gt;/app/build/outputs/androidTest-results/connected/} directory.</p>
\ No newline at end of file
diff --git a/docs/html/training/testing/ui-testing/espresso-testing.jd b/docs/html/training/testing/ui-testing/espresso-testing.jd
index 72689ff..45a4ceb 100644
--- a/docs/html/training/testing/ui-testing/espresso-testing.jd
+++ b/docs/html/training/testing/ui-testing/espresso-testing.jd
@@ -55,6 +55,8 @@
             <a href="https://github.com/googlesamples/android-testing"
             class="external-link">Espresso Code Samples</a>
           </li>
+          <li><a href="https://www.code-labs.io/codelabs/android-testing/index.html?index=..%2F..%2Findex#0"
+            class="external-link">Android Testing Codelab</a></li>
         </ul>
       </div>
     </div>
@@ -90,75 +92,51 @@
       Set Up Espresso
     </h2>
 
-    <p>
-      Before you begin using Espresso, you must:
-    </p>
+<p>Before building your UI test with Espresso, make sure to configure your test source code
+location and project dependencies, as described in
+<a href="{@docRoot}training/testing/start/index.html#config-instrumented-tests">
+Getting Started with Testing</a>.</p>
 
-    <ul>
-      <li>
-        <strong>Install the Android Testing Support Library</strong>. The Espresso API is
-        located under the {@code com.android.support.test.espresso} package. These classes allow
-        you to create tests that use the Espresso testing framework. To learn how to install the
-        library, see <a href="{@docRoot}tools/testing-support-library/index.html#setup">
-        Testing Support Library Setup</a>.
-      </li>
+<p>In the {@code build.gradle} file of your Android app module, you must set a dependency
+  reference to the Espresso library:</p>
 
-      <li>
-        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
-        the target app that you want to test is typically placed under the {@code app/src/main}
-        folder. The source code for instrumentation tests, including
-        your Espresso tests, must be placed under the <code>app/src/androidTest</code> folder. To
-        learn more about setting up your project directory, see
-        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
-      </li>
-
-      <li>
-        <strong>Specify your Android testing dependencies</strong>. In order for the
-        <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a> to
-        correctly build and run your Espresso tests, you must specify the following libraries in
-        the {@code build.gradle} file of your Android app module:
-
-        <pre>
+<pre>
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:23.0.1'
-    androidTestCompile 'com.android.support.test:runner:0.4.1'
-    androidTestCompile 'com.android.support.test:rules:0.4.1'
+    ...
     androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
-    // Set this dependency if you want to use Hamcrest matching
-    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
 }
 </pre>
-      </li>
 
-      <li>
-        <strong>Turn off animations on your test device.</strong> Leaving system animations turned
-        on in the test device might cause unexpected results or may lead your test to fail. Turn
-        off animations from <em>Settings</em> by opening <em>Developing Options</em> and
-        turning all the following options off:
+<p>Turn off animations on your test device &mdash; leaving system animations turned on in the test
+device might cause unexpected results or may lead your test to fail. Turn off animations from
+<em>Settings</em> by opening <em>Developing Options</em> and turning all the following options off:
+</p>
         <ul>
           <li>
-            <em>Window animation scale</em>
+            <strong>Window animation scale</strong>
           </li>
 
           <li>
-            <em>Transition animation scale</em>
+            <strong>Transition animation scale</strong>
           </li>
 
           <li>
-            <em>Animator duration scale</em>
+            <strong>Animator duration scale</strong>
           </li>
         </ul>
       </li>
     </ul>
+<p>If you want to set up your project to use Espresso features other than what the core API
+  provides, see this
+  <a href="https://google.github.io/android-testing-support-library/docs/espresso/index.html"
+  class="external-link">resource</a>.</p>
 
     <h2 id="build">
       Create an Espresso Test Class
     </h2>
 
     <p>
-      To create an Espresso test, create a Java class or an
-      {@link android.test.ActivityInstrumentationTestCase2}
-      subclass that follows this programming model:
+      To create an Espresso test, create a Java class that follows this programming model:
     </p>
 
     <ol>
@@ -203,11 +181,70 @@
         .perform(click())               // click() is a ViewAction
         .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion
 </pre>
+<h3 id="espresso-atr">Using Espresso with ActivityTestRule</h3>
+<p>
+The following section describes how to create a new Espresso test in the JUnit 4 style and use
+<a href="{@docRoot}reference/android/support/test/rule/ActivityTestRule.html">
+{@code ActivityTestRule}</a> to reduce the amount of boilerplate code you need to write. By using
+<a href="{@docRoot}reference/android/support/test/rule/ActivityTestRule.html">
+{@code ActivityTestRule}</a>, the testing framework launches the activity under test
+before each test method annotated with {@code &#64;Test} and before any method annotated with
+{@code &#64;Before}. The framework handles shutting down the activity after the test finishes
+and all methods annotated with {@code &#64;After} are run.</p>
+
+<pre>
+package com.example.android.testing.espresso.BasicSample;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import android.support.test.rule.ActivityTestRule;
+import android.support.test.runner.AndroidJUnit4;
+...
+
+&#64;RunWith(AndroidJUnit4.class)
+&#64;LargeTest
+public class ChangeTextBehaviorTest {
+
+    private String mStringToBetyped;
+
+    &#64;Rule
+    public ActivityTestRule&lt;MainActivity&gt; mActivityRule = new ActivityTestRule&lt;&gt;(
+            MainActivity.class);
+
+    &#64;Before
+    public void initValidString() {
+        // Specify a valid string.
+        mStringToBetyped = "Espresso";
+    }
+
+    &#64;Test
+    public void changeText_sameActivity() {
+        // Type text and then press the button.
+        onView(withId(R.id.editTextUserInput))
+                .perform(typeText(mStringToBetyped), closeSoftKeyboard());
+        onView(withId(R.id.changeTextBt)).perform(click());
+
+        // Check that the text was changed.
+        onView(withId(R.id.textToBeChanged))
+                .check(matches(withText(mStringToBetyped)));
+    }
+}
+</pre>
 
     <h3 id="espresso-aitc2">
       Using Espresso with ActivityInstrumentationTestCase2
     </h3>
-
+<p>The following section describes how to migrate to Espresso if you have existing test classes
+subclassed from {@link android.test.ActivityInstrumentationTestCase2} and you don't want to rewrite
+them to use JUnit4.</p>
+<p class="note"><strong>Note:</strong> For new UI tests, we strongly recommend that you write your
+test in the JUnit 4 style and use the
+<a href="{@docRoot}reference/android/support/test/rule/ActivityTestRule.html">
+{@code ActivityTestRule}</a> class, instead of
+{@link android.test.ActivityInstrumentationTestCase2}.</p>
     <p>
       If you are subclassing {@link android.test.ActivityInstrumentationTestCase2}
       to create your Espresso test class, you must inject an
@@ -544,40 +581,13 @@
 </pre>
 
 <h2 id="run">Run Espresso Tests on a Device or Emulator</h2>
-
-    <p>
-      To run Espresso tests, you must use the
-      <a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">{@code AndroidJUnitRunner}</a>
-      class provided in the
-      <a href="{@docRoot}tools/testing-support-library/index.html">
-      Android Testing Support Library</a> as your default test runner. The
-      <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for
-      Gradle</a> provides a default directory ({@code src/androidTest/java}) for you to store the
-      instrumented test classes and test suites that you want to run on a device. The
-      plug-in compiles the test code in that directory and then executes the test app using
-      the configured test runner class.
-    </p>
-
-    <p>
-      To run Espresso tests in your Gradle project:
-    </p>
-
-    <ol>
-      <li>Specify
-        <a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">{@code AndroidJUnitRunner}</a>
-        as the default test instrumentation runner in
-      your {@code build.gradle} file:
-
-  <pre>
-android {
-    defaultConfig {
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-    }
-}</pre>
-      </li>
-      <li>Run your tests from the command-line by calling the the {@code connectedAndroidTest}
-        (or {@code cAT}) task:
-  <pre>
-./gradlew cAT</pre>
-      </li>
-    </ol>
+<p>
+You can run Espresso tests from <a href="{@docRoot}sdk/index.html">Android Studio</a> or
+from the command-line. Make sure to specify
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+  {@code AndroidJUnitRunner}</a> as the default instrumentation runner in your project.
+</p>
+<p>
+To run your Espresso test, follow the steps for running instrumented tests
+described in <a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</a>.</p>
diff --git a/docs/html/training/testing/ui-testing/index.jd b/docs/html/training/testing/ui-testing/index.jd
index d660c60..1aa95a4 100644
--- a/docs/html/training/testing/ui-testing/index.jd
+++ b/docs/html/training/testing/ui-testing/index.jd
@@ -1,5 +1,6 @@
 page.title=Automating User Interface Tests
 page.tags=testing
+page.image=images/testing/UIAutomatorViewer.png
 
 trainingnavtop=true
 startpage=true
diff --git a/docs/html/training/testing/ui-testing/uiautomator-testing.jd b/docs/html/training/testing/ui-testing/uiautomator-testing.jd
index ea15d8b..5dca40b 100644
--- a/docs/html/training/testing/ui-testing/uiautomator-testing.jd
+++ b/docs/html/training/testing/ui-testing/uiautomator-testing.jd
@@ -61,43 +61,21 @@
 </p>
 
 <h2 id="setup">Set Up UI Automator</h2>
-<p>Before you begin using UI Automator, you must:</p>
 
-  <ul>
-      <li>
-        <strong>Install the Android Testing Support Library</strong>. The UI Automator API is
-        located under the {@code com.android.support.test.uiautomator} package. These classes allow
-        you to create tests that use the Espresso testing framework. To learn how to install the
-        library, see <a href="{@docRoot}tools/testing-support-library/index.html#setup">
-        Testing Support Library Setup</a>.
-      </li>
+<p>Before building your UI test with UI Automator, make sure to configure your test source code
+location and project dependencies, as described in
+<a href="{@docRoot}training/testing/start/index.html#config-instrumented-tests">
+Getting Started with Testing</a>.</p>
 
-      <li>
-        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
-        the target app that you want to test is typically placed under the {@code app/src/main}
-        folder. The source code for instrumentation tests, including
-        your UI Automator tests, must be placed under the <code>app/src/androidTest</code> folder.
-        To learn more about setting up your project directory, see
-        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
-      </li>
+<p>In the {@code build.gradle} file of your Android app module, you must set a dependency
+  reference to the UI Automator library:</p>
 
-      <li>
-        <strong>Specify your Android testing dependencies</strong>. In order for the
-        <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a> to
-        correctly build and run your UI Automator tests, you must specify the following libraries in
-        the {@code build.gradle} file of your Android app module:
-
-        <pre>
+<pre>
 dependencies {
-    androidTestCompile 'com.android.support:support-annotations:23.0.1'
-    androidTestCompile 'com.android.support.test:runner:0.4.1'
+    ...
     androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
-    // Set this dependency if you want to use Hamcrest matching
-    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
 }
 </pre>
-      </li>
-  </ul>
 
 <p>To optimize your UI Automator testing, you should first inspect the target app’s UI components
 and ensure that they are accessible. These optimization tips are described in the next two
@@ -257,14 +235,10 @@
 <pre>
 import org.junit.Before;
 import android.support.test.runner.AndroidJUnit4;
-import android.support.test.InstrumentationRegistry;
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.By;
 import android.support.test.uiautomator.Until;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import static org.junit.Assert.assertThat;
+...
 
 &#64;RunWith(AndroidJUnit4.class)
 &#64;SdkSuppress(minSdkVersion = 18)
@@ -305,6 +279,10 @@
 }
 </pre>
 
+<p>In the example, the {@code &#64;SdkSuppress(minSdkVersion = 18)} statement helps to ensure that
+  tests will only run on devices with Android 4.3 (API level 18) or higher, as required by the
+  UI Automator framework.</p>
+
 <p>Use the
 <a href="{@docRoot}reference/android/support/test/uiautomator/UiDevice.html#findObject(android.support.test.uiautomator.UiSelector)">{@code findObject()}</a>
 method to retrieve a
@@ -533,33 +511,14 @@
 </pre>
 
 <h2 id="run">Run UI Automator Tests on a Device or Emulator</h2>
-<p>UI Automator tests are based on the {@link android.app.Instrumentation} class. The
-<a href="https://developer.android.com/tools/building/plugin-for-gradle.html">
-  Android Plug-in for Gradle</a>
-provides a default directory ({@code src/androidTest/java}) for you to store the instrumented test
-classes and test suites that you want to run on a device. The plug-in compiles the test
-code in that directory and then executes the test app using a test runner class. You are
-strongly encouraged to use the
-<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">{@code AndroidJUnitRunner}</a>
-class provided in the
-<a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
-as your default test runner. </p>
-
-<p>To run UI Automator tests in your Gradle project:</p>
-
-<ol>
-<li>Specify
-<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">{@code AndroidJUnitRunner}</a>
-as the default test instrumentation runner in your {@code build.gradle} file:
-<pre>
-android {
-    defaultConfig {
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-    }
-}</pre>
-</li>
-<li>Run your tests from the command-line by calling the {@code connectedCheck}
-  (or {@code cC}) task:
-<pre>./gradlew cC</pre>
-</li>
-</ol>
\ No newline at end of file
+<p>
+You can run UI Automator tests from <a href="{@docRoot}sdk/index.html">Android Studio</a> or
+from the command-line. Make sure to specify
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+  {@code AndroidJUnitRunner}</a> as the default instrumentation runner in your project.
+</p>
+<p>
+To run your UI Automator test, follow the steps for running instrumented tests
+described in <a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/index.jd b/docs/html/training/testing/unit-testing/index.jd
index a35ba80..6610761 100644
--- a/docs/html/training/testing/unit-testing/index.jd
+++ b/docs/html/training/testing/unit-testing/index.jd
@@ -1,5 +1,6 @@
 page.title=Building Effective Unit Tests
 page.tags=testing,androidjunitrunner,junit,unit test
+page.image=images/testing/hwtest_junit_success.png
 
 trainingnavtop=true
 startpage=true
diff --git a/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd b/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd
index db4cc8c..38321ee 100644
--- a/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd
+++ b/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd
@@ -13,6 +13,7 @@
     <li>Android 2.2 (API level 8) or higher</li>
     <li><a href="{@docRoot}tools/testing-support-library/index.html">
       Android Testing Support Library</a></li>
+    <li><a href="{@docRoot}tools/studio/index.html">Android Studio (latest version)</a>.</li>
   </ul>
 
   <h2>This lesson teaches you to</h2>
@@ -29,6 +30,8 @@
     <li>
 <a href="https://github.com/googlesamples/android-testing/tree/master/unit/BasicUnitAndroidTest"
 class="external-link">Instrumented Unit Tests Code Samples</a></li>
+    <li><a href="https://www.code-labs.io/codelabs/android-studio-testing/index.html?index=..%2F..%2Findex#0"
+class="external-link">Unit and UI Testing in Android Studio (codelab)</a></li>
   </ul>
 </div>
 </div>
@@ -46,45 +49,10 @@
 </p>
 
 <h2 id="setup">Set Up Your Testing Environment</h2>
-<p>Before building instrumented unit tests, you must:</p>
-
-  <ul>
-      <li>
-        <strong>Install the Android Testing Support Library</strong>. The
-        <a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
-        {@code AndroidJUnitRunner}</a> API, located under the
-        {@code com.android.support.test.runner} package, allows you to
-        create and run instrumented unit tests.  To learn how to install the
-        library, see <a href="{@docRoot}tools/testing-support-library/index.html#setup">
-        Testing Support Library Setup</a>.
-      </li>
-
-      <li>
-        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
-        the target app that you want to test is typically placed under the {@code app/src/main/java}
-        folder. The source code for instrumentatation tests, including your unit tests, must be
-        placed under the <code>app/src/androidTest/java</code> folder.
-        To learn more about setting up your project directory, see
-        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
-      </li>
-
-      <li>
-        <strong>Specify your Android testing dependencies</strong>. In order for the
-        <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a> to
-        correctly build and run your instrumented unit tests, you must specify the following
-        libraries in the {@code build.gradle} file of your Android app module:
-
-        <pre>
-dependencies {
-    androidTestCompile 'com.android.support:support-annotations:23.0.1'
-    androidTestCompile 'com.android.support.test:runner:0.4.1'
-    androidTestCompile 'com.android.support.test:rules:0.4.1'
-    // Set this dependency if you want to use Hamcrest matching
-    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
-}
-</pre>
-      </li>
-  </ul>
+<p>Before building your instrumented unit test, make sure to configure your test source code
+location and project dependencies, as described in
+<a href="{@docRoot}training/testing/start/index.html#config-instrumented-tests">
+Getting Started with Testing</a>.</p>
 
 <h2 id="build">Create an Instrumented Unit Test Class</h2>
 <p>
@@ -97,8 +65,8 @@
 <a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
 {@code AndroidJUnitRunner}</a> class
 provided in the Android Testing Support Library as your default test runner. This step is described
-in more detail in <a href="#run">Run Instrumented Unit Tests</a>.
-</p>
+in more detail in <a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</p>
 
 <p>The following example shows how you might write an instrumented unit test to test that
 the {@link android.os.Parcelable} interface is implemented correctly for the
@@ -115,6 +83,7 @@
 import static org.junit.Assert.assertThat;
 
 &#64;RunWith(AndroidJUnit4.class)
+&#64;SmallTest
 public class LogHistoryAndroidUnitTest {
 
     public static final String TEST_STRING = "This is a string";
@@ -195,57 +164,7 @@
 
 <h2 id="run">Run Instrumented Unit Tests</h2>
 <p>
-The
-<a href="https://developer.android.com/tools/building/plugin-for-gradle.html">
-  Android Plug-in for Gradle</a>
-provides a default directory ({@code src/androidTest/java}) for you to store the instrumented unit
-and integration test classes and test suites that you want to run on a device. The plug-in compiles
-the test code in that directory and then executes the test app using a test runner class. You must
-set the
-<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
-{@code AndroidJUnitRunner}</a> class provided in the
-<a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
-as your default test runner.</p>
-</p>
-
-<p>To specify
-<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
-{@code AndroidJUnitRunner}</a> as the default test instrumentation runner, add the following
-setting in your {@code build.gradle} file:</p>
-<pre>
-android {
-    defaultConfig {
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-    }
-}
-</pre>
-
-<h3 id="run-from-Android-Studio">Running instrumented unit tests from Android Studio</h3>
-<p>
-To run instrumented unit tests in your Gradle project from Android Studio:
-</p>
-<ol>
-<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then set the
-test artifact to <em>Android Instrumentation Tests</em>.
-</li>
-<li>In the <strong>Project</strong> window, drill down to your unit test class or method, then
-  right-click and run it using the Android Test configuration.
-</li>
-</ol>
-
-<p>Android Studio displays the results of the unit test execution in the <strong>Run</strong>
-window.</p>
-
-<h3 id="run-from-commandline">Running instrumented unit tests from the command-line</h3>
-
-<p>To run instrumented unit tests in your Gradle project from the command-line, call the
-  {@code connectedCheck} (or {@code cC}) task:</p>
-
-<pre>
-./gradlew cC
-</pre>
-
-<p>You can find the generated HTML test result reports in the
-{@code &lt;path_to_your_project&gt;/app/build/outputs/reports/androidTests/connected/} directory,
-and the corresponding XML files in the
-{@code &lt;path_to_your_project&gt;/app/build/outputs/androidTest-results/connected/} directory.</p>
\ No newline at end of file
+To run your test, follow the steps for running instrumented tests
+described in <a href="{@docRoot}training/testing/start/index.html#run-instrumented-tests">
+Getting Started with Testing</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/local-unit-tests.jd b/docs/html/training/testing/unit-testing/local-unit-tests.jd
index 98939fa..893d957 100644
--- a/docs/html/training/testing/unit-testing/local-unit-tests.jd
+++ b/docs/html/training/testing/unit-testing/local-unit-tests.jd
@@ -10,7 +10,7 @@
   <h2>Dependencies and Prerequisites</h2>
 
   <ul>
-    <li>Android Plug-in for Gradle 1.1.0 or higher</li>
+    <li><a href="{@docRoot}tools/studio/index.html">Android Studio (latest version)</a>.</li>
   </ul>
 
   <h2>This lesson teaches you to</h2>
@@ -27,6 +27,8 @@
     <li>
 <a href="https://github.com/googlesamples/android-testing/tree/master/unit/BasicSample"
 class="external-link">Local Unit Tests Code Samples</a></li>
+    <li><a href="https://codelabs.developers.google.com/codelabs/android-testing/index.html?index=..%2F..%2Findex#0"
+class="external-link">Android Testing Codelab</a></li>
   </ul>
 </div>
 </div>
@@ -36,47 +38,15 @@
 you avoid the overhead of loading the target app and unit test code onto a physical device or
 emulator every time your test is run. Consequently, the execution time for running your unit
 test is greatly reduced. With this approach, you normally use a mocking framework, like
-<a href="https://code.google.com/p/mockito/" class="external-link">Mockito</a>, to fulfill any
+<a href="https://github.com/mockito/mockito" class="external-link">Mockito</a>, to fulfill any
 dependency relationships.</p>
 
-<p><a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a>
-version 1.1.0 and higher allows you to create a source directory ({@code src/test/java}) in your
-project to store JUnit tests that you want to run on a local machine. This feature improves your
-project organization by letting you group your unit tests together into a single source set. You
-can run the tests from Android Studio or the command-line, and the plugin executes them on the
-local Java Virtual Machine (JVM) on your development machine. </p>
-
 <h2 id="setup">Set Up Your Testing Environment</h2>
-<p>Before building local unit tests, you must:</p>
+<p>Before building your local unit test, make sure to configure your test source code location and
+project dependencies, as described in
+<a href="{@docRoot}training/testing/start/index.html#config-local-tests">
+Getting Started with Testing</a>.</p>
 
-  <ul>
-      <li>
-        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
-        the target app that you want to test is typically placed under the {@code app/src/main/java}
-        folder. The source code for your local unit tests must be placed under the
-        <code>app/src/test/java</code> folder.
-        To learn more about setting up your project directory, see
-        <a href="#run">Run Local Unit Tests</a> and
-        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
-      </li>
-
-      <li>
-        <strong>Specify your Android testing dependencies</strong>. In order to use JUnit 4 and
-        Mockito with your local unit tests, specify the following libraries in
-        the {@code build.gradle} file of your Android app module:
-
-        <pre>
-dependencies {
-    // Unit testing dependencies
-    testCompile 'junit:junit:4.12'
-    // Set this dependency if you want to use Mockito
-    testCompile 'org.mockito:mockito-core:1.10.19'
-    // Set this dependency if you want to use Hamcrest matching
-    testCompile 'org.hamcrest:hamcrest-library:1.1'
-}
-</pre>
-      </li>
-  </ul>
 
 <h2 id="build">Create a Local Unit Test Class</h2>
 <p>Your local unit test class should be written as a JUnit 4 test class.
@@ -116,44 +86,10 @@
 <a href="http://junit.org/javadoc/latest/org/junit/Assert.html" class="external-link">
 junit.Assert</a> methods to perform validation checks (or <em>assertions</em>) to compare the state
 of the component under test against some expected value. To make tests more readable, you
-can use <a href="https://code.google.com/p/hamcrest/wiki/Tutorial" class="external-link">
+can use <a href="https://github.com/hamcrest" class="external-link">
 Hamcrest matchers</a> (such as the {@code is()} and {@code equalTo()} methods) to match the
 returned result against the expected result.</p>
 
-<p>In your JUnit 4 test class, you can use annotations to call out sections in your test code for
-special processing, such as:</p>
-
-<ul>
-<li>
-{@code &#64;Before}: Use this annotation to specify a block of code with test setup operations. This
-code block will be invoked before each test. You can have multiple {@code &#64;Before} methods but
-the order which these methods are called is not fixed.
-</li>
-<li>
-{@code &#64;After}: This annotation specifies a block of code with test tear-down operations. This
-code block will be called after every test method. You can define multiple {@code &#64;After}
-operations in your test code. Use this annotation to release any resources from memory.
-</li>
-<li>
-{@code &#64;Test}: Use this annotation to mark a test method. A single test class can contain
-multiple test methods, each prefixed with this annotation.
-</li>
-<li>
-{@code &#64;BeforeClass}: Use this annotation to specify static methods to be invoked only once per
-test class. This testing step is useful for expensive operations such as connecting to a database.
-</li>
-<li>
-{@code &#64;AfterClass}: Use this annotation to specify static methods to be invoked only after all
-tests in the class have been run. This testing step is useful for releasing any resources allocated
-in the {@code &#64;BeforeClass} block.
-</li>
-<li>
-{@code &#64;Test(timeout=&lt;milliseconds&gt;)}: Specifies a timeout period for the test. If the
-test starts but does not complete within the given timeout period, it automatically fails. You must
-specify the timeout period in milliseconds, for example: {@code &#64;Test(timeout=5000)}.
-</li>
-</ul>
-
 <h3 id="mocking-dependencies">Mocking Android dependencies</h3>
 <p>
 By default, the <a href="{@docRoot}tools/building/plugin-for-gradle.html">
@@ -166,7 +102,7 @@
 your component interacts with a dependency in an expected way. By substituting Android dependencies
 with mock objects, you can isolate your unit test from the rest of the Android system while
 verifying that the correct methods in those dependencies are called. The
-<a href="https://code.google.com/p/mockito/" class="external-link">Mockito</a> mocking framework
+<a href="https://github.com/mockito/mockito" class="external-link">Mockito</a> mocking framework
 for Java (version 1.9.5 and higher) offers compatibility with Android unit testing.
 With Mockito, you can configure mock objects to return some specific value when invoked.</p>
 
@@ -240,63 +176,8 @@
 
 <h2 id="run">Run Local Unit Tests</h2>
 <p>
-The Android Plug-in for Gradle provides a default directory ({@code src/test/java}) for you to
-store unit test classes that you want to run on a local JVM. The plug-in compiles the test code in
-that directory and then executes the test app locally using the default test runner class.
+To run your tests, follow the steps for running local unit tests
+described in <a href="{@docRoot}training/testing/start/index.html#run-local-tests">
+Getting Started with Testing</a>.
 </p>
-<p>
-As with production code, you can create unit tests for a
-<a href="http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants"
-class="external-link">specific flavor or build type</a>. You should keep unit tests in a test
-source tree location that corresponds to your production source tree, such as:
 
-<table>
-<tr>
-<th>Path to Production Class</th>
-<th>Path to Local Unit Test Class</th>
-</tr>
-<tr>
-<td>{@code src/main/java/Foo.java}</td>
-<td>{@code src/test/java/FooTest.java}</td>
-</tr>
-<tr>
-<td>{@code src/debug/java/Foo.java}</td>
-<td>{@code src/testDebug/java/FooTest.java}</td>
-</tr>
-<tr>
-<td>{@code src/myFlavor/java/Foo.java}</td>
-<td>{@code src/testMyFlavor/java/FooTest.java}</td>
-</tr>
-</table>
-
-<h3 id="run-from-Android-Studio">Running local unit tests from Android Studio</h3>
-<p>
-To run local unit tests in your Gradle project from Android Studio:
-</p>
-<ol>
-<li>In the <strong>Project</strong> window, right click on the project and synchronize your project.
-</li>
-<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then change the
-test artifact to <em>Unit Tests</em>.
-</li>
-<li>In the <strong>Project</strong> window, drill down to your unit test class or method, then
-right-click and run it.
-</li>
-</ol>
-
-<p>Android Studio displays the results of the unit test execution in the <strong>Run</strong>
-window.</p>
-
-<h3 id="run-from-commandline">Running local unit tests from the command-line</h3>
-
-<p>To run local unit tests in your Gradle project from the command-line, call the {@code test} task
-command with the {@code --continue} option.</p>
-
-<pre>
-./gradlew test --continue
-</pre>
-
-<p>If there are failing tests, the command will display links to HTML reports (one per build
-variant). You can find the generated HTML test result reports in the
-{@code &lt;path_to_your_project&gt;/app/build/reports/tests/} directory, and the corresponding XML
-files in the {@code &lt;path_to_your_project&gt;/app/build/test-results/} directory.</p>
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index b16b569..9dbbe24 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -62,7 +62,6 @@
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html"
-             es-lang=""
              ja-lang="アクティビティのライフサイクル 管理"
              ko-lang="액티비티 수명 주기 관리하기"
              pt-br-lang="Como gerenciar o ciclo de vida da atividade"
@@ -76,7 +75,6 @@
         </div>
         <ul>
           <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html"
-             es-lang=""
              ja-lang="アクティビティを開始する"
              ko-lang="액티비티 시작하기"
              pt-br-lang="Iniciando uma atividade"
@@ -87,18 +85,10 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"
-             es-lang=""
-             ja-lang=""
-             ko-lang=""
-             pt-br-lang=""
-             ru-lang=""
-             zh-cn-lang=""
-             zh-tw-lang="">
             Pausing and Resuming an Activity
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html"
-             es-lang=""
              ja-lang="アクティビティの一時停止と再開"
              ko-lang="액티비티 일시정지 및 재개하기"
              pt-br-lang="Pausando e reiniciando uma atividade"
@@ -109,7 +99,6 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html"
-             es-lang=""
              ja-lang="アクティビティを再作成する"
              ko-lang="액티비티 재생성하기"
              pt-br-lang="Recriando uma atividade"
@@ -150,7 +139,6 @@
 
       <li class="nav-section">
         <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html"
-             es-lang=""
              ja-lang="データの保存"
              ko-lang="데이터 저장하기"
              pt-br-lang="Salvando dados"
@@ -164,7 +152,6 @@
         </div>
         <ul>
           <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html"
-             es-lang=""
              ja-lang="キー値セットを保存する"
              ko-lang="키-값 세트 저장하기"
              pt-br-lang="Salvando conjuntos de valor-chave"
@@ -175,7 +162,6 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html"
-             es-lang=""
              ja-lang="ファイルを保存する"
              ko-lang="파일 저장하기"
              pt-br-lang="Salvando arquivos"
@@ -186,7 +172,6 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html"
-             es-lang=""
              ja-lang="SQL データベースにデータを保存する"
              ko-lang="SQL 데이터베이스에 데이터 저장하기"
              pt-br-lang="Salvando dados em bancos de dados do SQL"
@@ -202,7 +187,6 @@
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>training/basics/intents/index.html"
-             es-lang=""
              ja-lang="他のアプリとの相互操作"
              ko-lang="액티비티 수명 주기 관리하기"
              pt-br-lang="Interagindo com outros aplicativos"
@@ -217,7 +201,6 @@
         </div>
         <ul>
           <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html"
-             es-lang=""
              ja-lang="別のアプリにユーザーを送る"
              ko-lang="다른 앱으로 사용자 보내기"
              pt-br-lang="Enviando o usuário para outro aplicativo"
@@ -228,7 +211,6 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/intents/result.html"
-             es-lang=""
              ja-lang="アクティビティから結果を取得する"
              ko-lang="액티비티로부터 결과 가져오기"
              pt-br-lang="Obtendo resultados de uma atividade"
@@ -239,7 +221,6 @@
           </a>
           </li>
           <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html"
-             es-lang=""
              ja-lang="他のアプリからのアクティビティの開始を許可する"
              ko-lang="다른 앱이 자신의 액티비티를 시작하도록 허용하기"
              pt-br-lang="Permitindo que outros aplicativos iniciem sua atividade"
@@ -780,6 +761,11 @@
             </a>
           </li>
           <li>
+            <a href="<?cs var:toroot ?>training/location/change-location-settings.html">
+            Changing Location Settings
+            </a>
+          </li>
+          <li>
             <a href="<?cs var:toroot ?>training/location/receive-location-updates.html">
             Receiving Location Updates
             </a>
@@ -1098,6 +1084,14 @@
                ja-lang="再生中カードを表示する">
               Displaying a Now Playing Card</a>
           </li>
+          <li>
+            <a href="<?cs var:toroot ?>training/tv/playback/guided-step.html">
+              Adding a Guided Step</a>
+          </li>
+          <li>
+            <a href="<?cs var:toroot ?>training/tv/playback/options.html">
+              Enabling Background Playback</a>
+          </li>
         </ul>
       </li>
 
@@ -1207,7 +1201,7 @@
       </a>
       </li>
       <li><a href="<?cs var:toroot ?>training/enterprise/work-policy-ctrl.html">
-        Building a Work Policy Controller
+        Building a Device Policy Controller
       </a>
       </li>
     </ul>
@@ -1569,6 +1563,10 @@
             Developing Accessibility Services
           </a>
           </li>
+          <li><a href="<?cs var:toroot ?>training/accessibility/testing.html">
+            Accessibility Testing Checklist
+          </a>
+          </li>
         </ul>
       </li>
 
@@ -1609,6 +1607,15 @@
           <a href="<?cs var:toroot ?>training/material/index.html"
              description=
              "How to implement material design on Android."
+            zh-cn-lang="面向开发者的材料设计"
+            zh-tw-lang="開發人員材料設計"
+            ja-lang="マテリアル デザインでのアプリ作成"
+            es-lang="Crear aplicaciones con Material Design"
+            pt-br-lang="Material Design para desenvolvedores"
+            ko-lang="개발자를 위한 머티리얼 디자인"
+            ru-lang="Создание приложений с помощью Material Design"
+            in-lang="Desain Bahan untuk Pengembang"
+            vi-lang="Material Design cho Nhà phát triển"
             >Creating Apps with Material Design</a>
         </div>
         <ul>
@@ -1620,6 +1627,8 @@
             pt-br-lang="Como iniciar"
             ko-lang="시작하기"
             ru-lang="Начало работы"
+            in-lang="Memulai"
+            vi-lang="Bắt đầu"
             >
             Getting Started
           </a>
@@ -1632,6 +1641,8 @@
             pt-br-lang="Como usar o tema do Material"
             ko-lang="머티어리얼 테마 사용"
             ru-lang="Использование темы Material Design"
+            in-lang="Menggunakan Tema Bahan"
+            vi-lang="Sử dụng Chủ đề Material"
             >
             Using the Material Theme
           </a>
@@ -1644,6 +1655,8 @@
             pt-br-lang="Como criar listas e cartões"
             ko-lang="목록 및 카드 생성"
             ru-lang="Создание списков и подсказок"
+            in-lang="Membuat Daftar dan Kartu"
+            vi-lang="Tạo Danh sách và Thẻ"
             >
             Creating Lists and Cards
           </a>
@@ -1656,6 +1669,8 @@
             pt-br-lang="Como definir sombras e recortar visualizações"
             ko-lang="그림자 정의 및 뷰 클리핑"
             ru-lang="Определение теней и обрезка представлений"
+            in-lang="Mendefinisikan Bayangan dan Memangkas Tampilan"
+            vi-lang="Định nghĩa Đổ bóng và Dạng xem Cắt hình"
             >
             Defining Shadows and Clipping Views
           </a>
@@ -1668,6 +1683,8 @@
             pt-br-lang="Como trabalhar com desenháveis"
             ko-lang="Drawable 사용"
             ru-lang="Работа с элементами дизайна"
+            in-lang="Bekerja dengan Drawable"
+            vi-lang="Làm việc với Nội dung vẽ được"
             >
             Working with Drawables
           </a>
@@ -1680,6 +1697,8 @@
             pt-br-lang="Como definir animações personalizadas"
             ko-lang="사용자지정 애니메이션 정의"
             ru-lang="Определение настраиваемой анимации"
+            in-lang="Mendefinisikan Animasi Custom"
+            vi-lang="Định nghĩa Hoạt hình Tùy chỉnh"
             >
             Defining Custom Animations
           </a>
@@ -1692,6 +1711,8 @@
             pt-br-lang="Como manter a compatibilidade"
             ko-lang="호환성 유지"
             ru-lang="Обеспечение совместимости"
+            in-lang="Mempertahankan Kompatibilitas"
+            vi-lang="Duy trì Tính tương thích"
             >
             Maintaining Compatibility
           </a>
@@ -2062,58 +2083,48 @@
 
   <li class="nav-section">
     <div class="nav-section-header">
-      <a href="<?cs var:toroot ?>training/testing.html">
+      <a href="<?cs var:toroot ?>training/best-permissions-ids.html">
+      <span class="small">Best Practices for</span><br/>
+              Permissions &amp; Identifiers
+      </a>
+    </div>
+    <ul>
+      <li>
+        <a href="<?cs var:toroot ?>training/articles/user-data-overview.html"
+           description=
+           "Overview of app permissions on Android and how they affect your users."
+          >Permissions and User Data</a>
+      </li>
+      <li>
+        <a href="<?cs var:toroot ?>training/articles/user-data-permissions.html"
+           description=
+           "How to manage permissions the right way for users."
+          >Best Practices for App Permissions</a>
+      </li>
+      <li>
+        <a href="<?cs var:toroot ?>training/articles/user-data-ids.html"
+           description=
+           "Unique identifiers available and how to choose the right one for your use case."
+          >Best Practices for Unique Identifiers</a>
+      </li>
+    </ul>
+  </li>
+  <!-- End Permissions and identifiers -->
+
+  <li class="nav-section">
+    <div class="nav-section-header">
+      <a href="<?cs var:toroot ?>training/testing/index.html">
       <span class="small">Best Practices for</span><br/>
               Testing
       </a>
     </div>
     <ul>
-      <li class="nav-section">
-      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html"
-         description="How to test Activities in your Android applications.">
-            Testing Your Activity
-          </a></div>
-        <ul>
-          <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html">
-            <span class="en">Setting Up Your Test Environment</span>
+      <li>
+      <a href="<?cs var:toroot ?>training/testing/start/index.html"
+         description="How to get started with testing your Android applications.">
+            Getting Started with Testing
           </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html">
-            <span class="en">Creating and Running a Test Case</span>
-          </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html">
-            <span class="en">Testing UI Components</span>
-          </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html">
-            <span class="en">Creating Unit Tests</span>
-          </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html">
-            <span class="en">Creating Functional Tests</span>
-          </a>
-          </li>
-        </ul>
       </li>
-
-      <li class="nav-section">
-      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/ui-testing/index.html"
-         description="How to automate your user interface tests for Android apps.">
-            Automating UI Tests
-          </a></div>
-        <ul>
-          <li><a href="<?cs var:toroot ?>training/testing/ui-testing/espresso-testing.html">
-            <span class="en">Testing UI for a Single App</span>
-          </a>
-          </li>
-          <li><a href="<?cs var:toroot ?>training/testing/ui-testing/uiautomator-testing.html">
-            <span class="en">Testing UI for Multiple Apps</span>
-          </a>
-          </li>
-        </ul>
-      </li>
-
       <li class="nav-section">
       <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/unit-testing/index.html"
          description="How to build effective unit tests for Android apps.">
@@ -2130,10 +2141,36 @@
           </li>
         </ul>
       </li>
-
+      <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/ui-testing/index.html"
+         description="How to automate your user interface tests for Android apps.">
+            Automating UI Tests
+          </a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>training/testing/ui-testing/espresso-testing.html">
+            <span class="en">Testing UI for a Single App</span>
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/testing/ui-testing/uiautomator-testing.html">
+            <span class="en">Testing UI for Multiple Apps</span>
+          </a>
+          </li>
+        </ul>
+      </li>
+      <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/integration-testing/index.html"
+         description="How to build effective integration tests for Android apps.">
+            Testing App Component Integrations
+          </a></div>
+        <ul>
+         <li><a href="<?cs var:toroot ?>training/testing/integration-testing/service-testing.html">
+           <span class="en">Testing Your Service</span></a></li>
+         <li><a href="<?cs var:toroot ?>training/testing/integration-testing/content-provider-testing.html">
+           <span class="en">Testing Your Content Provider</span></a></li>
+        </ul>
+      </li>
       <li><a href="<?cs var:toroot ?>training/testing/performance.html"
-            description="How to automate UI performance testing.">
-            Testing Display Performance</a>
+          description="How to automate UI performance testing.">Testing Display Performance</a>
       </li>
     </ul>
   </li>
diff --git a/docs/html/training/tv/discovery/recommendations.jd b/docs/html/training/tv/discovery/recommendations.jd
index ffe33f2..0b0b270 100644
--- a/docs/html/training/tv/discovery/recommendations.jd
+++ b/docs/html/training/tv/discovery/recommendations.jd
@@ -63,10 +63,13 @@
 
 <ul>
 <li><strong>Continuation content</strong> recommendations for the next episode for users to resume
-watching a series.</li>
+watching a series. Or, use continuation recommendations for paused movies, TV shows, or podcasts
+so users can get back to watching paused content in just a few clicks.</li>
 <li><strong>New content</strong> recommendations, such as for a new first-run episode, if the user
-finished watching another series.
-<li><strong>Related content</strong> recommendations based on the users historic viewing behavior.
+finished watching another series. Also, if your app lets users subscribe to, follow, or track
+content, use new content recommendations for unwatched items in their list of tracked content.</li>
+<li><strong>Related content</strong> recommendations based on the users' historic viewing behavior.
+</li>
 </ul>
 
 <p>For more information on how to design recommendation cards for the best user experience, see
@@ -88,6 +91,25 @@
 <a href="https://www.google.com/design/spec-tv/system-overview/recommendation-row.html#recommendation-row-card-customization"
 class="external-link">Recommendation Row</a> in the Android TV Design Spec.</p>
 
+<h3 id="grouping">Grouping Recommendations</h3>
+
+<p>
+You can optionally group recommendations based on recommendation source. For example, your app
+might provide two groups of recommendations: recommendations for content the user is subscribed to,
+and recommendations for new trending content the user might not be aware of.
+</p>
+<p>
+The system ranks and orders recommendations for each group separately when creating or updating
+the recommendation row. By providing group information for your recommendations, you can ensure
+that your recommendations don’t get ordered below unrelated recommendations.
+</p>
+<p>
+Use
+{@link android.support.v4.app.NotificationCompat.Builder#setGroup
+NotificationCompat.Builder.setGroup()} to set the group key string of a recommendation. For
+example, to mark a recommendation as belonging to a group that contains new trending content,
+you might call <code>setGroup("trending")</code>.
+</p>
 
 <h2 id="service">Create a Recommendations Service</h2>
 
diff --git a/docs/html/training/tv/playback/details.jd b/docs/html/training/tv/playback/details.jd
index bd6d67a..dbe2c84 100644
--- a/docs/html/training/tv/playback/details.jd
+++ b/docs/html/training/tv/playback/details.jd
@@ -111,8 +111,9 @@
     private void buildDetails() {
         ClassPresenterSelector selector = new ClassPresenterSelector();
         // Attach your media item details presenter to the row presenter:
-        DetailsOverviewRowPresenter rowPresenter =
-            new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
+        FullWidthDetailsOverviewRowPresenter rowPresenter =
+            new FullWidthDetailsOverviewRowPresenter(
+                new DetailsDescriptionPresenter());
 
         selector.addClassPresenter(DetailsOverviewRow.class, rowPresenter);
         selector.addClassPresenter(ListRow.class,
diff --git a/docs/html/training/tv/playback/guided-step.jd b/docs/html/training/tv/playback/guided-step.jd
new file mode 100644
index 0000000..121961f
--- /dev/null
+++ b/docs/html/training/tv/playback/guided-step.jd
@@ -0,0 +1,259 @@
+page.title=Adding a Guided Step
+page.tags=tv, guided step
+helpoutsWidget=true
+
+trainingnavtop=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>This lesson teaches you to</h2>
+  <ol>
+    <li><a href="#details">Provide Details for a Step</a></li>
+    <li><a href="#actions">Create and Handle User Actions</a></li>
+    <li><a href="#sequence">Group Guided Steps Into a Sequence</a></li>
+    <li><a href="#presentation">Customize Step Presentation</a></li>
+  </ol>
+  <h2>Try it out</h2>
+  <ul>
+    <li><a class="external-link" href="https://github.com/googlesamples/androidtv-Leanback">Android
+    Leanback sample app</a></li>
+  </ul>
+</div>
+</div>
+
+<p>
+Your application might have multi-step tasks for users. For example, your app might need to guide
+users through purchasing additional content, or setting up a complex configuration setting, or
+simply confirming a decision. All of these tasks require walking users through one or more ordered
+steps or decisions.
+</p>
+
+<p>
+The <a href=
+"{@docRoot}tools/support-library/features.html#v17-leanback">v17 Leanback support library</a>
+provides classes to implement multi-step user tasks. This lesson discusses how to use the
+{@link android.support.v17.leanback.app.GuidedStepFragment} class to guide a user through a series
+of decisions to accomplish a task. {@link android.support.v17.leanback.app.GuidedStepFragment} uses
+TV UI best practices to make multi-step tasks easy to understand and navigate on TV devices.
+</p>
+
+<h2 id="details">Provide Details for a Step</h2>
+
+<p>
+A {@link android.support.v17.leanback.app.GuidedStepFragment} represents a single step in a series
+of steps. Visually it provides a guidance view on the left with step information. On the right,
+{@link android.support.v17.leanback.app.GuidedStepFragment} provides a view containing a
+list of possible actions or decisions for this step.
+</p>
+
+<img src="{@docRoot}images/training/tv/playback/guided-step-screen.png"
+srcset="{@docRoot}images/training/tv/playback/guided-step-screen.png 1x,
+{@docRoot}images/training/tv/playback/guided-step-screen-2x.png 2x" />
+<p class="img-caption"><strong>Figure 1.</strong> An example guided step.</p>
+
+<p>
+For each step in your multi-step task, extend
+{@link android.support.v17.leanback.app.GuidedStepFragment} and provide context information about
+the step and actions the user can take. Override
+{@link android.support.v17.leanback.app.GuidedStepFragment#onCreateGuidance onCreateGuidance()}
+and return a new
+{@link android.support.v17.leanback.widget.GuidanceStylist.Guidance} that contains context
+information, such as the step title, description, and icon.
+</p>
+
+<pre>
+&#64;Override
+public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
+    String title = getString(R.string.guidedstep_first_title);
+    String breadcrumb = getString(R.string.guidedstep_first_breadcrumb);
+    String description = getString(R.string.guidedstep_first_description);
+    Drawable icon = getActivity().getDrawable(R.drawable.guidedstep_main_icon_1);
+    return new GuidanceStylist.Guidance(title, description, breadcrumb, icon);
+}
+</pre>
+
+<p>
+Add your {@link android.support.v17.leanback.app.GuidedStepFragment} subclass to your desired
+activity by calling
+{@link android.support.v17.leanback.app.GuidedStepFragment#add GuidedStepFragment.add()}
+in your activity’s {@link android.app.Activity#onCreate onCreate()} method.
+
+If your activity contains only {@link android.support.v17.leanback.app.GuidedStepFragment}
+objects, use {@link android.support.v17.leanback.app.GuidedStepFragment#addAsRoot
+GuidedStepFragment.addAsRoot()} instead of
+{@link android.support.v17.leanback.app.GuidedStepFragment#add add()} to add the first
+{@link android.support.v17.leanback.app.GuidedStepFragment}. Using
+{@link android.support.v17.leanback.app.GuidedStepFragment#addAsRoot
+addAsRoot()} ensures that if the user presses the Back button on the TV remote when viewing
+the first {@link android.support.v17.leanback.app.GuidedStepFragment}, both the
+{@link android.support.v17.leanback.app.GuidedStepFragment} and the parent activity will close.
+</p>
+
+<p class="note"<strong>Note:</strong> Add
+{@link android.support.v17.leanback.app.GuidedStepFragment} objects programmatically
+and not in your layout XML files.</p>
+
+<h2 id="actions">Create and Handle User Actions</h2>
+
+<p>
+Add user actions by overriding
+{@link android.support.v17.leanback.app.GuidedStepFragment#onCreateActions onCreateActions()}.
+In your override, add a new {@link android.support.v17.leanback.widget.GuidedAction} for each
+action item, and provide the action string, description, and ID. Use
+{@link android.support.v17.leanback.widget.GuidedAction.Builder} to add new actions.
+</p>
+
+<pre>
+&#64;Override
+public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
+    // Add "Continue" user action for this step
+    actions.add(new GuidedAction.Builder()
+           .id(CONTINUE)
+           .title(getString(R.string.guidedstep_continue))
+           .description(getString(R.string.guidedstep_letsdoit))
+           .hasNext(true)
+           .build());
+...
+</pre>
+
+<p>
+Actions aren’t limited to single-line selections. Use
+{@link android.support.v17.leanback.widget.GuidedAction} attributes
+to add the following additional types of actions:
+</p>
+
+<ul>
+<li>
+Add a information label action by setting
+{@link android.support.v17.leanback.widget.GuidedAction.Builder#infoOnly infoOnly(true)}.
+If <code>infoOnly</code> is set to true, the action can't be selected by the user. Use label
+actions to provide additional information about user choices.
+</li>
+<li>
+Add an editable text action by setting
+{@link android.support.v17.leanback.widget.GuidedAction.Builder#editable editable(true)}. If
+<code>editable</code> is true, when the action is selected the user can enter text using the
+remote or a connected keyboard.
+</li>
+<li>
+Add a set of actions that behave as checkable radio buttons by using
+{@link android.support.v17.leanback.widget.GuidedAction.Builder#checkSetId checkSetId()}
+with a common ID value to group actions into a set. All actions in the same list with the same
+check-set ID are considered linked. When one of the actions within that set is selected, that
+action becomes checked, while all other actions become unchecked.
+</li>
+</ul>
+
+<p>
+You can also add a visual indicator that indicates selecting the action leads to a new step by
+setting
+{@link android.support.v17.leanback.widget.GuidedAction#hasNext hasNext(true)}.
+See {@link android.support.v17.leanback.widget.GuidedAction} for all the different attributes
+you can set.
+</p>
+
+<p>
+To respond to actions, override
+{@link android.support.v17.leanback.app.GuidedStepFragment#onGuidedActionClicked
+onGuidedActionClicked()} and process the passed-in
+{@link android.support.v17.leanback.widget.GuidedAction}. Identify the selected action by
+examining {@link android.support.v17.leanback.widget.GuidedAction#getId GuidedAction.getId()}.
+</p>
+
+<h2 id="sequence">Group Guided Steps Into a Guided Sequence</h2>
+
+<p>
+A {@link android.support.v17.leanback.app.GuidedStepFragment} represents a single step, however
+you might have several steps in an ordered sequence. Group multiple
+{@link android.support.v17.leanback.app.GuidedStepFragment} objects together by using
+{@link android.support.v17.leanback.app.GuidedStepFragment#add GuidedStepFragment.add()} to add
+the next step in the sequence to the fragment stack.
+</p>
+
+<pre>
+&#64;Override
+public void onGuidedActionClicked(GuidedAction action) {
+    FragmentManager fm = getFragmentManager();
+    if (action.getId() == CONTINUE) {
+       GuidedStepFragment.add(fm, new SecondStepFragment());
+    }
+...
+</pre>
+
+<p>
+If the user presses the Back button on the TV remote, the device shows the previous
+{@link android.support.v17.leanback.app.GuidedStepFragment} on the fragment stack. If you
+decide to provide your own {@link android.support.v17.leanback.widget.GuidedAction} that
+returns to the previous step, you can implement the Back behavior by calling
+{@link android.app.FragmentManager#popBackStack getFragmentManager().popBackStack()}.
+</p>
+
+<h2 id="presentation">Customize Step Presentation</h2>
+
+<p>
+The {@link android.support.v17.leanback.app.GuidedStepFragment} class can use custom
+themes that control presentation aspects such as title text formatting or step transition
+animations. Custom themes must inherit from
+{@link android.support.v17.leanback.R.style#Theme_Leanback_GuidedStep}, and can provide
+overriding values for attributes defined in
+{@link android.support.v17.leanback.widget.GuidanceStylist} and
+{@link android.support.v17.leanback.widget.GuidedActionsStylist}.
+</p>
+
+<p>
+To apply a custom theme to your GuidedStepFragment, do one of the following:
+</p>
+
+<ul>
+<li>
+Apply the theme to the parent activity by setting the <code>android:theme</code> attribute to the
+activity element in the Android manifest. Setting this attribute applies the theme to all child
+views and is the easiest way to apply a custom theme if the parent activity contains only
+{@link android.support.v17.leanback.app.GuidedStepFragment} objects.
+</li>
+<li>
+If your activity already uses a custom theme and you don’t want to apply
+{@link android.support.v17.leanback.app.GuidedStepFragment} styles to other views in the activity,
+add the
+{@link android.support.v17.leanback.R.styleable#LeanbackGuidedStepTheme_guidedStepTheme}
+attribute to your existing custom activity theme. This attribute points to the custom theme that
+only the {@link android.support.v17.leanback.app.GuidedStepFragment} objects in your
+activity will use.
+</li>
+<li>
+If you use {@link android.support.v17.leanback.app.GuidedStepFragment} objects in different
+activities that are part of the same overall multi-step task, and want to use a consistent
+visual theme across all steps, override
+{@link android.support.v17.leanback.app.GuidedStepFragment#onProvideTheme
+GuidedStepFragment.onProvideTheme()} and return your custom theme.
+</li>
+</ul>
+
+<p>
+For more information on how to add styles and themes, see
+<a href="{@docRoot}guide/topics/ui/themes.html">Styles and Themes</a>.
+</p>
+
+<p>
+The {@link android.support.v17.leanback.app.GuidedStepFragment} class uses special
+<em>stylist classes</em> to access and apply theme attributes.
+The {@link android.support.v17.leanback.widget.GuidanceStylist} class uses theme information
+to control presentation of the left guidance view, while the
+{@link android.support.v17.leanback.widget.GuidedActionsStylist} class uses theme information
+to control presentation of the right actions view.
+</p>
+
+<p>
+To customize the visual style of your steps beyond what theme customization can provide, subclass
+{@link android.support.v17.leanback.widget.GuidanceStylist} or
+{@link android.support.v17.leanback.widget.GuidedActionsStylist} and return your subclass in
+{@link android.support.v17.leanback.app.GuidedStepFragment#onCreateGuidanceStylist
+GuidedStepFragment.onCreateGuidanceStylist()} or
+{@link android.support.v17.leanback.app.GuidedStepFragment#onCreateActionsStylist
+GuidedStepFragment.onCreateActionsStylist()}.
+For details on what you can customize in these subclasses, see the documentation on
+{@link android.support.v17.leanback.widget.GuidanceStylist} and
+{@link android.support.v17.leanback.widget.GuidedActionsStylist}.
+</p>
\ No newline at end of file
diff --git a/docs/html/training/tv/playback/index.jd b/docs/html/training/tv/playback/index.jd
index e39e34a..d5e4e67 100644
--- a/docs/html/training/tv/playback/index.jd
+++ b/docs/html/training/tv/playback/index.jd
@@ -64,4 +64,11 @@
 
   <dt><b><a href="now-playing.html">Displaying a Now Playing Card</a></b></dt>
     <dd>Learn how to use a MediaSession to display a Now Playing card on the home screen.</dd>
+
+  <dt><b><a href="guided-step.html">Adding a Guided Step</a></b></dt>
+    <dd>Learn how to use the Leanback support library to guide a user through a series of
+    decisions.</dd>
+
+  <dt><b><a href="options.html">Enabling Background Playback</a></b></dt>
+    <dd>Learn how to continue playback when the user clicks on <strong>Home</strong>.</dd>
 </dl>
diff --git a/docs/html/training/tv/playback/now-playing.jd b/docs/html/training/tv/playback/now-playing.jd
index 0a50441..2bb628a 100644
--- a/docs/html/training/tv/playback/now-playing.jd
+++ b/docs/html/training/tv/playback/now-playing.jd
@@ -19,51 +19,44 @@
 </div>
 </div>
 
-<p>TV apps may allow users to play music or other media in the background while using other
-applications. If your app allows this type of use, it must must
-provide a means for the user to return to the app to pause the music or switch to a new song. The
-Android framework enables TV apps to do this by displaying a <em>Now Playing</em> card on the home
-screen in the recommendations row.</p>
+<p>TV apps must display a <em>Now Playing</em> card when playing media behind the launcher or in the
+background. This card allows users to return to the app that is currently playing media.</p>
 
-<p>The Now Playing card is a system artifact that displays on the
-home screen in the recommendations row for an active media session. It includes the media metadata
-such as the album art, title, and app icon. When the user selects it, the system opens the the app
-that owns the session.</p>
+<p>The Android framework displays a <em>Now Playing</em> card on the home
+screen when there is an active {@link android.media.session.MediaSession}.
+The card includes media metadata such as album art, title, and app icon.
+When the user selects the card, the system opens the app.</p>
 
 <p>This lesson shows how to use the {@link android.media.session.MediaSession} class to implement
-the Now Playing card.</p>
+the <em>Now Playing</em> card.</p>
+
+<img src="{@docRoot}images/training/tv/playback/now-playing-screen.png" />
+<p class="img-caption"><strong>Figure 1.</strong> Display a <em>Now Playing</em> card when playing
+media in the background.</p>
 
 <h2 id="session">Start a Media Session</h2>
 
-<p>A playback app can run as an <a href="{@docRoot}guide/components/activities">activity</a> or
-as a <a href="{@docRoot}guide/components/services">service</a>. The service is required for
-background playback because it can continue to play media even after the activity that launched it
-has been destroyed. For this discussion, the media playback app is assumed to be running in a
-{@link android.service.media.MediaBrowserService}.</p>
-
-<p>In your service's {@link android.service.media.MediaBrowserService#onCreate() onCreate()}
-method, create a new {@link android.media.session.MediaSession#MediaSession(android.content.Context, java.lang.String) MediaSession},
-set the callback and flags appropriate to a media app, and set the session token for the
-{@link android.service.media.MediaBrowserService}.</p>
+<p>Create a
+{@link android.media.session.MediaSession#MediaSession(android.content.Context, java.lang.String) MediaSession}
+when your app is preparing to play media. The following code snippet
+is an example of how to set the appropriate callback and flags:</p>
 
 <pre>
 mSession = new MediaSession(this, "MusicService");
 mSession.setCallback(new MediaSessionCallback());
 mSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS |
         MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
-
-// for the MediaBrowserService
-setSessionToken(mSession.getSessionToken());
 </pre>
 
-<p class="note"<strong>Note:</strong> The Now Playing card will display only for a media session with
+<p class="note"<strong>Note:</strong> The <em>Now Playing</em> card will display
+only for a media session with
 the {@link android.media.session.MediaSession#FLAG_HANDLES_TRANSPORT_CONTROLS} flag set.</p>
 
 <h2 id="card">Display a Now Playing Card</h2>
 
-<p>The Now Playing card shows up after {@link android.media.session.MediaSession#setActive(boolean) setActive(true)}
-is called, if the session is the highest priority session in the system. Also, note that your app
-must request the audio focus, as described in
+<p>The <em>Now Playing</em> card only appears for active sessions. You must call
+{@link android.media.session.MediaSession#setActive(boolean) setActive(true)}
+when playback begins. Your app must also request audio focus, as described in
 <a href="{@docRoot}training/managing-audio/audio-focus.html">Managing Audio Focus</a>.</p>
 
 <pre>
@@ -77,15 +70,19 @@
 ...
 </pre>
 
-<p>The card is removed from the home screen when {@link android.media.session.MediaSession#setActive(boolean) setActive(false)}
-is called or if another app initiates media playback. You may want to remove the card from the home
-screen some time after playback is paused, depending on how long you want to keep the card up,
-usually 5 to 30 minutes.</p>
+<p>The card is removed from the launcher screen when a
+{@link android.media.session.MediaSession#setActive(boolean) setActive(false)}
+call deactivates the media session,
+or when another app initiates media playback.
+If playback is completely stopped and there is no active media,
+your app should deactivate the media session immediately.
+If playback is paused, your app should deactivate the media session
+after a delay, usually between 5 to 30 minutes.</p>
 
 <h2 id="state">Update the Playback State</h2>
 
-<p>As with any media app, update the playback state in the {@link android.media.session.MediaSession}
-so that the card can display the current metadata, as shown in the following example:</p>
+<p>Update the playback state in the {@link android.media.session.MediaSession}
+so the card can show the state of the current media.</p>
 
 <pre>
 private void updatePlaybackState() {
@@ -98,8 +95,9 @@
     stateBuilder.setState(mState, position, 1.0f);
     mSession.setPlaybackState(stateBuilder.build());
 }
+
 private long getAvailableActions() {
-    long actions = PlaybackState.ACTION_PLAY |
+    long actions = PlaybackState.ACTION_PLAY_PAUSE |
             PlaybackState.ACTION_PLAY_FROM_MEDIA_ID |
             PlaybackState.ACTION_PLAY_FROM_SEARCH;
     if (mPlayingQueue == null || mPlayingQueue.isEmpty()) {
@@ -107,6 +105,8 @@
     }
     if (mState == PlaybackState.STATE_PLAYING) {
         actions |= PlaybackState.ACTION_PAUSE;
+    } else {
+        actions |= PlaybackState.ACTION_PLAY;
     }
     if (mCurrentIndexOnQueue &gt; 0) {
         actions |= PlaybackState.ACTION_SKIP_TO_PREVIOUS;
@@ -120,10 +120,11 @@
 
 <h2 id="metadata">Display the Media Metadata</h2>
 
-<p>For the track currently playing, set the {@link android.media.MediaMetadata} with the
+<p>Set the {@link android.media.MediaMetadata} with the
 {@link android.media.session.MediaSession#setMetadata(android.media.MediaMetadata) setMetadata()}
-method. This method of the media session object lets you provide information to the Now Playing card
-about the track such as the title, subtitle, and various icons. The following example assumes your
+method. This method of the media session object lets you provide information to
+the <em>Now Playing</em> card about the track such as the title, subtitle,
+and various icons. The following example assumes your
 track's data is stored in a custom data class, {@code MediaData}.</p>
 
 <pre>
@@ -152,8 +153,9 @@
 
 <h2 id="respond">Respond to User Action</h2>
 
-<p>When the user selects the Now Playing card, the system opens the app that owns the session.
-If your app provides a {@link android.app.PendingIntent} to pass to
+<p>When the user selects the <em>Now Playing</em> card, the system
+opens the app that owns the session.
+If your app provides a {@link android.app.PendingIntent} to
 {@link android.media.session.MediaSession#setSessionActivity(android.app.PendingIntent) setSessionActivity()},
 the system launches the activity you specify, as demonstrated below. If not, the default system
 intent opens. The activity you specify must provide playback controls that allow users to pause or
diff --git a/docs/html/training/tv/playback/options.jd b/docs/html/training/tv/playback/options.jd
new file mode 100644
index 0000000..c65343d
--- /dev/null
+++ b/docs/html/training/tv/playback/options.jd
@@ -0,0 +1,66 @@
+page.title=Enabling Background Playback
+page.tags=tv, play, playback, background
+helpoutsWidget=true
+
+trainingnavtop=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>This lesson teaches you to</h2>
+  <ol>
+    <li><a href="#background">Request Background Playback</a></li>
+  </ol>
+</div>
+</div>
+
+<p>
+A user watching content on a TV device may decide to switch to the TV launcher at any time.
+If a user switches to the launcher while using a TV playback app, by default the app is paused.
+Since the user did not explicitly request to pause playback, the default behavior might seem
+abrupt and unexpected. This lesson describes how to enable background playback in your app,
+which provides a better user experience.
+</p>
+
+<h2 id="background">Request Background Playback</h2>
+
+<p>Normally, when the user clicks on <strong>Home</strong> to display the TV
+launcher, the activity pauses. However, your app can request background playback, in
+which the activity continues playing behind the TV launcher.</p>
+
+<p>To request background playback, call
+{@link android.app.Activity#requestVisibleBehind requestVisibleBehind()}.
+Be sure to clean up media resources if the activity stops being
+visible. For example, you should free media resources if
+{@link android.app.Activity#requestVisibleBehind requestVisibleBehind()}
+returns <code>false</code> to indicate that the request failed, or if the system calls
+your override of {@link android.app.Activity#onVisibleBehindCanceled onVisibleBehindCanceled()}.
+</p>
+
+<pre>
+&commat;Override
+public void onPause() &lbrace;
+  super.onPause();
+  if (mVideoView.isPlaying()) &lbrace;
+    // Argument equals true to notify the system that the activity
+    // wishes to be visible behind other translucent activities
+    if (! requestVisibleBehind(true)) &lbrace;
+      // App-specific method to stop playback and release resources
+      // because call to requestVisibleBehind(true) failed
+      stopPlayback();
+    &rbrace;
+  &rbrace; else &lbrace;
+    // Argument equals false because the activity is not playing
+    requestVisibleBehind(false);
+  &rbrace;
+&rbrace;
+
+&commat;Override
+public void onVisibleBehindCanceled() &lbrace;
+  // App-specific method to stop playback and release resources
+  stopPlayback();
+  super.onVisibleBehindCanceled();
+&rbrace;
+</pre>
+
diff --git a/docs/html/training/tv/publishing/checklist.jd b/docs/html/training/tv/publishing/checklist.jd
index 6259721..c044f0e 100644
--- a/docs/html/training/tv/publishing/checklist.jd
+++ b/docs/html/training/tv/publishing/checklist.jd
@@ -137,6 +137,11 @@
   <p>See <a href="{@docRoot}training/tv/start/layouts.html#advertising">Provide Effective Advertising</a>.</p>
 </li>
 
+<li>
+  Use the Leanback library for guiding the user through a series of decisions.
+  <p>See <a href="{@docRoot}training/tv/playback/guided-step.html">Adding a Guided Step</a>.</p>
+</li>
+
 </ol>
 
 
diff --git a/docs/html/training/tv/start/hardware.jd b/docs/html/training/tv/start/hardware.jd
index b1e39cb..9a66c09 100644
--- a/docs/html/training/tv/start/hardware.jd
+++ b/docs/html/training/tv/start/hardware.jd
@@ -100,10 +100,6 @@
     <td>{@code android.hardware.camera}</td>
   </tr>
   <tr>
-    <td>Bluetooth</td>
-    <td>{@code android.hardware.bluetooth}</td>
-  </tr>
-  <tr>
     <td>Near Field Communications (NFC)</td>
     <td>{@code android.hardware.nfc}</td>
   </tr>
@@ -159,8 +155,6 @@
         android:required="false"/&gt;
 &lt;uses-feature android:name="android.hardware.camera"
         android:required="false"/&gt;
-&lt;uses-feature android:name="android.hardware.bluetooth"
-        android:required="false"/&gt;
 &lt;uses-feature android:name="android.hardware.nfc"
         android:required="false"/&gt;
 &lt;uses-feature android:name="android.hardware.location.gps"
diff --git a/docs/html/training/tv/start/start.jd b/docs/html/training/tv/start/start.jd
old mode 100644
new mode 100755
index 743b61b..0ed6e15
--- a/docs/html/training/tv/start/start.jd
+++ b/docs/html/training/tv/start/start.jd
@@ -367,7 +367,5 @@
   For more information about using emulators see, <a href="{@docRoot}tools/devices/emulator.html">
   Using the Emulator</a>. For more information on deploying apps from Android Studio to virtual
   devices, see <a href="{@docRoot}sdk/installing/studio-debug.html">Debugging with Android
-  Studio</a>. For more information about deploying apps to emulators from Eclipse with ADT, see
-  <a href="{@docRoot}tools/building/building-eclipse.html">Building and Running from Eclipse with
-  ADT</a>.
+  Studio</a>.
 </p>
diff --git a/docs/html/training/tv/tif/tvinput.jd b/docs/html/training/tv/tif/tvinput.jd
index f76f78b..1a53398 100644
--- a/docs/html/training/tv/tif/tvinput.jd
+++ b/docs/html/training/tv/tif/tvinput.jd
@@ -12,7 +12,7 @@
   <ol>
     <li><a href="#manifest">Declare Your TV Input Service in the Manifest</a></li>
     <li><a href="#tvinput">Define Your TV Input Service</a></li>
-    <li><a href="#setup">Define Setup and Settings Activities</a></li>
+    <li><a href="#setup">Define Your Setup Activity</a></li>
   </ol>
   <h2>You should also read</h2>
   <ul>
@@ -82,18 +82,14 @@
 
 <p>Define the service meta data in separate XML file, as shown in the following example. The service
 meta data must include a setup interface that describes the TV input's initial configuration and
-channel scan. Also, the service meta data may (optionally) describe a settings activity for users to
-modify the TV input's behavior. The service meta data file is located in the XML resources directory
+channel scan. The service meta data file is located in the XML resources directory
 for your application and must match the name of the resource in the manifest. Using the example
 manifest entries above, you would create an XML file in the location
 <code>res/xml/sample_tv_input.xml</code>, with the following contents:</p>
 
 <pre>
 &lt;tv-input xmlns:android="http://schemas.android.com/apk/res/android"
-  &lt;!-- Required: activity for setting up the input --&gt;
-  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity"
-  &lt;!-- Optional: activity for controlling the settings --&gt;
-  android:settingsActivity="com.example.sampletvinput.SampleTvInputSettingsActivity" /&gt;
+  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" /&gt;
 </pre>
 
 <h2 id="tvinput">Define Your TV Input Service</h2>
@@ -162,16 +158,11 @@
 Control Content</a> and <a href="{@docRoot}training/tv/tif/ui.html#track">Handle Track Selection</a>
 further in this training.</p>
 
-<h2 id="setup">Define Setup and Settings Activities</h2>
+<h2 id="setup">Define Your Setup Activity</h2>
 
-<p>The system TV app works with the setup and settings activities you define for your TV input. The
+<p>The system TV app works with the setup activity you define for your TV input. The
 setup activity is required and must provide at least one channel record for the system database. The
 system TV app will invoke the setup activity when it cannot find a channel for the TV input.
 <p>The setup activity describes to the system TV app the channels made available through the TV
 input, as demonstrated in the next lesson, <a href="{@docRoot}training/tv/tif/channel.html">Creating
 and Updating Channel Data</a>.</p>
-
-<p>The settings activity is optional. You can define a settings activity to turn on parental
-controls, enable closed captions, set the display attributes, and so forth.</p>
-
-
diff --git a/docs/html/training/volley/index.jd b/docs/html/training/volley/index.jd
old mode 100644
new mode 100755
index 2cefc90..6ee7d4e
--- a/docs/html/training/volley/index.jd
+++ b/docs/html/training/volley/index.jd
@@ -77,9 +77,9 @@
 </pre>
 </li>
 
-<li>Import the downloaded source into your app project as an Android library project
-(as described in <a href="{@docRoot}tools/projects/projects-eclipse.html">
-Managing Projects from Eclipse with ADT</a>, if you're using Eclipse) or make a
+<li>Import the downloaded source into your app project as an Android library module
+(as described in <a href="{@docRoot}sdk/installing/create-project.html#SettingUpLibraryModule">
+Managing Projects from Android Studio</a>, if you're using Android Studio) or make a
 <a href="{@docRoot}guide/faq/commontasks.html#addexternallibrary"><code>.jar</code> file</a>.</li>
 </ol>
 
diff --git a/docs/html/training/wearables/apps/index.jd b/docs/html/training/wearables/apps/index.jd
old mode 100644
new mode 100755
index e2a71de..da83cfa
--- a/docs/html/training/wearables/apps/index.jd
+++ b/docs/html/training/wearables/apps/index.jd
@@ -66,10 +66,9 @@
 need to show persistent content on versions prior to Android 5.1, create a notification in the
 context stream instead.</p>
 
-<p class="note"><b>Note:</b> We recommend using Android Studio for Android Wear development
-as it provides project setup, library inclusion, and packaging conveniences that aren't available
-in ADT. The rest of this training assumes you're using Android Studio.
-</p>
+<p class="note"><b>Note:</b> We recommend using Android Studio for Android Wear development,
+as it provides project setup, library inclusion, and packaging conveniences. The rest of this
+training assumes you're using Android Studio.</p>
 
 <h2>Lessons</h2>
   <dl>
@@ -92,4 +91,4 @@
       users install the companion handheld app from the Google Play store.</dd>
     <dt><a href="{@docRoot}training/wearables/apps/bt-debugging.html">Debugging over Bluetooth</a></dt>
       <dd>Learn how to debug your wearable over Bluetooth instead of USB.</dd>
-  </dl>
\ No newline at end of file
+  </dl>
diff --git a/docs/html/training/wearables/apps/layouts.jd b/docs/html/training/wearables/apps/layouts.jd
old mode 100644
new mode 100755
index 197b94b0c..6480e63
--- a/docs/html/training/wearables/apps/layouts.jd
+++ b/docs/html/training/wearables/apps/layouts.jd
@@ -199,12 +199,6 @@
 <a href="{@docRoot}reference/android/support/wearable/view/package-summary.html">Wear API
 reference documentation</a> for the classes above.</p>
 
-<h3 id="UiLibEclipse">Download the Wearable UI library for Eclipse ADT</h3>
-
-<p>If you are using the ADT plugin for Eclipse, download the
-<a href="{@docRoot}shareables/training/wearable-support-lib.zip">Wearable UI library</a> to
-include the Wearable UI library as a dependency in your project.</p>
-
-<p class="note"><strong>Note:</strong> We recommend
-<a href="{@docRoot}sdk/index.html">Android Studio</a> for Android Wear app
-development.</p>
+<p class="note"><strong>Note:</strong> We recommend using <a
+href="{@docRoot}sdk/index.html">Android Studio</a> for Android Wear development, as
+it provides project setup, library inclusion, and packaging conveniences.</p>
diff --git a/docs/html/training/wearables/data-layer/data-items.jd b/docs/html/training/wearables/data-layer/data-items.jd
index 49a8d32..520a06a 100644
--- a/docs/html/training/wearables/data-layer/data-items.jd
+++ b/docs/html/training/wearables/data-layer/data-items.jd
@@ -158,7 +158,7 @@
 
     &#64;Override
     protected void onResume() {
-        super.onStart();
+        super.onResume();
         mGoogleApiClient.connect();
     }
 
diff --git a/docs/html/training/wearables/ui/index.jd b/docs/html/training/wearables/ui/index.jd
old mode 100644
new mode 100755
index f82d29c..c43e165
--- a/docs/html/training/wearables/ui/index.jd
+++ b/docs/html/training/wearables/ui/index.jd
@@ -36,9 +36,9 @@
 provides classes that help you implement these patterns and create layouts that work on
 both round and square Android Wear devices.</p>
 
-<p class="note"><b>Note:</b> We recommend using Android Studio for Android Wear development
-as it provides project setup, library inclusion, and packaging conveniences that aren't available
-in ADT. This training assumes you are using Android Studio.</p>
+<p class="note"><b>Note:</b> We recommend using Android Studio for Android Wear development,
+as it provides project setup, library inclusion, and packaging conveniences. This training assumes
+you are using Android Studio.</p>
 
 <h2>Lessons</h2>
 
@@ -55,4 +55,4 @@
   <dd>Learn how to display confirmation animations when users complete actions.</dd>
   <dt><a href="{@docRoot}training/wearables/ui/exit.html">Exiting Full-Screen Activities</a></dt>
   <dd>Learn how to implement the long-press-to-dismiss UI pattern to exit full-screen activities.</dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/html/training/wearables/watch-faces/index.jd b/docs/html/training/wearables/watch-faces/index.jd
old mode 100644
new mode 100755
index a329fda..aac49d3
--- a/docs/html/training/wearables/watch-faces/index.jd
+++ b/docs/html/training/wearables/watch-faces/index.jd
@@ -45,9 +45,9 @@
 designs integrate with system UI elements and are power-efficient.</p>
 
 <p class="note"><strong>Note:</strong> We recommend using <a
-href="{@docRoot}sdk/index.html">Android Studio</a> for Android Wear development as
-it provides project setup, library inclusion, and packaging conveniences that aren't available
-in the Eclipse Android Developer Tools. This training assumes you are using Android Studio.</p>
+href="{@docRoot}sdk/index.html">Android Studio</a> for Android Wear development, as
+it provides project setup, library inclusion, and packaging conveniences. This training assumes
+you are using Android Studio.</p>
 
 
 <h2>Lessons</h2>
diff --git a/docs/html/training/wearables/watch-faces/service.jd b/docs/html/training/wearables/watch-faces/service.jd
old mode 100644
new mode 100755
index 578e8c0..e94ee56
--- a/docs/html/training/wearables/watch-faces/service.jd
+++ b/docs/html/training/wearables/watch-faces/service.jd
@@ -87,11 +87,9 @@
 <a href="{@docRoot}reference/android/support/wearable/watchface/package-summary.html">API reference
 documentation</a> for the Wearable Support Library.</p>
 
-<h3 id="LibEclipse">Download the Wearable Support Library for Eclipse ADT</h3>
-
-<p>If you are using the ADT plugin for Eclipse, download the
-<a href="{@docRoot}shareables/training/wearable-support-lib.zip">Wearable Support Library</a> and
-include it as a dependency in your project.</p>
+<p class="note"><strong>Note:</strong> We recommend using <a
+href="{@docRoot}sdk/index.html">Android Studio</a> for Android Wear development, as
+it provides project setup, library inclusion, and packaging conveniences.</p>
 
 <h3 id="Permissions">Declare Permissions</h3>
 
diff --git a/docs/html/tv/index.jd b/docs/html/tv/index.jd
index 73b3435..53948ff 100644
--- a/docs/html/tv/index.jd
+++ b/docs/html/tv/index.jd
@@ -260,24 +260,6 @@
 
     </div> <!-- end .landing-rest-of-page -->
 
-    <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement">
-      <div class="layout-content-col col-16" style="padding-top:4px">
-        <style>#___plusone_0 {float:right !important;}</style>
-        <div class="g-plusone" data-size="medium"></div>
-      </div>
-    </div>
-    <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
-      <div id="copyright">
-        Except as noted, this content is
-        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-        Creative Commons Attribution 2.5</a>. For details and
-        restrictions, see the <a href="/license.html">Content
-        License</a>.
-      </div>
-    </div>
-
-  </div> <!-- end .landing-hero-container -->
-
   <script>
   $("a.landing-down-arrow").on("click", function(e) {
     $("body").animate({
diff --git a/docs/html/wear/images/partners/casio.png b/docs/html/wear/images/partners/casio.png
new file mode 100644
index 0000000..41f36d8
--- /dev/null
+++ b/docs/html/wear/images/partners/casio.png
Binary files differ
diff --git a/docs/html/wear/images/partners/mobvoi.png b/docs/html/wear/images/partners/mobvoi.png
new file mode 100644
index 0000000..9a2eb4d
--- /dev/null
+++ b/docs/html/wear/images/partners/mobvoi.png
Binary files differ
diff --git a/docs/html/wear/images/partners/nb.png b/docs/html/wear/images/partners/nb.png
new file mode 100644
index 0000000..224b27e
--- /dev/null
+++ b/docs/html/wear/images/partners/nb.png
Binary files differ
diff --git a/docs/html/wear/index.jd b/docs/html/wear/index.jd
index e18ada4..618fb30 100644
--- a/docs/html/wear/index.jd
+++ b/docs/html/wear/index.jd
@@ -213,6 +213,9 @@
             <div class="col-4">
               <img src="/wear/images/partners/broadcom.png" alt="Broadcom">
             </div>
+             <div class="col-4">
+              <img src="/wear/images/partners/casio.png" alt="Casio">
+            </div>
             <div class="col-4">
               <img src="/wear/images/partners/fossil.png" alt="Fossil">
             </div>
@@ -234,9 +237,15 @@
             <div class="col-4">
               <img src="/wear/images/partners/mips.png" alt="MIPS">
             </div>
+             <div class="col-4">
+              <img src="/wear/images/partners/mobvoi.png" alt="Mobvoi">
+            </div>
             <div class="col-4">
               <img src="/wear/images/partners/motorola.png" alt="Motorola">
             </div>
+             <div class="col-4">
+              <img src="/wear/images/partners/nb.png" alt="New Balance">
+            </div>
             <div class="col-4">
               <img src="/wear/images/partners/qualcomm.png" alt="Qualcomm">
             </div>
@@ -249,6 +258,7 @@
             <div class="col-4">
               <img src="/wear/images/partners/tagheuer.png" alt="Tag Heuer">
             </div>
+
           </div>
         </div> <!-- end .wrap -->
       </div>
@@ -332,22 +342,6 @@
         </div> <!-- end .wrap -->
       </div> <!-- end .landing-section -->
     </div> <!-- end .landing-rest-of-page -->
-    <div class="content-footer wrap" itemscope="" itemtype="http://schema.org/SiteNavigationElement">
-      <div class="layout-content-col col-16" style="padding-top:4px">
-        <style>#___plusone_0 {float:right !important;}</style>
-        <div class="g-plusone" data-size="medium"></div>
-      </div>
-    </div>
-    <div id="footer" class="wrap" style="width:940px;position:relative;top:-35px;z-index:-1">
-      <div id="copyright">
-        Except as noted, this content is
-        licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-        Creative Commons Attribution 2.5</a>. For details and
-        restrictions, see the <a href="{@docRoot}license.html">Content
-        License</a>.
-      </div>
-    </div>
-  </div> <!-- end .landing-hero-container -->
 
   <script>
   $("a.landing-down-arrow").on("click", function(e) {
diff --git a/docs/image_sources/training/tv/playback/guided-step-screen-orig.png b/docs/image_sources/training/tv/playback/guided-step-screen-orig.png
new file mode 100644
index 0000000..c39099c
--- /dev/null
+++ b/docs/image_sources/training/tv/playback/guided-step-screen-orig.png
Binary files differ
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 4919bed..a3aa73e 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -1432,10 +1432,7 @@
     }
 
     private void enforceChangePermission() {
-        int uid = Binder.getCallingUid();
-        Settings.checkAndNoteChangeNetworkStateOperation(mContext, uid, Settings
-                .getPackageNameForUid(mContext, uid), true);
-
+        ConnectivityManager.enforceChangePermission(mContext);
     }
 
     private void enforceTetherAccessPermission() {