page.title=Release Notes, 1.0 r1
@jd:body


<p>This SDK release is the first to include the Android 1.0 platform and application API. Applications developed on this SDK will be compatible with mobile devices running the Android 1.0 platform, when such devices are available.</p>

<p>This release includes mainly bug fixes, although some smaller features were added. The Android 1.0 also includes several API changes from the 0.9 version. For more information on API changes, see the <a href="{@docRoot}migrating/0.9-1.0/changes-overview.html">Overview of Changes</a> and the <a href="{@docRoot}migrating/0.9-1.0/changes.html">API Differences Report</a>. For those porting from the M5 release, the SDK also includes the legacy changes overview and API Differences Reports. See the current Overview of Changes for more information. </p>

<h3>ADT Plugin Compatibility</h3>

<p>For this version of the SDK &mdash; Android 1.0 SDK, Release 1 &mdash; the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a previous version of ADT, you should update to the latest version for use with this SDK. For information about how to update your ADT plugin, see <a href="{@docRoot}intro/upgrading.html">Upgrading the SDK</a>.</p>

<h3>Installation and Upgrade Notes</h3>

<p>If you've been developing an application using a previous SDK version and you want the application to run on Android-powered mobile devices, you must port the application to the Android 1.0 SDK. Please see <a href="{@docRoot}intro/upgrading.html">Upgrading the SDK</a> for detailed instructions on how to make the transition to this release.  Be sure to wipe application user data (emulator option <code>-wipe-data</code>) when running your application on the Android 1.0 SDK emulator.</p>

<p>If you're installing the Android SDK for the first time, please see the instructions in <a href="{@docRoot}intro/installing.html">Installing the SDK</a>.

<h3>Other Notes</h3>

<p><strong>MapView API Key</strong></p>

<p>MapView is a class that lets you easily integrate Google Maps into your application. Before you can access the maps data, you will need to register with the Google Maps service and receive a Maps API Key, which you then add to your MapView for authentication to the server.</p>

<p>Currently, the registration service for MapView is not yet active and Google Maps is not yet enforcing the Maps API Key requirement. However, note that the registration service will be activated soon, so that MapViews in any application deployed to a mobile device will require registration and a valid Maps API Key. </p>

<p>As soon as the registration service becomes available, we will update the page at <a href="http://code.google.com/android/toolbox/apis/mapkey.html">http://code.google.com/android/toolbox/apis/mapkey.html</a> with details about how and where to register. Please check that page periodically for registration information, if you are using a MapView.</p>


<h3>Resolved Issues, Changes</h3>

<p><strong>Emulator</strong></p>
<ul>
<li>Emulator now saves the user image in &lt;android&gt;/SDK1.0/</code></li>
<li>Fixed EsounD-related freezes on Linux.</li>
<li>Fixed the documentation in -help-audio. '-audio list' doesn't work, one
 needs to call -help-audio-out and -help-audio-in to get the list of valid
 audio backends.</li>
<li>Fixed scrollwheel Dpad emulation in rotated mode. before that, using the
 scroll-wheel would always generated Dpad Up/Down events, even when in
 landscape mode.</li>
<li>Several Obsolete command options were removed.</li>
<li>Setting the network speed through the console or the -netspeed option will
 properly modify the connectivity icon on the device.</li>
<li>Setting the GSM voice registration state to 'roaming' in the console will
 properly modify the voice icon on the device</li>
</ul>

<p><strong>SQLite</strong></p>
<ul>
<li>SQLite is now included in the SDK package on all platforms. </li>
</ul>

<h3>Known Issues</h3>

<p><strong>JUnit and Eclipse/ADT</strong></p>
<ul>
<li>If you are developing in Eclipse/ADT and want to add JUnit test
classes, you can do so. However, you need to set up a custom JUnit configuration
before your tests will run properly. For detailed information about how to set
up the JUnit configuration, see the troubleshooting topic <a
href="{@docRoot}kb/troubleshooting.html#addjunit">Running a Junit test class
in Eclipse</a>.</li>
</ul>

<p><strong>Other</strong></p>

<ul>
<li>It is not possible to send MMS messages between emulator instances. </li>
<li>In some cases, you may encounter problems when using the browser on an
emulator started with the command-line option <code>-http-proxy</code>. </li>
<li>We regret to inform developers that Android 1.0 will not include support for
dot-matrix printers.</li>
<li>On the OSX platform, if you manually remove the ~/.android directory
using <code>rm -rf ~/.android</code>, then try to run 
the emulator, it crashes. This happens because the emulator fails to create 
a new .android directory before attempting to create the child SDK1.0 directory.
To work around this issue, manually create a new .android directory using
<code>mkdir ~/.android</code>, then run the emulator. The emulator 
creates the SDK1.0 directory and starts normally. </li>
<li>The final set of Intent patterns honored by Android 1.0 has not yet been
fully documented. Documentation will be provided in future releases.</li>
<li>In ADT Editor, you can add at most ten new resource values at a time,
in a given res/values/*.xml, using the form in the Android Resources pane. 
If you add more than ten, the Android Resources pane will not display the
attributes fields for the additional resource entries. To work around this 
problem, you can close the file in the editor and open it again, or you 
can edit the resource entries in the XML text mode. </li>
<li>The emulator's battery-control commands (<code>power &lt;option&gt</code>)
are not working in this release.</li>
	<li>We regret to inform developers that Android 1.0 will not support 3.5" floppy disks.
	</li>
	<li>Unfortunately, the ability to play audio streams from memory (such as via an InputStream or Reader) will not be possible in Android 1.0.&nbsp; As a workaround, we recommend that developers save media content to SD card and use MediaPlayer to play from a file URI, or embed a small HTTP server and play from a URI on localhost (such as http://127.0.0.1:4242/something).
	</li>
	<li>Android now supports modules or libraries that can be optionally linked into applications; a good example is the MapView, which has been moved into such a library. However, Android 1.0 will not support the ability for third-party developers to create such libraries for sharing with other applications.
	</li>
	<li>We believe that we have eliminated the problem with very long emulator startups on Windows, but had some trouble reproducing the issue.&nbsp; We are interested in feedback from developers, if this issue persists.
	</li>
</ul>

