diff --git a/docs/html/preview/download.jd b/docs/html/preview/download.jd
index 43e03c7..86f1dd4 100644
--- a/docs/html/preview/download.jd
+++ b/docs/html/preview/download.jd
@@ -188,14 +188,13 @@
 
 
 
-<p>To run the Android N Preview so you can test your apps, you can either
+<p>To run the Android N Preview and test your apps, you can either
 install the Android N Preview on one of several supported devices or run it on
 the Android Emulator.</p>
 
 <p>Simply installing your app onto Android N this way does not require
 any changes to your app source code. If, however, you want to update your
-app to use new Android N APIs and Java 8 language features,
-then you need to download Android Studio 2.1 (preview) as described in
+app to use new Android N APIs, see
 <a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android N</a>.
 
 
@@ -221,22 +220,19 @@
 
 <h3 id="ota">Get over-the-air updates</h3>
 
-<p>
-  You can receive preview versions of Android on compatible devices by
-  enrolling them in the Android Beta Program. Once you enroll a device in
-  this program, it receives preview versions of Android over-the-air (OTA).
-  These updates are automatically downloaded and can installed just like
-  official updates.
-</p>
+<p>You can receive over-the-air updates to preview versions of Android by
+enrolling your compatible device in the Android Beta Program.
+These updates are automatically downloaded and will update your device just like
+official system updates.</p>
 
 <p>
-  For more information on the Android Beta Program and to enroll devices, see
+  For more information and to enroll your device, see
   the <a href="https://g.co/androidbeta">Android Beta Program</a> web site.
 </p>
 
 <p class="warning">
-  <strong>Warning:</strong> If you enroll a device for receiving a preview
-  version of Android, and then later opt-out of receiving those updates on
+  <strong>Warning:</strong> If you enroll a device in the Android Beta Program,
+  then later opt-out of receiving updates on
   the device, all user data on that device will be removed.
 </p>
 
@@ -247,7 +243,7 @@
 the updates yourself, you can download the appropriate system image for your
 device from the table below.</p>
 
-<p>The process of installing a system image on a device <em>removes all data
+<p>Installing a system image on a device <em>removes all data
 from the device</em>, so you should back up your data before installing a
 system image.</p>
 
@@ -355,8 +351,8 @@
 </p>
 
 <p class="warning">
-  <strong>Warning:</strong> Installing a factory image causes all user data on
-  the device to be removed.
+  <strong>Warning:</strong> Just like when flashing a preview image,
+  installing a factory image removes all user data on the device.
 </p>
 
 
@@ -364,13 +360,13 @@
 
 <h2 id="setupAVD">Use the Emulator</h2>
 
-<p>To use the Android Emulator to run the Android N Preview you need to download
-the Android N Preview SDK and create a virtual device for the emulator.
-</p>
+<p>To use the Android Emulator to run the Android N Preview, you need to
+download the Android N Preview SDK and create a virtual device for the
+emulator.</p>
 
 <p>First, download the Android N Preview SDK as follows (if you
 already got it while <a href="{@docRoot}preview/setup-sdk.html">setting up
-Android Studio 2.1</a>, you can skip this part):
+to develop for Android N</a>, you can skip this part):
 
 <ol>
   <li>In Android Studio, open the Settings dialog
@@ -404,12 +400,21 @@
     then click <strong>Next</strong>.</li>
   <li>Select the <strong>N</strong> system image (with the
     <strong>x86</strong> ABI), then click <strong>Next</strong>.
+    (Only x86 system images are currently supported with the Android Emulator
+for the Android N Preview.)
   <li>Complete the rest of the AVD configuration and click
     <strong>Finish</strong>.</li>
 </ol>
 
 <p>You can now launch the Android Emulator with the Android N Preview AVD.</p>
 
+<p class="note"><strong>Note:</strong>
+For the best experience in the Android Emulator, install
+Android Studio 2.1 Preview, which supports the <a
+href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>
+with much faster performance compared to the Emulator in
+Android Studio 1.5.</p>
+
 <p>For more information about creating virtual devices, see <a href=
   "{@docRoot}tools/devices/index.html">Managing Virtual Devices</a>.
 </p>
diff --git a/docs/html/preview/images/studio-jdk-location.jpg b/docs/html/preview/images/studio-jdk-location.jpg
new file mode 100644
index 0000000..1b1ba23
--- /dev/null
+++ b/docs/html/preview/images/studio-jdk-location.jpg
Binary files differ
diff --git a/docs/html/preview/j8-jack.jd b/docs/html/preview/j8-jack.jd
index 4745d89..1f24530 100644
--- a/docs/html/preview/j8-jack.jd
+++ b/docs/html/preview/j8-jack.jd
@@ -1,61 +1,41 @@
-page.title=Using Java 8 Language Features
+page.title=Java 8 Language Features
 page.keywords="android N", "Java 8", "Jack"
 @jd:body
 
 <div id="qv-wrapper">
   <div id="qv">
-    <h2>
-      In this document
-    </h2>
-
     <ol>
       <li>
         <a href="#supported-features">Supported Java 8 Language Features and APIs</a>
       </li>
-
       <li>
         <a href="#configuration">Enabling Java 8 Features and the Jack Toolchain</a>
       </li>
     </ol>
-
-    <h2>
-      See also
-    </h2>
-
-    <ol>
-      <li>
-        <a class="external-link" href=
-        "https://source.android.com/source/jack.html">Jack (Java Android Compiler
-        Kit)</a>
-      </li>
-    </ol>
   </div>
 </div>
 
 <p>Android N introduces support for Java 8 language features
-  that you can use when developing apps that target the Android N. To start using
-  these features, you need to download and set up Android Studio 2.1 (preview)
-  and the Android N Preview SDK, which includes the required Jack toolchain and
-  updated Android Plugin for Gradle.</p>
-
-<p>If you haven't yet installed the Android N Preview SDK, follow the guide to
-<a href="{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android
-N</a>.</p>
-
-
-<p>
-  This document describes the new language features supported in the Android N
+  that you can use when developing apps that target Android N.
+  This page describes the new language features supported in the Android N
   Preview, how to properly set up your project to use them, and any known
   issues you may encounter.
 </p>
 
+<p>To start using these features, you need to download and set up Android
+Studio 2.1 (preview) and the Android N Preview SDK, which includes the required
+Jack toolchain and updated Android Plugin for Gradle. If you haven't yet
+installed the Android N Preview SDK, see <a href=
+"{@docRoot}preview/setup-sdk.html">Set Up to Develop for Android N</a>.</p>
+
+
+
 <p class="note">
   <strong>Note:</strong> Using the new Java 8 language features is not a
-  requirement for developing apps that target the Android N Preview. After
-  following the set up instructions in the <a href=
-  "{@docRoot}preview/setup-sdk.html">Preview guide</a>, you may use
-  the Java 7 language features already supported by Android 6.0 (API level 23)
-  and below.
+  requirement for developing apps that target the Android N platform. If you
+  don't want to write code with Java 8 language features, you can keep your
+  project's source and target compatibility values set to Java 7, but you still
+  must compile with JDK 8 to build against the Android N platform.
 </p>
 
 <h2 id="supported-features">
@@ -64,8 +44,8 @@
 
 <p>
   Android does not currently support all Java 8 language features. However, the
-  following features are now available when developing apps targeting the N
-  Developer Preview:
+  following features are now available when developing apps targeting the
+  Android N Preview:
 </p>
 
 <ul>
@@ -90,8 +70,7 @@
 
 
 <p>
-  Additionally, the following Java 8 language feature APIs are now available
-  with the Preview:
+  Additionally, the following Java 8 language feature APIs are now available:
 </p>
 
 <ul>
@@ -143,18 +122,20 @@
   new <a class="external-link" href=
   "https://source.android.com/source/jack.html">Jack toolchain</a>. This new
   Android toolchain compiles Java language source into Android-readable dex
-  bytecode, has its own {@code .jack} library format, and provides most tool chain
+  bytecode, has its own {@code .jack} library format, and provides most toolchain
   features as part of a single tool: repackaging, shrinking, obfuscation and
   multidex.
 </p>
 
-<p>Here we compare the two toolchains used to build Android DEX files:</p>
+<p>Here is a comparison the two toolchains used to build Android DEX files:</p>
 <ul>
-  <li>Legacy: javac ({@code .java} &gt; {@code .class}) &gt; dx ({@code
-  .class} &gt; {@code .dex})
+  <li>Legacy javac toolchain:<br>
+  <b>javac</b> ({@code .java} --&gt; {@code .class}) --&gt; <b>dx</b> ({@code
+  .class} --&gt; {@code .dex})
   </li>
 
-  <li>Modern: Jack ({@code .java} &gt; {@code .jack} &gt; {@code .dex})
+  <li>New Jack toolchain:<br>
+  <b>Jack</b> ({@code .java} --&gt; {@code .jack} --&gt; {@code .dex})
   </li>
 </ul>
 
@@ -169,9 +150,9 @@
 
 <pre>
 android {
-...
-  defaultConfig {
   ...
+  defaultConfig {
+    ...
     jackOptions {
       enabled true
     }
@@ -192,19 +173,17 @@
   with Jack and will be disabled while using the new toolchain.
 </p>
 
-<p>
-  Since Jack does not generate intermediate class files when compiling an app,
-  tools that depend on these files do not currently work with Jack. Some examples of
-  these tools are:
-</p>
+<p>Because Jack does not generate intermediate class files when compiling an
+app, tools that depend on these files do not currently work with Jack. Some
+examples of these tools are:</p>
 
 <ul>
   <li>Lint detectors that operate on class files
   </li>
 
-  <li>Tools and libraries that require the app’s class files (e.g. JaCoCo and Mockito)
-  </li>
+  <li>Tools and libraries that require the app’s class files (such as JaCoCo
+  and Mockito)</li>
 </ul>
 
-If you find other problems while using Jack, <a class="external-link" href=
-"http://tools.android.com/filing-bugs">please report bugs</a>.
\ No newline at end of file
+<p>If you find other problems while using Jack, <a href=
+"http://tools.android.com/filing-bugs">please report bugs</a>.</p>
\ No newline at end of file
diff --git a/docs/html/preview/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
index 65be220..e37834a 100644
--- a/docs/html/preview/setup-sdk.jd
+++ b/docs/html/preview/setup-sdk.jd
@@ -25,7 +25,7 @@
 <p>To develop apps for the Android N Preview, you need to make some updates
 to your developer environment, as described on this page.</p>
 
-<p>To instead simply test your app's compatibility on the
+<p>To simply test your app's compatibility on the
 Android N system image, follow the guide to <a
 href="{@docRoot}preview/download.html">Test on an Android N Device</a>.</p>
 
@@ -34,11 +34,14 @@
 
 <h2 id="get-as13">Get Android Studio 2.1 (preview)</h2>
 
-<p>The Android N platform adds support for Java 8 language features,
-which are supported only with a new compiler called Jack. The latest Jack
-compiler is currently supported only in Android Studio 2.1. So if you want to
-use Java 8 language features, then you need to use Android Studio 2.1 to
-build your app.
+<p>The Android N platform adds support for <a
+href="{@docRoot}preview/j8-jack.html">Java 8 language features</a>,
+which require a new compiler called Jack. The latest version of Jack
+is currently supported only in Android Studio 2.1. So if you want to
+use Java 8 language features, you need to use Android Studio 2.1 to
+build your app. Otherwise, you don't need to use the Jack compiler, but you
+still need to update to JDK 8 to compile against the Android N platform,
+as described below.
 </p>
 
 <iframe width="400" height="225" src="//www.youtube.com/embed/SBbWGxXCMqQ?autohide=1&amp;showinfo=0" frameborder="0" allowfullscreen="" style="float: right; margin: 0 0 20px 20px;"></iframe>
@@ -47,8 +50,8 @@
 release channel. If you already
 have Android Studio and don't want to update to the canary channel, you can
 download Android Studio 2.1 as a separate installation and use it
-with Android N, leaving your primary Android Studio environment
-unaffected.</p>
+for development with Android N, leaving your primary Android Studio
+environment unaffected.</p>
 
 <p>To download Android Studio 2.1 as a separate installation, follow these
 steps (or if you want to receive Android Studio 2.1 as an update to your
@@ -85,8 +88,8 @@
 Android N Preview SDK in Android Studio as follows:</p>
 
 <ol>
-  <li>While still viewing the Updates panel from the previous
-  procedure, select the <strong>Automatically
+  <li>While still viewing the Updates panel (step 4 from above),
+  select the <strong>Automatically
     check updates for Android SDK</strong> check box and select
     <strong>Preview Channel</strong> from the drop-down list.
   </li>
@@ -109,7 +112,6 @@
   </li>
 </ol>
 
-
 <h3 id="docs-dl">Get the N Preview reference documentation</h3>
 
 <p>
@@ -140,25 +142,32 @@
 
 <h2 id="java8">Get the Java 8 JDK and JRE</h2>
 
-<p>You also need to update your JDK for Java 8 and install the
-  Java 8 Runtime Environment (JRE) to run some
-  tools included in Android Studio 2.1. So, if you don't have the latest
-  version of each already, download JDK 8 and JRE 8 now.</p>
+<p>To compile your app against the Android N platform, you need to use
+the Java 8 Developer Kit (JDK 8), and in order to use some tools with Android
+Studio 2.1, you need to install the Java 8 Runtime Environment (JRE 8). So, if
+you don't have the latest version of each already, download JDK 8 and JRE 8
+now.</p>
 
-<p>With Java 8 installed, set the JDK version in Android Studio as follows:</p>
+<p>Then set the JDK version in Android Studio as follows:</p>
 
 <ol>
   <li>Open an Android project in Android Studio, then open the
     Project Structure dialog by selecting <strong>File &gt;
-        Project Structure</strong>.
+        Project Structure</strong>. (Alternatively, you can set the default
+        for all projects by selecting <strong>File &gt; Other Settings &gt;
+        Default Project Structure</strong>.)
    </li>
    <li>In the left panel of the dialog, click <strong>SDK Location</strong>.
    </li>
    <li>In the <strong>JDK Location</strong> field, enter the location of the
-    Java 8 JDK, then click <strong>OK</strong>.
+    Java 8 JDK (click the button on the right
+    to browse your files), then click <strong>OK</strong>.
    </li>
 </ol>
 
+<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700"
+  alt="" />
+
 
 <h2 id="create-update">Update or Create a Project</h2>
 
@@ -166,10 +175,10 @@
   To use the Android N APIs, your project must be configured appropriately.
 </p>
 
-<p>If you plan to use Java 8 language features, you should read
-<a href="{@docRoot}preview/j8-jack.html">Using Java 8 Language Features</a>
-for information about how to configure your project and the supported
-Java 8 features.</p>
+<p>If you plan to use Java 8 language features, you should also read
+<a href="{@docRoot}preview/j8-jack.html">Java 8 Language Features</a>
+for information about the supported Java 8 features and
+how to configure your project with the Jack compiler.</p>
 
 
 <h3 id="update">Update an existing project</h3>
@@ -186,7 +195,6 @@
   ...
 
   defaultConfig {
-     ...
      minSdkVersion <strong>'N'</strong>
      targetSdkVersion <strong>'N'</strong>
      ...
