Merge "HIC: Improve AccelerationClassifier" into nyc-dr1-dev
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index ec22ff6..75a5bf7 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -44,7 +44,7 @@
      */
     ParcelFileDescriptor setWallpaper(String name, in String callingPackage,
             in Rect cropHint, boolean allowBackup, out Bundle extras, int which,
-            IWallpaperManagerCallback completion);
+            IWallpaperManagerCallback completion, int userId);
 
     /**
      * Set the live wallpaper. This only affects the system wallpaper.
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 6e44662..219afea 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -48,6 +48,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.ParcelFileDescriptor;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
@@ -939,7 +940,8 @@
             /* Set the wallpaper to the default values */
             ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(
                     "res:" + resources.getResourceName(resid),
-                    mContext.getOpPackageName(), null, false, result, which, completion);
+                    mContext.getOpPackageName(), null, false, result, which, completion,
+                    UserHandle.myUserId());
             if (fd != null) {
                 FileOutputStream fos = null;
                 boolean ok = false;
@@ -1040,6 +1042,19 @@
     public int setBitmap(Bitmap fullImage, Rect visibleCropHint,
             boolean allowBackup, @SetWallpaperFlags int which)
             throws IOException {
+        return setBitmap(fullImage, visibleCropHint, allowBackup, which,
+                UserHandle.myUserId());
+    }
+
+    /**
+     * Like {@link #setBitmap(Bitmap, Rect, boolean, int)}, but allows to pass in an explicit user
+     * id. If the user id doesn't match the user id the process is running under, calling this
+     * requires permission {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL}.
+     * @hide
+     */
+    public int setBitmap(Bitmap fullImage, Rect visibleCropHint,
+            boolean allowBackup, @SetWallpaperFlags int which, int userId)
+            throws IOException {
         validateRect(visibleCropHint);
         if (sGlobals.mService == null) {
             Log.w(TAG, "WallpaperService not running");
@@ -1050,7 +1065,7 @@
         try {
             ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null,
                     mContext.getOpPackageName(), visibleCropHint, allowBackup,
-                    result, which, completion);
+                    result, which, completion, userId);
             if (fd != null) {
                 FileOutputStream fos = null;
                 try {
@@ -1176,7 +1191,7 @@
         try {
             ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null,
                     mContext.getOpPackageName(), visibleCropHint, allowBackup,
-                    result, which, completion);
+                    result, which, completion, UserHandle.myUserId());
             if (fd != null) {
                 FileOutputStream fos = null;
                 try {
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 8d6d9ed..4616af8 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -372,6 +372,14 @@
     }
 
     /**
+     * @see #getDataPreloadsDirectory()
+     * {@hide}
+     */
+    public static File getDataPreloadsMediaDirectory() {
+        return new File(getDataPreloadsDirectory(), "media");
+    }
+
+    /**
      * Return the primary shared/external storage directory. This directory may
      * not currently be accessible if it has been mounted by the user on their
      * computer, has been removed from the device, or some other problem has
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 4dc1009..7494b94 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -52,6 +52,7 @@
 import android.media.AudioManager;
 import android.os.Binder;
 import android.os.Build;
+import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
 import android.os.Debug;
 import android.os.Handler;
@@ -1540,7 +1541,15 @@
         if (viewVisibilityChanged) {
             mAttachInfo.mWindowVisibility = viewVisibility;
             host.dispatchWindowVisibilityChanged(viewVisibility);
-            host.dispatchVisibilityAggregated(viewVisibility == View.VISIBLE);
+
+            // Prior to N we didn't have dispatchVisibilityAggregated to give a more accurate
+            // view into when views are visible to the user or not. ImageView never dealt with
+            // telling its drawable about window visibility, among other things. Some apps cause
+            // an additional crossfade animation when windows become visible if they get this
+            // additional call, so only send it to new apps to avoid new visual jank.
+            if (host.getContext().getApplicationInfo().targetSdkVersion >= VERSION_CODES.N) {
+                host.dispatchVisibilityAggregated(viewVisibility == View.VISIBLE);
+            }
             if (viewVisibility != View.VISIBLE || mNewSurfaceNeeded) {
                 endDragResizing();
                 destroyHardwareResources();
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 6c26165..fbd57df 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2929,6 +2929,18 @@
     <!-- A notification is shown when the user connects to a Wi-Fi network and the system detects that that network has no Internet access. This is the notification's message. -->
     <string name="wifi_no_internet_detailed">Tap for options</string>
 
+    <!-- Network type names used in the network_switch_metered and network_switch_metered_detail strings. These must be kept in the sync with the values NetworkCapabilities.TRANSPORT_xxx values, and in the same order. -->
+    <string-array name="network_switch_type_name">
+        <item>cellular data</item>
+        <item>Wi-Fi</item>
+        <item>Bluetooth</item>
+        <item>Ethernet</item>
+        <item>VPN</item>
+    </string-array>
+
+    <!-- Network type name displayed if one of the types is not found in network_switch_type_name. -->
+    <string name="network_switch_type_name_unknown">an unknown network type</string>
+
      <!-- A notification is shown when a user's selected SSID is later disabled due to connectivity problems.  This is the notification's title / ticker. -->
      <string name="wifi_watchdog_network_disabled">Couldn\'t connect to Wi-Fi</string>
      <!-- A notification is shown when a user's selected SSID is later disabled due to connectivity problems.  The complete alert msg is: <hotspot name> + this string, i.e. "Linksys has a poor internet connection" -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index c9ed497..70f1d43 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -947,6 +947,8 @@
   <java-symbol type="string" name="wifi_available_sign_in" />
   <java-symbol type="string" name="network_available_sign_in" />
   <java-symbol type="string" name="network_available_sign_in_detailed" />
+  <java-symbol type="array" name="network_switch_type_name" />
+  <java-symbol type="string" name="network_switch_type_name_unknown" />
   <java-symbol type="string" name="wifi_no_internet" />
   <java-symbol type="string" name="wifi_no_internet_detailed" />
   <java-symbol type="string" name="wifi_connect_alert_title" />
diff --git a/docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index 20d2d6e..0000000
--- a/docs/html-intl/intl/es/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=Guía de prueba
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>En este documento</h2>
-      <ol>
-        <li><a href="#runtime-permissions">Prueba de los permisos</a></li>
-        <li><a href="#doze-standby">Prueba de los modos Descanso y App Standby</a></li>
-        <li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Android N te brinda la oportunidad de garantizar que tus aplicaciones funcionen con la próxima versión de la plataforma.
- Esta versión preliminar incluye diversas API y cambios en los comportamientos que pueden
-tener impactos en tu aplicación, como se describe en las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a> y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a>.
- Al probar tu aplicación con la versión preliminar, te debes centrar en algunos cambios específicos del sistema para garantizar que los usuarios disfruten de una buena experiencia.
-
-
-</p>
-
-<p>
-  En esta guía, se describen qué y cómo probar las características preliminares con tu aplicación. Debes priorizar la prueba de estas características específicas preliminares, puesto que podrían tener un alto impacto en el comportamiento de tu aplicación:
-
-
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">Permisos</a>
-  </li>
-  <li><a href="#doze-standby">Modos Descanso y App Standby</a>
-  </li>
-  <li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
-</ul>
-
-<p>
-  Para obtener más información sobre cómo configurar dispositivos o dispositivos virtuales con una imagen
- del sistema de la versión preliminar para realizar pruebas, consulta la sección <a href="{@docRoot}preview/setup-sdk.html">Configurar el SDK de Android N</a>.
-
-</p>
-
-
-<h2 id="runtime-permissions">Prueba de los permisos</h2>
-
-<p>
-  El nuevo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permisos</a> cambia el modo en que el usuario asigna permisos a tu aplicación.
- En lugar de conceder todos los permisos durante el procedimiento de instalación, tu aplicación debe solicitar al usuario los permisos individuales en el tiempo de ejecución.
-
- Para los usuarios, este comportamiento ofrece más control granular sobre las actividades de cada aplicación, así como un mejor contexto para comprender por qué la aplicación está solicitando un permiso específico.
- Los usuarios pueden conceder o revocar los permisos concedidos a una aplicación de forma individual en cualquier momento.
- Es muy probable que esta característica de la versión preliminar tenga un impacto en el comportamiento de tu aplicación y puede hacer que algunas características de tu aplicación no funcionen o funcionen en un estado degradado.
-
-
-</p>
-
-<p class="caution">
-  Este cambio afecta a todas las aplicaciones que se ejecutan en la nueva plataforma, incluso a aquellas que no tienen como destino la nueva versión de la plataforma.
- La plataforma ofrece un comportamiento de compatibilidad limitada para las aplicaciones heredadas, pero debes comenzar a planificar ahora la migración de tu aplicación al nuevo modelo de permisos, con el objetivo de publicar una versión actualizada de tu aplicación cuando se lance la plataforma oficial.
-
-
-</p>
-
-
-<h3 id="permission-test-tips">Tips para pruebas</h3>
-
-<p>
-  Usa los siguientes tips para pruebas como ayuda para planificar y ejecutar las pruebas de tu aplicación con el nuevo comportamiento de permisos.
-
-</p>
-
-<ul>
-  <li>Identifica los permisos actuales de tu aplicación y las rutas de códigos relacionadas.</li>
-  <li>Prueba los flujos del usuario en los datos y servicios protegidos por permisos.</li>
-  <li>Realiza pruebas con varias combinaciones de permisos concedidos/revocados.</li>
-  <li>Usa la herramienta {@code adb} para administrar permisos desde la línea de comando:
-    <ul>
-      <li>Enumera los permisos y estados por grupo:
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>Concede o revoca un permiso o más permisos utilizando la siguiente sintaxis:<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>Analiza tu aplicación para detectar servicios que utilizan permisos.</li>
-</ul>
-
-<h3 id="permission-test-strategy">Estrategia de prueba</h3>
-
-<p>
-  El cambio en los permisos afecta la estructura y el diseño de tu aplicación, además de la experiencia del usuario y los flujos que proporcionas a los usuarios.
- Debes evaluar el uso de los permisos actuales de tu aplicación y comenzar a planificar los nuevos flujos que deseas ofrecer.
- La versión oficial de la plataforma proporciona un comportamiento de compatibilidad, pero debes prever la actualización de tu aplicación y no depender de estos comportamientos.
-
-
-</p>
-
-<p>
-  Identifica los permisos que tu aplicación verdaderamente necesita y utiliza, y luego busca las diversas rutas de códigos que utilizan los servicios protegidos por permisos.
- Puedes realizar esto mediante una combinación de pruebas en la plataforma nueva y análisis de códigos.
- Al realizar las pruebas, debes centrarte en
- incluir permisos de tiempo de ejecución cambiando {@code targetSdkVersion} de la aplicación a la versión preliminar. Para
- obtener más información, consulta la sección <a href="{@docRoot}preview/setup-sdk.html#">Configurar el SDK de Android N</a>.
-
-</p>
-
-<p>
-  Realiza pruebas con diversas combinaciones de permisos revocados y agregados, a fin de destacar los flujos del usuario que dependen de permisos.
- Cuando una dependencia no sea obvia ni lógica, debes considerar la opción de refactorizar o compartimentar ese flujo para eliminar la dependencia o aclarar por qué se necesita el permiso.
-
-
-</p>
-
-<p>
-  Para obtener más información sobre el comportamiento de los permisos de tiempo de ejecución, las pruebas y las mejores prácticas, consulta la página <a href="{@docRoot}preview/features/runtime-permissions.html">Permisos</a> de la versión preliminar para desarrolladores.
-
-
-</p>
-
-
-<h2 id="doze-standby">Prueba de los modos Descanso y App Standby</h2>
-
-<p>
-  Las características de ahorro de energía de los modos Descanso y App Standby limitan la cantidad de procesamiento en segundo plano que puede realizar tu aplicación cuando un dispositivo se encuentra en estado inactivo o mientras tu aplicación no está en foco.
- Entre las restricciones que el sistema puede imponer en las aplicaciones se incluyen el acceso limitado a la red o denegación de acceso, suspensión de las tareas en segundo plano, suspensión de notificaciones, y alarmas y solicitudes de reactivación ignoradas.
-
- Para garantizar que tu aplicación tenga un comportamiento correcto con estas optimizaciones de ahorro de energía, debes probar tu aplicación simulando estos estados de bajo consumo.
-
-
-</p>
-
-<h4 id="doze">Cómo probar la aplicación en modo Descanso</h4>
-
-<p>Para probar el modo Descanso con tu aplicación, realiza lo siguiente:</p>
-
-<ol>
-<li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li>
-<li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li>
-<li>Ejecuta tu aplicación y déjala activa.</li>
-<li>Simula la activación del modo Descanso en el dispositivo ejecutando los siguientes comandos:
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>Observa el comportamiento de tu aplicación cuando se reactive el dispositivo. Asegúrate de que se recupere correctamente cuando el dispositivo salga del modo Descanso.
-</li>
-</ol>
-
-
-<h4 id="standby">Cómo probar aplicaciones en modo App Standby</h4>
-
-<p>Para probar el modo App Standby con tu aplicación, realiza lo siguiente:</p>
-
-<ol>
-  <li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li>
-  <li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li>
-  <li>Ejecuta tu aplicación y déjala activa.</li>
-  <li>Simula la activación del modo App Standby en la aplicación ejecutando los siguientes comandos:
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>Simula la activación de tu aplicación con el siguiente comando:
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>Observa el comportamiento de tu aplicación al reactivarse. Asegúrate de que se recupere correctamente del modo App Standby.
- En particular, debes comprobar si los trabajos en segundo plano y las notificaciones de tu aplicación continúan funcionando de la manera esperada.
-</li>
-</ol>
-
-<h2 id="ids">Copia de seguridad automática para aplicaciones e identificadores específicos del dispositivo</h2>
-
-<p>Si tu aplicación continúa teniendo algún identificador específico del dispositivo, como la Id. de registro de Google Cloud Messaging, en el almacenamiento interno, asegúrate de seguir las mejores prácticas para excluir la ubicación de almacenamiento de la copia de seguridad automática, como se describe en la sección <a href="{@docRoot}preview/backup/index.html">Copia de seguridad automática para aplicaciones</a>.
-
-
-
- </p>
diff --git a/docs/html-intl/intl/es/about/versions/nougat/index.jd b/docs/html-intl/intl/es/about/versions/nougat/index.jd
index c931270..b30cc88 100644
--- a/docs/html-intl/intl/es/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/es/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,56 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          ¡Prepárate para Android N!
+          ¡Prepárate para Android Nougat!
           <strong>Prueba tus aplicaciones</strong> en Nexus y en otros dispositivos. Admite comportamientos del sistema
  nuevo para <strong>ahorrar energía y memoria</strong>.
           Amplía la funcionalidad de tus aplicaciones gracias a una <strong>IU con ventanas múltiples</strong>,
  <strong>notificaciones de respuestas directas</strong> y más.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           Comencemos
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Informa un problema
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          Consulta las notas de la versión
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Únete a la comunidad de desarrolladores
@@ -113,19 +107,33 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">Recursos</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Información esencial para ayudarte a preparar tus aplicaciones para Android N.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">Recursos</h1>
+  <div class="dac-section-subtitle">
+    Información esencial para ayudarte a preparar tus aplicaciones para Android Nougat.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/es/index.jd b/docs/html-intl/intl/es/index.jd
index 66f9bf0..e0d80c1 100644
--- a/docs/html-intl/intl/es/index.jd
+++ b/docs/html-intl/intl/es/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index 94bc74c..0000000
--- a/docs/html-intl/intl/in/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=Panduan Pengujian
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>Dalam dokumen ini</h2>
-      <ol>
-        <li><a href="#runtime-permissions">Izin Pengujian</a></li>
-        <li><a href="#doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</a></li>
-        <li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Android N memberi Anda kesempatan untuk memastikan aplikasi bekerja pada
-  platform versi berikutnya. Pratinjau ini berisi beberapa API dan perubahan perilaku yang bisa
-  memengaruhi aplikasi Anda, sebagaimana dijelaskan dalam <a href="{@docRoot}preview/api-overview.html">Ringkasan
-  API</a> dan <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a>. Dalam menguji
-  aplikasi dengan pratinjau, ada beberapa perubahan sistem spesifik yang harus Anda fokuskan untuk
-  memastikan pengguna mendapatkan pengalaman yang bagus.
-</p>
-
-<p>
-  Panduan ini menjelaskan apa dan bagaimana menguji fitur pratinjau dengan aplikasi Anda. Anda harus
-  mengutamakan pengujian fitur pratinjau spesifik ini, dikarenakan pengaruhnya yang besar pada
-  perilaku aplikasi Anda:
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">Izin</a>
-  </li>
-  <li><a href="#doze-standby">Istirahatkan dan Aplikasi Siaga</a>
-  </li>
-  <li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li>
-</ul>
-
-<p>
-  Untuk informasi selengkapnya tentang cara menyiapkan perangkat atau perangkat maya dengan citra sistem pratinjau
-  untuk pengujian, lihat <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan
-Android N SDK</a>.
-</p>
-
-
-<h2 id="runtime-permissions">Izin Pengujian</h2>
-
-<p>
-  Model <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a> yang baru
-  mengubah cara alokasi izin untuk aplikasi Anda oleh pengguna. Sebagai ganti memberi semua
-  izin selama prosedur pemasangan, aplikasi Anda harus meminta izin kepada pengguna secara individual
- pada waktu proses. Bagi pengguna, perilaku ini memberi kontrol yang lebih detail atas setiap aktivitas aplikasi, dan
-  juga konteks yang lebih untuk memahami sebab aplikasi meminta izin tertentu. Pengguna
-  bisa memberi atau mencabut izin yang diberikan pada suatu aplikasi secara individual kapan saja. Fitur
-  pratinjau ini kemungkinan besar memengaruhi perilaku aplikasi Anda dan mungkin menghambat fungsi beberapa
-  fitur aplikasi Anda, atau mengurangi kualitas kerjanya.
-</p>
-
-<p class="caution">
-  Perubahan ini memengaruhi semua aplikasi yang berjalan di platform baru, bahkan aplikasi yang tidak menargetkan versi
-  platform baru. Platform ini memberikan perilaku kompatibilitas terbatas untuk aplikasi lawas, namun Anda
-  harus mulai merencanakan migrasi aplikasi ke model izin baru sekarang juga, dengan tujuan
-  mempublikasikan versi terbaru aplikasi Anda saat peluncuran platform secara resmi.
-</p>
-
-
-<h3 id="permission-test-tips">Tip pengujian</h3>
-
-<p>
-  Gunakan tip berikut untuk membantu Anda merencanakan dan menjalankan pengujian aplikasi dengan
-  perilaku izin yang baru.
-</p>
-
-<ul>
-  <li>Identifikasi izin aplikasi Anda saat ini dan jalur kode terkait.</li>
-  <li>Uji alur pengguna pada semua layanan dan data yang dilindungi izin.</li>
-  <li>Uji dengan berbagai kombinasi izin yang diberikan/dicabut.</li>
-  <li>Gunakan alat bantu {@code adb} untuk mengelola izin dari baris perintah:
-    <ul>
-      <li>Cantumkan daftar izin dan status berdasarkan kelompok:
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>Beri atau cabut satu atau beberapa izin menggunakan sintaks berikut:<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>Analisis aplikasi Anda untuk layanan yang menggunakan izin.</li>
-</ul>
-
-<h3 id="permission-test-strategy">Strategi pengujian</h3>
-
-<p>
-  Perubahan izin memengaruhi struktur dan desain aplikasi Anda, begitu juga
-  pengalaman pengguna dan alur yang Anda sediakan untuk pengguna. Anda harus menilai penggunaan izin
-  aplikasi saat ini dan mulai merencanakan alur baru yang ingin ditawarkan. Rilis platform
-  resmi menyediakan perilaku kompatibilitas, namun Anda harus merencanakan pembaruan aplikasi dan tidak
-  bergantung pada perilaku ini.
-</p>
-
-<p>
-  Identifikasi izin yang sebenarnya diperlukan dan digunakan aplikasi Anda, kemudian temukan berbagai
-  jalur kode yang menggunakan layanan yang dilindungi izin. Anda bisa melakukan ini melalui kombinasi
-  pengujian pada platform baru dan analisis kode. Dalam pengujian, Anda harus fokus pada pemilihan
- izin waktu proses dengan mengubah {@code targetSdkVersion} aplikasi ke versi pratinjau. Untuk
-  informasi selengkapnya, lihat <a href="{@docRoot}preview/setup-sdk.html#">Menyiapkan
-Android N SDK</a>.
-</p>
-
-<p>
-  Uji dengan berbagai kombinasi izin yang dicabut dan ditambahkan, untuk menyoroti alur pengguna yang
-  bergantung pada izin. Jika dependensi tidak jelas atau logis, Anda harus mempertimbangkan
-optimalisasi atau kompartementalisasi alur tersebut untuk mengeliminasi dependensi atau menjelaskan alasan
-  diperlukannya izin.
-</p>
-
-<p>
-  Untuk informasi selengkapnya tentang perilaku izin waktu proses, pengujian, dan praktik terbaik, lihat
-  halaman pratinjau <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a>
-  pengembang.
-</p>
-
-
-<h2 id="doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</h2>
-
-<p>
-  Fitur penghematan daya Istirahatkan dan Aplikasi Siaga membatasi jumlah pemrosesan latar belakang yang
-  bisa dikerjakan aplikasi Anda saat perangkat dalam keadaan diam atau saat aplikasi Anda sedang tidak fokus. Pembatasan
-  yang dapat diberlakukan oleh sistem pada aplikasi termasuk akses jaringan terbatas atau tidak ada,
-  tugas latar belakang yang ditangguhkan, Pemberitahuan yang ditangguhkan, permintaan membangunkan yang diabaikan, serta alarm. Untuk memastikan
-  aplikasi Anda berperilaku dengan benar pada optimalisasi penghematan daya ini, Anda harus menguji aplikasi dengan
- menyimulasikan keadaan baterai yang sedang tinggal sedikit ini.
-</p>
-
-<h4 id="doze">Menguji aplikasi Anda dengan Istirahatkan</h4>
-
-<p>Untuk menguji Istirahatkan dengan aplikasi Anda:</p>
-
-<ol>
-<li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li>
-<li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li>
-<li>Jalankan aplikasi Anda dan biarkan aktif.</li>
-<li>Simulasikan perangkat yang sedang masuk ke dalam mode Istirahatkan dengan menjalankan perintah berikut:
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>Amati perilaku aplikasi Anda saat perangkat diaktifkan kembali. Pastikan aplikasi
-    pulih dengan baik saat perangkat keluar dari Istirahatkan.</li>
-</ol>
-
-
-<h4 id="standby">Menguji aplikasi dengan Aplikasi Siaga</h4>
-
-<p>Untuk menguji mode Aplikasi Siaga dengan aplikasi Anda:</p>
-
-<ol>
-  <li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li>
-  <li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li>
-  <li>Jalankan aplikasi Anda dan biarkan aktif.</li>
-  <li>Simulasikan aplikasi yang sedang masuk ke dalam mode siaga dengan menjalankan perintah berikut:
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>Simulasikan membangunkan aplikasi Anda menggunakan perintah berikut:
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>Amati perilaku aplikasi Anda saat dibangunkan. Pastikan aplikasi pulih dengan baik
-   dari mode siaga. Secara khusus, Anda harus memeriksa apakah Pemberitahuan aplikasi dan pekerjaan latar belakang
-   tetap berjalan sebagaimana yang diharapkan.</li>
-</ol>
-
-<h2 id="ids">Auto Backup for Apps dan Identifier Perangkat Spesifik</h2>
-
-<p>Jika aplikasi Anda mempertahankan identifier perangkat spesifik, seperti ID pendaftaran Google
-Cloud Messaging, dalam penyimpanan internal,
-pastikan Anda mengikuti praktik terbaik untuk mengecualikan lokasi
-penyimpanan dari pencadangan otomatis, seperti dijelaskan dalam <a href="{@docRoot}preview/backup/index.html">Auto
-Backup for Apps</a>. </p>
diff --git a/docs/html-intl/intl/in/about/versions/nougat/index.jd b/docs/html-intl/intl/in/about/versions/nougat/index.jd
index a8f61eb..5234f91 100644
--- a/docs/html-intl/intl/in/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/in/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,66 +17,61 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Bersiaplah menyambut Android N!
+          Bersiaplah menyambut Android Nougat!
           <strong>Uji aplikasi Anda</strong> pada perangkat Nexus dan perangkat lainnya. Dukung perilaku sistem
           baru untuk <strong>menghemat daya dan memori</strong>.
           Tambah aplikasi Anda dengan <strong>UI multi-jendela</strong>,
           <strong>pemberitahuan balasan langsung</strong> dan lainnya.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           Mulai
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
+
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Laporkan masalah
-          </a>
-      </li>
-      <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          Lihat catatan rilis
-          </a>
+        </a>
       </li>
       <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Bergabunglah dengan komunitas pengembang
-          </a>
+        </a>
       </li>
     </ul>
   </div><!-- end .wrap -->
@@ -113,19 +108,33 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">Sumber Daya</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Informasi penting guna membantu mempersiapkan aplikasi untuk Android N.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">Sumber Daya</h1>
+  <div class="dac-section-subtitle">
+    Informasi penting guna membantu mempersiapkan aplikasi untuk Android Nougat.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index 9f03412..0000000
--- a/docs/html-intl/intl/ja/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=テストガイド
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>このドキュメントの内容</h2>
-      <ol>
-        <li><a href="#runtime-permissions">パーミッションをテストする</a></li>
-        <li><a href="#doze-standby">Doze とアプリ スタンバイをテストする</a></li>
-        <li><a href="#ids">自動バックアップと端末識別子</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Android N を利用すると、次期バージョンのプラットフォームでアプリが動作するか確認できます。
-このプレビューには、<a href="{@docRoot}preview/api-overview.html">API の概要</a>と<a href="{@docRoot}preview/behavior-changes.html">動作の変更点</a>に記載されているように、アプリに影響を与える可能性のある多くの API と動作の変更が含まれています。
-
-このプレビューでアプリをテストするときには、アプリの良好な使用感を確保するために、システムのいくつかの変更点に特に注意する必要があります。
-
-
-</p>
-
-<p>
-  このガイドでは、アプリでプレビューの機能の何をどのようにテストすればよいか説明します。以下のプレビュー機能は、アプリの動作に大きな影響を与える可能性があるので、優先してテストする必要があります。
-
-
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">パーミッション</a>
-  </li>
-  <li><a href="#doze-standby">Doze とアプリ スタンバイ</a>
-  </li>
-  <li><a href="#ids">自動バックアップと端末識別子</a></li>
-</ul>
-
-<p>
-  テスト用のプレビュー システム イメージを使用した端末または仮想端末のセットアップ方法の詳細については、<a href="{@docRoot}preview/setup-sdk.html">Android N SDK のセットアップ</a>をご覧ください。
-
-
-</p>
-
-
-<h2 id="runtime-permissions">パーミッションをテストする</h2>
-
-<p>
-  <a href="{@docRoot}preview/features/runtime-permissions.html">パーミッション</a> モデルの変更により、ユーザーがアプリにパーミッションを付与する方法が変わりました。
-アプリでは、インストール時にすべてのパーミッションを要求するのではなく、実行時に個々のパーミッションをユーザーに要求する必要があります。
-
-これにより、ユーザーは、各アプリのアクティビティをより細かくコントロールできるようになるだけではなく、アプリが各パーミッションを要求する理由をこれまでよりもよく理解できるようになります。
-ユーザーは、いつでもアプリに個別にパーミッションを付与したり、付与したパーミッションを個別に取り消したりできます。
-プレビューのこの機能は、アプリの動作に大きな影響を与える可能性があり、アプリの一部の機能が動作しなくなったり、限定された機能しか使えなくなったりする可能性もあります。
-
-
-</p>
-
-<p class="caution">
-  この変更は、アプリがこの新しいバージョンを対象にしているかどうかにかかわらず、この新しいプラットフォーム上で実行されるすべてのアプリに影響します。
-このプラットフォームは以前のアプリに限定的な互換動作を提供しますが、公式版のプラットフォームのリリースに合わせてアップデート版のアプリを公開できるように、新しいパーミッション モデルに対応させるためのアプリの移行を今から計画することを強くお勧めします。
-
-
-</p>
-
-
-<h3 id="permission-test-tips">テストのヒント</h3>
-
-<p>
-  以下のテストのヒントを活用して、アプリでの新しいパーミッション動作のテストを計画し、実行してください。
-
-</p>
-
-<ul>
-  <li>アプリの現在のパーミッションと関連するコードパスを確認します。</li>
-  <li>パーミッションで保護されているサービスとデータ間のユーザーフローをテストします。</li>
-  <li>付与されたパーミッションと取り消されたパーミッションのさまざまな組み合わせをテストします。</li>
-  <li>{@code adb} ツールを使用して、コマンドラインからパーミッションを管理します。
-    <ul>
-      <li>パーミッションとステータスをグループ化して表示します。
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>以下の構文を使用して 1 つまたは複数のパーミッションを付与または取り消します。<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>アプリでパーミッションを使用しているサービスを分析します。</li>
-</ul>
-
-<h3 id="permission-test-strategy">テスト方針</h3>
-
-<p>
-  このパーミッションの変化は、アプリの構造と設計、ユーザー エクスペリエンスとフローに影響を与えます。
-アプリの現在のパーミッション利用の状況を調査し、新しいフローの検討を開始する必要があります。
-このプラットフォームの公式リリースは互換動作を提供しますが、互換動作に頼ることなくアプリのアップデートを計画することを強くお勧めします。
-
-
-</p>
-
-<p>
-  まずアプリが実際に必要とし使用しているパーミッションを特定してから、パーミッションで保護されたサービスを使用している各コードパスを探してください。
-これには、新しいプラットフォーム上でのテストと、コードの解析が必要です。
-テストでは、アプリの {@code targetSdkVersion} をこのプレビュー版に変えて、ランタイム パーミッションのオプトインに重点的にテストする必要があります。
-詳細については、<a href="{@docRoot}preview/setup-sdk.html#">Android N SDK のセットアップ</a>をご覧ください。
-
-
-</p>
-
-<p>
-  パーミッションの取り消しと追加のさまざまな組み合わせをテストし、パーミッションに依存するユーザーフローを確認します。
-パーミッションへの依存性が明白または論理的ではない箇所では、依存性を取り除くため、またはパーミッションが必要な理由を明白にするために、フローのリファクタリングまたはコンパートメント化を検討する必要があります。
-
-
-</p>
-
-<p>
-  ランタイム パーミッションの動作、テスト、ベスト プラクティスについては、Developer Preview ページの<a href="{@docRoot}preview/features/runtime-permissions.html">パーミッション</a>をご覧ください。
-
-
-</p>
-
-
-<h2 id="doze-standby">Doze とアプリ スタンバイをテストする</h2>
-
-<p>
-  省電力機能である Doze とアプリ スタンバイにより、端末がアイドル状態のときやそのアプリにフォーカスがないときに、アプリが実行できるバックグラウンド処理の量が制限されます。
-システムによってアプリに加えられる可能性のある制限には、ネットワーク アクセスの制限や停止、バックグラウンド タスクの停止、通知の停止、ウェイク リクエストの無視、アラームなどがあります。
-
-これらの省電力のための最適化が行われた状態で確実にアプリが適切に動作するように、これらの省電力状態をシミュレートしてアプリをテストする必要があります。
-
-
-</p>
-
-<h4 id="doze">アプリで Doze をテストする</h4>
-
-<p>アプリで Doze をテストするには: </p>
-
-<ol>
-<li>Android N のシステム イメージを使用して、ハードウェア端末または仮想端末を設定します。</li>
-<li>端末を開発マシンに接続し、アプリをインストールします。</li>
-<li>アプリを実行し、アクティブ状態のままにします。</li>
-<li>以下のコマンドを実行して、端末の Doze モードへの移行をシミュレートします。
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>端末がアクティブ状態に戻ったときのアプリの動作を観察します。端末が Doze モードから抜けるときに、アプリがスムーズに復帰することを確認します。
-</li>
-</ol>
-
-
-<h4 id="standby">アプリでアプリ スタンバイをテストする</h4>
-
-<p>アプリでアプリ スタンバイ モードをテストするには: </p>
-
-<ol>
-  <li>Android N のシステム イメージを使用して、ハードウェア端末または仮想端末を設定します。</li>
-  <li>端末を開発マシンに接続し、アプリをインストールします。</li>
-  <li>アプリを実行し、アクティブ状態のままにします。</li>
-  <li>以下のコマンドを実行して、アプリのスタンバイ モードへの移行をシミュレートします。
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>以下のコマンドを使用して、アプリのウェイクをシミュレートします。
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>アプリがウェイク状態に戻ったときのアプリの動作を観察します。アプリがスタンバイ モードからスムーズに復帰することを確認します。
-特に、アプリの通知とバックグラウンド ジョブが想定通りの動作を続けているかを確認する必要があります。
-</li>
-</ol>
-
-<h2 id="ids">アプリの自動バックアップと端末固有識別子</h2>
-
-<p>アプリが、Google Cloud Messaging の登録 ID などのなんらかの端末固有の識別子を内部ストレージに保持している場合、<a href="{@docRoot}preview/backup/index.html">アプリの自動バックアップ</a>の説明に従って、そのストレージのロケーションを自動バックアップの対象から除外してください。
-
-
-
- </p>
diff --git a/docs/html-intl/intl/ja/about/versions/nougat/index.jd b/docs/html-intl/intl/ja/about/versions/nougat/index.jd
index 774e065..5881cf6 100644
--- a/docs/html-intl/intl/ja/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/ja/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,66 +17,61 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Android N が正式リリースされる前に、
+          Android Nougat が正式リリースされる前に、
           Nexus や他の端末で事前に<strong>アプリの動作をご確認いただけます</strong>。新しいシステム動作をサポートして、<strong>電力やメモリの使用量を削減しましょう</strong>。
 
           <strong>マルチ ウィンドウ UI</strong> や<strong>ダイレクト リプライ通知</strong>などの機能も利用して、アプリを拡張してみてください。
 
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
-          スタートガイド</a>
-<!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+          スタートガイド
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
+
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          問題の報告</a>
-
-      </li>
-      <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          リリースノートの確認</a>
-
+          問題の報告
+        </a>
       </li>
       <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          開発者コミュニティに参加</a>
-
+          開発者コミュニティに参加
+        </a>
       </li>
     </ul>
   </div><!-- end .wrap -->
@@ -113,19 +108,33 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">リソース</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Android N 向けにアプリを開発する上で役立つ必須情報をご提供します。
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">リソース</h1>
+  <div class="dac-section-subtitle">
+    Android Nougat 向けにアプリを開発する上で役立つ必須情報をご提供します。
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ja/index.jd b/docs/html-intl/intl/ja/index.jd
index 755ec62..ba73c41 100644
--- a/docs/html-intl/intl/ja/index.jd
+++ b/docs/html-intl/intl/ja/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index 1222227..0000000
--- a/docs/html-intl/intl/ko/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=테스트 가이드
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>이 문서의 내용</h2>
-      <ol>
-        <li><a href="#runtime-permissions">권한 테스트</a></li>
-        <li><a href="#doze-standby">잠자기 및 앱 대기 모드 테스트</a></li>
-        <li><a href="#ids">자동 백업 및 기기 식별자</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  Android N에서는 앱이 차기 버전의 플랫폼에서 제대로 작동하는지 확인해볼 수 있습니다.
- 이 프리뷰에는 앱에 영향을 미칠 수 있는 수많은 API와 동작 변경 사항이 포함되어 있습니다. 이에 대해서는 <a href="{@docRoot}preview/api-overview.html">API 개요</a>와 <a href="{@docRoot}preview/behavior-changes.html">동작 변경 사항</a>에 설명되어 있습니다.
-
- 프리뷰로 앱을 테스트할 때에는 사용자에게 좋은 환경을 제공하기 위해 개발자 여러분이 꼭 초점을 맞춰야 하는 몇 가지 특정한 시스템 변경사항이 있습니다.
-
-
-</p>
-
-<p>
-  이 가이드에서는 앱에서 테스트할 프리뷰 기능은 어떤 것이고, 테스트 방법은 어떤지에 대해 설명합니다. 이와 같은 특정 프리뷰 기능을 먼저 테스트하는 것이 좋습니다. 왜냐하면 이들 기능은 앱의 동작에 큰 영향을 미칠 가능성이 높기 때문입니다.
-
-
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">권한</a>
-  </li>
-  <li><a href="#doze-standby">잠자기 및 앱 대기 모드</a>
-  </li>
-  <li><a href="#ids">자동 백업 및 기기 식별자</a></li>
-</ul>
-
-<p>
-  테스트용 프리뷰 시스템 이미지로 기기 또는 가상 기기를 설정하는 방법에 대한 자세한 정보는 <a href="{@docRoot}preview/setup-sdk.html">Android N SDK 설정</a>을 참조하세요.
-
-
-</p>
-
-
-<h2 id="runtime-permissions">권한 테스트</h2>
-
-<p>
-  새로운 <a href="{@docRoot}preview/features/runtime-permissions.html">권한</a> 모델은 사용자가 여러분의 앱에 권한을 할당하는 방법을 바꿔 놓습니다.
- 설치 절차 중에 모든 권한을 허용하는 것이 아니라, 앱이 런타임에 사용자에게 각각의 권한을 요청해야 합니다.
-
- 사용자 입장에서는 이러한 동작으로 각 앱의 액티비티에 대해 더 세분화된 제어권을 행사할 수 있을 뿐만 아니라 이 앱이 어째서 특정한 권한을 요청하고 있는 것인지 맥락을 더 잘 이해할 수 있게 되기도 합니다.
- 사용자는 언제든 앱에 개별적으로 권한을 허용할 수 있고, 이를 취소할 수도 있습니다.
- 미리 보기의 이러한 기능은 앱의 동작에 영향을 미칠 가능성이 가장 높고, 앱의 몇 가지 기능이 작동하지 않도록 막거나 저하된 상태로 작동하게 할 수도 있습니다.
-
-
-</p>
-
-<p class="caution">
-  이 변경 내용은 새 플랫폼에서 실행되는 모든 앱에 영향을 비치며, 새 플랫폼 버전을 대상으로 하지 않는 앱도 예외가 아닙니다.
- 레거시 앱에 대해 플랫폼이 제한된 호환성 동작을 제공하기는 하지만, 지금 바로 새 권한 모델로 앱의 마이그레이션 계획을 시작하는 편이 좋습니다. 플랫폼이 공식적으로 출시될 때에 맞춰 앱의 업데이트된 버전을 게시하는 것을 목표로 하십시오.
-
-
-</p>
-
-
-<h3 id="permission-test-tips">테스트 팁</h3>
-
-<p>
-  다음은 새 권한 동작에 대해 앱 테스트를 계획하고 실행하는 데 유용한 몇 가지 테스트 팁입니다.
-
-</p>
-
-<ul>
-  <li>앱의 현재 권한과 관련된 코드 경로를 확인합니다.</li>
-  <li>권한 보호된 서비스 및 데이터 전반에 걸친 사용자 흐름을 테스트합니다.</li>
-  <li>허용된/취소된 권한을 여러 가지로 조합하여 테스트합니다.</li>
-  <li>명령줄에서 권한을 관리할 때 {@code adb} 도구를 사용합니다.
-    <ul>
-      <li>권한과 상태를 그룹별로 목록으로 나열합니다.
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>하나 이상의 권한을 다음과 같은 구문을 사용하여 허용하거나 취소합니다.<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>권한을 사용하는 서비스에 대해 앱을 분석해봅니다.</li>
-</ul>
-
-<h3 id="permission-test-strategy">테스트 전략</h3>
-
-<p>
-  권한을 변경하면 앱의 구조와 디자인은 물론 사용자 환경과, 개발자가 사용자에게 제공하는 흐름에도 영향을 미칩니다.
- 앱의 현재 권한 사용 내용을 평가한 다음 제공하고자 하는 새로운 흐름을 계획하기 시작해야 합니다.
- 플랫폼의 공식 릴리스에서 호환성 동작을 제공할 예정이지만, 이와 같은 동작에만 의존하지 말고 앱 업데이트를 계획하는 것이 좋습니다.
-
-
-</p>
-
-<p>
-  앱이 실제로 필요로 하고 사용하는 권한을 확인한 다음, 권한 보호된 서비스를 사용하는 여러 가지 코드 경로를 찾습니다.
- 이렇게 하려면 새 플랫폼에서 여러 가지로 조합한 테스트를 거치고 코드 분석을 통해야 합니다.
- 테스트에서는 런타임 권한에 옵트인하는 것에 초점을 맞춰야 합니다. 이를 위해 앱의 {@code targetSdkVersion}을 프리뷰 버전으로 변경하세요.
- 자세한 정보는 <a href="{@docRoot}preview/setup-sdk.html#">Android N SDK 설정</a>을 참조하세요.
-
-
-</p>
-
-<p>
-  다양한 조합의 권한을 해지하고 추가하는 방식으로 테스트를 수행하여 권한에 종속되는 사용자 흐름을 파악합니다.
- 종속성이 분명하지 않거나 논리적인 경우, 리팩터링을 고려해 보거나 해당 흐름을 구분하여 종속성을 제거, 또는 해당 권한이 왜 필요한지 분명히 하는 방안을 고려해야 합니다.
-
-
-</p>
-
-<p>
-  런타임 권한의 동작, 테스트 및 모범 사례에 대한 자세한 정보는 <a href="{@docRoot}preview/features/runtime-permissions.html">권한</a> 개발자 미리 보기 페이지를 참조하십시오.
-
-
-</p>
-
-
-<h2 id="doze-standby">잠자기 및 앱 대기 모드 테스트</h2>
-
-<p>
-  잠자기 및 앱 대기 모드의 절전 기능은 기기가 유휴 상태에 있을 때 또는 사용자가 앱에 초점을 맞추고 있지 않을 때 앱이 수행할 수 있는 배경 처리의 양을 제한합니다.
- 시스템이 앱에 부과할 수 있는 제한 사항에는 네트워크 액세스를 제한하거나 없애기, 배경 작업을 일시 중지시키기, 알림 일시 중지, 절전 모드 해제 및 알람 요청 무시 등이 포함됩니다.
-
- 이러한 절전 기능에 앱이 적절히 동작하도록 확실히 해 두려면 이와 같은 저전력 상태를 시뮬레이트하여 앱을 테스트해보아야 합니다.
-
-
-</p>
-
-<h4 id="doze">앱에서 잠자기 모드 테스트하기</h4>
-
-<p>앱에서 잠자기 모드를 테스트하려면:</p>
-
-<ol>
-<li>Android N 시스템 이미지로 하드웨어 기기 또는 가상 기기를 구성합니다.</li>
-<li>기기를 개발 머신에 연결하고 앱을 설치합니다.</li>
-<li>앱을 실행시킨 다음 활성 상태로 그냥 둡니다.</li>
-<li>다음 명령을 실행하여 기기가 잠자기 모드에 들어가는 것을 시뮬레이션합니다.
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>기기가 다시 활성화되면 앱이 어떻게 동작하는지 살펴봅니다. 기기가 잠자기 모드를 종료할 때 정상적으로 복구되는지 확인해야 합니다.
-</li>
-</ol>
-
-
-<h4 id="standby">앱에서 앱 대기 모드 테스트하기</h4>
-
-<p>앱에서 앱 대기 모드를 테스트하려면:</p>
-
-<ol>
-  <li>Android N 시스템 이미지로 하드웨어 기기 또는 가상 기기를 구성합니다.</li>
-  <li>기기를 개발 머신에 연결하고 앱을 설치합니다.</li>
-  <li>앱을 실행시킨 다음 활성 상태로 그냥 둡니다.</li>
-  <li>다음 명령을 실행하여 앱이 대기 모드에 들어가는 것을 시뮬레이션합니다.
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>다음 명령을 사용하여 앱이 대기 모드에서 해제되는 것을 시뮬레이션합니다.
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>앱이 대기 모드에서 해제된 상태에서 어떻게 동작하는지 살펴봅니다. 대기 모드에서 정상적으로 복구되는지 확인해야 합니다.
- 특히, 앱의 알림과 배경 작업이 계속 예상했던 대로 기능하는지 확인해야 합니다.
-</li>
-</ol>
-
-<h2 id="ids">앱용 자동 백업 및 기기별 식별자</h2>
-
-<p>앱이 내부 저장소에서 각 기기에 따라 다른 식별자(예: Google Cloud Messaging 등록 ID)를 유지하는 경우, 모범 사례를 따라 저장소 위치를 자동 백업에서 배제해야 합니다. 이 내용은 <a href="{@docRoot}preview/backup/index.html">앱용 자동 백업</a>에 설명되어 있습니다.
-
-
-
- </p>
diff --git a/docs/html-intl/intl/ko/about/versions/nougat/index.jd b/docs/html-intl/intl/ko/about/versions/nougat/index.jd
index 4b0ccc5..6ed065b 100644
--- a/docs/html-intl/intl/ko/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/ko/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,56 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Android N을 맞이할 준비를 하세요!
+          Android Nougat을 맞이할 준비를 하세요!
           Nexus와 다른 기기에서 <strong>앱을 테스트하세요</strong>. <strong>전력과 메모리를 절약</strong>하는 새로운 시스템
 동작을 지원하세요.
           <strong>다중 창 UI</strong>,
 <strong>직접 회신 알림</strong> 등으로 앱을 확장하세요.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           시작하기
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           문제 보고
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          릴리스 노트 보기
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           개발자 커뮤니티 가입
@@ -113,19 +107,34 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">리소스</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    앱을 Android N에서 사용할 수 있도록 준비하는 데 유용한 중요 정보입니다.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">리소스</h1>
+  <div class="dac-section-subtitle">
+    앱을 Android Nougat에서 사용할 수 있도록 준비하는 데 유용한 중요 정보입니다.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
 
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ko/index.jd b/docs/html-intl/intl/ko/index.jd
index 01c8587..e102411 100644
--- a/docs/html-intl/intl/ko/index.jd
+++ b/docs/html-intl/intl/ko/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index c00fd21..0000000
--- a/docs/html-intl/intl/pt-br/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=Guia de teste
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>Neste documento</h2>
-      <ol>
-        <li><a href="#runtime-permissions">Teste de permissões</a></li>
-        <li><a href="#doze-standby">Teste de soneca e App em espera</a></li>
-        <li><a href="#ids">Identificadores de dispositivo e backup automático</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  O Android N fornece uma oportunidade de garantir que os aplicativos funcionem
- na próxima versão da plataforma. Esta prévia inclui uma série de mudanças de comportamento e APIs que podem
- ter impacto no aplicativo, como descrito em <a href="{@docRoot}preview/api-overview.html">Visão geral da API
-</a> e <a href="{@docRoot}preview/behavior-changes.html">Mudanças de comportamento</a>. No teste
- do aplicativo com a prévia, há algumas alterações de sistema específicas em que você deve se concentrar
- para garantir que os usuários tenham uma boa experiência.
-</p>
-
-<p>
-  Este guia descreve quais recursos de prévia testar e como testá-los com o aplicativo. Você deve
- priorizar o teste destes recursos de prévia específicos devido ao grande impacto potencial no
- comportamento do aplicativo:
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">Permissões</a>
-  </li>
-  <li><a href="#doze-standby">Soneca e App em espera</a>
-  </li>
-  <li><a href="#ids">Identificadores de dispositivo e backup automático</a></li>
-</ul>
-
-<p>
-  Para obter mais informações sobre como configurar dispositivos físicos ou virtuais com uma imagem do sistema de prévia
- para teste, consulte <a href="{@docRoot}preview/setup-sdk.html">Configuração
-do Android N SDK</a>.
-</p>
-
-
-<h2 id="runtime-permissions">Teste de permissões</h2>
-
-<p>
-  O novo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permissões</a>
- altera a maneira que as permissões são alocadas ao aplicativo pelo usuário. Em vez de conceder todas as permissões
- durante o procedimento de instalação, o aplicativo deve pedir ao usuário permissões individuais
- em tempo de execução. Para os usuários, este comportamento fornece um controle mais granular sobre as atividades de cada aplicativo, bem
- como um melhor contexto para entender o porquê do aplicativo estar solicitando uma permissão específica. Os usuários
- podem conceder ou revogar as permissões concedidas a um aplicativo individualmente a qualquer momento. É provável que este recurso
- da prévia tenha um impacto no comportamento do aplicativo e pode impedir que alguns
- dos recursos do aplicativo funcionem, ou funcionem em um estado degradado.
-</p>
-
-<p class="caution">
-  Esta alteração afeta todos os aplicativos em execução na nova plataforma, mesmo aqueles que não são destinados
- para a versão nova da plataforma. A plataforma fornece um comportamento de compatibilidade limitado para aplicativos legados. No entanto,
- você deve começar a planejar a migração do aplicativo para o novo modelo de permissões agora, com o objetivo
- de publicar uma versão atualizada do aplicativo no lançamento oficial da plataforma.
-</p>
-
-
-<h3 id="permission-test-tips">Dicas de teste</h3>
-
-<p>
-  Use as seguintes dicas de teste para ajudar você a planejar e executar os testes do aplicativo com o novo
- comportamento de permissões.
-</p>
-
-<ul>
-  <li>Identifique as permissões atuais do aplicativo e os caminhos de código relacionados.</li>
-  <li>Teste o fluxo de usuário entre serviços protegidos por permissão e dados.</li>
-  <li>Teste com várias combinações de permissões revogadas/concedidas.</li>
-  <li>Use a ferramenta {@code adb} para gerenciar as permissões da linha de comando:
-    <ul>
-      <li>Liste as permissões e o status por grupos:
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>Conceda ou revogue uma ou mais permissões usando a seguinte sintaxe:<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>Analise o aplicativo para encontrar os serviços que usam permissões.</li>
-</ul>
-
-<h3 id="permission-test-strategy">Estratégia de teste</h3>
-
-<p>
-  A mudança de permissões afeta a estrutura e o projeto do aplicativo, bem como
- a experiência do usuário e os fluxos fornecidos a eles. Você deve avaliar o uso das permissões atuais
- do aplicativo e começar a planejar novos fluxos que deseja oferecer. O lançamento oficial
- da plataforma fornece comportamento de compatibilidade, mas deve-se planejar a atualização do aplicativo e
- não confiar nestes comportamentos.
-</p>
-
-<p>
-  Identifique as permissões que o aplicativo realmente precisa e usa e, em seguida, encontre os vários caminhos
- de código que usam os serviços protegidos por permissões. É possível fazer isto por meio de uma combinação de
- testes na nova plataforma e análise de códigos. Nos testes, você deve se concentrar em usar
- as permissões em tempo de execução alterando {@code targetSdkVersion} do aplicativo para a versão da prévia. Para
- obter mais informações, consulte <a href="{@docRoot}preview/setup-sdk.html#">Configuração
-do Android N SDK</a>.
-</p>
-
-<p>
-  Teste com várias combinações de permissões revogadas e concedidas para destacar os fluxos de usuário
-que dependem de permissões. Onde uma dependência não for óbvia ou lógica, considere
-refatorar ou compartimentalizar este fluxo para eliminar a dependência ou para esclarecer por que
-a permissão é necessária.
-</p>
-
-<p>
-  Para obter mais informações sobre o comportamento das permissões em tempo de execução, de testes e de melhores práticas, consulte a página
- <a href="{@docRoot}preview/features/runtime-permissions.html">Permissões</a> do Developer
- Preview.
-</p>
-
-
-<h2 id="doze-standby">Teste de soneca e App em espera</h2>
-
-<p>
-  Os recursos de economia de energia de App em espera e soneca limitam a quantidade de processamento de segundo plano que o aplicativo
- pode realizar quando um dispositivo está no estado ocioso ou enquanto não está em foco. As
- restrições que o sistema pode impor nos aplicativos inclui acesso a rede limitado ou restrito,
- tarefas de segundo plano suspensas, notificações suspensas, solicitações de soneca ignoradas e despertadores. Para garantir
- que o aplicativo se comportará adequadamente com essas otimizações de economia de energia, deve-se testá-lo
- simulando estes estados de baixa energia.
-</p>
-
-<h4 id="doze">Testar o aplicativo com Soneca</h4>
-
-<p>Para testar a Soneca com o aplicativo:</p>
-
-<ol>
-<li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema Android N.</li>
-<li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li>
-<li>Execute o aplicativo e deixe-o ativo.</li>
-<li>Simule o dispositivo acessando o modo Soneca executando os seguintes comandos:
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>Observe o comportamento do aplicativo quando o dispositivo é reativado. Certifique-se de que
- ele se recupere corretamente quando o dispositivo sai do modo Soneca.</li>
-</ol>
-
-
-<h4 id="standby">Testar aplicativos com App em espera</h4>
-
-<p>Para testar o modo de espera do aplicativo:</p>
-
-<ol>
-  <li>Configure um dispositivo de hardware ou virtual com uma imagem do sistema Android N.</li>
-  <li>Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.</li>
-  <li>Execute o aplicativo e deixe-o ativo.</li>
-  <li>Simule o aplicativo acessando o modo de espera executando os seguintes comandos:
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>Simule o despertar do aplicativo usando o seguinte comando:
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>Observe o comportamento do aplicativo quando ele é despertado. Certifique-se de que ele se recupere corretamente
- do modo de espera. Particularmente, deve-se verificar se as notificações e os trabalho de segundo plano
- do aplicativo continuam a funcionar como o esperado.</li>
-</ol>
-
-<h2 id="ids">Backup automático para aplicativos e identificadores específicos do dispositivo</h2>
-
-<p>Caso o aplicativo esteja persistindo qualquer identificador específico do dispositivo, como o ID de registro do Google
-Cloud Messaging, no armazenamento interno,
-certifique-se de seguir as práticas recomendadas para excluir o local de armazenamento
-do backup automático, como descrito em <a href="{@docRoot}preview/backup/index.html">Backup automático
-para aplicativos</a>. </p>
diff --git a/docs/html-intl/intl/pt-br/about/versions/nougat/index.jd b/docs/html-intl/intl/pt-br/about/versions/nougat/index.jd
index 58b2408..c7aee2a 100644
--- a/docs/html-intl/intl/pt-br/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/pt-br/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,56 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Prepare-se para o Android N!
+          Prepare-se para o Android Nougat!
           <strong>Teste os aplicativos</strong> no Nexus e outros dispositivos. Ofereça suporte aos novos
  comportamentos do sistema para <strong>economizar energia e memória</strong>.
           Estenda seus aplicativos com a <strong>IU de várias janelas</strong>,
  <strong>direcione notificações de resposta</strong> e muito mais.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           Primeiros passos
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Informe um problema
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          Veja as notas de versão
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Participe da comunidade de desenvolvedores
@@ -82,26 +76,6 @@
   </div><!-- end .wrap -->
 </div><!-- end .dac-actions -->
 
-<div id="useOldTemplates" style="display:none;color:black" class="actions-bar dac-expand dac-invert">
-  <div class="wrap dac-offset-parent">
-
-    <div class="actions">
-      <div><a href="https://developer.android.com/preview/bug">
-        <span class="dac-sprite dac-auto-chevron-large"></span>
-        Informe um problema
-      </a></div>
-      <div><a href="{@docRoot}preview/support.html">
-        <span class="dac-sprite dac-auto-chevron-large"></span>
-        Veja as notas de versão
-      </a></div>
-      <div><a href="{@docRoot}preview/dev-community">
-        <span class="dac-sprite dac-auto-chevron-large"></span>
-        Participe da comunidade de desenvolvedores
-      </a></div>
-    </div><!-- end .actions -->
-  </div><!-- end .wrap -->
-</div>
-
 <section class="dac-section dac-light dac-small" id="latest"><div class="wrap">
   <h2 class="norule">Mais recente</h2>
   <div class="resource-widget resource-flow-layout col-16"
@@ -113,19 +87,33 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">Recursos</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Informações essenciais para ajudar você a preparar seus aplicativos para o Android N.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">Recursos</h1>
+  <div class="dac-section-subtitle">
+    Informações essenciais para ajudar você a preparar seus aplicativos para o Android Nougat.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/pt-br/index.jd b/docs/html-intl/intl/pt-br/index.jd
index f5e1569..3c8f75d 100644
--- a/docs/html-intl/intl/pt-br/index.jd
+++ b/docs/html-intl/intl/pt-br/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/ru/about/versions/nougat/index.jd b/docs/html-intl/intl/ru/about/versions/nougat/index.jd
index 9bb56ba..1103166 100644
--- a/docs/html-intl/intl/ru/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/ru/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="предварительная версия", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,56 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Подготовьтесь к выходу Android N!
+          Подготовьтесь к выходу Android Nougat!
 <strong>Протестируйте свои приложения</strong> на Nexus и других устройствах. Поддержите нововведения
 системы, позволяющие <strong>снизить потребление энергии и памяти</strong>.
 Добавьте в свои приложения <strong>многооконный режим</strong>,
 <strong>возможность прямой отправки ответов из уведомлений</strong> и другие функции.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           Начало работы
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Сообщить о проблеме
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          См. примечания к выпуску
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Вступить в сообщество разработчиков
@@ -102,19 +96,45 @@
   </div><!-- end .wrap -->
 </div>
 
-<section class="dac-section dac-light"><div class="wrap">
-  <h1 class="dac-section-title">Ресурсы</h1>
+<section class="dac-section dac-light 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:androidn+tag:featured, type:youtube+tag:androidn+tag:featured"
+    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-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Важная информация, которая поможет вам подготовить ваши приложения для работы в Android N.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">Ресурсы</h1>
+  <div class="dac-section-subtitle">
+    Важная информация, которая поможет вам подготовить ваши приложения для работы в Android Nougat.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
 
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/ru/index.jd b/docs/html-intl/intl/ru/index.jd
index e917a8d..b3f3cc2 100644
--- a/docs/html-intl/intl/ru/index.jd
+++ b/docs/html-intl/intl/ru/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/vi/about/versions/nougat/index.jd b/docs/html-intl/intl/vi/about/versions/nougat/index.jd
index bd64b25..58b4b5f 100644
--- a/docs/html-intl/intl/vi/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/vi/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,57 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          Hãy chuẩn bị sẵn sàng cho Android N!
+          Hãy chuẩn bị sẵn sàng cho Android Nougat!
           <strong>Kiểm thử ứng dụng của bạn</strong> trên Nexus và các thiết bị khác. Hỗ trợ các hành vi
           hệ thống mới nhằm <strong>tiết kiệm năng lượng và bộ nhớ</strong>.
           Mở rộng ứng dụng của bạn bằng <strong>UI đa cửa sổ</strong>,
           <strong>thông báo trả lời trực tiếp</strong> và nhiều tính năng khác.
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           Bắt đầu
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
+
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Báo cáo vấn đề
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          Xem ghi chú phát hành
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Tham gia cộng đồng nhà phát triển
@@ -102,19 +97,44 @@
   </div><!-- end .wrap -->
 </div>
 
-<section class="dac-section dac-light"><div class="wrap">
-  <h1 class="dac-section-title">Tài nguyên</h1>
+<section class="dac-section dac-light 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:androidn+tag:featured, type:youtube+tag:androidn+tag:featured"
+    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-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    Các thông tin cần thiết để trợ giúp bạn chuẩn bị cho ứng dụng sẵn sàng chạy trên Android N.
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">Tài nguyên</h1>
+  <div class="dac-section-subtitle">
+    Các thông tin cần thiết để trợ giúp bạn chuẩn bị cho ứng dụng sẵn sàng chạy trên Android Nougat.
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd
deleted file mode 100644
index d1e1187..0000000
--- a/docs/html-intl/intl/zh-cn/about/versions/nougat/android-7.0-testing.jd
+++ /dev/null
@@ -1,190 +0,0 @@
-page.title=测试指南
-page.image=images/cards/card-n-guide_2x.png
-meta.tags="preview", "testing"
-page.tags="preview", "developer preview"
-
-@jd:body
-
-<div id="tb-wrapper">
-  <div id="tb">
-    <h2>本文内容</h2>
-      <ol>
-        <li><a href="#runtime-permissions">测试权限</a></li>
-        <li><a href="#doze-standby">测试低电耗模式和应用待机模式</a></li>
-        <li><a href="#ids">自动备份和设备标识符</a></li>
-      </ol>
-  </div>
-</div>
-
-<p>
-  利用 Android N,您有机会确保应用可使用下一平台版本。
-如 <a href="{@docRoot}preview/api-overview.html">API 概览</a>和<a href="{@docRoot}preview/behavior-changes.html">行为变更</a>中所述,该 Preview 包括大量 API 和可能影响应用的行为变更。
-
-使用 Preview 测试应用时,您应重点关注一些特定的系统变更,确保用户拥有愉悦的体验。
-
-
-</p>
-
-<p>
-  本指南介绍可使用您的应用测试 Preview 的哪些功能以及如何测试。您应确定优先测试以下特定 Preview 功能,因为它们可能会对应用行为产生较大影响。
-
-
-</p>
-
-<ul>
-  <li><a href="#runtime-permissions">权限</a>
-  </li>
-  <li><a href="#doze-standby">低电耗模式和应用待机模式</a>
-  </li>
-  <li><a href="#ids">自动备份和设备标识符</a></li>
-</ul>
-
-<p>
-  如需了解有关如何使用 Preview 系统映像设置设备或虚拟设备以进行测试的详细信息,请参阅<a href="{@docRoot}preview/setup-sdk.html">设置 Android N SDK</a>。
-
-
-</p>
-
-
-<h2 id="runtime-permissions">测试权限</h2>
-
-<p>
-  新<a href="{@docRoot}preview/features/runtime-permissions.html">权限</a>模型改变了用户向您的应用分配权限的方式。
-您的应用必须在运行时要求用户提供各项权限,而不是在安装过程中要求授予所有权限。
-
-对于用户而言,此行为有助于他们更精细地控制每个应用的 Activity,并更深入地了解应用为何请求提供特定权限的上下文信息。
-用户可以随时向应用授予某项权限或撤销其某项权限。
-预览版的这种功能最有可能会对应用行为产生影响,而且可能会阻止某些应用功能运行或只能在降级状态中运行。
-
-
-</p>
-
-<p class="caution">
-  这一变更会影响在新平台上运行的所有应用,即便这些应用并非面向新平台版本开发亦是如此。
-该平台为旧版应用提供有限的兼容性行为,但您现在应当开始计划将应用迁移到新权限模型,以便在官方平台启动时发布更新的应用版本。
-
-
-</p>
-
-
-<h3 id="permission-test-tips">测试提示</h3>
-
-<p>
-  使用以下测试提示有助于您计划并通过新权限行为执行应用测试。
-
-</p>
-
-<ul>
-  <li>识别应用的当前权限和相关的代码路径</li>
-  <li>跨受权限保护的服务和数据测试用户流程</li>
-  <li>使用授予/撤销权限的各种组合进行测试</li>
-  <li>使用 {@code adb} 工具从命令行管理权限:
-    <ul>
-      <li>按组列出权限和状态:
-        <pre>adb shell pm list permissions -d -g</pre>
-      </li>
-      <li>使用以下语法授予或撤销一项或多项权限:<br>
-        <pre>adb shell pm [grant|revoke] &lt;permission.name&gt; ...</pre>
-      </li>
-    </ul>
-  </li>
-  <li>针对使用权限的服务对应用进行分析</li>
-</ul>
-
-<h3 id="permission-test-strategy">测试策略</h3>
-
-<p>
-  权限更改会影响应用的结构和设计,以及您为用户提供的用户体验和流程。
-您应评估应用的当前权限使用情况并开始计划要提供的新流程。
-平台的正式版本提供兼容性行为,但您应计划更新应用,而不是依赖于这些行为。
-
-
-</p>
-
-<p>
-  确定应用实际需要和使用的权限,然后找出各种使用受权限保护的服务的代码路径。
-您可通过结合使用新平台测试和代码分析完成此操作。
-在测试中,您应通过将应用的 {@code targetSdkVersion} 更改为预览版,重点关注选择运行时权限。
-如需了解详细信息,请参阅<a href="{@docRoot}preview/setup-sdk.html#">设置 Android N SDK</a>。
-
-
-</p>
-
-<p>
-  使用已撤销和已添加权限的各种组合进行测试,突出显示依赖于权限的用户流程。
-如果依赖关系不明显或不符合逻辑,则您应考虑重构或划分该流程,以消除依赖关系或阐明需要权限的原因。
-
-
-</p>
-
-<p>
-  如需了解有关运行时权限行为、测试和最佳做法的详细信息,请参阅<a href="{@docRoot}preview/features/runtime-permissions.html">权限</a>开发者预览版页面。
-
-
-</p>
-
-
-<h2 id="doze-standby">测试低电耗模式和应用待机模式</h2>
-
-<p>
-  当设备处于空闲状态或应用未聚焦时,低电耗模式和应用待机模式的节能功能将限制应用可执行的后台处理工作量。
-系统可对应用实施的限制包括:限制或禁止访问网络、暂停后台任务、暂停通知、忽略唤醒请求和闹铃。
-
-要确保应用在完成这些节能优化后正常运行,您应通过模拟这些低功耗状态对应用进行测试。
-
-
-</p>
-
-<h4 id="doze">在低电耗模式下测试您的应用</h4>
-
-<p>要在低电耗模式下测试您的应用,请执行以下操作:</p>
-
-<ol>
-<li>使用 Android N 系统映像配置硬件设备或虚拟设备</li>
-<li>将设备连接到开发计算机并安装应用</li>
-<li>运行应用并使其保持活动状态</li>
-<li>通过运行以下命令,模拟进入低电耗模式的设备:
-
-<pre>
-$ adb shell dumpsys battery unplug
-$ adb shell dumpsys deviceidle step
-$ adb shell dumpsys deviceidle -h
-</pre>
-
-  </li>
-  <li>观察重新激活设备时的应用行为。确保应用在设备退出低电耗模式时正常恢复
-</li>
-</ol>
-
-
-<h4 id="standby">在应用待机模式下测试您的应用</h4>
-
-<p>要在应用待机模式下测试您的应用,请执行以下操作:</p>
-
-<ol>
-  <li>使用 Android N 系统映像配置硬件设备或虚拟设备</li>
-  <li>将设备连接到开发计算机并安装应用</li>
-  <li>运行应用并使其保持活动状态</li>
-  <li>通过运行以下命令,模拟进入待机模式的应用:
-
-<pre>
-$ adb shell am broadcast -a android.os.action.DISCHARGING
-$ adb shell am set-idle &lt;packageName&gt; true
-</pre>
-
-  </li>
-  <li>使用以下命令模拟如何唤醒应用:
-    <pre>$ adb shell am set-idle &lt;packageName&gt; false</pre>
-  </li>
-  <li>观察唤醒后的应用行为。确保应用从待机模式中正常恢复。
-特别地,您应检查应用的通知和后台作业是否按预期继续运行
-</li>
-</ol>
-
-<h2 id="ids">自动备份应用和设备特定的标识符</h2>
-
-<p>如果应用坚持在内部存储中使用任何设备特定的标识符,如 Google 云消息传递注册 ID,请确保遵循最佳做法将存储位置从自动备份中排除,如<a href="{@docRoot}preview/backup/index.html">自动备份应用</a>中所述。
-
-
-
- </p>
diff --git a/docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd b/docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd
index 74cd039..c1eb423 100644
--- a/docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/zh-cn/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,62 +17,57 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          为 Android N 进行准备!
+          为 Android Nougat 进行准备!
           在 Nexus 和其他设备上<strong>测试您的应用</strong>。支持新系统行为以<strong>节省电量和内存</strong>。
 
           使用<strong>多窗口 UI</strong> 扩展您的应用,以便能够<strong>直接答复通知</strong>及执行其他操作。
 
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
           入门指南
-        </a><!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
+
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           报告问题
         </a>
       </li>
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          查阅版本说明
-        </a>
-      </li>
-      <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           加入开发者社区
@@ -113,19 +108,33 @@
     data-initial-results="3"></div>
 </div></section>
 
-<section class="dac-section dac-gray"><div class="wrap">
-  <h1 class="dac-section-title">资源</h1>
+<section class="dac-section dac-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    这些必备信息可帮助您的应用为Android N做好准备。
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">资源</h1>
+  <div class="dac-section-subtitle">
+    这些必备信息可帮助您的应用为Android Nougat做好准备。
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-cn/index.jd b/docs/html-intl/intl/zh-cn/index.jd
index ca3a84b..8872d16 100644
--- a/docs/html-intl/intl/zh-cn/index.jd
+++ b/docs/html-intl/intl/zh-cn/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd b/docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd
index e899bc0..d4db467 100644
--- a/docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd
+++ b/docs/html-intl/intl/zh-tw/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
-page.title=Android N Developer Preview
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.title=Android 7.0 Nougat
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -17,66 +17,61 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+<section class="dac-expand dac-hero dac-light">
   <div class="wrap" style="max-width:1100px;margin-top:0">
+  <a href="{@docRoot}about/versions/nougat/android-7.0.html">
     <div class="cols dac-hero-content" style="padding-bottom:1em;">
 
-      <div class="col-7of16 col-push-9of16" style="padding-left:2em">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
+      <div class="col-7of16 col-push-8of16" style="padding-left:2em">
+        <h1 class="dac-hero-title">Android 7.0 Nougat</h1>
         <p class="dac-hero-description">
-          為 Android N 做好準備!
+        為 Android Nougat 做好準備!
           在 Nexus 與其他裝置上<strong>測試您的應用程式</strong>。支援新系統行為以<strong>節省電力與記憶體</strong>。使用<strong>多視窗 UI</strong>、<strong>直接回覆通知</strong>等延伸您的應用程式。
 
 
 
         </p>
 
-        <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/android-7.0.html">
           <span class="dac-sprite dac-auto-chevron"></span>
-          開始使用</a>
-<!--<br>
-        <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Android N (final SDK)
-        </a><br>-->
+          開始使用
+        </a>
       </div>
-      <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
-        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
-             {@docRoot}images/home/n-preview-hero_2x.png 2x">
+      <div class="col-7of16 col-pull-6of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+        <a  href="{@docRoot}about/versions/nougat/android-7.0.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png"
+             srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+             {@docRoot}images/home/n-preview-hero_2x.png 2x" />
+           </a>
       </div>
-    </div>
+    </div></a>
     <div class="dac-section dac-small">
       <div class="resource-widget resource-flow-layout col-16"
-           data-query="collection:preview/landing/resources"
+           data-query="collection:nougat/landing/resources"
            data-cardSizes="6x2"
-           data-maxResults="6"></div>
-    </div>
+           data-maxResults="3"></div>
+         </div>
   </div>
 </section>
 
+
 <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">
+    <a class="dac-fab dac-scroll-button" data-scroll-button href="#latest">
       <i class="dac-sprite dac-arrow-down-gray"></i>
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+        <a class="dac-action-link" href="https://source.android.com/source/report-bugs.html">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           回報問題
-</a>
-      </li>
-      <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}preview/support.html">
-          <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          查看版本資訊</a>
-
+        </a>
       </li>
       <li class="dac-action">
         <a class="dac-action-link" href="{@docRoot}preview/dev-community">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
-          加入開發人員社群</a>
-
+          加入開發人員社群
+        </a>
       </li>
     </ul>
   </div><!-- end .wrap -->
@@ -102,19 +97,44 @@
   </div><!-- end .wrap -->
 </div>
 
-<section class="dac-section dac-light"><div class="wrap">
-  <h1 class="dac-section-title">資源</h1>
+<section class="dac-section dac-light 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:androidn+tag:featured, type:youtube+tag:androidn+tag:featured"
+    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-gray" id="videos"><div class="wrap">
+  <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
-    以下重要資訊可幫助您的應用程式準備好使用 Android N。
+    New Android capabilities and the right way to use them in your apps.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
-       data-query="collection:preview/landing/more"
+    data-query="collection:nougat/landing/videos/first,type:youtube+tag:androidn"
+    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" id="resources"><div class="wrap">
+  <h1 class="dac-section-title">資源</h1>
+  <div class="dac-section-subtitle">
+    以下重要資訊可幫助您的應用程式準備好使用 Android Nougat。
+  </div>
+
+  <div class="resource-widget resource-flow-layout col-16"
+       data-query="collection:nougat/landing/more"
        data-cardSizes="6x6"
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-tw/index.jd b/docs/html-intl/intl/zh-tw/index.jd
index a5772ef..540801a 100644
--- a/docs/html-intl/intl/zh-tw/index.jd
+++ b/docs/html-intl/intl/zh-tw/index.jd
@@ -15,33 +15,30 @@
   })
 </script>
 
-<section class="dac-expand dac-hero dac-invert" style="background-color:#455A64">
-  <div class="wrap" style="max-width:1100px;margin-top:0">
-    <div class="col-7of16 col-push-9of16" style="padding-left:2em;">
-      <a href="{@docRoot}preview/index.html">
-        <h1 class="dac-hero-title">Android N Developer Preview</h1>
-        <p class="dac-hero-description">
-          Get ready for the next version of Android!
-          <strong>Test your apps</strong> on Nexus and other devices. Support new system
-          behaviors to <strong>save power and memory</strong>.
+<section class="dac-expand dac-hero" style="background-color:#b2dfdb;">
+  <div class="wrap" style="max-width:1000px;margin-top:0">
+    <div class="col-7of16 col-push-8of16">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <h1 class="dac-hero-title" style="color:#004d40">Android 7.0 Nougat!</h1>
+        <p class="dac-hero-description" style="color:#004d40">
+          <strong>Android 7.0 Nougat is here!</strong>
+          Get your apps ready for the latest version of Android, with new system
+          behaviors to <strong>save battery and memory</strong>.
           Extend your apps with <strong>multi-window UI</strong>,
           <strong>direct reply notifications</strong> and more.
         </p>
-        <a class="dac-hero-cta" href="/preview/index.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
+        <a class="dac-hero-cta" href="{@docRoot}about/versions/nougat/index.html" style="color:#004d40">
+          <span class="dac-sprite dac-auto-chevron" style="background-color:#b2dfdb"></span>
           Learn more
-        </a><!--<br>
-        <a class="dac-hero-cta" href="/preview/support.html">
-          <span class="dac-sprite dac-auto-chevron"></span>
-          Update to Developer Preview (final SDK)
-        </a><br>-->
+        </a>
+        </a>
       </a>
     </div>
-    <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:0em;padding-right:1.5em;">
-      <a href="{@docRoot}preview/index.html">
-        <img style="" class="dac-hero-image" src="/images/home/n-preview-hero.png"
-             srcset="/images/home/n-preview-hero.png 1x,
-             /images/home/n-preview-hero_2x.png 2x">
+    <div class="col-6of16 col-pull-6of16 dac-hero-figure" style="padding-left:1em;padding-top:1em;">
+      <a href="{@docRoot}about/versions/nougat/index.html">
+        <img class="dac-hero-image" src="{@docRoot}images/home/nougat_bg.jpg"
+             srcset="{@docRoot}images/home/nougat_bg.jpg 1x,
+             {@docRoot}images/home/nougat_bg_2x.jpg 2x">
         </a>
     </div>
   </div>
diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml
index a1eb11e..aefe1c1 100644
--- a/docs/html/_redirects.yaml
+++ b/docs/html/_redirects.yaml
@@ -802,13 +802,13 @@
 - from: /preview/dev-community
   to: https://plus.google.com/communities/103655397235276743411
 - from: /preview/bug
-  to: https://code.google.com/p/android/issues/entry?template=Developer%20preview%20report
+  to: https://source.android.com/source/report-bugs.html
 - from: /preview/bug/
-  to: https://code.google.com/p/android/issues/entry?template=Developer%20preview%20report
+  to: https://source.android.com/source/report-bugs.html
 - from: /preview/bugreport
-  to: https://code.google.com/p/android/issues/entry?template=Developer%20preview%20report
+  to: https://source.android.com/source/report-bugs.html
 - from: /preview/bugreport/
-  to: https://code.google.com/p/android/issues/entry?template=Developer%20preview%20report
+  to: https://source.android.com/source/report-bugs.html
 - from: /preview/bugs
   to: https://code.google.com/p/android/issues/list?can=2&q=label%3ADevPreview-N
 - from: /preview/bugs/
diff --git a/docs/html/about/_book.yaml b/docs/html/about/_book.yaml
index 0e91c08..642113b 100644
--- a/docs/html/about/_book.yaml
+++ b/docs/html/about/_book.yaml
@@ -4,10 +4,65 @@
   section:
   - title: Android 7.0 for Developers
     path: /about/versions/nougat/android-7.0.html
+    path_attributes:
+    - name: es-lang
+      value: Información general de la API
+    - name: in-lang
+      value: Android N untuk Pengembang
+    - name: ja-lang
+      value: API の概要
+    - name: ko-lang
+      value: API 개요
+    - name: pt-br-lang
+      value: Visão geral da API
+    - name: ru-lang
+      value: Обзор API-интерфейсов
+    - name: vi-lang
+      value: Android N cho Nhà phát triển
+    - name: zh-cn-lang
+      value: API 概览
+    - name: zh-tw-lang
+      value: API 總覽
   - title: Android 7.0 Behavior Changes
     path: /about/versions/nougat/android-7.0-changes.html
+    path_attributes:
+    - name: es-lang
+      value: Cambios en los comportamientos
+    - name: in-lang
+      value: Perubahan Perilaku
+    - name: ja-lang
+      value: 動作の変更点
+    - name: ko-lang
+      value: 동작 변경
+    - name: pt-br-lang
+      value: Mudanças de comportamento
+    - name: ru-lang
+      value: Изменения в работе
+    - name: vi-lang
+      value: Các thay đổi Hành vi
+    - name: zh-cn-lang
+      value: 行为变更
+    - name: zh-tw-lang
+      value: 行為變更
   - title: Android 7.0 Samples
     path: /about/versions/nougat/android-7.0-samples.html
+    path_attributes:
+    - name: es-lang
+      value: Ejemplos
+    - name: in-lang
+      value: Contoh
+    - name: ja-lang
+      value: サンプル
+    - name: ko-lang
+      value: 샘플
+    - name: pt-br-lang
+      value: Exemplos
+    - name: ru-lang
+      value: Примеры
+    - name: zh-cn-lang
+      value: 示例
+    - name: zh-tw-lang
+      value: 範例
 
 - title: Marshmallow
   path: /about/versions/marshmallow/index.html
diff --git a/docs/html/about/versions/nougat/index.jd b/docs/html/about/versions/nougat/index.jd
index bb56d30..30a35761 100644
--- a/docs/html/about/versions/nougat/index.jd
+++ b/docs/html/about/versions/nougat/index.jd
@@ -1,6 +1,6 @@
 page.title=Android 7.0 Nougat
-page.tags="preview","developer"
-meta.tags="preview", "android"
+page.tags="androidn","versions"
+meta.tags="android n", "nougat", "android 7.0"
 fullpage=true
 forcelocalnav=true
 header.hide=1
@@ -108,7 +108,6 @@
     data-initial-results="3"></div>
 </div></section>
 
-
 <section class="dac-section dac-gray" id="videos"><div class="wrap">
   <h1 class="dac-section-title">Videos</h1>
   <div class="dac-section-subtitle">
@@ -125,11 +124,10 @@
   </div>
 </div></section>
 
-
 <section class="dac-section dac-light" id="resources"><div class="wrap">
   <h1 class="dac-section-title">Resources</h1>
   <div class="dac-section-subtitle">
-    Essential information to help you get your apps ready for Android N.
+    Essential information to help you get your apps ready for Android Nougat.
   </div>
 
   <div class="resource-widget resource-flow-layout col-16"
@@ -138,7 +136,5 @@
        data-items-per-page="6"
        data-maxResults="15"
        data-initial-results="6"></div>
-
   </div>
-</section>
-
+</section>
\ No newline at end of file
diff --git a/docs/html/guide/topics/renderscript/compute.jd b/docs/html/guide/topics/renderscript/compute.jd
index 13880ec..89cfff9 100755
--- a/docs/html/guide/topics/renderscript/compute.jd
+++ b/docs/html/guide/topics/renderscript/compute.jd
@@ -10,12 +10,13 @@
 
     <ol>
       <li><a href="#writing-an-rs-kernel">Writing a RenderScript Kernel</a></li>
-      <li><a href="#access-rs-apis">Accessing RenderScript APIs</a>
+      <li><a href="#access-rs-apis">Accessing RenderScript APIs from Java</a>
         <ol>
           <li><a href="#ide-setup">Setting Up Your Development Environment</a></li>
         </ol>
       </li>
       <li><a href="#using-rs-from-java">Using RenderScript from Java Code</a></li>
+      <li><a href="#single-source-rs">Single-Source RenderScript</a></li>
       <li><a href="#reduction-in-depth">Reduction Kernels in Depth</a>
         <ol>
           <li><a href="#writing-reduction-kernel">Writing a reduction kernel</a></li>
@@ -45,12 +46,16 @@
 <p>To begin with RenderScript, there are two main concepts you should understand:</p>
 <ul>
 
-<li>High-performance compute kernels are written in a C99-derived language. A <i>compute
-    kernel</i> is a function or collection of functions that you can direct the RenderScript runtime
-    to execute in parallel across a collection of data.</li>
+<li>The <em>language</em> itself is a C99-derived language for writing high-performance compute
+code. <a href="#writing-an-rs-kernel">Writing a RenderScript Kernel</a> describes
+how to use it to write compute kernels.</li>
 
-<li>A Java API is used for managing the lifetime of RenderScript resources and controlling kernel
-execution.</li>
+<li>The <em>control API</em> is used for managing the lifetime of RenderScript resources and
+controlling kernel execution. It is available in three different languages: Java, C++ in Android
+NDK, and the C99-derived kernel language itself.
+<a href="#using-rs-from-java">Using RenderScript from Java Code</a> and
+<a href=#single-source-rs>Single-Source RenderScript</a> describe the first and the third
+options, respectively.</li>
 </ul>
 
 <h2 id="writing-an-rs-kernel">Writing a RenderScript Kernel</h2>
@@ -77,7 +82,9 @@
 access script globals from Java code, and these are often used for parameter passing to RenderScript
 kernels.</p></li>
 
-<li><p>Zero or more <strong><i>compute kernels</i></strong>. There are two kinds of compute
+<li><p>Zero or more <strong><i>compute kernels</i></strong>. A compute kernel is a function
+or collection of functions that you can direct the RenderScript runtime to execute in parallel
+across a collection of data. There are two kinds of compute
 kernels: <i>mapping</i> kernels (also called <i>foreach</i> kernels)
 and <i>reduction</i> kernels.</p>
 
@@ -243,9 +250,9 @@
 precision (such as SIMD CPU instructions).</p>
 
 
-<h2 id="access-rs-apis">Accessing RenderScript APIs</h2>
+<h2 id="access-rs-apis">Accessing RenderScript APIs from Java</h2>
 
-<p>When developing an Android application that uses RenderScript, you can access its API in
+<p>When developing an Android application that uses RenderScript, you can access its API from Java in
   one of two ways:</p>
 
 <ul>
@@ -377,7 +384,7 @@
 <ul>
 
 <li><strong>ScriptC</strong>: These are the user-defined scripts as described in <a
-href="#writing-an-rs-kernel">Writing a RenderScript Kernel</a> above. Every script has a Java class
+href="#writing-an-rs-kernel"><i>Writing a RenderScript Kernel</i></a> above. Every script has a Java class
 reflected by the RenderScript compiler in order to make it easy to access the script from Java code;
 this class has the name <code>ScriptC_<i>filename</i></code>. For example, if the mapping kernel
 above were located in <code>invert.rs</code> and a RenderScript context were already located in
@@ -448,6 +455,116 @@
   a <code>get()</code> method to obtain the result of a reduction. <code>get()</code> is
   synchronous, and is serialized with respect to the reduction (which is asynchronous).</p>
 
+<h2 id="single-source-rs">Single-Source RenderScript</h2>
+
+<p>Android 7.0 (API level 24) introduces a new programming feature called <em>Single-Source
+RenderScript</em>, in which kernels are launched from the script where they are defined, rather than
+from Java. This approach is currently limited to mapping kernels, which are simply referred to as "kernels"
+in this section for conciseness. This new feature also supports creating allocations of type
+<a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_allocation>
+<code>rs_allocation</code></a> from inside the script. It is now possible to
+implement a whole algorithm solely within a script, even if multiple kernel launches are required.
+The benefit is twofold: more readable code, because it keeps the implementation of an algorithm in
+one language; and potentially faster code, because of fewer transitions between Java and
+RenderScript across multiple kernel launches.</p>
+
+<p>In Single-Source RenderScript, you write kernels as described in <a href="#writing-an-rs-kernel">
+Writing a RenderScript Kernel</a>. You then write an invokable function that calls
+<a href="{@docRoot}guide/topics/renderscript/reference/rs_for_each.html#android_rs:rsForEach">
+<code>rsForEach()</code></a> to launch them. That API takes a kernel function as the first
+parameter, followed by input and output allocations. A similar API
+<a href="{@docRoot}guide/topics/renderscript/reference/rs_for_each.html#android_rs:rsForEachWithOptions">
+<code>rsForEachWithOptions()</code></a> takes an extra argument of type
+<a href="{@docRoot}guide/topics/renderscript/reference/rs_for_each.html#android_rs:rs_script_call_t">
+<code>rs_script_call_t</code></a>, which specifies a subset of the elements from the input and
+output allocations for the kernel function to process.</p>
+
+<p>To start RenderScript computation, you call the invokable function from Java.
+Follow the steps in <a href="#using-rs-from-java">Using RenderScript from Java Code</a>.
+In the step <a href="#launching_kernels">launch the appropriate kernels</a>, call
+the invokable function using <code>invoke_<i>function_name</i>()</code>, which will start the
+whole computation, including launching kernels.</p>
+
+<p>Allocations are often needed to save and pass
+intermediate results from one kernel launch to another. You can create them using
+<a href="{@docRoot}guide/topics/renderscript/reference/rs_allocation_create.html#android_rs:rsCreateAllocation">
+rsCreateAllocation()</a>. One easy-to-use form of that API is <code>
+rsCreateAllocation_&ltT&gt&ltW&gt(&hellip;)</code>, where <i>T</i> is the data type for an
+element, and <i>W</i> is the vector width for the element. The API takes the sizes in
+dimensions X, Y, and Z as arguments. For 1D or 2D allocations, the size for dimension Y or Z can
+be omitted. For example, <code>rsCreateAllocation_uchar4(16384)</code> creates a 1D allocation of
+16384 elements, each of which is of type <code>uchar4</code>.</p>
+
+<p>Allocations are managed by the system automatically. You
+do not have to explicitly release or free them. However, you can call
+<a href="{@docRoot}guide/topics/renderscript/reference/rs_object_info.html#android_rs:rsClearObject">
+<code>rsClearObject(rs_allocation* alloc)</code></a> to indicate you no longer need the handle
+<code>alloc</code> to the underlying allocation,
+so that the system can free up resources as early as possible.</p>
+
+<p>The <a href="#writing-an-rs-kernel">Writing a RenderScript Kernel</a> section contains an example
+kernel that inverts an image. The example below expands that to apply more than one effect to an image,
+using Single-Source RenderScript. It includes another kernel, <code>greyscale</code>, which turns a
+color image into black-and-white. An invokable function <code>process()</code> then applies those two kernels
+consecutively to an input image, and produces an output image. Allocations for both the input and
+the output are passed in as arguments of type
+<a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_allocation>
+<code>rs_allocation</code></a>.</p>
+
+<pre>
+// File: singlesource.rs
+
+#pragma version(1)
+#pragma rs java_package_name(com.android.rssample)
+
+static const float4 weight = {0.299f, 0.587f, 0.114f, 0.0f};
+
+uchar4 RS_KERNEL invert(uchar4 in, uint32_t x, uint32_t y) {
+  uchar4 out = in;
+  out.r = 255 - in.r;
+  out.g = 255 - in.g;
+  out.b = 255 - in.b;
+  return out;
+}
+
+uchar4 RS_KERNEL greyscale(uchar4 in) {
+  const float4 inF = rsUnpackColor8888(in);
+  const float4 outF = (float4){ dot(inF, weight) };
+  return rsPackColorTo8888(outF);
+}
+
+void process(rs_allocation inputImage, rs_allocation outputImage) {
+  const uint32_t imageWidth = rsAllocationGetDimX(inputImage);
+  const uint32_t imageHeight = rsAllocationGetDimY(inputImage);
+  rs_allocation tmp = rsCreateAllocation_uchar4(imageWidth, imageHeight);
+  rsForEach(invert, inputImage, tmp);
+  rsForEach(greyscale, tmp, outputImage);
+}
+</pre>
+
+<p>You can call the <code>process()</code> function from Java as follows:</p>
+
+<pre>
+// File SingleSource.java
+
+RenderScript RS = RenderScript.create(context);
+ScriptC_singlesource script = new ScriptC_singlesource(RS);
+Allocation inputAllocation = Allocation.createFromBitmapResource(
+    RS, getResources(), R.drawable.image);
+Allocation outputAllocation = Allocation.createTyped(
+    RS, inputAllocation.getType(),
+    Allocation.USAGE_SCRIPT | Allocation.USAGE_IO_OUTPUT);
+script.invoke_process(inputAllocation, outputAllocation);
+</pre>
+
+<p>This example shows how an algorithm that involves two kernel launches can be implemented completely
+in the RenderScript language itself. Without Single-Source
+RenderScript, you would have to launch both kernels from the Java code, separating kernel launches
+from kernel definitions and making it harder to understand the whole algorithm. Not only is the
+Single-Source RenderScript code easier to read, it also eliminates the transitioning
+between Java and the script across kernel launches. Some iterative algorithms may launch kernels
+hundreds of times, making the overhead of such transitioning considerable.</p>
+
 <h2 id="reduction-in-depth">Reduction Kernels in Depth</h2>
 
 <p><i>Reduction</i> is the process of combining a collection of data into a single
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index b7461ee..0793832 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -38,7 +38,6 @@
 
 import android.annotation.Nullable;
 import android.app.BroadcastOptions;
-import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
@@ -135,6 +134,8 @@
 import com.android.server.connectivity.NetworkAgentInfo;
 import com.android.server.connectivity.NetworkDiagnostics;
 import com.android.server.connectivity.NetworkMonitor;
+import com.android.server.connectivity.NetworkNotificationManager;
+import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
 import com.android.server.connectivity.PacManager;
 import com.android.server.connectivity.PermissionMonitor;
 import com.android.server.connectivity.Tethering;
@@ -436,6 +437,7 @@
     TelephonyManager mTelephonyManager;
 
     private KeepaliveTracker mKeepaliveTracker;
+    private NetworkNotificationManager mNotifier;
 
     // sequence number for Networks; keep in sync with system/netd/NetworkController.cpp
     private final static int MIN_NET_ID = 100; // some reserved marks
@@ -832,6 +834,8 @@
         mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
 
         mKeepaliveTracker = new KeepaliveTracker(mHandler);
+        mNotifier = new NetworkNotificationManager(mContext, mTelephonyManager,
+                mContext.getSystemService(NotificationManager.class));
     }
 
     private NetworkRequest createInternetRequestForTransport(int transportType) {
@@ -2230,16 +2234,15 @@
                         updateCapabilities(nai, nai.networkCapabilities);
                     }
                     if (!visible) {
-                        setProvNotificationVisibleIntent(false, netId, null, 0, null, null, false);
+                        mNotifier.clearNotification(netId);
                     } else {
                         if (nai == null) {
                             loge("EVENT_PROVISIONING_NOTIFICATION from unknown NetworkMonitor");
                             break;
                         }
                         if (!nai.networkMisc.provisioningNotificationDisabled) {
-                            setProvNotificationVisibleIntent(true, netId, NotificationType.SIGN_IN,
-                                    nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(),
-                                    (PendingIntent)msg.obj, nai.networkMisc.explicitlySelected);
+                            mNotifier.showNotification(netId, NotificationType.SIGN_IN, nai,
+                                    (PendingIntent) msg.obj, nai.networkMisc.explicitlySelected);
                         }
                     }
                     break;
@@ -2710,8 +2713,8 @@
         PendingIntent pendingIntent = PendingIntent.getActivityAsUser(
                 mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
 
-        setProvNotificationVisibleIntent(true, nai.network.netId, NotificationType.NO_INTERNET,
-                nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(), pendingIntent, true);
+        mNotifier.showNotification(nai.network.netId, NotificationType.NO_INTERNET, nai,
+                pendingIntent, true);
     }
 
     private class InternalHandler extends Handler {
@@ -3617,118 +3620,6 @@
         return -1;
     }
 
-    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
-    private static enum NotificationType { SIGN_IN, NO_INTERNET; };
-
-    private void setProvNotificationVisible(boolean visible, int networkType, String action) {
-        Intent intent = new Intent(action);
-        PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
-        // Concatenate the range of types onto the range of NetIDs.
-        int id = MAX_NET_ID + 1 + (networkType - ConnectivityManager.TYPE_NONE);
-        setProvNotificationVisibleIntent(visible, id, NotificationType.SIGN_IN,
-                networkType, null, pendingIntent, false);
-    }
-
-    /**
-     * Show or hide network provisioning notifications.
-     *
-     * We use notifications for two purposes: to notify that a network requires sign in
-     * (NotificationType.SIGN_IN), or to notify that a network does not have Internet access
-     * (NotificationType.NO_INTERNET). We display at most one notification per ID, so on a
-     * particular network we can display the notification type that was most recently requested.
-     * So for example if a captive portal fails to reply within a few seconds of connecting, we
-     * might first display NO_INTERNET, and then when the captive portal check completes, display
-     * SIGN_IN.
-     *
-     * @param id an identifier that uniquely identifies this notification.  This must match
-     *         between show and hide calls.  We use the NetID value but for legacy callers
-     *         we concatenate the range of types with the range of NetIDs.
-     */
-    private void setProvNotificationVisibleIntent(boolean visible, int id,
-            NotificationType notifyType, int networkType, String extraInfo, PendingIntent intent,
-            boolean highPriority) {
-        if (VDBG || (DBG && visible)) {
-            log("setProvNotificationVisibleIntent " + notifyType + " visible=" + visible
-                    + " networkType=" + getNetworkTypeName(networkType)
-                    + " extraInfo=" + extraInfo + " highPriority=" + highPriority);
-        }
-
-        Resources r = Resources.getSystem();
-        NotificationManager notificationManager = (NotificationManager) mContext
-            .getSystemService(Context.NOTIFICATION_SERVICE);
-
-        if (visible) {
-            CharSequence title;
-            CharSequence details;
-            int icon;
-            if (notifyType == NotificationType.NO_INTERNET &&
-                    networkType == ConnectivityManager.TYPE_WIFI) {
-                title = r.getString(R.string.wifi_no_internet, 0);
-                details = r.getString(R.string.wifi_no_internet_detailed);
-                icon = R.drawable.stat_notify_wifi_in_range;  // TODO: Need new icon.
-            } else if (notifyType == NotificationType.SIGN_IN) {
-                switch (networkType) {
-                    case ConnectivityManager.TYPE_WIFI:
-                        title = r.getString(R.string.wifi_available_sign_in, 0);
-                        details = r.getString(R.string.network_available_sign_in_detailed,
-                                extraInfo);
-                        icon = R.drawable.stat_notify_wifi_in_range;
-                        break;
-                    case ConnectivityManager.TYPE_MOBILE:
-                    case ConnectivityManager.TYPE_MOBILE_HIPRI:
-                        title = r.getString(R.string.network_available_sign_in, 0);
-                        // TODO: Change this to pull from NetworkInfo once a printable
-                        // name has been added to it
-                        details = mTelephonyManager.getNetworkOperatorName();
-                        icon = R.drawable.stat_notify_rssi_in_range;
-                        break;
-                    default:
-                        title = r.getString(R.string.network_available_sign_in, 0);
-                        details = r.getString(R.string.network_available_sign_in_detailed,
-                                extraInfo);
-                        icon = R.drawable.stat_notify_rssi_in_range;
-                        break;
-                }
-            } else {
-                Slog.wtf(TAG, "Unknown notification type " + notifyType + "on network type "
-                        + getNetworkTypeName(networkType));
-                return;
-            }
-
-            Notification notification = new Notification.Builder(mContext)
-                    .setWhen(0)
-                    .setSmallIcon(icon)
-                    .setAutoCancel(true)
-                    .setTicker(title)
-                    .setColor(mContext.getColor(
-                            com.android.internal.R.color.system_notification_accent_color))
-                    .setContentTitle(title)
-                    .setContentText(details)
-                    .setContentIntent(intent)
-                    .setLocalOnly(true)
-                    .setPriority(highPriority ?
-                            Notification.PRIORITY_HIGH :
-                            Notification.PRIORITY_DEFAULT)
-                    .setDefaults(highPriority ? Notification.DEFAULT_ALL : 0)
-                    .setOnlyAlertOnce(true)
-                    .build();
-
-            try {
-                notificationManager.notifyAsUser(NOTIFICATION_ID, id, notification, UserHandle.ALL);
-            } catch (NullPointerException npe) {
-                loge("setNotificationVisible: visible notificationManager npe=" + npe);
-                npe.printStackTrace();
-            }
-        } else {
-            try {
-                notificationManager.cancelAsUser(NOTIFICATION_ID, id, UserHandle.ALL);
-            } catch (NullPointerException npe) {
-                loge("setNotificationVisible: cancel notificationManager npe=" + npe);
-                npe.printStackTrace();
-            }
-        }
-    }
-
     /** Location to an updatable file listing carrier provisioning urls.
      *  An example:
      *
@@ -3832,7 +3723,9 @@
         enforceConnectivityInternalPermission();
         final long ident = Binder.clearCallingIdentity();
         try {
-            setProvNotificationVisible(visible, networkType, action);
+            // Concatenate the range of types onto the range of NetIDs.
+            int id = MAX_NET_ID + 1 + (networkType - ConnectivityManager.TYPE_NONE);
+            mNotifier.setProvNotificationVisible(visible, id, action);
         } finally {
             Binder.restoreCallingIdentity(ident);
         }
diff --git a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
new file mode 100644
index 0000000..4680a8a
--- /dev/null
+++ b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.connectivity;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.NetworkCapabilities;
+import android.os.UserHandle;
+import android.telephony.TelephonyManager;
+import android.util.Slog;
+
+import com.android.internal.R;
+
+import static android.net.NetworkCapabilities.*;
+
+
+public class NetworkNotificationManager {
+
+    public static enum NotificationType { SIGN_IN, NO_INTERNET; };
+
+    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
+
+    private static final String TAG = NetworkNotificationManager.class.getSimpleName();
+    private static final boolean DBG = true;
+    private static final boolean VDBG = false;
+
+    private final Context mContext;
+    private final TelephonyManager mTelephonyManager;
+    private final NotificationManager mNotificationManager;
+
+    public NetworkNotificationManager(Context c, TelephonyManager t, NotificationManager n) {
+        mContext = c;
+        mTelephonyManager = t;
+        mNotificationManager = n;
+    }
+
+    // TODO: deal more gracefully with multi-transport networks.
+    private static int getFirstTransportType(NetworkAgentInfo nai) {
+        for (int i = 0; i < 64; i++) {
+            if (nai.networkCapabilities.hasTransport(i)) return i;
+        }
+        return -1;
+    }
+
+    private static String getTransportName(int transportType) {
+        Resources r = Resources.getSystem();
+        String[] networkTypes = r.getStringArray(R.array.network_switch_type_name);
+        try {
+            return networkTypes[transportType];
+        } catch (IndexOutOfBoundsException e) {
+            return r.getString(R.string.network_switch_type_name_unknown);
+        }
+    }
+
+    private static int getIcon(int transportType) {
+        return (transportType == TRANSPORT_WIFI) ?
+                R.drawable.stat_notify_wifi_in_range :  // TODO: Distinguish ! from ?.
+                R.drawable.stat_notify_rssi_in_range;
+    }
+
+    /**
+     * Show or hide network provisioning notifications.
+     *
+     * We use notifications for two purposes: to notify that a network requires sign in
+     * (NotificationType.SIGN_IN), or to notify that a network does not have Internet access
+     * (NotificationType.NO_INTERNET). We display at most one notification per ID, so on a
+     * particular network we can display the notification type that was most recently requested.
+     * So for example if a captive portal fails to reply within a few seconds of connecting, we
+     * might first display NO_INTERNET, and then when the captive portal check completes, display
+     * SIGN_IN.
+     *
+     * @param id an identifier that uniquely identifies this notification.  This must match
+     *         between show and hide calls.  We use the NetID value but for legacy callers
+     *         we concatenate the range of types with the range of NetIDs.
+     */
+    public void showNotification(int id, NotificationType notifyType,
+            NetworkAgentInfo nai, PendingIntent intent, boolean highPriority) {
+        int transportType;
+        String extraInfo;
+        if (nai != null) {
+            transportType = getFirstTransportType(nai);
+            extraInfo = nai.networkInfo.getExtraInfo();
+            // Only notify for Internet-capable networks.
+            if (!nai.networkCapabilities.hasCapability(NET_CAPABILITY_INTERNET)) return;
+        } else {
+            // Legacy notifications.
+            transportType = TRANSPORT_CELLULAR;
+            extraInfo = null;
+        }
+
+        if (DBG) {
+            Slog.d(TAG, "showNotification " + notifyType
+                    + " transportType=" + getTransportName(transportType)
+                    + " extraInfo=" + extraInfo + " highPriority=" + highPriority);
+        }
+
+        Resources r = Resources.getSystem();
+        CharSequence title;
+        CharSequence details;
+        int icon = getIcon(transportType);
+        if (notifyType == NotificationType.NO_INTERNET && transportType == TRANSPORT_WIFI) {
+            title = r.getString(R.string.wifi_no_internet, 0);
+            details = r.getString(R.string.wifi_no_internet_detailed);
+        } else if (notifyType == NotificationType.SIGN_IN) {
+            switch (transportType) {
+                case TRANSPORT_WIFI:
+                    title = r.getString(R.string.wifi_available_sign_in, 0);
+                    details = r.getString(R.string.network_available_sign_in_detailed, extraInfo);
+                    break;
+                case TRANSPORT_CELLULAR:
+                    title = r.getString(R.string.network_available_sign_in, 0);
+                    // TODO: Change this to pull from NetworkInfo once a printable
+                    // name has been added to it
+                    details = mTelephonyManager.getNetworkOperatorName();
+                    break;
+                default:
+                    title = r.getString(R.string.network_available_sign_in, 0);
+                    details = r.getString(R.string.network_available_sign_in_detailed, extraInfo);
+                    break;
+            }
+        } else {
+            Slog.wtf(TAG, "Unknown notification type " + notifyType + "on network transport "
+                    + getTransportName(transportType));
+            return;
+        }
+
+        Notification notification = new Notification.Builder(mContext)
+                .setWhen(0)
+                .setSmallIcon(icon)
+                .setAutoCancel(true)
+                .setTicker(title)
+                .setColor(mContext.getColor(
+                        com.android.internal.R.color.system_notification_accent_color))
+                .setContentTitle(title)
+                .setContentText(details)
+                .setContentIntent(intent)
+                .setLocalOnly(true)
+                .setPriority(highPriority ?
+                        Notification.PRIORITY_HIGH :
+                        Notification.PRIORITY_DEFAULT)
+                .setDefaults(highPriority ? Notification.DEFAULT_ALL : 0)
+                .setOnlyAlertOnce(true)
+                .build();
+
+        try {
+            mNotificationManager.notifyAsUser(NOTIFICATION_ID, id, notification, UserHandle.ALL);
+        } catch (NullPointerException npe) {
+            Slog.d(TAG, "setNotificationVisible: visible notificationManager npe=" + npe);
+        }
+    }
+
+    public void clearNotification(int id) {
+        if (DBG) {
+            Slog.d(TAG, "clearNotification id=" + id);
+        }
+        try {
+            mNotificationManager.cancelAsUser(NOTIFICATION_ID, id, UserHandle.ALL);
+        } catch (NullPointerException npe) {
+            Slog.d(TAG, "setNotificationVisible: cancel notificationManager npe=" + npe);
+        }
+    }
+
+    /**
+     * Legacy provisioning notifications coming directly from DcTracker.
+     */
+    public void setProvNotificationVisible(boolean visible, int id, String action) {
+        if (visible) {
+            Intent intent = new Intent(action);
+            PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
+            showNotification(id, NotificationType.SIGN_IN, null, pendingIntent, false);
+        } else {
+            clearNotification(id);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index 64f79e1..3fd4b37 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -1350,7 +1350,9 @@
     @Override
     public ParcelFileDescriptor setWallpaper(String name, String callingPackage,
             Rect cropHint, boolean allowBackup, Bundle extras, int which,
-            IWallpaperManagerCallback completion) {
+            IWallpaperManagerCallback completion, int userId) {
+        userId = ActivityManager.handleIncomingUser(getCallingPid(), getCallingUid(), userId,
+                false /* all */, true /* full */, "changing wallpaper", null /* pkg */);
         checkPermission(android.Manifest.permission.SET_WALLPAPER);
 
         if ((which & (FLAG_LOCK|FLAG_SYSTEM)) == 0) {
@@ -1374,8 +1376,6 @@
             }
         }
 
-        final int userId = UserHandle.getCallingUserId();
-
         synchronized (mLock) {
             if (DEBUG) Slog.v(TAG, "setWallpaper which=0x" + Integer.toHexString(which));
             WallpaperData wallpaper;
@@ -1757,8 +1757,8 @@
         }
 
         WallpaperData wallpaper = (which == FLAG_LOCK)
-                ? mWallpaperMap.get(userId)
-                : mLockWallpaperMap.get(userId);
+                ? mLockWallpaperMap.get(userId)
+                : mWallpaperMap.get(userId);
         return (wallpaper != null) ? wallpaper.allowBackup : false;
     }