Merge "Fix jni registration typo" into gingerbread
diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd
index acebb7e..ca197cf 100644
--- a/docs/html/guide/developing/tools/avd.jd
+++ b/docs/html/guide/developing/tools/avd.jd
@@ -11,16 +11,13 @@
         hardware options, system image, and data storage.
     <li>You create AVD configurations to model different device environments 
         in the Android emulator.</li>
-    <li>The <code>android</code> tool offers a graphical Android AVD 
-        Manager and a command-line interface for creating AVDs.</li>
-  </ul>
+    <li>You can launch a graphical Android AVD Manager either through Eclipse or
+through the <code>android</code> tool. The <code>android</code> tool also offers
+a command-line interface for creating and managing AVDs.</li> </ul>
   <h2>In this document</h2>
   <ol>
     <li><a href="#creating">Creating an AVD</a>
       <ol>
-        <li><a href="#listingtargets">Listing targets</a></li>
-        <li><a href="#selectingtarget">Selecting a target</a></li>
-        <li><a href="#createavd">Creating the AVD</a></li>
         <li><a href="#hardwareopts">Setting hardware emulation options</a></li>
         <li><a href="#location">Default location of the AVD files</a></li>
       </ol>
@@ -74,15 +71,12 @@
 href="{@docRoot}guide/developing/tools/emulator.html">Emulator</a>
 documentation. </p>
 
-<p>To create and manage AVDs, you use the <code>android</code> tool provided in
-the <code>tools/</code> directory of the Android SDK. The tool provides both a
-graphical AVD manager and a command-line interface that you can use to
-create AVDs. To access the graphical AVD manager, run the
-<code>android</code> tool without options. The sections below describe how to
-use the <code>android</code> command-line interface to create and manage AVDs.
-Note that some functionality, such as the capability to create an AVD with a
-custom hardware configuration, are only available through the command-line
-interface. </p>
+<p>The easiest way to create an AVD is to use the graphical AVD Manager, which
+you can launch from Eclipse or from the command line using the
+<code>android</code> tool. The <code>android</code> tool is provided in the
+<code>tools/</code> directory of the Android SDK. When you run the
+<code>android</code> tool without options, it launches the graphical AVD
+Manager.</p>
 
 <p>For more information about how to work with AVDs from inside your development
 environment, see <a
@@ -99,146 +93,51 @@
 (even the Hello World application).</p>
 </div>
 </div>
+<p>The easiest way to create an AVD is to use the graphical AVD Manager, but the
+<code>android</code> tool also offers a <a href="#options">command line option</a>.</p>
+<p>To create an AVD:</p>
+<ol>
+  <li>In Eclipse, choose <strong>Window &gt; Android SDK and AVD Manager</strong>. </li>
+  <p>Alternatively, you can launch the graphical AVD Manager by running the
+<code>android</code> tool with no options.</p>
+  <li>Select <strong>Virtual Devices</strong> in the left panel.</li>
 
-<p>To create an AVD, you use the <code>android</code> tool, a command-line
-utility available in the <code>&lt;sdk&gt;/tools/</code> directory. Managing
-AVDs is one of the two main function of the <code>android</code> tool (the other
-is creating and updating Android projects). Open a terminal window and change to
-the <code>&lt;sdk&gt;/tools/</code> directory, if needed</p>
+  <li>Click <strong>New</strong>. </li>
 
-<p>To create each AVD, you issue the command <code>android create avd</code>,
-with options that specify a name for the new AVD and the system image you want
-to run on the emulator when the AVD is invoked. You can specify other options on
-the command line also, such as to create an emulated SD card for the new AVD, set
-the emulator skin to use, or set a custom location for the AVD's files.</p>
+<p>The <strong>Create New AVD</strong> dialog appears.</p> <a
+href="{@docRoot}images/developing/avd-dialog.png"><img
+src="{@docRoot}images/developing/avd-dialog.png" alt="AVD
+Dialog" /></a>
 
-<p>Here's the command-line usage for creating an AVD: </p>
-
-<pre>android create avd -n &lt;name&gt; -t &lt;targetID&gt; [-&lt;option&gt; &lt;value&gt;] ... </pre>
-
-<p>You can use any name you want for the AVD, but since you are likely to be
-creating multiple AVDs, you should choose a name that lets you recognize the
-general characteristics offered by the AVD. </p>
-
-<p>As shown in the usage above, you must use the <code>-t</code> (or
-<code>--target</code>) argument when creating a new AVD. The argument sets up a
-mapping between the AVD and the system image that you want to use whenever the
-AVD is invoked. You can specify any Android system image that is available in
-your local SDK &mdash; it can be the system image of a standard Android platform
-version or that of any SDK add-on. Later, when applications use the AVD, they'll
-be running on the system that you specify in the <code>-t</code> argument.<p>
-
-<p>To specify the system image to use, you refer to its <em>target ID</em>
-&mdash; an integer &mdash; as assigned by the <code>android</code> tool. The
-target ID is not derived from the system image name, version, or API Level, or
-other attribute, so you need to have the <code>android</code> tool list the
-available system images and the target ID of each, as described in the next
-section. You should do this <em>before</em> you run the <code>android create
-avd</code> command.
-</p>
-
-<h3 id="listingtargets">Listing targets</h3>
-
-<p>To generate a list of system image targets, use this command: </p>
-
-<pre>android list targets</pre>
-
-<p>The <code>android</code> tool scans the <code>&lt;sdk&gt;/platforms</code> and
-<code>&lt;sdk&gt;/add-ons</code> directories looking for valid system images and
-then generates the list of targets. Here's an example of the command output:
-</p>
-
-<pre>Available Android targets:
-id:1
-    Name: Android 1.1
-    Type: platform
-    API level: 2
-    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
-id:2
-    Name: Android 1.5
-    Type: platform
-    API level: 3
-    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
-id:3
-    Name: Google APIs
-    Type: add-on
-    Vendor: Google Inc.
-    Description: Android + Google APIs
-    Based on Android 1.5 (API level 3)
-    Libraries:
-    * com.google.android.maps (maps.jar)
-        API for Google Maps
-    Skins: HVGA (default), HVGA-L, QVGA-P, HVGA-P, QVGA-L</pre>
-
-<h3 id="selectingtarget">Selecting a target</h3>
-
-<p>Once you have generated the list of targets available, you can look at the
-characteristics of each system image &mdash; name, API Level, external
-libraries, and so on &mdash; and determine which target is appropriate for the
-new AVD. </p>
-
-<p>Keep these points in mind when you are selecting a system image target for
-your AVD:</p>
-<ul>
-<li>The API Level of the target is important, because your application will not
-be able to run on a system image whose API Level is less than that required by
-your application, as specified in the <code>minSdkVersion</code> attribute of
-the application's manifest file. For more information about the relationship
-between system API Level and application <code>minSdkVersion</code>, see <a
-href="{@docRoot}guide/publishing/versioning.html#minsdkversion">Specifying
-Minimum System API Version</a>.
-<li>Creating at least one AVD that uses a target whose API Level is greater than
-that required by your application is strongly encouraged, because it allows you to
-test the forward-compatibility of your application. Forward-compatibility
-testing ensures that, when users who have downloaded your application receive a
-system update, your application will continue to function normally. </li>
-<li>If your application declares a <code>uses-library</code> element in its
-manifest file, the application can only run on a system image in which that
-external library is present. If you want your application to run on the AVD you
-are creating, check the application's <code>uses-library</code> element and
-select a system image target that includes that library. 
-
-</ul>
-
-<h3 id="createavd">Creating the AVD</h3>
-
-<p>When you've selected the target you want to use and made a note of its ID,
-use the <code>android create avd</code> command to create the AVD, supplying the
-target ID as the <code>-t</code> argument. Here's an example that creates an
-AVD with name "my_android1.5" and target ID "2" (the standard Android 1.5 
-system image in the list above): </p>
-
-<pre>android create avd -n my_android1.5 -t 2</pre>
-
-<p>If the target you selected was a standard Android system image ("Type:
-platform"), the <code>android</code> tool next asks you whether you want to
-create a custom hardware profile. </p>
-<pre>Android 1.5 is a basic Android platform.
-Do you wish to create a custom hardware profile [no]</pre>
-
-<p>If you want to set custom hardware emulation options for the AVD, enter
-"yes" and set values as needed. If you want to use the default hardware
-emulation options for the AVD, just press the return key (the default is "no").
-The <code>android</code> tool creates the AVD with name and system image mapping you
-requested, with the options you specified. 
-
-<p class="note">If you are creating an AVD whose target is an SDK add-on, the
-<code>android</code> tool does not allow you to set hardware emulation options.
-It assumes that the provider of the add-on has set emulation options
-appropriately for the device that the add-on is modeling, and so prevents you
-from resetting the options. </p>
-<p>For a list of options you can use in the <code>android create avd</code>
-command, see the table in <a href="#options">Command-line options for AVDs</a>,
-at the bottom of
-this page. </p>
+  <li>Type the name of the AVD, such as "my_avd".</li>
+  <li>Choose a target. </li>
+<p>The target is the system image that you want to run on the emulator,
+from the set of platforms that are installed in your SDK environment. You can
+choose a version of the standard Android platform or an SDK add-on. For more
+information about how to add platforms to your SDK, see <a
+href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. </p>
+  <li>Optionally specify any additional settings: </li>
+  <dl>
+  <dt><em>SD Card</em></dt> <dd>The path to the SD card image to use with this
+AVD, or the size of a new SD card image to create for this AVD.</dd> </dl>
+<dt><em>Skin</em></dt>
+    <dd>The skin to use for this AVD, identified by name or dimensions.</dd>
+<dt><em>Hardware</em></dt>
+    <dd>The hardware emulation options for the device. For a list of the options, see 
+<a href="#hardwareopts">Setting hardware emulation options</a>.</dd>
+  </dl>
+  <li>Click <strong>Create AVD</strong>.</li>
+</ol>
 
 <h3 id="hardwareopts">Setting hardware emulation options</h3>
 
-<p>When are creating a new AVD that uses a standard Android system image ("Type:
-platform"), the <code>android</code> tool lets you set hardware emulation
-options for virtual device. The table below lists the options available and the
+<p>When you create a new AVD that uses a standard Android system image ("Type:
+platform"), the AVD Manager
+ lets you set hardware emulation
+options for your virtual device. 
+The table below lists the options available and the
 default values, as well as the names of properties that store the emulated
-hardware options in the AVD's configuration file (the config.ini file in the
+hardware options in the AVD's configuration file (the <code>config.ini</code> file in the
 AVD's local directory). </p>
 
 <table>
@@ -266,6 +165,7 @@
 </tr>
 
 <tr>
+
 <td>Keyboard support</td>
 <td>Whether the device has a QWERTY keyboard. Default value is "yes".</td>
 <td>hw.keyboard</td>
@@ -299,6 +199,7 @@
 <td>Maximum vertical camera pixels</td>
 <td>Default value is "480".</td>
 <td>hw.camera.maxVerticalPixels</td>
+
 </tr>
 
 <tr>
@@ -311,6 +212,7 @@
 <td>Battery support</td>
 <td>Whether the device can run on a battery. Default value is "yes".</td>
 <td>hw.battery</td>
+
 </tr>
 
 <tr>
@@ -323,6 +225,7 @@
 <td>Audio recording support</td>
 <td>Whether the device can record audio. Default value is "yes".</td>
 <td>hw.audioInput</td>
+
 </tr>
 
 <tr>
@@ -335,6 +238,7 @@
 <td>SD Card support</td>
 <td>Whether the device supports insertion/removal of virtual SD Cards. Default value is "yes".</td>
 <td>hw.sdCard</td>
+
 </tr>
 
 <tr>
@@ -347,43 +251,55 @@
 <td>Cache partition size</td>
 <td>Default value is "66MB".</td>
 <td>disk.cachePartition.size </td>
+
 </tr>
 
 <tr>
 <td>Abstracted LCD density</td>
-<td>Sets the generalized density characteristic used by the AVD's screen. Default value is "160".</td>
+<td>Sets the generalized density characteristic used by the AVD's screen. Most
+skins come with a value (which you can modify), but if a skin doesn't provide
+its own value, the default is 160. </td>
 <td>hw.lcd.density </td>
 </tr>
 
+<tr>
+<td>Max VM application heap size</td>
+<td>The maximum heap size a Dalvik application might allocate before being
+killed by the system. Value is in megabytes. Most skins come with a value (which
+you can modify), but if a skin doesn't provide its own value, the default is
+16.</td> 
+<td>vm.heapSize</td>
+</tr>
+
 </table>
 
 <h3 id="location">Default location of the AVD files</h3>
 
-<p>When you create an AVD, the <code>android</code> tool creates a dedicated directory for it
+<p>When you create an AVD, the AVD Manager creates a dedicated directory for it
 on your development computer. The directory contains the AVD configuration file,
 the user data image and SD card image (if available), and any other files
 associated with the device. Note that the directory does not contain a system
 image &mdash; instead, the AVD configuration file contains a mapping to the
 system image, which it loads when the AVD is launched. </p>
 
-<p>The <code>android</code> tool also creates a &lt;AVD name&gt;.ini file for the AVD at the
-root of the .android/avd directory on your computer. The file specifies the
-location of the AVD directory and always remains at the root the .android 
-directory.</p>
+<p>The AVD Manager also creates a <code>&lt;AVD name&gt;.ini</code> file for the
+AVD at the root of the <code>.android/avd</code> directory on your computer. The file
+specifies the location of the AVD directory and always remains at the root the
+.android directory.</p>
 
-<p>By default, the <code>android</code> tool creates the AVD directory inside
+<p>By default, the AVD Manager creates the AVD directory inside
 <code>~/.android/avd/</code> (on Linux/Mac), <code>C:\Documents and
 Settings\&lt;user&gt;\.android\</code> on Windows XP, and 
 <code>C:\Users\&lt;user&gt;\.android\</code> on Windows Vista. 
 If you want to use a custom location for the AVD directory, you 
 can do so by using the <code>-p &lt;path&gt;</code> option when 
-you create the AVD: </p>
+you create the AVD (command line tool only): </p>
 
 <pre>android create avd -n my_android1.5 -t 2 -p path/to/my/avd</pre>
 
-<p>If the .android directory is hosted on a network drive, we recommend using
+<p>If the <code>.android</code> directory is hosted on a network drive, we recommend using
 the <code>-p</code> option to place the AVD directory in another location. 
-The  AVD's .ini file remains in the .android directory on the network
+The  AVD's <code>.ini</code> file remains in the <code>.android</code> directory on the network
 drive, regardless of the location of the AVD directory. </p>
 
 <h2 id="managing">Managing AVDs</h2>
@@ -401,18 +317,15 @@
 
 <h3 id="updating">Updating an AVD</h3>
 
-<p>If, for any reason, the platform/add-on root folder has its name changed (maybe because the user has installed an update of the platform/add-on) then the AVD will not be able to load the system image that it is mapped to. In this case, the <code>android list targets</code> command will produce this output: 
-
-<pre>The following Android Virtual Devices could not be loaded: 
-Name: foo 
-Path: &lt;path&gt;/.android/avd/foo.avd 
-Error: Invalid value in image.sysdir. Run 'android update avd -n foo' </pre>
-
-<p>To fix this error, use the <code>android update avd</code> command to recompute the path to the system images.</p>
+<p>
+If you rename or move the root directory of a platform (or add-on), an AVD configured to use that platform will no longer be able to load the system image properly. To fix the AVD, use the <strong>Repair...</strong> button in the AVD Manager. From the command line, you can also use the <code>android update avd</code> command to recompute the path to the system images.</p>
 
 <h3 id="deleting">Deleting an AVD</h3>
 
-<p>You can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p>
+<p>You can  delete an AVD in the AVD Manager by selecting the 
+AVD and clicking <strong>Delete</strong>.</p>
+
+<p>Alternatively, you can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p>
 
 <pre>android delete avd -n &lt;name&gt; </pre>
 
@@ -420,7 +333,21 @@
 specified name deletes the AVD's directory and files. </p>
 
 
-<h2 id="options">Command-line options for AVDs</h2>
+<h2 id="options">Command-line options</h2>
+
+<p>You can use the <code>android</code> tool to create and manage AVDs.</p>
+
+<p>The command line for creating an AVD has the following syntax:</p>
+
+<pre>
+android create avd -n &lt;name&gt; -t &lt;targetID&gt; [-&lt;option&gt; &lt;value&gt;] ... 
+</pre>
+
+<p>Here's an example that creates an AVD with the name "my_android2.2" and target ID "3":</p>
+
+<pre>
+android create avd -n my_android2.2 -t 3
+</pre>
 
 <p>The table below lists the command-line options you can use with the 
 <code>android</code> tool. </p>
diff --git a/docs/html/images/developing/avd-dialog.png b/docs/html/images/developing/avd-dialog.png
new file mode 100755
index 0000000..693aa42
--- /dev/null
+++ b/docs/html/images/developing/avd-dialog.png
Binary files differ
diff --git a/docs/html/resources/dashboard/platform-versions.jd b/docs/html/resources/dashboard/platform-versions.jd
index 6cb7228..d4b6db5 100644
--- a/docs/html/resources/dashboard/platform-versions.jd
+++ b/docs/html/resources/dashboard/platform-versions.jd
@@ -52,7 +52,7 @@
 <div class="dashboard-panel">
 
 <img alt="" height="250" width="460"
-src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:0.3,21.3,23.5,53.1,1.8&chl=Other*|
+src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:0.3,18.9,22.1,55.5,3.3&chl=Other*|
 Android%201.5|Android%201.6|Android%202.1|Android%202.2&chco=c4df9b,6fad0c" />
 
 <table>
@@ -61,13 +61,13 @@
   <th>API Level</th>
   <th>Distribution</th>
 </tr>
-<tr><td>Android 1.5</td><td>3</td><td>21.3%</td></tr>
-<tr><td>Android 1.6</td><td>4</td><td>23.5%</td></tr>
-<tr><td>Android 2.1</td><td>7</td><td>53.1%</td></tr>
-<tr><td>Android 2.2</td><td>8</td><td>1.8%</td></tr>
+<tr><td>Android 1.5</td><td>3</td><td>18.9%</td></tr>
+<tr><td>Android 1.6</td><td>4</td><td>22.1%</td></tr>
+<tr><td>Android 2.1</td><td>7</td><td>55.5%</td></tr>
+<tr><td>Android 2.2</td><td>8</td><td>3.3%</td></tr>
 </table>
 
-<p><em>Data collected during two weeks ending on July 1, 2010</em></p>
+<p><em>Data collected during two weeks ending on July 15, 2010</em></p>
 <p style="font-size:.9em">* <em>Other: 0.3% of devices running obsolete versions</em></p>
 
 </div><!-- end dashboard-panel -->
diff --git a/docs/html/resources/dashboard/screens.jd b/docs/html/resources/dashboard/screens.jd
index 89fdd2d..b20b17d 100644
--- a/docs/html/resources/dashboard/screens.jd
+++ b/docs/html/resources/dashboard/screens.jd
@@ -49,7 +49,7 @@
 <div class="dashboard-panel">
 
 <img alt="" width="460" height="250"
-src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:1.4,54.5,44.1&chl=Small%20/%20ldpi|
+src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:1.8,51.5,46.6&chl=Small%20/%20ldpi|
 Normal%20/%20mdpi|Normal%20/%20hdpi&chco=c4df9b,6fad0c" />
 
 <table>
@@ -60,22 +60,22 @@
 <th scope="col">High Density</th>
 </tr>
 <tr><th scope="row">Small</th> 
-<td class='cent hi'>1.4%</td> 
+<td class='cent hi'>1.8%</td> 
 <td></td> 
 <td></td> 
 </tr> 
 <tr><th scope="row">Normal</th> 
 <td></td> 
-<td class='cent hi'>54.5%</td> 
-<td class='cent hi'>44.1%</td> 
+<td class='cent hi'>51.5%</td> 
+<td class='cent hi'>46.6%</td> 
 </tr> 
 <tr><th scope="row">Large</th> 
 <td></td> 
 <td></td> 
 <td></td> 
-</tr> 
+</tr>
 </table>
 
-<p><em>Data collected during two weeks ending on July 1, 2010</em></p>
+<p><em>Data collected during two weeks ending on July 15, 2010</em></p>
 </div>
 
diff --git a/docs/html/resources/tutorials/notepad/codelab/NotepadCodeLab.zip b/docs/html/resources/tutorials/notepad/codelab/NotepadCodeLab.zip
index 502a326..cd30f29 100644
--- a/docs/html/resources/tutorials/notepad/codelab/NotepadCodeLab.zip
+++ b/docs/html/resources/tutorials/notepad/codelab/NotepadCodeLab.zip
Binary files differ
diff --git a/docs/html/resources/tutorials/notepad/notepad-ex2.jd b/docs/html/resources/tutorials/notepad/notepad-ex2.jd
index a945a62..289b5fe 100644
--- a/docs/html/resources/tutorials/notepad/notepad-ex2.jd
+++ b/docs/html/resources/tutorials/notepad/notepad-ex2.jd
@@ -393,7 +393,11 @@
       <pre>setContentView(R.layout.note_edit);</pre>
     </li>
     <li>
-      Find the edit and button components we need:
+      Change the Activity title to the "Edit Note" string:
+      <pre>setTitle(R.string.edit_note);</pre>
+    </li>
+    <li>
+      Find the {@link android.widget.EditText} and {@link android.widget.Button} components we need:
       <p>These are found by the
       IDs associated to them in the R class, and need to be cast to the right
       type of <code>View</code> (<code>EditText</code> for the two text views,