diff --git a/src/compatibility/cts/development.jd b/src/compatibility/cts/development.jd
index 662d94a..063b951 100644
--- a/src/compatibility/cts/development.jd
+++ b/src/compatibility/cts/development.jd
@@ -31,25 +31,11 @@
 init</code> command. This assures your CTS changes will be included in the
 next CTS release and beyond.</p>
 
-<h2 id="setting-up-eclipse">Setting up Eclipse</h2>
-
-<p>Follow the <a href="{@docRoot}source/using-eclipse.html">instructions</a>
-to setup Eclipse but execute the following command to generate the
-<code>.classpath</code> file rather than copying the one from the development
-project:</p>
-<pre><code>cd /path/to/android/root
-./cts/development/ide/eclipse/genclasspath.sh &gt; .classpath
-chmod u+w .classpath
-</code></pre>
-
-<p>This <code>.classpath</code> file will contain both the Android framework
-packages and the CTS packages.</p>
-
 <h2 id="building-and-running-cts">Building and running CTS</h2>
 
 <p>Execute the following commands to build CTS and start the interactive
 CTS console:</p>
-<p class="note"><strong>Note:</strong> You may supply one of these other values 
+<p class="note"><strong>Note:</strong> You may supply one of these other values
 for <code>TARGET_PRODUCT</code> to build for different architectures:
 <code>aosp_x86_64</code> or <code>aosp_mips</code></p>
 <pre><code>cd <em>/path/to/android/root</em>
diff --git a/src/devices/tech/dalvik/configure.jd b/src/devices/tech/dalvik/configure.jd
index be336ab..5810928 100644
--- a/src/devices/tech/dalvik/configure.jd
+++ b/src/devices/tech/dalvik/configure.jd
@@ -72,7 +72,7 @@
 additional storage (typically 10MB), it speeds zygote startup and creates
 opportunities for the system to swap out some preloaded classes under memory
 pressure. This also contributes to improved <a
-href="http://source.android.com/devices/low-ram.html">low-RAM</a> performance
+href="http://source.android.com/devices/tech/config/low-ram.html">low-RAM</a> performance
 for ART, since in Dalvik much of this class information would have
 been stored in dirty pages in the linear alloc space.
   <li> Dex file compilation uses a tool called dex2oat and takes more time than
diff --git a/src/security/implement.jd b/src/security/implement.jd
index 2a7c890..bb189e1 100644
--- a/src/security/implement.jd
+++ b/src/security/implement.jd
@@ -141,7 +141,10 @@
 it.</li>
 <li>If you become aware of a security issue affecting Android OS or Android
 devices from multiple OEMs, you <strong>should</strong> contact the Android
-Security Team at <em>security@android.com</em>.</li>
+Security Team with a bug filed through the AOSP bug tracker <a
+href="https://code.google.com/p/android/issues/entry?template=Security%20bug%20report">Security
+bug report</a> template.</p>
+.</li>
 </ol>
 
 <h2 id="prod-implement">Product implementation</h2>
diff --git a/src/security/overview/acknowledgements.jd b/src/security/overview/acknowledgements.jd
index 13b4f68..6efa170 100644
--- a/src/security/overview/acknowledgements.jd
+++ b/src/security/overview/acknowledgements.jd
@@ -26,9 +26,11 @@
 
 <p>The Android Security Team would like to thank the following people and
 parties for helping to improve Android security. They have done this either by
-finding and responsibly reporting security vulnerabilities to <a
-href="mailto:security@android.com">security@android.com</a> or by committing code
-that has a positive impact on Android security, including code that qualifies
+finding and responsibly reporting security vulnerabilities through the AOSP bug
+tracker <a
+href="https://code.google.com/p/android/issues/entry?template=Security%20bug%20report">Security
+bug report</a> template or by committing code that has a positive
+impact on Android security, including code that qualifies
 for the <a href="https://www.google.com/about/appsecurity/patch-rewards/">Patch
 Rewards</a> program.</p>
 
@@ -332,7 +334,3 @@
 <p>Charlie Miller (<a href="https://twitter.com/0xcharlie">@0xcharlie</a>)</p>
 
 </div>
-
-<br>
-<p><small>If you have reported a vulnerability prior to 2014 and want to be
-included on this list, or to report a vulnerability in Android, contact <a href="mailto:security@android.com">security@android.com</a></small></p>
diff --git a/src/security/overview/updates-resources.jd b/src/security/overview/updates-resources.jd
index 8c8d047..5bd893e 100644
--- a/src/security/overview/updates-resources.jd
+++ b/src/security/overview/updates-resources.jd
@@ -31,9 +31,10 @@
 
 <p>The Android security team finds security vulnerabilities through internal
 research and also responds to bugs reported by third parties. Sources of
-external bugs include issues reported through the <a
-href="https://code.google.com/p/android/issues/list">Android Open Source
-Project (AOSP) bug tracker</a>, published and pre-published academic research,
+external bugs include issues reported through the Android Open Source
+Project (AOSP) <a
+href="https://code.google.com/p/android/issues/entry?template=Security%20bug%20report">Security
+bug report</a> template, published and pre-published academic research,
 upstream open source project maintainers, notifications from our device
 manufacturer partners, and publicly disclosed issues posted on blogs or social
 media.</p>
@@ -51,13 +52,6 @@
 security issue, please attach it to the bug report and wait for a response
 before uploading the code to AOSP.</p>
 
-<p>If you need to reach the Android security team for a purpose other than
-reporting a vulnerability, please contact <a
-href="mailto:security@android.com">security@android.com</a>. The Android
-security team has a <a
-href="https://developer.android.com/security_at_android_dot_com.txt">PGP
-key</a> if you need to encrypt your message.</p>
-
 <h2 id=triaging_bugs>Triaging bugs</h2>
 
 <p>The first task in handling a security vulnerability is to identify the severity
@@ -245,13 +239,9 @@
 <p>Information for Android application developers: <a
 href="https://developer.android.com">https://developer.android.com</a></p>
 
-<p>The Android security team can be reached at <a
-href="mailto:security@android.com">security@android.com</a>. Our PGP key: <a
-href="https://developer.android.com/security_at_android_dot_com.txt">https://developer.android.com/security_at_android_dot_com.txt</a></p>
-
 <p>Security information exists throughout the Android Open Source and Developer
 sites. Good places to start:<br>
-<a href="http://source.android.com/security/index.html">{@docRoot}security/index.html</a><br>
+<a href="https://source.android.com/security/index.html">https://source.android.com/security/index.html</a><br>
 <a href="https://developer.android.com/training/articles/security-tips.html">https://developer.android.com/training/articles/security-tips.html</a></p>
 
 <p>Community resource for discussion about Android security: <a
diff --git a/src/security/selinux/index.jd b/src/security/selinux/index.jd
index 3553bc7..8745f8e 100644
--- a/src/security/selinux/index.jd
+++ b/src/security/selinux/index.jd
@@ -98,8 +98,3 @@
 <p><a href="https://www.nsa.gov/research/_files/publications/selinux_configuring_policy.pdf">https://www.nsa.gov/research/_files/publications/selinux_configuring_policy.pdf</a></p>
 
 <p><a href="https://www.gnu.org/software/m4/manual/index.html">https://www.gnu.org/software/m4/manual/index.html</a></p>
-
-<h2 id=help>Help</h2>
-
-<p>Over time, Android intends to support common manufacturer additions in its
-default SELinux policy. For more information, contact <a href="mailto:security@android.com">security@android.com</a>.</p>
diff --git a/src/security/verifiedboot/index.jd b/src/security/verifiedboot/index.jd
index d254074..05c034f 100644
--- a/src/security/verifiedboot/index.jd
+++ b/src/security/verifiedboot/index.jd
@@ -88,6 +88,3 @@
 Chromium Projects - Verified Boot</a><br/>
 <a
 href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/device-mapper/verity.txt">Linux Kernel Documentation: verity.txt</a></p>
-
-<p>For additional assistance, contact
-<a href="mailto:security@android.com">security@android.com</a>.</p>
\ No newline at end of file
diff --git a/src/source/developing.jd b/src/source/developing.jd
index 9d414c0..1ccb12e 100644
--- a/src/source/developing.jd
+++ b/src/source/developing.jd
@@ -37,6 +37,8 @@
 command you can download files from multiple repositories into your local
 working directory.</p>
 <p><strong>Gerrit</strong> is a web-based code review system for projects that use git. Gerrit encourages more centralized use of Git by allowing all authorized users to submit changes, which are automatically merged if they pass code review. In addition, Gerrit makes reviewing easier by displaying changes side by side in-browser and enabling inline comments. </p>
+<p><strong>Android Studio</strong> is the official integrated development environment (IDE) for Android application development. See the <a href="http://developer.android.com/tools/studio/index.html">Android Studio Overview</a> for details.
+
 <h2 id="basic-workflow">Basic Workflow</h2>
 <div class="figure" style="width:200px">
   <img src="{@docRoot}images/submit-patches-0.png" alt="basic workflow diagram" height="153px" />
diff --git a/src/source/initializing.jd b/src/source/initializing.jd
index 8aa0104..67a3b27 100644
--- a/src/source/initializing.jd
+++ b/src/source/initializing.jd
@@ -75,9 +75,6 @@
 Java 6: for Gingerbread through KitKat<br/>
 Java 5: for Cupcake through Froyo</p>
 
-<p class="note"><strong>Note:</strong> The <code>lunch</code> command in the build step will ensure that the Sun JDK is
-used instead of any previously installed JDK.</p>
-
 <h3 id="installing-required-packages-ubuntu-1404">Installing required packages (Ubuntu 14.04)</h3>
 <p>You will need a 64-bit version of Ubuntu. Ubuntu 14.04 is recommended.</p>
 <pre><code>$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
diff --git a/src/source/report-bugs.jd b/src/source/report-bugs.jd
index 3b65e8f..59f6b20 100644
--- a/src/source/report-bugs.jd
+++ b/src/source/report-bugs.jd
@@ -16,25 +16,17 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-    <ol id="auto-toc">
-    </ol>
-  </div>
-</div>
-
 <p>Thank you for your interest in Android! One of the best ways you can help us
 improve Android is to let us know about any problems you find with it.</p>
-<h2 id="report-issues">Report Issues</h2>
-<p class="note"><strong>Note:</strong> For security vulnerabilities, please see
-<a href="{@docRoot}security/overview/updates-resources.html#reporting-security-issues">Reporting Security Issues</a>. If you think you've found
-a security vulnerability, <em>please don't use the forms below</em>. Using a public form may
-allow anyone to see your report, which may put users at risk until the bug is
-fixed. Instead, please send an email detailing the issue to security@android.com.</p>
+<p class="note"><strong>Note:</strong> For security vulnerabilities, please use
+the AOSP bug tracker <a
+href="https://code.google.com/p/android/issues/entry?template=Security%20bug%20report">Security
+bug report</a> template. See <a
+href="{@docRoot}security/overview/updates-resources.html#report-issues">Reporting
+Security Issues</a> for additional details.</p>
 <p>Here's how to report <strong>non-security</strong> bugs:</p>
 <ul>
-<li> 
+<li>
 <p><a href="https://code.google.com/p/android/issues/advsearch">Search for
 your bug</a> to see if anyone has already reported it. Don't forget to
 search for all issues, not just open ones, as your issue might already
@@ -74,96 +66,7 @@
 <p>Please note that we can't guarantee that any particular bug can be fixed in
 any particular release. To see what happens to your bug once you report it,
 read <a href="life-of-a-bug.html">Life of a Bug</a>.</p>
-<p>In general, please put as much info in bugs as you can. Just a one liner
+<p>In general, please put as much information in bugs as you can. Just a one liner
 telling us something isn't working is usually useless, and will probably be
 closed without any action. The more detail you provide, the more likely your
-issue is to be resolved. Below, there are some examples of a good bug report
-and a poor bug report.</p>
-
-<h2 id="a-poor-bug-report">A Poor Bug Report</h2>
-<blockquote>
-Title: Error message
-
-When running Eclipse I get an "Internal Error" that says "See the .log file for more details".
-
-Steps to reproduce:
-Happens when "Object o = null". Doesn't happen when changed to "Object o".
-
-Expected results:
-I wouldn't get the error message--would work with Object o = null.
-
-Observed results:
-See above.
-</blockquote>
-<p>This is a poor bug report because it doesn't provide any context for the
-issue; is it a problem in the ART runtime, the core framework, or
-something else? It also doesn't provide any code or hint on how to reproduce
-it. In other words, this bug report doesn't provide enough information for
-anyone to take action on, so it would be ignored.</p>
-<h2 id="a-good-bug-report">A Good Bug Report</h2>
-<blockquote>
-Title: Stepping over "Object o = null" causes Eclipse "Internal Error"
-
-Interesting bug, while using Eclipse 3.3.1.1 with m37a of android and the following code:
-<pre>
-package com.saville.android;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.util.Log;
-
-public class TestObjectNull extends Activity {
-    /** Called when the activity is first created. */
-    &#64;Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        setContentView(R.layout.main);
-
-        Object o = null;
-
-        o = "hi";
-
-        Log.v(TAG, "o=" + o);
-    }
-
-    static final String TAG = "TestObjectNull";
-}
-</pre>
-Eclipse indicates an "Internal Error" with "See the .log file for more
-details" and then asks if I want to exit the workbench. This occurs when I
-place a break point on "setContentView(R.layout.main);" and then single
-step over "Object o = null;"
-
-If I change "Object o = null;" to "Object o" all is well.
-
-The last lines of the .log file are:
-<pre>
-!ENTRY org.eclipse.core.jobs 4 2 2008-01-01 13:04:15.825
-!MESSAGE An internal error occurred during: "has children update".
-!STACK 0
-java.lang.InternalError: Invalid signature: "&lt;null&gt;"
-        at
-org.eclipse.jdi.internal.TypeImpl.signatureToTag(TypeImpl.java:307)
-        at
-org.eclipse.jdi.internal.LocalVariableImpl.tag(LocalVariableImpl.java:185)
-        at
-org.eclipse.jdi.internal.StackFrameImpl.getValues(StackFrameImpl.java:128)
-        at
-org.eclipse.jdi.internal.StackFrameImpl.getValue(StackFrameImpl.java:73)
-        at
-org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:57)
-        at
-org.eclipse.jdt.internal.debug.core.model.JDIVariable.getCurrentValue(JDIVariable.java:66)
-        at
-org.eclipse.jdt.internal.debug.core.model.JDIVariable.getValue(JDIVariable.java:88)
-        at
-org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.hasChildren(VariableContentProvider.java:62)
-        at
-org.eclipse.jdt.internal.debug.ui.variables.JavaVariableContentProvider.hasChildren(JavaVariableContentProvider.java:73)
-        at
-org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.updateHasChildren(ElementContentProvider.java:223)
-        at
-org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$3.run(ElementContentProvider.java:200)
-        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
-</pre>
-</blockquote>
+issue is to be resolved.</p>
diff --git a/src/source/source_toc.cs b/src/source/source_toc.cs
index d886a3c..d0e1c68 100644
--- a/src/source/source_toc.cs
+++ b/src/source/source_toc.cs
@@ -55,7 +55,6 @@
           </div>
           <ul>
             <li><a href="<?cs var:toroot ?>source/using-repo.html">Using Repo</a></li>
-            <li><a href="<?cs var:toroot ?>source/using-eclipse.html">Using Eclipse</a></li>
             <li><a href="<?cs var:toroot ?>source/git-resources.html">Learning Git</a></li>
             <li><a href="<?cs var:toroot ?>source/add-device.html">Adding a New Device</a></li>
             <li><a href="<?cs var:toroot ?>source/64-bit-builds.html">Understanding 64-bit Builds</a></li>
diff --git a/src/source/using-eclipse.jd b/src/source/using-eclipse.jd
deleted file mode 100644
index 33ef381..0000000
--- a/src/source/using-eclipse.jd
+++ /dev/null
@@ -1,234 +0,0 @@
-page.title=Using Eclipse
-@jd:body
-
-<!--
-    Copyright 2015 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.
--->
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-    <ol id="auto-toc">
-    </ol>
-  </div>
-</div>
-<p>This document will help you set up the Eclipse IDE for Android platform development.</p>
-<p class="note"><strong>Note:</strong> If you are looking for information on how to use
-Eclipse to develop applications that run on Android, this is not the right
-page for you. You probably would find <a href="https://developer.android.com/sdk/eclipse-adt.html">the Eclipse page on 
-developer.android.com</a> more useful.</p>
-<h2 id="basic-setup">Basic setup</h2>
-<p>First, it's important to make sure the regular Android development system is set up.</p>
-<pre><code>cd /path/to/android/root 
-make
-</code></pre>
-<p><strong>Important</strong>: You will still be using <code>make</code> to build the files you will actually run (in the emulator or on a device). You will be using Eclipse to edit files and verify that they compile, but when you want to run something you will need to make sure files are saved in Eclipse and run <code>make</code> in a shell. The Eclipse build is just for error checking.</p>
-<p>Eclipse needs a list of directories to search for Java files. This is called the "Java Build Path" and can be set with the <code>.classpath</code> file. We have a sample version to start you off.</p>
-<pre><code>cd /path/to/android/root 
-cp development/ide/eclipse/.classpath .
-chmod u+w .classpath
-</code></pre>
-<p>Now edit that copy of <code>.classpath</code>, if necessary.</p>
-<h3 id="increase-eclipses-memory-settings">Increasing Eclipse's Memory Settings</h3>
-<p>The Android project is large enough that Eclipse's Java VM sometimes runs out of memory while compiling it. Avoid this problem by editing the <code>eclipse.ini</code> file. On Apple OSX the eclipse.ini file is located at</p>
-<pre><code>/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
-</code></pre>
-<p>Memory-related defaults (as of Eclipse 3.4):</p>
-<pre><code>-Xms40m 
--Xmx256m 
--XX:MaxPermSize=256m
-</code></pre>
-<p>Recommended settings for Android development:</p>
-<pre><code>-Xms128m 
--Xmx512m 
--XX:MaxPermSize=256m
-</code></pre>
-<p>These settings set Eclipse's minimum Java heap size to 128MB, set the maximum Java heap size to 512MB, and keep the maximum permanent generation size at the default of 256MB.</p>
-<p>Now start Eclipse:</p>
-<pre><code>eclipse
-</code></pre>
-<h3 id="create-project">Creating a project</h3>
-<p>Now create a project for Android development:</p>
-<ol>
-<li>
-<p>If Eclipse asks you for a workspace location, choose the default.</p>
-</li>
-<li>
-<p>If you have a "Welcome" screen, close it to reveal the Java perspective.</p>
-</li>
-<li>
-<p>File &gt; New &gt; Java Project</p>
-</li>
-<li>
-<p>Pick a project name, "android" or anything you like.</p>
-</li>
-<li>
-<p>Uncheck use default location, enter the path to your Android root directory, and click Finish.</p>
-</li>
-<li>
-<p>Wait while it sets up the project. (You'll see a subtle progress meter in the lower right corner.)</p>
-</li>
-</ol>
-<p>Once the project workspace is created, Eclipse should start building. In theory, it should build with no errors and you should be set to go. If necessary, uncheck and re-check Project Build Automatically to force a rebuild.</p>
-<p class="note"><strong>Note:</strong> Eclipse sometimes adds an <code>import android.R</code> statement at the top of your files that use resources, especially when you ask eclipse to sort or otherwise manage imports. This will cause your make to break. Look out for these erroneous import statements and delete them.</p>
-<h3 id="when-you-sync">When You Sync</h3>
-<p>Every time you repo sync, or otherwise change files outside of Eclipse (especially the .classpath), you need to refresh Eclipse's view of things:</p>
-<ol>
-<li>
-<p>Window &gt; Show View &gt; Navigator</p>
-</li>
-<li>
-<p>In the Navigator, right-click on the project name</p>
-</li>
-<li>
-<p>Click Refresh in the context menu</p>
-</li>
-</ol>
-<h3 id="adding-apps-to-the-build-path">Adding Apps to the Build Path</h3>
-<p>The default <code>.classpath</code> includes the source to the core system and a sample set of apps, but might not include the particular app you may want to work on. To add an app, you must add the app's source directory. To do this inside Eclipse:</p>
-<ol>
-<li>
-<p>Project &gt; Properties</p>
-</li>
-<li>
-<p>Select "Java Build Path" from the left-hand menu.</p>
-</li>
-<li>
-<p>Choose the "Source" tab.</p>
-</li>
-<li>
-<p>Click "Add Folder..."</p>
-</li>
-<li>
-<p>Add your app's <code>src</code> directory.</p>
-</li>
-<li>
-<p>Click OK.</p>
-</li>
-</ol>
-<p>When you're done, the "source folder" path in the list should look like </p>
-<pre><code>android/packages/apps/YOURAPP/src
-</code></pre>
-<p>Depending on which app(s) you include, you may also need to include <code>othersrc/main/java</code> directories under <code>android/dalvik/libcore</code>. Do this if you find you cannot build with the default set.</p>
-<h2 id="eclipse-formatting">Eclipse formatting</h2>
-<p>You can import files in <code>development/ide/eclipse</code> to make Eclipse
-follow the Android style rules.</p>
-<ol>
-<li>
-<p>Select Window &gt; Preferences &gt; Java &gt; Code Style.</p>
-</li>
-<li>
-<p>Use Formatter &gt; Import to import <code>android-formatting.xml</code>.</p>
-</li>
-<li>
-<p>Organize Imports &gt; Import to import <code>android.importorder</code>.</p>
-</li>
-</ol>
-<h2 id="debugging-the-emulator-with-eclipse">Debugging the emulator with Eclipse</h2>
-<p>You can also use eclipse to debug the emulator and step through code. First, start the emulator running:</p>
-<pre><code>cd /path/to/android/root 
-. build/envsetup.sh 
-lunch 1    
-make       
-emulator
-</code></pre>
-<p>If the emulator is running, you should see a picture of a phone.</p>
-<p>In another shell, start DDMS (the Dalvik debug manager):</p>
-<pre><code>cd /path/to/android/root 
-ddms
-</code></pre>
-<p>You should see a splufty debugging console.</p>
-<p>Now, in eclipse, you can attach to the emulator:</p>
-<ol>
-<li>
-<p>Run &gt; Open Debug Dialog...</p>
-</li>
-<li>
-<p>Right-click "Remote Java Application", select "New".</p>
-</li>
-<li>
-<p>Pick a name, i.e. "android-debug" or anything you like.</p>
-</li>
-<li>
-<p>Set the "Project" to your project name.</p>
-</li>
-<li>
-<p>Keep the Host set to "localhost", but change Port to 8700.</p>
-</li>
-<li>
-<p>Click the "Debug" button and you should be all set.</p>
-</li>
-</ol>
-<p>Note that port 8700 is attached to whatever process is currently selected in the DDMS console, so you need to sure that DDMS has selected the process you want to debug.</p>
-<p>You may need to open the Debug perspective (next to the "Java" perspective icon in the upper-right, click the small "Open Perspective" icon and select "Debug"). Once you do, you should see a list of threads; if you select one and break it (by clicking the "pause" icon), it should show the stack trace, source file, and line where execution is at. Breakpoints and whatnot should all work.</p>
-<h2 id="bonus-material">Bonus material</h2>
-<p>Replace Ctrl with the Apple key on Mac.</p>
-<table>
-<thead>
-<tr>
-<th>shortcut</th>
-<th>function</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>Ctrl-Shift-o</td>
-<td>Organize imports</td>
-</tr>
-<tr>
-<td>Ctrl-Shift-t</td>
-<td>load class by name</td>
-</tr>
-<tr>
-<td>Ctrl-Shift-r</td>
-<td>load non-class resource by name</td>
-</tr>
-<tr>
-<td>Ctrl-1</td>
-<td>quick fix</td>
-</tr>
-<tr>
-<td>Ctrl-e</td>
-<td>Recently viewed files</td>
-</tr>
-<tr>
-<td>Ctrl-space</td>
-<td>auto complete</td>
-</tr>
-<tr>
-<td>Shift-Alt-r</td>
-<td>refactor:rename</td>
-</tr>
-<tr>
-<td>Shift-Alt-v</td>
-<td>refactor:move</td>
-</tr>
-</tbody>
-</table>
-<h2 id="eclipse-is-not-working-correctly-what-should-i-do">Eclipse is not working correctly, what should I do?</h2>
-<p>Make sure:</p>
-<ul>
-<li>
-<p>You followed the instructions on this page precisely.</p>
-</li>
-<li>
-<p>Your Problems view doesn't show any errors.</p>
-</li>
-<li>
-<p>Your application respects the package/directory structure.</p>
-</li>
-</ul>
-<p>If you're still having problems, please contact one of the <a
-href="{@docRoot}source/community.html">Android community mailing lists or
-IRC channels</a>.</p>
